:root{
  --ice-1:#E4EFF3;
  --ice-2:#F8FBFC;
  --paper:#FFFFFF;
  --ink:#132330;
  --ink-soft:#4C5D68;
  --line:rgba(19,35,48,0.14);
  --gold:#AD8A55;
  --navy-deep:#0E1B24;
  --frost:#CFE2E9;
  --good:#2C7A5F;
  --warn:#A34632;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Inter',sans-serif;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.serif{font-family:'Cormorant Garamond',serif;font-weight:500;margin:0;}
.mono{font-family:'Space Mono',monospace;}
a{color:inherit;text-decoration:none;}
img,svg{display:block;max-width:100%;}
.wrap{max-width:1220px;margin:0 auto;padding:0 40px;}
::selection{background:var(--ink);color:var(--ice-2);}

.kicker{
  font-family:'Inter',sans-serif;font-size:12px;font-weight:600;letter-spacing:0.22em;
  text-transform:uppercase;color:var(--gold);
}

.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 30px;font-family:'Inter',sans-serif;font-weight:600;font-size:12.5px;
  letter-spacing:0.14em;text-transform:uppercase;cursor:pointer;border-radius:999px;
  border:1px solid var(--ink);transition:all .2s ease;background:none;
}
.btn-fill{background:var(--ink);color:var(--ice-2);}
.btn-fill:hover{background:var(--navy-deep);}
.btn-line{background:transparent;color:var(--ink);}
.btn-line:hover{background:var(--ink);color:var(--ice-2);}
.btn-sm{padding:11px 22px;font-size:11px;}
.text-link{
  font-size:13px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;
  border-bottom:1px solid var(--ink);padding-bottom:3px;display:inline-flex;gap:8px;align-items:center;
}

/* ---------- NAV ---------- */
/* Locks background scroll on iOS/mobile while the off-canvas nav is open —
   overflow:hidden alone isn't reliable enough on iOS Safari to stop rubber-band
   scrolling behind a fixed panel, which is what caused the ghosting/glitch. */
html.nav-open, html.nav-open body{overflow:hidden;height:100%;}

header.nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  padding:22px 0;transition:all .35s ease;
  background:rgba(248,251,252,0.0);
}
header.nav.scrolled, header.nav.solid{
  padding:14px 0;background:rgba(248,251,252,0.94);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
header.nav.scrolled .logo svg, header.nav.solid .logo svg{height:56px;}
.nav-inner{display:flex;align-items:center;justify-content:space-between;max-width:1220px;margin:0 auto;padding:0 40px;}
.logo{display:flex;align-items:center;}
.logo svg{height:84px;width:auto;display:block;fill:#000;transition:height .3s ease;}
.nav-links{display:flex;align-items:center;gap:36px;}
.nav-links a.navlink{
  font-size:12px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink);
  opacity:0.82;position:relative;
}
.nav-links a.navlink:hover{opacity:1;}
.nav-links a.navlink.current{opacity:1;}
.nav-links a.navlink.current::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1.5px;background:var(--gold);}
.burger{display:none;background:none;border:none;cursor:pointer;padding:6px;}
.burger span{display:block;width:22px;height:1.5px;background:var(--ink);margin:5px 0;}

/* ---------- PAGE HEADER (interior pages) ---------- */
.page-header{
  padding:170px 0 80px;
  background:linear-gradient(160deg,var(--ice-1) 0%, var(--ice-2) 55%, var(--paper) 100%);
  text-align:center;
}
.page-header h1{font-size:56px;color:var(--ink);text-transform:uppercase;letter-spacing:0.01em;margin-top:16px;}
.page-header p{font-size:15.5px;color:var(--ink-soft);max-width:520px;margin:20px auto 0;line-height:1.7;}

/* ---------- HERO (home) ---------- */
.hero{
  position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;
  background:linear-gradient(160deg,var(--ice-1) 0%, var(--ice-2) 55%, var(--paper) 100%);
}
.hero-inner{
  display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:20px;
  max-width:1220px;margin:0 auto;padding:140px 40px 60px;width:100%;
}
.hero-text{position:relative;z-index:3;}
.hero-text .kicker{margin-bottom:22px;display:block;}
.hero h1{font-size:76px;line-height:0.98;color:var(--ink);letter-spacing:0.01em;text-transform:uppercase;}
.hero .tagline{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-size:29px;color:var(--ink-soft);
  margin-top:18px;font-weight:400;
}
.hero .desc{font-size:15px;color:var(--ink-soft);line-height:1.7;max-width:380px;margin-top:26px;}
.hero-links{margin-top:38px;display:flex;gap:34px;align-items:center;flex-wrap:wrap;}

.hero-visual{position:relative;height:640px;display:flex;align-items:center;justify-content:center;}
.hero-blob{
  position:absolute;width:480px;height:480px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%, rgba(255,255,255,0.9), rgba(207,226,233,0.4) 60%, transparent 75%);
  top:50%;left:50%;transform:translate(-50%,-50%);
}
.hero-illustration{position:relative;z-index:2;width:330px;}
.frost-branch{position:absolute;z-index:1;opacity:0.85;}
.fb1{width:210px;right:6%;bottom:2%;}
.fb2{width:130px;left:2%;bottom:6%;transform:scaleX(-1);opacity:0.5;}

/* ---------- SECTION SHELL ---------- */
.section{padding:130px 0;}
.section.tight{padding:100px 0;}
.section-head{max-width:600px;margin-bottom:64px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head h2{font-size:44px;color:var(--ink);margin-top:16px;line-height:1.1;}
.section-head p{font-size:15.5px;color:var(--ink-soft);line-height:1.7;margin-top:18px;}

/* ---------- HOME TEASERS ---------- */
.teasers{background:var(--ice-2);}
.teaser-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.teaser-card{background:var(--paper);padding:46px 38px;display:flex;flex-direction:column;gap:16px;}
.teaser-card .kicker{font-size:11px;}
.teaser-card h3{font-size:27px;color:var(--ink);margin-top:6px;}
.teaser-card p{font-size:14.5px;color:var(--ink-soft);line-height:1.7;flex:1;}
.teaser-card .text-link{margin-top:6px;align-self:flex-start;}

/* ---------- ABOUT ---------- */
.about{background:var(--ice-2);}
.about-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:80px;align-items:center;}
.about-mark{
  aspect-ratio:1/1.15;border-radius:6px;
  background:linear-gradient(150deg,var(--ink) 0%, var(--navy-deep) 100%);
  display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;
}
.about-mark svg{width:62%;}
.about-mark::before{content:"";position:absolute;inset:14px;border:1px solid rgba(255,255,255,0.18);}
.about-copy p{font-size:16.5px;line-height:1.85;color:var(--ink-soft);margin-bottom:22px;}
.about-copy p:last-of-type{margin-bottom:0;}
.about-copy .signoff{margin-top:34px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:20px;color:var(--ink);}
.draft-note{
  margin-top:28px;font-family:'Space Mono',monospace;font-size:11px;color:var(--gold);
  border:1px dashed var(--gold);padding:8px 14px;display:inline-block;border-radius:4px;
}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:6px;}
.value-card{background:var(--paper);padding:40px 34px;text-align:center;}
.value-card .num{font-family:'Space Mono',monospace;font-size:12px;color:var(--gold);}
.value-card h3{font-size:24px;margin-top:14px;color:var(--ink);}
.value-card p{font-size:14px;color:var(--ink-soft);margin-top:10px;line-height:1.6;}

/* ---------- MENU ---------- */
.menu{background:var(--paper);}
.tabs{display:flex;gap:36px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:8px;padding-bottom:0;}
.tab{
  font-family:'Inter',sans-serif;font-weight:600;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--ink-soft);background:none;border:none;cursor:pointer;padding:0 0 18px;position:relative;
}
.tab.active{color:var(--ink);}
.tab.active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ink);}
.menu-panel{display:none;padding-top:34px;}
.menu-panel.active{display:block;}
.menu-subhead{
  font-family:'Inter',sans-serif;font-weight:700;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--gold);margin:38px 0 4px;
}
.menu-subhead:first-child{margin-top:0;}
.menu-subhead .subhead-note{
  font-weight:500;font-size:11px;letter-spacing:0.02em;text-transform:none;color:var(--ink-soft);
}
.item-row{display:block;padding:22px 0;border-bottom:1px solid var(--line);}
.item-row:first-child{padding-top:0;}
.item-name{font-family:'Cormorant Garamond',serif;font-size:23px;color:var(--ink);font-weight:600;}
.item-tag{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:0.06em;text-transform:uppercase;color:var(--gold);margin-left:10px;vertical-align:middle;}
.item-desc{font-size:13.5px;color:var(--ink-soft);font-style:italic;margin-top:5px;line-height:1.5;}
.menu-note{text-align:center;color:var(--ink-soft);font-size:13.5px;margin-top:44px;font-style:italic;}
.menu-price-notice{
  max-width:640px;margin:0 auto 50px;text-align:center;padding:20px 26px;
  border:1px solid var(--line);background:var(--ice-2);border-radius:4px;
}
.menu-price-notice p{font-size:14px;color:var(--ink-soft);line-height:1.6;margin-bottom:14px;}
.menu-price-notice .cta-links{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.flavor-dropdown{margin-top:8px;}
.flavor-dropdown + .flavor-dropdown{margin-top:6px;}
.flavor-dropdown summary{
  list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;
  font-family:'Inter',sans-serif;font-weight:600;font-size:11.5px;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--gold);
}
.flavor-dropdown summary::-webkit-details-marker{display:none;}
.flavor-dropdown summary .chevron{font-size:10px;transition:transform .2s ease;display:inline-block;}
.flavor-dropdown[open] summary .chevron{transform:rotate(180deg);}
.flavor-dropdown .dropdown-list{
  list-style:none;margin:8px 0 0;padding:0;max-width:600px;
  display:grid;grid-template-columns:repeat(auto-fill, minmax(150px,1fr));gap:7px 20px;
}
.flavor-dropdown .dropdown-list li{
  font-size:13.5px;color:var(--ink-soft);font-style:italic;line-height:1.4;position:relative;padding-left:14px;
}
.flavor-dropdown .dropdown-list li::before{
  content:"";position:absolute;left:0;top:0.5em;width:5px;height:5px;border-radius:50%;background:var(--gold);
}

/* ---------- LOCATIONS / STORE LOCATOR ---------- */
.locations{background:var(--ice-2);}
.loc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.loc-card{background:var(--paper);padding:38px;display:flex;flex-direction:column;gap:16px;position:relative;}
.loc-card.original{box-shadow:inset 0 0 0 2px var(--gold);z-index:1;}
.original-badge{
  font-family:'Inter',sans-serif;font-weight:700;font-size:10.5px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--navy-deep);background:var(--gold);display:inline-flex;align-items:center;gap:6px;
  padding:6px 12px;border-radius:999px;width:fit-content;margin-bottom:-4px;
}
.loc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
.loc-name{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:600;color:var(--ink);}
.loc-rating{font-family:'Space Mono',monospace;font-size:12px;color:var(--ink-soft);margin-top:4px;}
.loc-rating .star{color:var(--gold);}
.status-pill{
  font-family:'Space Mono',monospace;font-size:11px;font-weight:700;padding:5px 12px;
  border:1px solid currentColor;display:inline-flex;align-items:center;gap:6px;width:fit-content;letter-spacing:0.04em;
}
.status-pill.open{color:var(--good);}
.status-pill.closed{color:var(--warn);}
.status-pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor;}
.loc-addr{font-size:14px;color:var(--ink-soft);line-height:1.5;}
.loc-addr a{border-bottom:1px solid var(--line);}
.loc-phone{font-family:'Space Mono',monospace;font-size:14px;color:var(--ink);font-weight:700;}
.hours-toggle{
  font-size:12px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-soft);
  cursor:pointer;display:inline-flex;align-items:center;gap:8px;width:fit-content;
}
.hours-toggle .chevron{transition:transform .2s ease;font-size:10px;}
.hours-toggle.open .chevron{transform:rotate(180deg);}
.hours-table{display:none;font-size:13px;color:var(--ink-soft);border-top:1px solid var(--line);padding-top:12px;margin-top:2px;}
.hours-table.show{display:block;}
.hours-row{display:flex;justify-content:space-between;padding:3px 0;font-family:'Space Mono',monospace;font-size:12px;}
.hours-row.today{color:var(--ink);font-weight:700;}
.loc-badges{display:flex;gap:8px;flex-wrap:wrap;}
.badge{font-size:10.5px;letter-spacing:0.05em;text-transform:uppercase;color:var(--gold);border:1px solid var(--gold);padding:4px 10px;border-radius:2px;}
.loc-ctas{display:flex;gap:10px;margin-top:auto;padding-top:10px;flex-wrap:wrap;}
.assumption-note{font-size:11px;color:var(--gold);font-style:italic;}
.map-frame{
  width:100%;height:460px;border:1px solid var(--line);margin-bottom:60px;background:var(--ice-1);
}
.map-note{text-align:center;color:var(--ink-soft);font-size:13.5px;margin-top:40px;}

/* ---------- GALLERY ---------- */
.gallery{background:var(--paper);}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.gallery-tile{aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:var(--ice-2);}
.gallery-tile svg{width:34%;}
.gallery-tile .cap{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-soft);}

.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.photo-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.photo-tile{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--ice-2);}
.photo-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.photo-tile:hover img{transform:scale(1.05);}
.photo-tile .photo-cap{
  position:absolute;left:0;right:0;bottom:0;padding:16px 18px;
  background:linear-gradient(to top, rgba(14,27,36,0.78), transparent);
  color:#fff;font-family:'Cormorant Garamond',serif;font-size:19px;font-weight:600;
  pointer-events:none;
}

.den-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.den-item{display:flex;flex-direction:column;}
.den-item .photo-tile{aspect-ratio:4/3;border:1px solid var(--line);}
.den-toggle{margin-top:12px;text-align:center;}
.den-toggle summary{
  list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px;
  font-family:'Cormorant Garamond',serif;font-weight:600;font-size:21px;color:var(--ink);
}
.den-toggle summary::-webkit-details-marker{display:none;}
.den-toggle summary .chevron{font-size:12px;color:var(--gold);transition:transform .2s ease;}
.den-toggle[open] summary .chevron{transform:rotate(180deg);}
.den-actions{margin-top:12px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}

/* ---------- CONTACT FORM ---------- */
.contact-wrap{background:var(--paper);}
.contact-grid{display:grid;grid-template-columns:1fr 0.8fr;gap:80px;}
.form-group{margin-bottom:22px;}
.form-group label{
  display:block;font-size:11.5px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:9px;
}
.form-input,.form-textarea,.form-select{
  width:100%;padding:14px 16px;font-family:'Inter',sans-serif;font-size:14.5px;color:var(--ink);
  border:1px solid var(--line);border-radius:4px;background:var(--ice-2);transition:border-color .2s ease;
}
.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--ink);}
.form-textarea{resize:vertical;min-height:140px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.form-status{margin-top:18px;font-size:13.5px;display:none;}
.form-status.show{display:block;}
.form-status.ok{color:var(--good);}
.form-status.err{color:var(--warn);}
.contact-side h3{font-size:26px;color:var(--ink);margin-bottom:18px;}
.contact-side .loc-mini{padding:18px 0;border-bottom:1px solid var(--line);}
.contact-side .loc-mini:first-of-type{border-top:1px solid var(--line);}
.contact-side .loc-mini-name{font-family:'Cormorant Garamond',serif;font-size:19px;font-weight:600;}
.contact-side .loc-mini-phone{font-family:'Space Mono',monospace;font-size:13px;color:var(--ink-soft);margin-top:4px;}

/* ---------- CTA ---------- */
.cta-band{background:var(--navy-deep);color:var(--ice-2);padding:120px 0;text-align:center;}
.cta-band .kicker{color:var(--gold);}
.cta-band h2{font-size:46px;margin:18px 0 20px;color:#fff;}
.cta-band p{color:#9FB2BC;font-size:15.5px;margin-bottom:40px;max-width:480px;margin-left:auto;margin-right:auto;}
.cta-links{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.cta-band .btn-line{border-color:rgba(255,255,255,0.4);color:#fff;}
.cta-band .btn-line:hover{background:#fff;color:var(--navy-deep);border-color:#fff;}
.cta-band .btn-fill{background:#fff;color:var(--navy-deep);border-color:#fff;}
.cta-band .btn-fill:hover{background:var(--gold);border-color:var(--gold);color:#fff;}

/* ---------- FOOTER ---------- */
footer{background:var(--ink);color:#B9C6CC;padding:70px 0 30px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:50px;margin-bottom:50px;}
.footer-logo{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:26px;color:#fff;margin-bottom:14px;}
.footer-tag{font-size:13.5px;color:#8FA0A9;line-height:1.7;max-width:300px;}
.footer-col h4{font-family:'Inter',sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:0.14em;color:#6F838C;margin-bottom:16px;}
.footer-col a,.footer-col div{display:block;font-size:13.5px;color:#D2DCE0;margin-bottom:11px;}
.footer-col a:hover{color:#fff;}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.1);padding-top:24px;font-size:11.5px;color:#6F838C;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}

/* ---------- ORDER MODAL ---------- */
.modal-overlay{
  position:fixed;inset:0;background:rgba(14,27,36,0.55);backdrop-filter:blur(3px);
  display:none;align-items:center;justify-content:center;z-index:500;padding:24px;
}
.modal-overlay.show{display:flex;}
.modal-panel{
  background:var(--paper);border-radius:10px;max-width:440px;width:100%;padding:40px;position:relative;
  box-shadow:0 30px 80px rgba(14,27,36,0.35);
}
.modal-close{
  position:absolute;top:18px;right:18px;background:none;border:none;cursor:pointer;
  font-size:20px;color:var(--ink-soft);line-height:1;padding:6px;
}
.modal-close:hover{color:var(--ink);}
.modal-panel .kicker{display:block;margin-bottom:10px;}
.modal-panel h3{font-size:28px;color:var(--ink);margin-bottom:24px;}
.modal-loc-row{
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding:16px 0;border-bottom:1px solid var(--line);
}
.modal-loc-row:last-child{border-bottom:none;}
.modal-loc-name{font-family:'Cormorant Garamond',serif;font-size:19px;font-weight:600;color:var(--ink);}
.modal-loc-addr{font-size:12px;color:var(--ink-soft);margin-top:2px;}

/* ---------- RESPONSIVE ---------- */
@media (max-width:980px){
  .hero h1{font-size:54px;}
  .hero-inner{grid-template-columns:1fr;padding-top:120px;text-align:left;}
  .hero-visual{order:-1;height:420px;margin-bottom:20px;}
  .hero-illustration{width:230px;}
  .about-grid{grid-template-columns:1fr;gap:40px;}
  .about-mark{max-width:340px;margin:0 auto;}
  .loc-grid{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .photo-grid, .photo-grid.cols-3{grid-template-columns:repeat(2,1fr);}
  .den-grid{grid-template-columns:repeat(2,1fr);}
  .teaser-grid{grid-template-columns:repeat(2,1fr);}
  .values-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;gap:50px;}
  .footer-grid{grid-template-columns:1fr;gap:30px;}
  .page-header h1{font-size:42px;}
}
@media (max-width:700px){
  .logo svg{height:60px;}
  .nav-links{
    position:fixed;top:0;left:0;right:0;bottom:0;background:var(--ice-2);
    flex-direction:column;align-items:flex-start;justify-content:center;padding:40px;gap:28px;
    transform:translateX(100%);transition:transform .3s ease;z-index:150;
  }
  .nav-links.show{transform:translateX(0);}
  .nav-links a.navlink{font-size:20px;}
  .burger{display:block;z-index:210;}
  .wrap{padding:0 24px;}
  .hero-inner{padding-left:24px;padding-right:24px;}
  .nav-inner{padding:0 24px;}
  .hero h1{font-size:42px;}
  .hero .tagline{font-size:22px;}
  .section{padding:80px 0;}
  .section-head h2{font-size:32px;}
  .cta-band h2{font-size:32px;}
  .item-name{font-size:19px;}
  .form-row{grid-template-columns:1fr;}
  .page-header{padding:150px 0 60px;}
  .teaser-grid{grid-template-columns:1fr;}
}
