:root{
  --bg:#070620;--bg-2:rgba(18,17,54,.78);--panel:rgba(13,12,44,.88);
  --cream:#f7f2e8;--muted:rgba(247,242,232,.66);--line:rgba(150,156,255,.18);
  --gold:#f0851f;--gold-2:#ffa94d;--blue:#3f3da6;--blue-li:#7e7cf0;
  --radius:18px;--maxw:1240px;--ease:cubic-bezier(.22,.61,.36,1);
  --shadow:0 24px 60px -22px rgba(0,0,0,.7);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;color:var(--cream);background:var(--bg);
  font-family:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-weight:400;line-height:1.6;letter-spacing:.01em;-webkit-font-smoothing:antialiased}
.bg{position:fixed;inset:0;z-index:-1;background:radial-gradient(120% 90% at 50% -10%,#232170 0%,#14123f 42%,#070620 100%)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
a{color:inherit}
.header{position:sticky;top:0;z-index:60;background:rgba(7,6,32,.92);
  backdrop-filter:blur(10px) saturate(130%);-webkit-backdrop-filter:blur(10px) saturate(130%);
  border-bottom:1px solid var(--line);padding:11px 0}
.nav{display:flex;align-items:center;justify-content:space-between;gap:18px}
.brand img{width:auto;display:block}
.nav-r{display:flex;align-items:center;gap:12px}
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:999px;font-weight:600;
  font-size:.9rem;padding:11px 20px;text-decoration:none;transition:transform .2s var(--ease),box-shadow .2s,background .2s;white-space:nowrap}
.btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#1a0d00;box-shadow:0 12px 30px -12px rgba(240,133,31,.7)}
.btn-gold:hover{transform:translateY(-2px)}
.btn-ghost{border:1px solid var(--line);color:var(--cream);background:rgba(255,255,255,.02)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-2)}
a.btn[href*="orders.hazlnut.com"]{position:relative;overflow:hidden;isolation:isolate}
a.btn[href*="orders.hazlnut.com"]::after{content:"";position:absolute;top:0;bottom:0;left:-80%;width:55%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.6),transparent);
  transform:skewX(-22deg);pointer-events:none;z-index:1;animation:glideShine 3.4s var(--ease) infinite}
@keyframes glideShine{0%{left:-80%}55%{left:130%}100%{left:130%}}
@media (prefers-reduced-motion:reduce){a.btn[href*="orders.hazlnut.com"]::after{animation:none}}
/* hero */
.c-banner{width:100%;line-height:0}
.c-banner img{width:100%;height:auto;display:block}
.c-hero{text-align:center;padding:30px 24px 14px}
.c-hero .eyebrow{text-transform:uppercase;letter-spacing:.38em;font-size:12px;color:var(--gold-2);margin:0 0 14px}
.c-hero h1{font-family:"Playfair Display",serif;font-weight:800;font-size:clamp(2.1rem,5vw,3.4rem);margin:0 0 10px;line-height:1.1}
.c-hero .script{font-family:"Playfair Display",serif;font-style:italic;color:var(--gold);font-size:clamp(1.1rem,2.4vw,1.5rem);margin:0 0 14px}
.c-hero p.sub{color:var(--muted);max-width:660px;margin:0 auto;font-size:.97rem}
.c-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:22px}
.banner{display:block;max-width:560px;width:100%;margin:26px auto 0;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow)}
/* deal */
.deal{max-width:760px;margin:30px auto 0;background:linear-gradient(135deg,rgba(240,133,31,.16),rgba(63,61,166,.16));
  border:1px solid var(--gold);border-radius:var(--radius);padding:24px 26px;text-align:center}
.deal h2{font-family:"Playfair Display",serif;margin:0 0 6px;font-size:clamp(1.3rem,3vw,1.9rem);color:var(--cream)}
.deal .big{color:var(--gold-2);font-weight:800;font-size:1.9rem;font-family:"Inter"}
.deal p{margin:6px 0 0;color:var(--muted);font-size:.9rem}
/* sections */
.cat{padding:48px 0 8px}
.cat-head{display:flex;align-items:baseline;gap:16px;margin-bottom:6px}
.cat-head h2{font-family:"Playfair Display",serif;font-weight:800;font-size:clamp(1.5rem,3.2vw,2.2rem);margin:0;color:var(--cream)}
.cat-head .tag{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#1a0d00;background:var(--gold-2);padding:4px 10px;border-radius:999px}
.cat-head .line{flex:1;height:1px;background:linear-gradient(90deg,var(--gold),transparent)}
.cat-note{color:var(--muted);font-size:.86rem;margin:0 0 22px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 40px}
@media(max-width:760px){.grid{grid-template-columns:1fr;gap:4px}}
.item{padding:14px 0;border-bottom:1px dashed var(--line)}
.item-top{display:flex;justify-content:space-between;align-items:baseline;gap:14px}
.item-top h3{font-size:1rem;font-weight:700;margin:0;color:var(--cream)}
.dots{flex:1;border-bottom:1px dotted rgba(150,156,255,.35);transform:translateY(-4px)}
.price{font-weight:700;color:var(--gold-2);white-space:nowrap;font-size:.98rem}
.serves{margin:4px 0 0;color:var(--blue-li);font-size:.78rem;font-weight:600}
.subcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 22px;margin-top:20px}
.subcard h3{margin:0 0 6px;font-size:1rem;color:var(--gold-2);font-family:"Playfair Display",serif}
.subcard p{margin:0;color:var(--muted);font-size:.84rem}
/* footer */
.foot{border-top:1px solid var(--line);margin-top:48px;padding:40px 0;text-align:center;background:rgba(7,6,32,.6)}
.foot .phone{font-family:"Playfair Display",serif;font-size:clamp(1.6rem,4vw,2.3rem);color:var(--gold-2);margin:6px 0;font-weight:800}
.foot .occ{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;margin:16px 0 22px}
.foot .occ span{color:var(--gold)}
.backbar{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.foot .warn{color:var(--muted);font-size:.72rem;max-width:680px;margin:18px auto 0;opacity:.8}
/* order-type slider */
.order-typebar{display:flex;justify-content:center;padding:18px 24px 2px}
.order-toggle{position:relative;display:inline-flex;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:5px;box-shadow:var(--shadow)}
.order-toggle .ot-opt{position:relative;z-index:1;min-width:124px;text-align:center;padding:10px 22px;font-size:.86rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;color:var(--cream);text-decoration:none;transition:color .25s var(--ease);white-space:nowrap}
.order-toggle .ot-thumb{position:absolute;z-index:0;top:5px;bottom:5px;left:5px;width:calc(50% - 5px);border-radius:999px;background:linear-gradient(135deg,var(--gold),var(--gold-2));box-shadow:0 8px 20px -8px rgba(240,133,31,.8);transition:transform .32s var(--ease)}
.order-toggle .ot-opt:first-of-type{color:#1a0d00}
.order-toggle:has(.ot-opt:last-of-type:hover) .ot-thumb{transform:translateX(100%)}
.order-toggle:has(.ot-opt:last-of-type:hover) .ot-opt:first-of-type{color:var(--cream)}
.order-toggle:has(.ot-opt:last-of-type:hover) .ot-opt:last-of-type{color:#1a0d00}
/* inquiry modal */
.c-cta .btn{cursor:pointer;font-family:inherit}
.modal{position:fixed;inset:0;z-index:200;display:none;align-items:flex-start;justify-content:center;padding:24px;overflow-y:auto;background:rgba(4,3,18,.74);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.modal.open{display:flex}
.modal-card{background:var(--bg-2,#121136);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);max-width:620px;width:100%;margin:auto;padding:30px clamp(20px,4vw,38px)}
.modal-card h2{font-family:"Playfair Display",serif;font-weight:800;font-size:clamp(1.5rem,4vw,2rem);margin:0 0 4px;color:var(--cream)}
.modal-card .lead{color:var(--muted);font-size:.9rem;margin:0 0 22px}
.modal-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.modal-x{flex-shrink:0;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--cream);font-size:1.2rem;line-height:1;cursor:pointer;transition:.2s}
.modal-x:hover{border-color:var(--gold);color:var(--gold-2)}
/* ---- $25 gift card promo popup ---- */
.promo-card{max-width:450px;text-align:center;position:relative;padding:24px clamp(20px,4vw,30px) 28px}
.promo-x{position:absolute;top:13px;right:13px;z-index:3}
.promo-img{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--line);margin:2px 0 18px;line-height:0;box-shadow:var(--shadow)}
.promo-img img{width:100%;height:auto;display:block}
.promo-badge{display:inline-block;background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#241a09;font-weight:800;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;padding:6px 14px;border-radius:999px;margin-bottom:12px}
.promo-card h2{font-family:"Playfair Display",serif;font-weight:800;font-size:clamp(1.35rem,4vw,1.85rem);line-height:1.2;margin:0 0 10px;color:var(--cream)}
.promo-card h2 em{font-style:normal;color:var(--gold-2)}
.promo-txt{color:var(--muted);font-size:.93rem;line-height:1.6;margin:0 0 20px}
.promo-txt b{color:var(--cream)}
.promo-cta{width:100%;justify-content:center;font-size:.95rem;padding:14px 20px;position:relative;overflow:hidden;isolation:isolate}
.promo-cta::after{content:"";position:absolute;top:0;bottom:0;left:-80%;width:55%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.6),transparent);
  transform:skewX(-22deg);pointer-events:none;z-index:1;
  animation:glideShine 3.4s var(--ease) infinite}
@media (prefers-reduced-motion:reduce){.promo-cta::after{animation:none}}
.promo-fine{color:var(--muted);font-size:.73rem;margin:13px 0 0;opacity:.75}
@media(max-width:420px){.promo-card{padding:20px 16px 24px}}
.cform{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.cform .full{grid-column:1/-1}
.cform label{display:block;font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-2);margin:0 0 6px}
.cform input,.cform select,.cform textarea{width:100%;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:11px;padding:11px 13px;color:var(--cream);font-family:inherit;font-size:.92rem;transition:border-color .2s}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:none;border-color:var(--gold)}
.cform textarea{resize:vertical;min-height:84px}
.cform option{color:#111}
.cform .submit-row{grid-column:1/-1;margin-top:6px}
.cform .submit-row .btn{width:100%;justify-content:center;border:none;font-size:.95rem;padding:14px}
.cform .note{grid-column:1/-1;color:var(--muted);font-size:.74rem;margin:2px 0 0;text-align:center}
@media(max-width:560px){.cform{grid-template-columns:1fr}}
.order-toggle--sm{padding:3px;box-shadow:none}
.order-toggle--sm .ot-thumb{top:3px;bottom:3px;left:3px;width:calc(50% - 3px)}
.order-toggle--sm .ot-opt{min-width:0;padding:7px 14px;font-size:.72rem;letter-spacing:.05em}
@media(max-width:820px){.order-toggle--sm{display:none}}
/* ---------- Location circles (ported from home page) ---------- */
.cat-locs{padding:6px 0 2px}
.cat-locs-tag{text-align:center;text-transform:uppercase;letter-spacing:.34em;font-size:clamp(11px,2.4vw,13px);color:var(--gold-2);margin:18px 0 0;text-shadow:0 2px 14px rgba(0,0,0,.6)}
.loc-circles{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(20px,4vw,56px);min-height:0;padding:0}
.loc-circle{position:relative;flex:0 0 auto;width:128px;height:128px;border-radius:50%;cursor:pointer;outline:none;
  transition:width .6s var(--ease),height .6s var(--ease),box-shadow .6s var(--ease);will-change:width,height}
.loc-circle:hover,.loc-circle.is-open,.loc-circle:focus-visible{width:224px;height:224px;box-shadow:0 30px 72px -26px rgba(0,0,0,.82);z-index:6}
.loc-circle.is-active:not(:hover):not(.is-open):not(:focus-visible){animation:locThrob 1.7s ease-in-out infinite;z-index:5}
@keyframes locThrob{
  0%{transform:scale(1);box-shadow:0 0 0 0 rgba(63,61,166,.75)}
  70%{transform:scale(1.05);box-shadow:0 0 0 15px rgba(63,61,166,0)}
  100%{transform:scale(1);box-shadow:0 0 0 0 rgba(63,61,166,0)}
}
@media(prefers-reduced-motion:reduce){.loc-circle.is-active{animation:none!important}}
.loc-ring{position:absolute;inset:-9px;border-radius:50%;opacity:0;
  background:var(--gold);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 12px),#000 calc(100% - 11px));
          mask:radial-gradient(farthest-side,transparent calc(100% - 12px),#000 calc(100% - 11px));
  transition:opacity .5s var(--ease),background .4s var(--ease)}
.loc-circle.is-active .loc-ring,.loc-circle:hover .loc-ring,.loc-circle.is-open .loc-ring,.loc-circle:focus-visible .loc-ring{opacity:1;background:#1e1c72}
.loc-stars{position:absolute;inset:-9px;pointer-events:none;opacity:0;transition:opacity .45s var(--ease);z-index:4}
.loc-circle.is-active .loc-stars,.loc-circle:hover .loc-stars,.loc-circle.is-open .loc-stars,.loc-circle:focus-visible .loc-stars{opacity:1;animation:starOrbit 9s linear infinite}
@keyframes starOrbit{to{transform:rotate(360deg)}}
.loc-star{position:absolute;width:11px;height:11px;transform:translate(-50%,-50%);filter:drop-shadow(0 1px 2px rgba(0,0,0,.55));animation:starTwinkle 1.7s ease-in-out infinite}
.loc-star svg{width:100%;height:100%;display:block;fill:var(--gold)}
@keyframes starTwinkle{0%,100%{opacity:1;transform:translate(-50%,-50%) scale(1)}50%{opacity:.4;transform:translate(-50%,-50%) scale(.72)}}
@media(prefers-reduced-motion:reduce){.loc-stars{animation:none!important}.loc-star{animation:none!important}}
.loc-disc{position:absolute;inset:5px;border-radius:50%;overflow:hidden;background:rgba(26,25,76,.9);
  border:2px solid var(--gold);box-shadow:0 0 0 1px rgba(240,133,31,.35),0 0 22px -6px rgba(240,133,31,.45),0 16px 34px -12px rgba(0,0,0,.72);display:grid;place-items:center;text-align:center;transition:background .4s var(--ease),border-color .4s var(--ease)}
.loc-circle.is-active .loc-disc,.loc-circle:hover .loc-disc,.loc-circle.is-open .loc-disc,.loc-circle:focus-visible .loc-disc{background:linear-gradient(150deg,var(--gold-2),var(--gold));border-color:#1e1c72;box-shadow:0 0 0 1px rgba(30,28,114,.55),0 0 26px -6px rgba(240,133,31,.6),0 16px 34px -12px rgba(0,0,0,.72)}
.loc-content{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:14px;text-align:center}
.loc-pin{width:24px;height:24px;fill:#141248;opacity:0;max-height:0;overflow:hidden;transition:opacity .4s var(--ease),max-height .5s var(--ease),transform .5s var(--ease)}
.loc-circle:hover .loc-pin,.loc-circle.is-open .loc-pin,.loc-circle:focus-visible .loc-pin{opacity:1;max-height:30px;margin-bottom:6px;transform:translateY(-1px) scale(1.05)}
.loc-name{font-family:"Playfair Display",serif;font-weight:700;color:var(--cream);font-size:1rem;line-height:1.15;text-align:center;transition:font-size .5s var(--ease),color .4s var(--ease)}
.loc-circle.is-active .loc-name,.loc-circle:hover .loc-name,.loc-circle.is-open .loc-name,.loc-circle:focus-visible .loc-name{color:#141248}
.loc-circle:hover .loc-name,.loc-circle.is-open .loc-name,.loc-circle:focus-visible .loc-name{font-size:1.28rem}
.loc-addr{font-size:.82rem;color:rgba(20,18,72,.92);max-height:0;opacity:0;padding-top:0;overflow:hidden;transition:.55s var(--ease)}
.loc-circle:hover .loc-addr,.loc-circle.is-open .loc-addr,.loc-circle:focus-visible .loc-addr{max-height:42px;opacity:1;padding-top:6px}
.loc-content .loc-order{margin-top:0;max-height:0;opacity:0;padding-top:0;padding-bottom:0;overflow:hidden;transform:translateY(8px);background:#141248;border-color:#141248;color:#fff;font-size:.82rem;box-shadow:0 8px 18px -8px rgba(0,0,0,.6);transition:.55s var(--ease)}
.loc-circle:hover .loc-order,.loc-circle.is-open .loc-order,.loc-circle:focus-visible .loc-order{max-height:54px;opacity:1;padding-top:10px;padding-bottom:10px;margin-top:9px;transform:none}
@media(max-width:680px){
  .loc-circles{gap:14px}
  .loc-circle{width:99px;height:99px}
  .loc-circle:hover,.loc-circle.is-open,.loc-circle:focus-visible{width:188px;height:188px}
  .loc-name{font-size:.82rem}
  .loc-content{padding:9px}
}
@media(max-width:420px){
  .loc-circles{gap:10px}
  .loc-circle{width:78px;height:78px}
  .loc-circle:hover,.loc-circle.is-open,.loc-circle:focus-visible{width:168px;height:168px}
}

/* ---------------------------------------------------------------- */

.ocx-ov{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;padding:22px;background:rgba(4,3,18,.74);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.ocx-ov.open{display:flex}
.ocx-card{background:var(--panel,#0d0c2c);border:1px solid var(--line,rgba(150,156,255,.18));border-radius:18px;max-width:470px;width:100%;padding:26px clamp(18px,4vw,30px);box-shadow:0 24px 60px -22px rgba(0,0,0,.7)}
.ocx-top{display:flex;justify-content:space-between;align-items:center;gap:14px}
.ocx-top h3{font-family:"Playfair Display",serif;font-weight:800;margin:0;color:var(--cream,#f7f2e8);font-size:1.45rem}
.ocx-x{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--line,rgba(150,156,255,.18));background:transparent;color:var(--cream,#f7f2e8);font-size:1.2rem;line-height:1;cursor:pointer;transition:.2s}
.ocx-x:hover{border-color:var(--gold,#f0851f);color:var(--gold-2,#ffa94d)}
.ocx-sub{color:var(--muted,rgba(247,242,232,.66));font-size:.9rem;margin:4px 0 18px}
.ocx-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.ocx-item{display:flex;align-items:center;gap:12px;padding:12px 13px;border:1px solid var(--line,rgba(150,156,255,.18));border-radius:14px;background:rgba(255,255,255,.02);transition:.2s}
.ocx-item:hover{border-color:var(--gold,#f0851f);background:rgba(240,133,31,.08)}
.ocx-info{display:flex;flex-direction:column;min-width:0}
.ocx-nm{font-weight:700;color:var(--cream,#f7f2e8);font-size:1rem;line-height:1.2}
.ocx-ad{color:var(--muted,rgba(247,242,232,.66));font-size:.82rem}
.ocx-go{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,var(--gold,#f0851f),var(--gold-2,#ffa94d));color:#1a0d00;font-weight:700;font-size:.82rem;padding:9px 15px;border-radius:999px;text-decoration:none;white-space:nowrap;transition:transform .2s,box-shadow .2s}
.ocx-go:hover{transform:translateY(-1px);box-shadow:0 10px 22px -10px rgba(240,133,31,.85)}
