/* ═══════════════════════════════════════════
   TOKENS
═══════════════════════════════════════════ */
:root{
  --p:#1f7a63; --p2:#165a48; --a:#2bbf9b;
  --accent-rgb:43,191,155;
  --cream:#f5f3ee; --warm:#ede9e1;
  --ink:#1a1916; --muted:#7a7570;
  --border:#e0dcd5; --card:#fff;
  --sh-sm:0 2px 8px rgba(0,0,0,.07),0 4px 16px rgba(0,0,0,.05);
  --sh-md:0 6px 20px rgba(0,0,0,.09),0 12px 36px rgba(0,0,0,.06);
  --sh-lg:0 12px 40px rgba(0,0,0,.13),0 24px 60px rgba(0,0,0,.08);
  --sh-g:0 8px 24px rgba(31,122,99,.3);
  --r:14px; --nav:64px;
  --ease:cubic-bezier(.4,0,.2,1);
  --spring:cubic-bezier(.34,1.56,.64,1);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{-webkit-tap-highlight-color:transparent;}
body{font-family:'DM Sans',sans-serif;background:var(--cream);color:var(--ink);overflow-x:hidden;-webkit-font-smoothing:antialiased;}
button{font-family:inherit;cursor:pointer;}
img{display:block;max-width:100%;}
.page{display:none;}
.page.on{display:block;animation:pgIn .35s var(--ease);}
@keyframes pgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ═══════════════════════════════════════════
   NAV
═══════════════════════════════════════════ */
/* Public website skeleton */
.site-skeleton{
  position:fixed;inset:0;z-index:5000;
  background:var(--cream);color:transparent;
  opacity:0;pointer-events:none;visibility:hidden;
  transition:opacity .34s var(--ease),visibility .34s var(--ease);
}
body.site-loading .site-skeleton{opacity:1;pointer-events:auto;visibility:visible;}
body.site-loading{overflow:hidden;}
.skel-line,.skel-pill{
  position:relative;overflow:hidden;background:#e6e1d8;border-radius:999px;
}
.skel-line::after,.skel-pill::after{
  content:'';position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.62),transparent);
  animation:skeletonSweep 1.35s ease-in-out infinite;
}
@keyframes skeletonSweep{to{transform:translateX(100%);}}
.site-skel-nav{
  height:var(--nav);display:flex;align-items:center;justify-content:space-between;
  padding:0 32px;background:rgba(245,243,238,.94);border-bottom:1px solid rgba(224,220,213,.65);
}
.skel-logo{width:118px;height:24px;}
.site-skel-actions{display:flex;gap:8px;align-items:center;}
.skel-pill{width:92px;height:38px;}
.skel-pill-primary{width:104px;background:#c7ddd4;}
.site-skel-hero{
  min-height:58vh;padding-top:var(--nav);
  background:linear-gradient(135deg,#d9e8e1 0%,#f2eee6 58%,#d7eee7 100%);
  display:flex;align-items:center;position:relative;overflow:hidden;
}
.site-skel-hero::after{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 78% 28%,rgba(43,191,155,.2),transparent 36%);
}
.site-skel-copy{position:relative;z-index:1;width:min(680px,calc(100% - 48px));margin-left:88px;}
.skel-chip{width:170px;height:28px;margin-bottom:18px;background:#d7e8df;}
.skel-title{width:min(560px,100%);height:66px;border-radius:18px;margin-bottom:12px;background:#d6d0c6;}
.skel-title-short{width:min(430px,82%);}
.skel-text{width:min(520px,96%);height:16px;margin-top:18px;background:#ded8ce;}
.skel-text-short{width:min(360px,70%);margin-top:10px;}
.site-skel-buttons{display:flex;gap:12px;margin-top:28px;}
.skel-cta{width:150px;background:#c7ddd4;}
@media(max-width:860px){
  .site-skel-nav{padding:0 16px;}
  .site-skel-actions .skel-pill:first-child{display:none;}
  .skel-pill{width:74px;height:36px;}
  .site-skel-hero{justify-content:center;text-align:center;}
  .site-skel-copy{margin:0;width:calc(100% - 48px);}
  .skel-chip,.skel-title,.skel-title-short,.skel-text,.skel-text-short{margin-left:auto;margin-right:auto;}
  .skel-title{height:48px;}
  .site-skel-buttons{justify-content:center;flex-wrap:wrap;}
}
@media(prefers-reduced-motion:reduce){
  .skel-line::after,.skel-pill::after{animation:none;}
}

nav{
  position:fixed;inset:0 0 auto;height:var(--nav);z-index:900;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 32px;
  background:rgba(245,243,238,.9);
  backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  border-bottom:1px solid rgba(224,220,213,.5);
  transition:transform .38s var(--ease),box-shadow .3s var(--ease);
}
nav.raised{box-shadow:var(--sh-md);}
nav.nav-hidden,
body.cart-open nav{transform:translateY(calc(-1 * var(--nav)));}
.nav-logo{
  font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:700;font-style:italic;
  color:var(--p);background:none;border:none;cursor:pointer;transition:opacity .2s;
  display:inline-flex;align-items:center;gap:8px;padding:0;
}
.nav-logo:hover{opacity:.72;}
.nav-logo-img{
  width:32px;height:32px;border-radius:50%;object-fit:contain;display:block;
  filter:drop-shadow(0 3px 6px rgba(31,122,99,.16));
}
.nav-r{display:flex;align-items:center;gap:8px;}

.nbtn{
  height:38px;padding:0 16px;
  display:inline-flex;align-items:center;gap:7px;
  border-radius:50px;font-size:13px;font-weight:600;
  border:1.5px solid var(--border);background:var(--card);color:var(--ink);
  transition:all .22s var(--ease);
}
.nbtn:hover{border-color:var(--p);color:var(--p);transform:translateY(-1px);box-shadow:var(--sh-sm);}
.nbtn:active{transform:scale(.96);}
.nbtn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;}

.nbtn-cart{background:var(--p);border-color:var(--p);color:#fff;box-shadow:var(--sh-g);}
.nbtn-cart:hover{background:var(--p2);border-color:var(--p2);color:#fff;box-shadow:0 8px 24px rgba(31,122,99,.38);}
.nbtn-graph{text-decoration:none;}
@media(max-width:620px){
  nav{padding:0 16px;}
  .nbtn{height:36px;padding:0 12px;}
  .nbtn-graph span,
  #nav-call-txt{display:none;}
}

.chip{
  background:rgba(255,255,255,.22);border-radius:50px;
  padding:1px 8px;font-size:11px;font-weight:700;min-width:20px;text-align:center;
}
.chip.pop{animation:chipPop .4s var(--spring);}
@keyframes chipPop{0%{transform:scale(1)}50%{transform:scale(1.5)}100%{transform:scale(1)}}

/* ═══════════════════════════════════════════
   HOME — HERO
   FIX: path is relative to THIS CSS file (css/base.css),
        so we go up one level with ../ to reach the root images/ folder.
        Wrong: url('images/restaurant-1.jpg')   → looks in css/images/
        Right: url('../images/restaurant-1.jpg') → looks in images/
═══════════════════════════════════════════ */
.hero{
  position:relative;
  min-height:48vh;padding-top:var(--nav);
  display:flex;align-items:center;
  background:url('../images/restaurant-1.jpg') center center / cover no-repeat;
}
.hero::after{
  content:'';position:absolute;inset:0;
  background:rgba(0,0,0,.42);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  pointer-events:none;
}
.hero-l .hero-h1,.hero-l .hero-sub,.hero-l .hero-eyebrow,.hero-l .stat-n,.hero-l .stat-l{
  text-shadow:0 1px 6px rgba(0,0,0,.5),0 2px 16px rgba(0,0,0,.3);
}

.hero-l{
  position:relative;z-index:1;
  display:flex;flex-direction:column;justify-content:center;
  padding:28px 80px 28px 88px;max-width:780px;
}
@media(max-width:1100px){.hero-l{padding:24px 52px;}}
@media(max-width:860px){.hero-l{padding:24px 24px 20px;align-items:center;text-align:center;max-width:100%;}}

.hero-l::before{
  content:'';position:absolute;top:-100px;left:-100px;
  width:480px;height:480px;
  background:radial-gradient(circle,rgba(43,191,155,.12) 0%,transparent 65%);
  border-radius:50%;pointer-events:none;
}

.hero-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(43,191,155,.1);border:1.5px solid rgba(43,191,155,.28);
  color:var(--p);padding:6px 14px;border-radius:50px;
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;
  width:fit-content;margin-bottom:16px;
  animation:fadeUp .6s var(--ease) .1s backwards;
}
.blink{width:7px;height:7px;background:var(--a);border-radius:50%;animation:blink 2s infinite;}
@keyframes blink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(1.4)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}

.hero-h1{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(44px,5.5vw,74px);font-weight:700;line-height:1.06;
  color:#fff;margin-bottom:12px;
  animation:fadeUp .6s var(--ease) .2s backwards;
}
.hero-h1 em{
  font-style:italic;
  background:linear-gradient(135deg,var(--p),var(--a));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.hero-sub{
  font-size:16px;color:rgba(255,255,255,.78);line-height:1.8;
  max-width:460px;margin-bottom:24px;
  animation:fadeUp .6s var(--ease) .3s backwards;
}
@media(max-width:860px){.hero-sub{max-width:100%;}}

.ctas{display:flex;gap:12px;flex-wrap:wrap;animation:fadeUp .6s var(--ease) .4s backwards;}
@media(max-width:860px){.ctas{justify-content:center;}}

.btn-p{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 30px;border-radius:50px;border:none;
  background:linear-gradient(135deg,var(--p),var(--a));
  color:#fff;font-size:14px;font-weight:700;
  box-shadow:var(--sh-g);
  transition:transform .22s var(--spring),box-shadow .22s var(--ease),filter .2s;
}
.btn-p:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 12px 32px rgba(31,122,99,.42);}
.btn-p:active{transform:scale(.97);filter:brightness(.94);}
.btn-p svg{width:15px;height:15px;stroke:#fff;fill:none;stroke-width:2.5;}

.btn-o{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 26px;border-radius:50px;
  border:1.5px solid var(--border);background:var(--card);
  color:var(--ink);font-size:14px;font-weight:600;
  transition:all .22s var(--spring);
}
.btn-o:hover{transform:translateY(-2px) scale(1.03);border-color:var(--p);box-shadow:var(--sh-sm);}

.hero-stats{
  display:flex;gap:40px;margin-top:18px;padding-top:16px;
  border-top:1px solid rgba(255,255,255,.2);flex-wrap:wrap;
  animation:fadeUp .6s var(--ease) .5s backwards;
}
@media(max-width:860px){.hero-stats{justify-content:center;gap:28px;}}
.stat-n{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:700;color:var(--a);}
.stat-l{font-size:10px;color:rgba(255,255,255,.6);margin-top:3px;text-transform:uppercase;letter-spacing:1.2px;font-weight:600;}

/* ═══════════════════════════════════════════
   GALLERY CAROUSEL
═══════════════════════════════════════════ */
.gal-sec{background:var(--warm);padding:90px 0;overflow:hidden;}
.sec-wrap{max-width:1280px;margin:0 auto;padding:0 48px;}
@media(max-width:640px){.sec-wrap{padding:0 20px;}}

.kicker{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:3px;color:var(--a);margin-bottom:10px;}
.sec-h2{font-family:'Cormorant Garamond',serif;font-size:clamp(28px,4vw,50px);font-weight:700;color:var(--ink);margin-bottom:44px;}
.sec-h2 span{background:linear-gradient(135deg,var(--p),var(--a));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

.car-track{position:relative;border-radius:20px;overflow:hidden;height:460px;box-shadow:var(--sh-lg);}
@media(max-width:768px){.car-track{height:260px;border-radius:14px;}}
.c-slide{position:absolute;inset:0;opacity:0;transition:opacity .9s var(--ease);}
.c-slide.on{opacity:1;}
.c-slide picture{display:block;width:100%;height:100%;}
.c-slide img{width:100%;height:100%;object-fit:cover;}
.c-cap{
  position:absolute;bottom:0;left:0;right:0;
  padding:60px 36px 28px;
  background:linear-gradient(transparent,rgba(0,0,0,.65));color:#fff;
}
.c-cap h3{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:700;}
.c-cap p{font-size:13px;opacity:.72;margin-top:3px;}

.car-nav{display:flex;align-items:center;gap:8px;margin-top:20px;}
.c-dot{height:4px;border-radius:2px;cursor:pointer;background:rgba(31,122,99,.18);transition:width .4s var(--ease),background .4s;width:20px;}
.c-dot.on{background:var(--p);width:44px;}
.c-arrows{display:flex;gap:8px;margin-left:auto;}
.c-arrow{
  width:42px;height:42px;border-radius:50%;border:1.5px solid var(--border);background:var(--card);
  color:var(--p);display:flex;align-items:center;justify-content:center;
  transition:all .2s var(--ease);
}
.c-arrow svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;}
.c-arrow:hover{background:var(--p);border-color:var(--p);color:#fff;transform:scale(1.06);}
.c-arrow:active{transform:scale(.94);}

/* ═══════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════ */
.footer{
  background:#0b1d15;
  color:rgba(255,255,255,.55);
  padding:64px 24px 0;
}
.footer-grid{
  max-width:1200px;margin:0 auto;
  display:flex;
  flex-direction:row;
  gap:48px;
  padding-bottom:52px;
  border-bottom:1px solid rgba(255,255,255,.08);
  flex-wrap:wrap;
}
.footer-grid > .footer-col:first-child{ flex:0 0 260px; }
.footer-contact-hours{
  display:flex;
  flex-direction:row;
  gap:40px;
  flex:1;
  min-width:0;
}
.footer-contact-hours .footer-col{ flex:1; min-width:0; }

.footer-logo{
  font-family:'Cormorant Garamond',serif;
  font-size:30px;font-style:italic;font-weight:700;
  color:var(--a);margin-bottom:12px;display:flex;align-items:center;gap:10px;
}
.footer-logo-img{
  width:44px;height:44px;border-radius:50%;object-fit:contain;display:block;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.24));
}
.footer-tagline{font-size:13px;color:rgba(255,255,255,.45);line-height:1.7;margin-bottom:20px;max-width:240px;}
.footer-socials{display:flex;gap:10px;}
.fsoc{
  width:36px;height:36px;border-radius:50%;
  border:1px solid rgba(255,255,255,.14);
  display:flex;align-items:center;justify-content:center;
  transition:all .2s;text-decoration:none;
}
.fsoc:hover{background:var(--p);border-color:var(--p);}
.fsoc svg{width:15px;height:15px;stroke:rgba(255,255,255,.6);fill:none;stroke-width:2;}
.fsoc:hover svg{stroke:#fff;}

.footer-col-title{
  font-size:9px;font-weight:700;text-transform:uppercase;
  letter-spacing:2.5px;color:rgba(255,255,255,.3);
  margin-bottom:18px;
}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:11px;}
.footer-col ul li a{
  font-size:13px;color:rgba(255,255,255,.55);text-decoration:none;
  transition:color .18s;display:flex;align-items:center;gap:8px;
}
.footer-col ul li a:hover{color:var(--a);}
.footer-col ul li a svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0;opacity:.6;}
.footer-links button{
  background:none;border:none;color:rgba(255,255,255,.55);
  font:inherit;font-size:13px;text-align:left;padding:0;cursor:pointer;
  transition:color .18s;
}
.footer-links button:hover{color:var(--a);}
.footer-legal-id{
  display:flex;justify-content:space-between;gap:12px;
  font-size:12px;margin-bottom:10px;color:rgba(255,255,255,.45);
}
.footer-legal-id strong{
  color:rgba(255,255,255,.72);font-family:'DM Mono',monospace;
  font-size:11px;font-weight:500;text-align:right;
}

.footer-contact-item{
  display:flex;gap:10px;margin-bottom:14px;align-items:flex-start;
}
.footer-contact-item svg{
  width:15px;height:15px;stroke:var(--a);fill:none;stroke-width:2;
  flex-shrink:0;margin-top:2px;
}
.footer-contact-item span{font-size:13px;color:rgba(255,255,255,.55);line-height:1.55;}

.footer-hours-row{display:flex;justify-content:space-between;font-size:13px;margin-bottom:9px;}
.footer-hours-row .day{color:rgba(255,255,255,.38);}
.footer-hours-row .time{color:rgba(255,255,255,.7);font-weight:500;}
.footer-hours-row.today .day{color:var(--a);}
.footer-hours-row.today .time{color:var(--a);}

.footer-bottom{
  max-width:1200px;margin:0 auto;
  padding:20px 0;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;
}
.footer-bottom-l{font-size:11px;color:rgba(255,255,255,.22);}
.footer-wa{
  display:inline-flex;align-items:center;gap:8px;
  background:#25d366;color:#fff;
  padding:9px 18px;border-radius:50px;
  font-size:12px;font-weight:700;text-decoration:none;
  transition:all .2s;box-shadow:0 4px 16px rgba(37,211,102,.3);
}
.footer-wa:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(37,211,102,.42);}
.footer-wa svg{width:15px;height:15px;fill:#fff;}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.location-sec {
  background: var(--warm);
  padding: 80px 0;
}

.legal-page{
  min-height:100vh;
  padding:calc(var(--nav) + 48px) 24px 72px;
  background:var(--cream);
}
.legal-wrap{max-width:980px;margin:0 auto;}
.legal-back{
  border:1.5px solid var(--border);background:var(--card);color:var(--ink);
  border-radius:999px;padding:10px 16px;font-size:13px;font-weight:700;
  margin-bottom:26px;
}
.legal-back:hover{border-color:var(--p);color:var(--p);}
.legal-head{
  padding-bottom:24px;margin-bottom:24px;
  border-bottom:1px solid var(--border);
}
.legal-head h2{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(34px,5vw,58px);line-height:1.02;color:var(--ink);
  margin-bottom:10px;
}
.legal-head p{color:var(--muted);font-size:15px;line-height:1.7;max-width:720px;}
.legal-info-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;
  margin-bottom:24px;
}
.legal-info-grid div{
  background:var(--card);border:1px solid var(--border);border-radius:8px;
  padding:16px;box-shadow:var(--sh-sm);
}
.legal-info-grid span{
  display:block;color:var(--muted);font-size:10px;font-weight:800;
  text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;
}
.legal-info-grid strong{display:block;color:var(--ink);font-size:14px;line-height:1.4;overflow-wrap:anywhere;}
.legal-section{
  background:var(--card);border:1px solid var(--border);border-radius:8px;
  padding:26px;margin-bottom:16px;box-shadow:var(--sh-sm);
  scroll-margin-top:calc(var(--nav) + 16px);
}
.legal-section h3{
  font-family:'Cormorant Garamond',serif;font-size:30px;line-height:1.1;
  color:var(--p);margin-bottom:12px;
}
.legal-section h4{
  color:var(--ink);font-size:14px;font-weight:800;margin:18px 0 8px;
}
.legal-section p,.legal-section li{
  color:var(--muted);font-size:14px;line-height:1.75;
}
.legal-section ul{padding-left:20px;margin-top:10px;}
.legal-contact{
  background:#0b1d15;color:rgba(255,255,255,.72);
  border-radius:8px;padding:18px 20px;font-size:14px;line-height:1.7;
}
.legal-contact a{color:var(--a);font-weight:800;text-decoration:none;}

@media (max-width: 820px) {
  .legal-info-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width: 560px) {
  .legal-page{padding-left:16px;padding-right:16px;}
  .legal-info-grid{grid-template-columns:1fr;}
  .legal-section{padding:20px;}
}

@media (max-width: 768px) {
  .location-sec .sec-wrap > div {
    flex-direction: column;
  }
  .location-sec iframe {
    height: 260px;
  }
   }
