/* =========================================================================
   Mahina Sushi — "Editorial" theme (styled after antonsnyc.com)
   Fixed left side-column (brand · nav · contact) + food-forward content.
   ========================================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; }

:root {
  --bg:#FFFFFF; --bg-2:#FFFFFF; --ink:#23201A; --ink-soft:#3A362E; --muted:#736C5F;
  --line:rgba(35,32,26,.16); --line-soft:rgba(35,32,26,.09);
  --accent:#8A6410; --accent-ink:#6E5010;   /* deep gold — legible on cream */
  --gold:#B78B23; --gold-bright:#EAB13C;     /* wordmark / button fills */
  --paper:#FFFFFF;
  --serif:"Fraunces","Cormorant Garamond",Georgia,serif;
  --body:"EB Garamond",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --sb: 320px;            /* sidebar width */
  --container:1180px; --measure:720px;
}
body { background:var(--bg); color:var(--ink); font-family:var(--body); font-size:20px; line-height:1.65; -webkit-font-smoothing:antialiased; }

.container { width:100%; max-width:var(--container); margin:0 auto; padding:0 clamp(20px,4vw,52px); }

h1,h2,h3 { font-family:var(--serif); font-weight:500; line-height:1.08; margin:0; letter-spacing:-.01em; }
.display { font-size:clamp(2.4rem,5vw,4.6rem); font-weight:400; }
.h-xl { font-size:clamp(2rem,4vw,3.3rem); }
.h-lg { font-size:clamp(1.6rem,3vw,2.4rem); }
p { margin:0 0 1.1em; }
.lede { font-size:clamp(1.3rem,2.2vw,1.75rem); line-height:1.5; color:var(--ink-soft); }
.eyebrow { font-family:var(--sans); font-size:.74rem; font-weight:600; letter-spacing:.26em; text-transform:uppercase; color:var(--accent); display:inline-block; margin-bottom:1.1rem; }
em,i { font-style:italic; }
.accent { color:var(--accent); }
.center { text-align:center; }
.stack > * + * { margin-top:1.3rem; }

/* ---- buttons ---- */
.btn { font-family:var(--sans); font-size:.76rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  display:inline-block; padding:.95rem 1.9rem; border:1px solid var(--ink); color:var(--ink); background:transparent;
  border-radius:2px; transition:background .25s,color .25s,border-color .25s; cursor:pointer; text-align:center; }
.btn:hover { background:var(--ink); color:var(--bg); }
.btn--solid { background:var(--ink); color:var(--bg); }
.btn--solid:hover { background:var(--accent); border-color:var(--accent); color:#fff; }
.btn--wine { background:var(--gold-bright); border-color:var(--gold-bright); color:var(--ink); }
.btn--wine:hover { background:var(--gold); border-color:var(--gold); color:var(--ink); }
.btn--block { display:block; width:100%; }
.link-underline { font-family:var(--sans); font-size:.76rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; border-bottom:1px solid currentColor; padding-bottom:3px; transition:color .2s; }
.link-underline:hover { color:var(--accent); }

/* ============================ SIDEBAR ============================ */
.sidebar {
  position:fixed; top:0; left:0; width:var(--sb); height:100vh; z-index:60;
  background:var(--paper); border-right:1px solid var(--line);
  display:flex; flex-direction:column; align-items:center; text-align:center;
  padding:3.6rem 1.8rem 2.4rem; overflow-y:auto;
}
.sidebar__brand { font-family:var(--serif); font-weight:500; font-size:2.9rem; line-height:1; letter-spacing:.02em; color:var(--ink); }
.sidebar__brand small { display:block; font-family:var(--sans); font-size:.6rem; font-weight:600; letter-spacing:.34em; text-transform:uppercase; color:var(--muted); margin-top:11px; }
.sidebar__rule { width:100%; border:0; border-top:1px solid var(--line); margin:1.7rem 0; }
.sidebar__addr { font-style:italic; font-size:1.05rem; line-height:1.55; color:var(--ink-soft); margin:0; }
.sidebar__nav { display:flex; flex-direction:column; align-items:center; gap:1.05rem; margin-top:.3rem; }
.sidebar__nav a { font-family:var(--sans); font-size:.8rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); transition:color .2s; }
.sidebar__nav a:hover, .sidebar__nav a.is-active { color:var(--accent); }
.sidebar__cta { margin-top:1.9rem; }
.sidebar__spacer { flex:1 1 auto; min-height:2rem; }
.sidebar__contact { font-size:1rem; line-height:1.5; color:var(--ink-soft); }
.sidebar__contact p { margin:0 0 .7rem; }
.sidebar__contact a:hover { color:var(--accent); }
.sidebar__hours { font-family:var(--sans); font-size:.72rem; letter-spacing:.04em; color:var(--muted); line-height:1.9; }
.sidebar__hours b { color:var(--ink-soft); font-weight:600; }
.sidebar__toggle { display:none; }

/* main + footer offset by sidebar */
main, .site-footer { margin-left:var(--sb); }

/* mobile: sidebar collapses to a top bar; toggle expands nav + contact */
@media (max-width: 980px) {
  .sidebar { position:sticky; top:0; flex-flow:row wrap; align-items:center; justify-content:space-between;
    width:100%; height:auto; padding:1rem clamp(20px,4vw,32px); border-right:0; border-bottom:1px solid var(--line); }
  .sidebar__brand { order:1; font-size:1.55rem; }
  .sidebar__toggle { order:2; display:inline-flex; border:0; background:none; padding:6px; }
  .sidebar__toggle svg { width:26px; height:26px; stroke:var(--ink); }
  .sidebar { text-align:left; }
  .sidebar__nav, .sidebar__contact, .sidebar__spacer, .sidebar__rule, .sidebar__addr, .sidebar__cta { display:none; }
  .sidebar__nav { width:100%; }
  .sidebar.is-open .sidebar__nav { order:3; display:flex; flex-direction:column; align-items:flex-start; gap:1.1rem; margin-top:1.3rem; width:100%; }
  .sidebar.is-open .sidebar__cta { order:4; display:inline-block; margin-top:1.2rem; }
  .sidebar.is-open .sidebar__contact { order:5; display:block; margin-top:1.2rem; width:100%; text-align:left; }
  main, .site-footer { margin-left:0; }
}

/* ============================ HERO CAROUSEL ============================ */
.hero { position:relative; height:100vh; min-height:520px; overflow:hidden; background:var(--bg-2); cursor:pointer; }
@media (max-width: 980px) { .hero { height:72vh; } }
.hero__slide { position:absolute; inset:0; opacity:0; transition:opacity 1.6s ease; background-size:cover; background-position:center; }
.hero__slide.is-active { opacity:1; }
.hero__dots { position:absolute; z-index:3; bottom:22px; left:0; right:0; display:flex; gap:9px; justify-content:center; }
.hero__dots button { width:9px; height:9px; border-radius:50%; border:1px solid rgba(255,255,255,.85); background:transparent; padding:0; box-shadow:0 0 6px rgba(0,0,0,.3); }
.hero__dots button.is-active { background:#fff; }
.hero__tag { position:absolute; z-index:3; left:0; right:0; bottom:52px; text-align:center; color:#fff;
  font-family:var(--sans); font-size:.72rem; font-weight:600; letter-spacing:.34em; text-transform:uppercase; text-shadow:0 2px 16px rgba(0,0,0,.5); }
.hero__label { position:absolute; z-index:3; left:0; right:0; bottom:52px; text-align:center; color:#fff;
  opacity:0; transition:opacity 1.2s ease; pointer-events:none; text-shadow:0 2px 20px rgba(0,0,0,.55); }
.hero__slide.is-active .hero__label { opacity:1; }
.hero__label .k { display:block; font-family:var(--sans); font-size:.66rem; font-weight:600; letter-spacing:.3em; text-transform:uppercase; opacity:.85; margin-bottom:.5rem; }
.hero__label .n { font-family:var(--serif); font-weight:400; font-size:clamp(2rem,5vw,3.4rem); line-height:1; }

/* ---- video hero (slowed, faded sushi montage behind the headline) ---- */
.hero--video { position:relative; height:100vh; min-height:560px; overflow:hidden; cursor:default;
  background:#FFFFFF url('../assets/video/hero-sushi-poster.jpg') center/cover no-repeat; }
.hero__video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.hero__veil { position:absolute; inset:0; z-index:1; background:
  radial-gradient(120% 90% at 50% 46%, rgba(255,255,255,.32) 0%, rgba(255,255,255,.42) 62%, rgba(255,255,255,.52) 100%); }
.hero__inner { position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; align-items:center;
  justify-content:center; text-align:center; padding:2rem clamp(20px,6vw,80px); }
.hero__mark { display:inline-block; font-family:var(--serif); font-weight:500; font-size:clamp(2.6rem,5.4vw,4.2rem);
  line-height:1; letter-spacing:.02em; color:var(--ink); text-decoration:none; margin-bottom:1.5rem;
  text-shadow:0 1px 4px rgba(246,241,231,.55); }
.hero__mark small { display:block; font-family:var(--sans); font-size:.62rem; font-weight:600; letter-spacing:.34em;
  text-transform:uppercase; color:var(--ink-soft); margin-top:12px; }
.hero__mark--center { font-size:clamp(3.2rem,7.5vw,6rem); margin-bottom:0; }
.hero__mark--center small { font-size:.7rem; margin-top:16px; }
.hero__title { max-width:15ch; margin:.15rem 0 1.15rem; color:var(--ink); text-shadow:0 1px 2px rgba(246,241,231,.55); }
.hero__lede { max-width:42ch; color:var(--ink-soft); text-shadow:0 1px 2px rgba(246,241,231,.5); }
.hero__eyebrow { margin-bottom:1rem; }
@media (max-width: 980px) { .hero--video { height:78vh; } }
@media (prefers-reduced-motion: reduce) { .hero__video { display:none; } }

/* ============================ SECTIONS ============================ */
.band { padding:clamp(4rem,8vw,7rem) 0; }
.band--tight { padding:clamp(2.6rem,5vw,4.4rem) 0; }
.band--paper { background:var(--paper); }
.band--cream { background:var(--bg-2); }
.rule { border:0; border-top:1px solid var(--line); margin:0; }
.statement { text-align:center; max-width:880px; margin:0 auto; }
.statement .display { margin-bottom:1.3rem; }

.split { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(2rem,5vw,5rem); }
.split--reverse .split__media { order:2; }
.split__media img { width:100%; height:100%; object-fit:cover; border-radius:2px; display:block; }
.split__media.tall img { aspect-ratio:4/5; }
.split__media.wide img { aspect-ratio:3/2; }
.split__text { max-width:30rem; }
@media (max-width: 820px) { .split { grid-template-columns:1fr; gap:2rem; } .split--reverse .split__media { order:0; } .split__text { max-width:none; } }

.feature-img { position:relative; height:min(72vh,660px); background-size:cover; background-position:center; }
.feature-img__caption { position:absolute; inset:auto 0 0 0; padding:2.4rem; color:#fff; text-align:center; text-shadow:0 1px 14px rgba(0,0,0,.85); background:linear-gradient(to top,rgba(0,0,0,.10),transparent); }

.tri { display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; }
.tri img { width:100%; aspect-ratio:4/5; object-fit:cover; }
@media (max-width: 760px) { .tri { grid-template-columns:1fr; } }

/* ---- generic slider ---- */
.slider { position:relative; max-width:1000px; margin:0 auto; }
.slider--portrait { max-width:470px; }
.slider__viewport { position:relative; aspect-ratio:3/2; overflow:hidden; background:var(--bg-2); border-radius:2px; }
.slider--portrait .slider__viewport { aspect-ratio:4/5; }
.slider__slide { position:absolute; inset:0; opacity:0; transition:opacity 1.8s ease; }
.slider__slide.is-active { opacity:1; }
.slider__slide img { width:100%; height:100%; object-fit:cover; }
.slider__arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:46px; height:46px; border-radius:50%;
  display:grid; place-items:center; background:rgba(251,248,241,.9); border:1px solid var(--line); color:var(--ink); }
.slider__arrow--prev { left:14px; } .slider__arrow--next { right:14px; }
.slider__arrow svg { width:20px; height:20px; }
.slider__dots { display:flex; gap:8px; justify-content:center; margin-top:16px; }
.slider__dots button { width:8px; height:8px; border-radius:50%; border:0; background:var(--line); padding:0; }
.slider__dots button.is-active { background:var(--accent); }

/* ============================ TEXT-ONLY MENU ============================ */
.menu-wrap { max-width:900px; margin:0 auto; }
.menu-cat { margin-bottom:clamp(3rem,6vw,5rem); }
.menu-cat__head { text-align:center; margin-bottom:2.2rem; }
.menu-cat__title { font-size:clamp(1.9rem,4vw,2.9rem); }
.menu-cat__blurb { color:var(--muted); font-style:italic; margin-top:.6rem; }
.menu-sub { font-family:var(--sans); font-size:.72rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); text-align:center; margin:2.2rem 0 .4rem; padding-top:1.5rem; border-top:1px solid var(--line-soft); }
.menu-note { text-align:center; color:var(--muted); font-style:italic; font-size:.95rem; margin-bottom:1.2rem; }
.menu-cols { display:grid; grid-template-columns:1fr auto; align-items:baseline; font-family:var(--sans); font-size:.64rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); border-bottom:1px solid var(--line-soft); padding-bottom:.5rem; margin-bottom:.6rem; }
.menu-cols__prices .two { display:inline-block; min-width:3.4rem; text-align:right; }
.menu-cols__prices .two + .two { margin-left:.4rem; }
.menu-item { display:grid; grid-template-columns:1fr auto; gap:.3rem 1rem; align-items:baseline; padding:.55rem 0; }
.menu-item + .menu-item { border-top:1px solid var(--line-soft); }
.menu-item__name { font-size:1.1rem; }
.menu-item__name .jp { color:var(--muted); font-style:italic; font-size:.92rem; margin-left:.4rem; }
.menu-item__name .flag { font-family:var(--sans); font-size:.54rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); border:1px solid var(--accent); border-radius:2px; padding:1px 5px; margin-left:.5rem; vertical-align:middle; }.menu-item__desc { grid-column:1/-1; color:var(--muted); font-size:.96rem; line-height:1.45; max-width:46rem; }
.menu-item__price { font-family:var(--sans); font-weight:600; font-size:.96rem; white-space:nowrap; }
.menu-item__price .two { display:inline-block; min-width:3.4rem; text-align:right; }
.combo { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1.6rem; }
.combo__tier { border:1px solid var(--line); border-radius:2px; padding:1.1rem 1.3rem; text-align:center; background:var(--paper); }
.combo__tier h4 { font-family:var(--serif); font-size:1.3rem; margin-bottom:.2rem; }
.combo__tier .hours { font-family:var(--sans); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.combo__tier .opts { margin-top:.5rem; font-size:1rem; }
.combo__choices { columns:2; column-gap:2.4rem; font-size:1rem; padding:0; margin:0; }
.combo__choices li { break-inside:avoid; padding:.25rem 0; border-bottom:1px solid var(--line-soft); list-style:none; }
@media (max-width:640px){ .combo,.combo__choices{ grid-template-columns:1fr; columns:1; } }
.menu-jump { display:flex; flex-wrap:wrap; gap:.5rem 1.3rem; justify-content:center; margin-bottom:.5rem; }
.menu-jump a { font-family:var(--sans); font-size:.68rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); border-bottom:1px solid transparent; padding-bottom:2px; }
.menu-jump a:hover { color:var(--accent); border-color:var(--accent); }

/* ============================ ORDER PAGE (delivery + image menu) ============================ */
.delivery { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; max-width:840px; margin:0 auto; }
.delivery a { border:1px solid var(--line); border-radius:2px; background:var(--paper); padding:1.6rem 1rem; text-align:center;
  font-family:var(--sans); font-weight:600; letter-spacing:.06em; transition:border-color .2s,transform .2s; }
.delivery a:hover { border-color:var(--accent); transform:translateY(-2px); }
.delivery a.delivery__soon { opacity:.55; cursor:default; }
.delivery a.delivery__soon:hover { border-color:var(--line); transform:none; }
.delivery .k { display:block; font-family:var(--sans); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-bottom:.4rem; }
.delivery .v { font-size:1.15rem; }
@media (max-width:680px){ .delivery{ grid-template-columns:1fr; } }

.omenu-cat { margin-bottom:3rem; }
.omenu-cat__title { text-align:center; font-size:clamp(1.7rem,3.4vw,2.4rem); margin-bottom:1.6rem; }
.omenu-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:1.4rem; }
.ocard { background:var(--paper); border:1px solid var(--line-soft); border-radius:3px; overflow:hidden; display:flex; flex-direction:column; }
.ocard__img { width:100%; aspect-ratio:1/1; object-fit:cover; background:var(--bg-2); }
.ocard__body { padding:1rem 1.1rem 1.2rem; display:flex; flex-direction:column; flex:1; }
.ocard__name { font-family:var(--serif); font-size:1.25rem; }
.ocard__desc { color:var(--muted); font-size:.92rem; line-height:1.4; margin:.35rem 0 .9rem; flex:1; }
.ocard__row { display:flex; align-items:center; justify-content:space-between; gap:.8rem; }
.ocard__price { font-family:var(--sans); font-weight:600; }
.add-to-cart { font-family:var(--sans); font-size:.68rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  padding:.55rem 1rem; border:1px solid var(--ink); border-radius:2px; background:transparent; transition:background .2s,color .2s; }
.add-to-cart:hover { background:var(--accent); border-color:var(--accent); color:#fff; }
.omenu-simple { max-width:760px; margin:0 auto; }
.omenu-line { display:grid; grid-template-columns:1fr auto auto; gap:.8rem; align-items:center; padding:.7rem 0; border-top:1px solid var(--line-soft); }
.omenu-line__name { font-size:1.08rem; } .omenu-line__name small{ color:var(--muted); font-style:italic; }
.omenu-line__price { font-family:var(--sans); font-weight:600; font-size:.95rem; }

/* ---- cart button (floating) + drawer + toast ---- */
.cart-fab { position:fixed; bottom:24px; right:24px; z-index:65; width:60px; height:60px; border-radius:50%;
  background:var(--accent); color:#fff; border:0; display:grid; place-items:center; box-shadow:0 10px 30px rgba(0,0,0,.28); }
.cart-fab svg { width:26px; height:26px; }
.cart-fab__count { position:absolute; top:-4px; right:-4px; min-width:22px; height:22px; padding:0 5px; border-radius:11px;
  background:var(--ink); color:#fff; font-family:var(--sans); font-size:.72rem; font-weight:700; display:grid; place-items:center; }
.cart-backdrop { position:fixed; inset:0; background:rgba(20,18,14,.45); opacity:0; visibility:hidden; transition:opacity .3s,visibility .3s; z-index:80; }
.cart-backdrop.is-open { opacity:1; visibility:visible; }
.cart-drawer { position:fixed; top:0; right:0; height:100vh; width:min(90vw,400px); background:var(--paper); z-index:90;
  transform:translateX(100%); transition:transform .3s ease; display:flex; flex-direction:column; box-shadow:-10px 0 40px rgba(0,0,0,.2); }
.cart-drawer.is-open { transform:translateX(0); }
.cart-drawer__head { display:flex; align-items:center; justify-content:space-between; padding:1.4rem 1.6rem; border-bottom:1px solid var(--line); }
.cart-drawer__head h2 { font-family:var(--serif); font-size:1.5rem; }
.cart-drawer__close { border:0; background:none; font-size:1.8rem; line-height:1; color:var(--ink); }
.cart-drawer__body { flex:1; overflow-y:auto; padding:1rem 1.6rem; }
.cart-empty { text-align:center; color:var(--muted); padding:3rem 0; }
.cart-empty .btn { margin-top:1rem; }
.cart-line { display:grid; grid-template-columns:1fr auto auto; gap:.6rem; align-items:center; padding:.9rem 0; border-bottom:1px solid var(--line-soft); }
.cart-line__main { display:flex; align-items:center; gap:.7rem; }
.cart-line__thumb { width:46px; height:46px; object-fit:cover; border-radius:3px; }
.cart-line__name { display:block; font-size:1.02rem; } .cart-line__price { font-family:var(--sans); font-size:.82rem; color:var(--muted); }
.cart-line__qty { display:flex; align-items:center; gap:.5rem; }
.qty-btn { width:26px; height:26px; border:1px solid var(--line); background:var(--bg); border-radius:3px; line-height:1; }
.qty-val { font-family:var(--sans); font-size:.9rem; min-width:1.2rem; text-align:center; }
.cart-line__remove { border:0; background:none; color:var(--muted); font-size:1.2rem; }
.cart-drawer__foot { padding:1.2rem 1.6rem; border-top:1px solid var(--line); }
.cart-drawer__subtotal { display:flex; justify-content:space-between; font-family:var(--sans); font-weight:600; margin-bottom:.4rem; }
.cart-drawer__note { font-size:.85rem; color:var(--muted); margin:.2rem 0 1rem; }
.cart-toast { position:fixed; bottom:96px; right:24px; z-index:95; background:var(--ink); color:#fff; font-family:var(--sans); font-size:.85rem;
  padding:.7rem 1.1rem; border-radius:4px; opacity:0; transform:translateY(8px); transition:opacity .25s,transform .25s; }
.cart-toast.show { opacity:1; transform:none; }

/* ---- checkout ---- */
.checkout-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
@media (max-width:860px){ .checkout-grid{ grid-template-columns:1fr; } }
.co-line { display:grid; grid-template-columns:1fr auto auto auto; gap:.8rem; align-items:center; padding:.9rem 0; border-top:1px solid var(--line-soft); }
.co-line__main { display:flex; align-items:center; gap:.8rem; }
.co-line__thumb { width:56px; height:56px; object-fit:cover; border-radius:3px; }
.co-line__each { display:block; font-family:var(--sans); font-size:.8rem; color:var(--muted); }
.co-line__total { font-family:var(--sans); font-weight:600; }
.co-totals { border-top:1px solid var(--line); margin-top:1rem; padding-top:1rem; font-family:var(--sans); }
.co-totals .row { display:flex; justify-content:space-between; padding:.3rem 0; }
.co-totals .row--total { font-size:1.15rem; font-weight:700; border-top:1px solid var(--line); margin-top:.4rem; padding-top:.7rem; }
.co-form { background:var(--paper); border:1px solid var(--line); border-radius:3px; padding:1.6rem; }
.co-form label { display:block; font-family:var(--sans); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin:.9rem 0 .3rem; }
.co-form input, .co-form textarea { width:100%; font-family:var(--sans); font-size:.95rem; padding:.75rem .9rem; border:1px solid var(--line); background:var(--bg); border-radius:2px; color:var(--ink); }
.checkout-note { color:var(--muted); font-style:italic; margin-bottom:1.4rem; }

/* ============================ INFO / HOURS / STEPS / SIGNUP ============================ */
.info-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4.5rem); }
@media (max-width:800px){ .info-grid{ grid-template-columns:1fr; } }
.info-block h3 { font-size:1.5rem; margin-bottom:.8rem; }
.hours-row { display:flex; justify-content:space-between; gap:1rem; padding:.5rem 0; border-bottom:1px solid var(--line-soft); font-size:1.04rem; }
.map-frame { width:100%; aspect-ratio:3/2; border:1px solid var(--line); border-radius:2px; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; text-align:center; }
.steps .num { font-family:var(--serif); font-size:2.4rem; color:var(--accent); line-height:1; }
.steps h4 { font-family:var(--sans); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; margin:.8rem 0 .4rem; }
@media (max-width:760px){ .steps{ grid-template-columns:1fr; gap:1.6rem; } }
.signup { max-width:640px; margin:0 auto; text-align:center; }
.signup form { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; margin-top:1.6rem; }
.signup input { font-family:var(--sans); font-size:.95rem; padding:.9rem 1rem; border:1px solid var(--line); background:var(--paper); border-radius:2px; color:var(--ink); }
.signup input[type="email"], .signup .full { grid-column:1/-1; }
@media (max-width:560px){ .signup form{ grid-template-columns:1fr; } }

/* ============================ FOOTER ============================ */
.site-footer { background:var(--ink); color:#E8E1D3; padding:clamp(3rem,6vw,5rem) 0 2.4rem; }
.footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:2.4rem; }
.site-footer h5 { font-family:var(--sans); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:#A89F8C; margin:0 0 1rem; }
.site-footer .fbrand { font-family:var(--serif); font-size:1.7rem; color:#fff; }
.site-footer a { color:#E8E1D3; } .site-footer a:hover { color:#fff; }
.footer-links { display:flex; flex-direction:column; gap:.6rem; font-family:var(--sans); font-size:.9rem; }
.footer-bottom { margin-top:2.6rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.14); display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-family:var(--sans); font-size:.76rem; color:#A89F8C; }
@media (max-width:760px){ .footer-grid{ grid-template-columns:1fr; gap:1.8rem; } }

.reveal { opacity:0; transform:translateY(18px); transition:opacity .8s ease,transform .8s ease; }
.reveal.is-in { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } .hero__slide,.slider__slide{ transition:none; } }
