/* =====================================================================
   Anandan Vaasavi — Restaurant & Catering
   Shared stylesheet (home + booking app)
   ===================================================================== */

/* Self-hosted fonts (Google Fonts, OFL licence) — no third-party request */
@font-face{font-family:'Marcellus';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/marcellus.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+20B9,U+FEFF,U+FFFD;}
@font-face{font-family:'Albert Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/albert-sans.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+20B9,U+FEFF,U+FFFD;}

:root{
  --maroon:#5C1120;
  --maroon-deep:#3E0A15;
  --maroon-black:#2A060E;
  --brass:#A9812E;
  --brass-soft:#C9A75B;
  --brass-bright:#E3C77E;
  --cream:#FAF7F0;
  --cream-2:#F3EDDF;
  --paper:#FFFFFF;
  --ink:#211714;
  --ink-soft:#6B5A52;
  --ink-mute:#7D6E66;
  --brass-text:#7E5E1C;   /* brass for small text on light backgrounds (AA contrast) */
  --green:#1F7A4D;
  --green-soft:#E6F4EC;
  --wa:#25D366;
  --line:rgba(33,23,20,0.12);
  --line-light:rgba(250,247,240,0.16);
  --shadow:0 10px 30px rgba(42,6,14,0.10);
  --shadow-lg:0 24px 60px rgba(42,6,14,0.18);
  --ease:cubic-bezier(.22,1,.36,1);
  --t:.35s var(--ease);
  --font-head:'Marcellus', Georgia, serif;
  --font-body:'Albert Sans', system-ui, -apple-system, Segoe UI, sans-serif;
  /* Subtle kolam pattern used on header, footer and dark bands */
  --pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23E3C77E' stroke-opacity='.12' stroke-width='1'%3E%3Ccircle cx='28' cy='28' r='10'/%3E%3Ccircle cx='28' cy='28' r='3'/%3E%3Cpath d='M28 4v8M28 44v8M4 28h8M44 28h8M11 11l5 5M40 40l5 5M45 11l-5 5M16 40l-5 5'/%3E%3C/g%3E%3C/svg%3E");
}

*{box-sizing:border-box;margin:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  background:var(--cream);color:var(--ink);
  font-family:var(--font-body);line-height:1.65;font-size:16px;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg,video{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;transition:color .25s,opacity .25s;}
button{font-family:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;font-size:1rem;}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:400;color:var(--ink);letter-spacing:.01em;line-height:1.15;}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
section{padding:96px 0;position:relative;}
::selection{background:var(--brass);color:#fff;}
:focus-visible{outline:3px solid var(--brass);outline-offset:3px;border-radius:4px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* utilities (no inline styles — CSP friendly) */
.mt-16{margin-top:16px;}.mt-24{margin-top:24px;}
.mb-4{margin-bottom:4px;}.mb-8{margin-bottom:8px;}.mb-12{margin-bottom:12px;}.mb-16{margin-bottom:16px;}.mb-18{margin-bottom:18px;}
.text-soft{color:var(--ink-soft);}.text-mute{color:var(--ink-mute);}.text-center{text-align:center;}
.small{font-size:.82rem;}.link{color:var(--maroon);font-weight:600;}
.h2{font-size:clamp(1.9rem,3.6vw,2.7rem);}
.h3-sm{font-size:1rem;margin-bottom:12px;}.h3-md{font-size:1.05rem;margin:30px 0 4px;}
.row{display:flex;gap:12px;flex-wrap:wrap;}.row-between{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
.row-8{display:flex;gap:8px;}.row-10{display:flex;align-items:center;gap:10px;}
.accent{color:var(--maroon);font-style:normal;}
.light-note{font-size:.8rem;color:rgba(250,247,240,.55);margin-top:16px;}

.eyebrow{
  font-size:.72rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;
  color:var(--brass-text);display:inline-flex;align-items:center;gap:10px;margin-bottom:14px;
}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--brass);transition:width var(--t);}
.reveal.is-visible .eyebrow::before,.section-head:hover .eyebrow::before{width:38px;}
.section-head{max-width:640px;margin-bottom:48px;}
.section-head h2{font-size:clamp(1.9rem,3.6vw,2.7rem);margin-bottom:14px;}
.section-head p{color:var(--ink-soft);font-size:1.05rem;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head.center .eyebrow::before{display:none;}
.section-head.light .eyebrow,.hero .eyebrow,.booking-hero .eyebrow{color:var(--brass);}
.section-head.light h2{color:var(--cream);}
.section-head.light p{color:rgba(250,247,240,.72);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:14px 26px;border-radius:999px;font-weight:600;font-size:.95rem;
  border:1.5px solid transparent;position:relative;overflow:hidden;
  transition:transform var(--t),box-shadow var(--t),background .3s,color .3s,border-color .3s;
  white-space:nowrap;line-height:1.2;
}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.25) 50%,transparent 70%);transform:translateX(-120%);transition:transform .6s var(--ease);}
.btn:hover::after{transform:translateX(120%);}
.btn svg{width:18px;height:18px;flex:none;transition:transform var(--t);}
.btn:hover{transform:translateY(-2px);}
.btn:hover svg{transform:translateX(3px);}
.btn:active{transform:translateY(0);}
.btn-primary{background:var(--maroon);color:#fff;box-shadow:0 10px 24px rgba(92,17,32,.25);}
.btn-primary:hover{background:var(--maroon-deep);box-shadow:0 14px 30px rgba(92,17,32,.35);}
.btn-brass{background:linear-gradient(135deg,var(--brass),#8f6c23);color:#fff;box-shadow:0 10px 24px rgba(169,129,46,.28);}
.btn-brass:hover{box-shadow:0 14px 32px rgba(169,129,46,.4);}
.btn-outline{border-color:var(--line);color:var(--ink);background:transparent;}
.btn-outline:hover{border-color:var(--maroon);color:var(--maroon);}
.btn-outline-light{border-color:rgba(250,247,240,.35);color:var(--cream);background:transparent;}
.btn-outline-light:hover{border-color:var(--cream);background:rgba(250,247,240,.08);}
.btn-wa{background:linear-gradient(135deg,#2ee07a,#1fb659);color:#fff;box-shadow:0 10px 24px rgba(37,211,102,.3);}
.btn-wa:hover{box-shadow:0 14px 32px rgba(37,211,102,.45);}
.btn-lg{padding:17px 32px;font-size:1.02rem;}
.btn-sm{padding:10px 18px;font-size:.85rem;}
.btn-block{width:100%;}
.btn[disabled],.btn.disabled{opacity:.5;pointer-events:none;}

/* ---------- Header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;padding:16px 0;
  transition:background .45s,box-shadow .45s,padding .45s,border-color .45s;
  border-bottom:1px solid transparent;
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;}
.site-header.compact,.site-header.solid{
  background:linear-gradient(90deg,rgba(42,6,14,.96) 0%,rgba(92,17,32,.94) 55%,rgba(62,10,21,.96) 100%);
  box-shadow:0 8px 30px rgba(0,0,0,.28);padding:9px 0;border-bottom-color:rgba(227,199,126,.22);
}
.site-header.compact::before,.site-header.solid::before{
  content:"";position:absolute;inset:0;background-image:var(--pattern);opacity:.5;pointer-events:none;
}
.brand{display:flex;align-items:center;gap:12px;color:var(--cream);}
.brand-mark{
  width:44px;height:44px;border-radius:12px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--brass),var(--brass-bright));color:var(--maroon-black);
  font-family:var(--font-head);font-size:1.25rem;letter-spacing:-.02em;flex:none;
  box-shadow:0 6px 16px rgba(0,0,0,.25);transition:transform var(--t),box-shadow var(--t);
}
.brand:hover .brand-mark{transform:rotate(-6deg) scale(1.05);box-shadow:0 10px 22px rgba(0,0,0,.35);}
.brand-name{font-family:var(--font-head);font-size:1.15rem;line-height:1.1;}
.brand-name small{display:block;font-family:var(--font-body);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brass-soft);margin-top:3px;}
.nav{display:flex;align-items:center;gap:4px;}
.nav a{
  color:rgba(250,247,240,.85);font-size:.9rem;font-weight:500;padding:8px 14px;border-radius:999px;position:relative;
  transition:color .25s,background .25s;
}
.nav a:not(.btn)::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:1.5px;background:var(--brass-bright);transform:scaleX(0);transform-origin:left;transition:transform var(--t);}
.nav a:not(.btn):hover::after,.nav a.active::after{transform:scaleX(1);}
.nav a:hover,.nav a.active{color:#fff;}
.nav .btn{margin-left:10px;color:#fff;}
.nav-toggle{
  display:none;background:transparent;border:1.5px solid rgba(250,247,240,.3);color:var(--cream);
  border-radius:10px;width:44px;height:44px;place-items:center;transition:background .25s,border-color .25s;
}
.nav-toggle:hover{background:rgba(250,247,240,.1);border-color:var(--brass-bright);}
.nav-toggle svg{width:22px;height:22px;}
.progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--brass),var(--brass-bright));z-index:101;width:0;}

.mobile-menu{
  position:fixed;inset:0;z-index:99;background:linear-gradient(160deg,var(--maroon-black),var(--maroon-deep));
  display:flex;flex-direction:column;justify-content:center;padding:100px 32px 40px;gap:8px;
  transform:translateY(-100%);visibility:hidden;transition:transform .5s var(--ease),visibility 0s .5s;
}
.mobile-menu::before{content:"";position:absolute;inset:0;background-image:var(--pattern);opacity:.6;pointer-events:none;}
.mobile-menu.open{transform:translateY(0);visibility:visible;transition:transform .5s var(--ease),visibility 0s;}
.mobile-menu a{color:var(--cream);font-family:var(--font-head);font-size:1.8rem;padding:10px 0;border-bottom:1px solid var(--line-light);position:relative;transition:padding-left .3s,color .3s;}
.mobile-menu a:not(.btn):hover{padding-left:10px;color:var(--brass-bright);}
.mobile-menu .btn{font-family:var(--font-body);font-size:1rem;margin-top:20px;border:none;justify-content:center;}

/* ---------- Hero (stock image) ---------- */
.hero{
  min-height:100svh;display:flex;align-items:center;padding:140px 0 90px;
  background:var(--maroon-black);color:var(--cream);overflow:hidden;isolation:isolate;
}
.hero-media{position:absolute;inset:0;z-index:-2;}
.hero-media picture,.hero-media img{width:100%;height:100%;}
.hero-media img{object-fit:cover;object-position:center;}
.hero-shade{
  position:absolute;inset:0;z-index:-1;
  background:linear-gradient(to bottom,rgba(42,6,14,.72),transparent 26%),
             linear-gradient(100deg,rgba(42,6,14,.88) 0%,rgba(62,10,21,.66) 38%,rgba(42,6,14,.3) 62%,rgba(42,6,14,.12) 100%),
             linear-gradient(to top,rgba(42,6,14,.85),transparent 45%);
}
.hero-shade::after{content:"";position:absolute;inset:0;background-image:var(--pattern);opacity:.18;mask-image:linear-gradient(to right,#000,transparent 60%);-webkit-mask-image:linear-gradient(to right,#000,transparent 60%);}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;position:relative;}
.hero .wrap>*{min-width:0;}
.hero-kolam{
  position:absolute;right:-6%;top:50%;transform:translateY(-50%);width:min(60vw,720px);opacity:.10;pointer-events:none;color:var(--brass-bright);z-index:-1;
}
.hero-tag{
  display:inline-flex;align-items:center;gap:10px;padding:8px 16px;border-radius:999px;
  border:1px solid rgba(227,199,126,.35);background:rgba(227,199,126,.1);font-size:.78rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--brass-bright);margin-bottom:26px;
}
.hero-tag i{width:7px;height:7px;border-radius:50%;background:var(--wa);box-shadow:0 0 0 4px rgba(37,211,102,.25);}
@keyframes blink{50%{box-shadow:0 0 0 7px rgba(37,211,102,0);}}
.hero h1{font-size:clamp(2.5rem,5.6vw,4.4rem);color:var(--cream);line-height:1.03;margin-bottom:20px;text-shadow:0 2px 6px rgba(0,0,0,.45),0 6px 30px rgba(0,0,0,.5);}
.hero h1 em{font-style:normal;color:var(--brass-bright);}
.hero-sub{font-size:1.1rem;color:rgba(250,247,240,.9);max-width:520px;margin-bottom:34px;text-shadow:0 1px 4px rgba(0,0,0,.5);}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:44px;}
.hero-stats{display:flex;gap:36px;flex-wrap:wrap;}
.hero-stats div{border-left:1px solid rgba(227,199,126,.35);padding-left:16px;transition:transform var(--t);}
.hero-stats div:hover{transform:translateY(-3px);}
.hero-stats b{display:block;font-family:var(--font-head);font-size:2rem;font-weight:400;color:var(--brass-bright);line-height:1;font-variant-numeric:tabular-nums;}
.hero-stats span{font-size:.82rem;color:rgba(250,247,240,.7);}
.hero-scroll{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);color:rgba(250,247,240,.6);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:8px;}
.hero-scroll i{width:1px;height:38px;background:linear-gradient(to bottom,var(--brass-bright),transparent);animation:drop 1.8s infinite;}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top;}50%{transform:scaleY(1);transform-origin:top;}51%{transform-origin:bottom;}100%{transform:scaleY(0);transform-origin:bottom;}}

/* Glass enquiry card */
.hero-card{
  position:relative;border-radius:26px;padding:2px;
  background:linear-gradient(140deg,rgba(227,199,126,.9),rgba(169,129,46,.35) 40%,rgba(227,199,126,.15) 70%,rgba(227,199,126,.7));
  box-shadow:var(--shadow-lg),0 0 80px rgba(169,129,46,.15);transition:transform var(--t),box-shadow var(--t);
}
.hero-card:hover{transform:translateY(-4px);box-shadow:0 34px 80px rgba(42,6,14,.4),0 0 100px rgba(169,129,46,.22);}
.hero-card-inner{
  border-radius:24px;padding:30px 28px 24px;
  background:linear-gradient(160deg,rgba(62,10,21,.9),rgba(42,6,14,.95));
  color:var(--cream);position:relative;overflow:hidden;
}
.hero-card-inner::before{content:"";position:absolute;inset:0;background-image:var(--pattern);opacity:.35;pointer-events:none;}
.hero-card-inner > *{position:relative;}
.hero-card-head{display:flex;align-items:center;gap:14px;margin-bottom:8px;}
.hero-card-head .ico{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,var(--brass),var(--brass-bright));color:var(--maroon-black);display:grid;place-items:center;flex:none;}
.hero-card-head .ico svg{width:24px;height:24px;}
.hero-card h2{font-size:1.4rem;color:var(--cream);margin:0;}
.hero-card p.lead{color:rgba(250,247,240,.7);font-size:.9rem;margin-bottom:20px;}
.hero-card .field label{color:var(--brass-soft);}
.hero-card .field input,.hero-card .field select{
  background:rgba(250,247,240,.07);border-color:rgba(250,247,240,.16);color:var(--cream);
}
.hero-card .field input::placeholder{color:rgba(250,247,240,.4);}
.hero-card .field select{
  appearance:none;-webkit-appearance:none;padding-right:38px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C9A75B' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:16px;
}
.hero-card .field select option{color:var(--ink);background:#fff;}
.hero-card .field input:focus,.hero-card .field select:focus{border-color:var(--brass-bright);box-shadow:0 0 0 4px rgba(227,199,126,.18);background:rgba(250,247,240,.1);}
.hero-card .field input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.7;}
.field-ico{position:relative;}
.field-ico svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--brass-soft);pointer-events:none;}
.field .field-ico input,.field .field-ico select{padding-left:42px;}
.seg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;background:rgba(250,247,240,.07);padding:5px;border-radius:12px;border:1px solid rgba(250,247,240,.14);}
.seg label{position:relative;}
.seg input{position:absolute;opacity:0;inset:0;cursor:pointer;}
.seg span{display:block;text-align:center;font-size:.82rem;font-weight:600;padding:9px 4px;border-radius:9px;color:rgba(250,247,240,.75);transition:background .25s,color .25s,transform .25s;}
.seg input:checked + span{background:linear-gradient(135deg,var(--brass),var(--brass-bright));color:var(--maroon-black);}
.seg input:focus-visible + span{outline:2px solid var(--brass-bright);}
.seg label:hover span{transform:translateY(-1px);}
.hero-card .note{font-size:.78rem;color:rgba(250,247,240,.55);text-align:center;margin-top:12px;}
.hero-card .note a{color:var(--brass-bright);font-weight:600;display:inline-block;padding:5px 0;}
.hero-card .trust-line{display:flex;justify-content:center;gap:16px;margin-top:14px;font-size:.72rem;color:rgba(250,247,240,.55);flex-wrap:wrap;}
.hero-card .trust-line span{display:inline-flex;align-items:center;gap:5px;}
.hero-card .trust-line svg{width:13px;height:13px;color:var(--wa);}

.field{margin-bottom:14px;}
.field label{display:block;font-size:.74rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:7px;}
.field input,.field select,.field textarea{
  width:100%;padding:13px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--cream);
  color:var(--ink);transition:border-color .25s,box-shadow .25s,background .25s;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 4px rgba(169,129,46,.15);}
.field textarea{min-height:90px;resize:vertical;}
.field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;}
.field-row>*,.field-ico{min-width:0;}
.hero-card .field input,.hero-card .field select{max-width:100%;}

/* ---------- Marquee ---------- */
.marquee{background:linear-gradient(90deg,#8f6c23,var(--brass) 30%,var(--brass-soft) 60%,var(--brass));color:var(--maroon-black);overflow:hidden;padding:15px 0;border-top:1px solid rgba(0,0,0,.08);position:relative;}
.marquee::before,.marquee::after{content:"";position:absolute;top:0;bottom:0;width:80px;z-index:1;pointer-events:none;}
.marquee::before{left:0;background:linear-gradient(to right,#8f6c23,transparent);}
.marquee::after{right:0;background:linear-gradient(to left,var(--brass),transparent);}
.marquee-track{display:flex;gap:48px;white-space:nowrap;animation:marquee 110s linear infinite;font-family:var(--font-head);font-size:1.05rem;width:max-content;}
.marquee:hover .marquee-track{animation-play-state:paused;}
.marquee-track span{display:inline-flex;align-items:center;gap:48px;}
.marquee-track span::after{content:"✦";font-size:.7rem;opacity:.6;}
@keyframes marquee{to{transform:translateX(-50%);}}

/* ---------- Trust strip ---------- */
.trust{padding:36px 0 0;background:var(--cream);}
.trust-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:20px;
  background:var(--paper);position:relative;z-index:2;overflow:hidden;box-shadow:var(--shadow);
}
.trust-item{padding:26px 24px;display:flex;gap:16px;align-items:flex-start;border-right:1px solid var(--line);transition:background .3s;}
.trust-item:hover{background:var(--cream);}
.trust-item:last-child{border-right:0;}
.trust-item .ico{width:44px;height:44px;border-radius:12px;background:var(--cream-2);color:var(--maroon);display:grid;place-items:center;flex:none;transition:transform var(--t),background .3s,color .3s;}
.trust-item:hover .ico{transform:rotate(-8deg) scale(1.08);background:var(--maroon);color:#fff;}
.trust-item .ico svg{width:22px;height:22px;}
.trust-item b{display:block;font-size:.98rem;margin-bottom:2px;}
.trust-item span{font-size:.85rem;color:var(--ink-soft);}

/* ---------- Photos ---------- */
.photo{border-radius:20px;overflow:hidden;background:var(--maroon-deep);position:relative;aspect-ratio:4/5;}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .6s;}
.photo:hover img{transform:scale(1.06);}
.photo::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(227,199,126,.25);border-radius:inherit;pointer-events:none;}

/* ---------- About ---------- */
.about .wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.about-visual{position:relative;}
.about-visual::before{content:"";position:absolute;inset:-18px 18px 18px -18px;border:1px solid rgba(169,129,46,.35);border-radius:24px;z-index:0;transition:inset var(--t);}
.about-visual:hover::before{inset:-24px 24px 24px -24px;}
.about-visual .photo{z-index:1;}
.about-badge{
  position:absolute;bottom:-22px;right:-22px;background:var(--paper);border-radius:18px;padding:18px 22px;z-index:2;
  box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:14px;border:1px solid var(--line);transition:transform var(--t);
}
.about-badge:hover{transform:translateY(-4px) rotate(-1deg);}
.about-badge b{font-family:var(--font-head);font-size:2.2rem;font-weight:400;color:var(--maroon);line-height:1;}
.about-badge b sup{font-size:1rem;}
.about-badge span{font-size:.82rem;color:var(--ink-soft);line-height:1.3;}
.about-body p{color:var(--ink-soft);margin-bottom:18px;font-size:1.04rem;}
.about-points{list-style:none;padding:0;margin:26px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.about-points li{display:flex;gap:10px;align-items:flex-start;font-size:.95rem;transition:transform var(--t);}
.about-points li:hover{transform:translateX(4px);}
.about-points li svg{width:20px;height:20px;color:var(--green);flex:none;margin-top:2px;}

/* ---------- Menu ---------- */
.menu{background:var(--paper);}
.menu-tabs{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:4px 2px 8px;margin-bottom:24px;scroll-snap-type:x proximity;}
.menu-tabs::-webkit-scrollbar{display:none;}
.menu-tab{flex:none;white-space:nowrap;scroll-snap-align:start;}
.menu-tab{
  padding:10px 20px;border-radius:999px;border:1.5px solid var(--line);background:transparent;font-weight:600;font-size:.9rem;color:var(--ink-soft);
  transition:all .3s var(--ease);
}
.menu-tab.active,.menu-tab:hover{background:var(--maroon);color:#fff;border-color:var(--maroon);transform:translateY(-2px);box-shadow:0 8px 18px rgba(92,17,32,.2);}
.menu-panel{display:none;}
.menu-panel.active{display:block;animation:fade .5s var(--ease);}
.menu-banner{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:16/6;margin-bottom:22px;background:var(--maroon-deep);}
.menu-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease);}
.menu-banner:hover img{transform:scale(1.05);}
.menu-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,rgba(42,6,14,.8),rgba(42,6,14,.1) 60%);}
.menu-banner .cap{position:absolute;left:28px;bottom:24px;z-index:1;color:var(--cream);}
.menu-banner .cap h3{color:var(--cream);font-size:1.6rem;margin-bottom:4px;}
.menu-banner .cap p{font-size:.9rem;color:rgba(250,247,240,.8);max-width:420px;}
.dish-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@keyframes fade{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.dish{
  border:1px solid var(--line);border-radius:16px;padding:22px;background:var(--cream);position:relative;overflow:hidden;
  transition:transform var(--t),box-shadow var(--t),border-color .3s;
}
.dish::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brass);transform:scaleY(0);transition:transform var(--t);transform-origin:bottom;}
.dish:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:rgba(169,129,46,.4);}
.dish:hover::before{transform:scaleY(1);}
.dish .num{font-family:var(--font-head);color:var(--brass-text);font-size:.85rem;letter-spacing:.1em;margin-bottom:10px;}
.dish h4{font-size:1.15rem;margin-bottom:6px;}
.dish p{color:var(--ink-soft);font-size:.92rem;}
.dish .tag{position:absolute;top:18px;right:18px;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--maroon);background:rgba(92,17,32,.08);padding:4px 9px;border-radius:999px;}
.menu-foot{margin-top:30px;color:var(--ink-soft);font-size:.92rem;display:flex;gap:16px;align-items:center;flex-wrap:wrap;}

/* ---------- Services ---------- */
.services{background:linear-gradient(160deg,var(--maroon-black),var(--maroon-deep) 60%,#4a0d1a);color:var(--cream);}
.services::before{content:"";position:absolute;inset:0;background-image:var(--pattern);opacity:.35;pointer-events:none;mask-image:radial-gradient(circle at 50% 0,#000,transparent 70%);-webkit-mask-image:radial-gradient(circle at 50% 0,#000,transparent 70%);}
.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;position:relative;}
.service{
  border:1px solid var(--line-light);border-radius:22px;overflow:hidden;background:rgba(250,247,240,.04);
  transition:transform .45s var(--ease),background .3s,border-color .3s,box-shadow .45s var(--ease);display:flex;flex-direction:column;
}
.service:hover{background:rgba(250,247,240,.07);border-color:rgba(227,199,126,.45);transform:translateY(-8px);box-shadow:0 30px 60px rgba(0,0,0,.35);}
.service-img{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--maroon-deep);}
.service-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);}
.service:hover .service-img img{transform:scale(1.08);}
.service-img::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(42,6,14,.85),transparent 55%);}
.service-img .ico{position:absolute;left:22px;bottom:-24px;z-index:1;width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,var(--brass),var(--brass-bright));color:var(--maroon-black);display:grid;place-items:center;box-shadow:0 10px 24px rgba(0,0,0,.35);transition:transform var(--t);}
.service:hover .service-img .ico{transform:rotate(-8deg) scale(1.08);}
.service-img .ico svg{width:26px;height:26px;}
.service-body{padding:38px 26px 24px;display:flex;flex-direction:column;flex:1;}
.service h3{color:var(--cream);font-size:1.35rem;margin-bottom:8px;}
.service p{color:rgba(250,247,240,.72);font-size:.94rem;margin-bottom:18px;flex:1;}
.service .meta{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line-light);padding-top:16px;font-size:.85rem;}
.service .meta b{color:var(--brass-bright);font-family:var(--font-head);font-size:1.15rem;font-weight:400;}
.service .meta span{color:rgba(250,247,240,.6);}
.service .meta a{color:var(--brass-bright);font-weight:600;display:inline-flex;align-items:center;gap:6px;min-height:24px;}
.service .meta a svg{width:16px;height:16px;transition:transform .3s;}
.service .meta a:hover svg{transform:translateX(4px);}
.event-types{display:flex;flex-wrap:wrap;gap:10px;margin-top:44px;justify-content:center;}
.event-types span{padding:8px 16px;border:1px solid var(--line-light);border-radius:999px;font-size:.85rem;color:rgba(250,247,240,.8);transition:all .3s;cursor:default;}
.event-types span:hover{border-color:var(--brass-bright);color:var(--brass-bright);transform:translateY(-2px);background:rgba(227,199,126,.08);}

/* ---------- How it works ---------- */
.how{background:var(--cream-2);}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:step;}
.step{background:var(--paper);border-radius:20px;padding:28px 24px;border:1px solid var(--line);position:relative;transition:transform var(--t),box-shadow var(--t),border-color .3s;overflow:hidden;}
.step::after{content:"";position:absolute;right:-30px;top:-30px;width:90px;height:90px;border-radius:50%;background:rgba(169,129,46,.08);transition:transform var(--t);}
.step:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:rgba(169,129,46,.4);}
.step:hover::after{transform:scale(1.6);}
.step::before{
  counter-increment:step;content:"0" counter(step);font-family:var(--font-head);font-size:2.6rem;color:var(--brass);opacity:.4;line-height:1;display:block;margin-bottom:16px;transition:opacity .3s;
}
.step:hover::before{opacity:1;}
.step h3{font-size:1.2rem;margin-bottom:8px;}
.step p{color:var(--ink-soft);font-size:.92rem;}
.how-cta{text-align:center;margin-top:40px;}

/* ---------- Gallery ---------- */
.gallery{background:var(--paper);}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.gallery-grid .photo{aspect-ratio:1;border-radius:16px;}
.gallery-grid .photo.wide{grid-column:span 2;aspect-ratio:2/1;}
.gallery-grid .photo figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:34px 16px 14px;color:var(--cream);font-size:.85rem;font-weight:500;z-index:1;
  background:linear-gradient(to top,rgba(42,6,14,.85),transparent);transform:translateY(10px);opacity:0;transition:transform var(--t),opacity var(--t);
}
.gallery-grid .photo:hover figcaption{transform:none;opacity:1;}

/* ---------- Reviews ---------- */
.reviews{background:var(--cream);}
.review-cta{display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:32px;transition:transform var(--t),box-shadow var(--t);}
.review-cta:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.review-cta h3{font-size:1.35rem;margin-bottom:10px;}
.review-cta p{color:var(--ink-soft);font-size:1rem;}
.review-cta-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;}

/* ---------- FAQ ---------- */
.faq{background:var(--paper);}
.faq-list{max-width:860px;margin:0 auto;}
.faq-item{border:1px solid var(--line);border-radius:16px;background:var(--cream);margin-bottom:12px;overflow:hidden;transition:border-color .3s,box-shadow var(--t);}
.faq-item[open]{border-color:rgba(169,129,46,.5);box-shadow:var(--shadow);}
.faq-item summary{list-style:none;cursor:pointer;padding:18px 22px;font-weight:600;font-size:1.02rem;display:flex;justify-content:space-between;align-items:center;gap:16px;transition:color .25s;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary:hover{color:var(--maroon);}
.faq-item summary i{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;font-style:normal;flex:none;transition:transform var(--t),background .3s,color .3s,border-color .3s;}
.faq-item[open] summary i{transform:rotate(45deg);background:var(--maroon);color:#fff;border-color:var(--maroon);}
.faq-item .faq-body{padding:0 22px 20px;color:var(--ink-soft);font-size:.96rem;animation:fade .4s var(--ease);}

/* ---------- Visit ---------- */
.visit .wrap{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.info-list{display:grid;gap:14px;margin:28px 0;}
.info-list a,.booking-hero .mini a{display:inline-block;padding:4px 0;}
.info{display:flex;gap:16px;align-items:flex-start;padding:18px;border-radius:16px;background:var(--paper);border:1px solid var(--line);transition:transform var(--t),box-shadow var(--t),border-color .3s;}
.info:hover{transform:translateX(6px);box-shadow:var(--shadow);border-color:rgba(169,129,46,.4);}
.info .ico{width:42px;height:42px;border-radius:12px;background:var(--cream-2);color:var(--maroon);display:grid;place-items:center;flex:none;transition:background .3s,color .3s;}
.info:hover .ico{background:var(--maroon);color:#fff;}
.info .ico svg{width:20px;height:20px;}
.info b{display:block;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brass-text);margin-bottom:4px;}
.info span{font-size:.97rem;}
.hours-card{background:linear-gradient(160deg,var(--maroon-black),var(--maroon-deep));color:var(--cream);border-radius:22px;padding:32px;box-shadow:var(--shadow-lg);position:relative;overflow:hidden;}
.hours-card::before{content:"";position:absolute;inset:0;background-image:var(--pattern);opacity:.4;pointer-events:none;}
.hours-card > *{position:relative;}
.hours-card h3{color:var(--cream);font-size:1.5rem;margin-bottom:6px;}
.open-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:rgba(250,247,240,.08);font-size:.82rem;margin-bottom:22px;}
.open-pill i{width:8px;height:8px;border-radius:50%;background:var(--wa);animation:blink 2s infinite;}
.open-pill.closed i{background:#d9534f;animation:none;}
.hours-row{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line-light);font-size:.98rem;transition:padding-left .3s;}
.hours-row:hover{padding-left:6px;}
.hours-row:last-of-type{border-bottom:0;}
.hours-row span{color:rgba(250,247,240,.7);}
.hours-row.now{color:var(--brass-bright);}
.hours-row.now span{color:var(--brass-bright);}
.hours-row.now span::after{content:" · now";font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;}
.map{border-radius:20px;overflow:hidden;border:1px solid var(--line);margin-top:24px;aspect-ratio:16/9;background:var(--cream-2);transition:box-shadow var(--t);}
.map:hover{box-shadow:var(--shadow);}
.map iframe{width:100%;height:100%;border:0;display:block;}

/* ---------- CTA band ---------- */
.cta-band{position:relative;color:var(--cream);padding:110px 0;text-align:center;overflow:hidden;background:var(--maroon-deep);isolation:isolate;}
.cta-band .bg{position:absolute;inset:0;z-index:-2;}
.cta-band .bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.05);transition:transform 6s ease;}
.cta-band:hover .bg img{transform:scale(1);}
.cta-band::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,rgba(42,6,14,.92),rgba(92,17,32,.78));}
.cta-band h2{color:var(--cream);font-size:clamp(1.9rem,3.8vw,2.8rem);margin-bottom:12px;}
.cta-band p{color:rgba(250,247,240,.8);max-width:560px;margin:0 auto 28px;}
.cta-band .actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

/* ---------- Footer ---------- */
.site-footer{
  position:relative;color:rgba(250,247,240,.72);padding:72px 0 28px;font-size:.92rem;overflow:hidden;
  background:linear-gradient(160deg,#1e040a 0%,var(--maroon-black) 40%,#4a0d1a 100%);
}
.site-footer::before{content:"";position:absolute;inset:0;background-image:var(--pattern);opacity:.45;pointer-events:none;}
.site-footer::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--brass-bright),transparent);}
.site-footer .wrap{position:relative;}
.site-footer .brand{margin-bottom:16px;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.35fr;gap:40px;margin-bottom:40px;}
.footer-brand p{max-width:360px;}
.footer-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;}
.site-footer ul.two-col{grid-template-columns:1fr 1fr;column-gap:20px;}
.site-footer .contact-list li{display:flex;align-items:flex-start;gap:10px;line-height:1.5;}
.site-footer .contact-list svg{width:16px;height:16px;flex:none;margin-top:4px;color:var(--brass-bright);}
.site-footer h3{color:var(--cream);font-size:1.05rem;margin-bottom:16px;position:relative;padding-bottom:10px;}
.site-footer h3::after{content:"";position:absolute;left:0;bottom:0;width:28px;height:1.5px;background:var(--brass);transition:width var(--t);}
.site-footer .footer-grid > div:hover h3::after{width:48px;}
.site-footer ul{list-style:none;padding:0;display:grid;gap:10px;}
.site-footer ul a{display:inline-block;padding:1px 0;transition:color .25s,transform .25s;}
.site-footer ul a:hover{color:var(--brass-bright);transform:translateX(4px);}
.footer-bottom{border-top:1px solid var(--line-light);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px 28px;font-size:.82rem;color:rgba(250,247,240,.6);}
.footer-bottom a,.mini-footer a{display:inline-block;padding:5px 0;}
.footer-bottom a{color:rgba(250,247,240,.85);font-weight:600;transition:color .25s;}
.footer-bottom a:hover{color:var(--brass-bright);}
.mini-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;padding:22px 24px calc(22px + var(--cartbar,0px));font-size:.8rem;color:var(--ink-mute);border-top:1px solid var(--line);margin-top:40px;}
.mini-footer a{color:var(--brass-text);font-weight:600;}
.mini-footer a:hover{color:var(--maroon);}

/* ---------- Floating ---------- */
.wa-float{
  position:fixed;right:22px;bottom:22px;z-index:90;display:flex;align-items:center;gap:10px;
  background:linear-gradient(135deg,#2ee07a,#1fb659);color:#fff;padding:12px 18px 12px 14px;border-radius:999px;font-weight:600;font-size:.9rem;
  box-shadow:0 12px 30px rgba(37,211,102,.4);transition:transform var(--t),box-shadow var(--t);
}
.wa-float::before{content:"";position:absolute;inset:-4px;border-radius:999px;border:2px solid rgba(37,211,102,.5);animation:ring 2.4s infinite;}
@keyframes ring{0%{transform:scale(1);opacity:1;}100%{transform:scale(1.35);opacity:0;}}
.wa-float:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 16px 36px rgba(37,211,102,.55);}
.wa-float svg{width:24px;height:24px;}
.to-top{
  position:fixed;left:22px;bottom:22px;z-index:90;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);
  background:var(--paper);color:var(--ink);display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s,background .3s,color .3s;
  transform:translateY(10px);box-shadow:var(--shadow);
}
.to-top:hover{background:var(--maroon);color:#fff;}
.to-top.show{opacity:1;pointer-events:auto;transform:none;}
.to-top svg{width:18px;height:18px;}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal.is-visible{opacity:1;transform:none;}
.reveal[data-delay="1"]{transition-delay:.1s;}
.reveal[data-delay="2"]{transition-delay:.2s;}
.reveal[data-delay="3"]{transition-delay:.3s;}

/* =====================================================================
   BOOKING APP
   ===================================================================== */
.booking-page{background:var(--cream);}
.booking-page .site-header,.sub-page .site-header{position:relative;padding:12px 0;}
.sub-page{background:var(--cream);}
.page-hero{padding:56px 0 40px;}
.page-hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:end;}
.page-hero h1{font-size:clamp(2rem,4.6vw,3.4rem);color:var(--cream);line-height:1.05;margin:10px 0 14px;}
.page-hero p{color:rgba(250,247,240,.8);max-width:560px;font-size:1.05rem;}
.crumbs{display:flex;flex-wrap:wrap;gap:6px;font-size:.78rem;letter-spacing:.04em;color:rgba(250,247,240,.6);margin-bottom:6px;}
.crumbs a{color:rgba(250,247,240,.85);display:inline-block;padding:5px 0;margin:-5px 0;}
.crumbs a:hover{color:var(--brass-bright);}
.crumbs span::before{content:"›";margin-right:6px;color:var(--brass);}
.crumbs span:first-child::before{content:none;}
.section-link{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--brass-text);margin-top:22px;transition:gap .25s,color .25s;}
.section-link:hover{gap:12px;color:var(--maroon);}
.section-link svg{width:18px;height:18px;}
.section-more{text-align:center;margin-top:36px;}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.contact-layout>*{min-width:0;}
.contact-layout .hero-card{max-width:none;}
.error-page{min-height:100vh;display:flex;flex-direction:column;}
.error-page main{flex:1;}
.booking-page .mobile-menu{z-index:110;}
.booking-hero{position:relative;padding:64px 0 44px;color:var(--cream);overflow:hidden;background:var(--maroon-deep);isolation:isolate;}
.booking-hero .bg{position:absolute;inset:0;z-index:-2;}
.booking-hero .bg img{width:100%;height:100%;object-fit:cover;}
.booking-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(42,6,14,.95),rgba(62,10,21,.85) 50%,rgba(42,6,14,.6));}
.booking-hero h1{color:var(--cream);font-size:clamp(2rem,4.5vw,3.2rem);margin-bottom:10px;}
.booking-hero p{color:rgba(250,247,240,.8);max-width:600px;}
.booking-hero .wrap{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;}
.booking-hero .mini{display:flex;gap:22px;font-size:.82rem;color:rgba(250,247,240,.7);}
.booking-hero .mini div{transition:transform var(--t);}
.booking-hero .mini div:hover{transform:translateY(-3px);}
.booking-hero .mini b{display:block;color:var(--brass-bright);font-family:var(--font-head);font-size:1.4rem;font-weight:400;}

.stepper{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;box-shadow:0 4px 20px rgba(42,6,14,.06);}
.stepper .wrap{display:flex;gap:0;overflow-x:auto;scrollbar-width:none;}
.stepper .wrap::-webkit-scrollbar{display:none;}
.stepper button{
  flex:1;min-width:140px;background:none;border:0;border-bottom:3px solid transparent;padding:16px 14px;display:flex;align-items:center;gap:10px;
  color:var(--ink-mute);font-weight:600;font-size:.86rem;white-space:nowrap;transition:color .25s,border-color .25s,background .25s;
}
.stepper button:not(:disabled):hover{background:var(--cream);}
.stepper button i{width:26px;height:26px;border-radius:50%;border:1.5px solid currentColor;display:grid;place-items:center;font-style:normal;font-size:.75rem;flex:none;transition:all .3s;}
.stepper button.active{color:var(--maroon);border-bottom-color:var(--maroon);}
.stepper button.active i{background:var(--maroon);border-color:var(--maroon);color:#fff;}
.stepper button.done{color:var(--green);}
.stepper button.done i{background:var(--green);border-color:var(--green);color:#fff;}
.stepper button:disabled{cursor:not-allowed;opacity:.55;}

.booking-layout{display:grid;grid-template-columns:1fr 380px;gap:32px;padding:40px 0 120px;align-items:start;}
.panel{display:none;}
.panel.active{display:block;animation:fade .45s var(--ease);}
.panel h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:8px;}
.panels{min-width:0;}
.panel{overflow-wrap:anywhere;}
.panel > p.lead{color:var(--ink-soft);margin-bottom:28px;max-width:640px;}
.panel-nav{display:flex;justify-content:space-between;gap:12px;margin-top:36px;padding-top:24px;border-top:1px solid var(--line);}

/* Service cards */
.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
#serviceGrid:empty{min-height:390px;}
.choice-grid.two{grid-template-columns:repeat(2,1fr);}
.choice-grid.four{grid-template-columns:repeat(4,1fr);}
.choice{
  position:relative;background:var(--paper);border:1.5px solid var(--line);border-radius:18px;padding:22px;cursor:pointer;
  transition:border-color .25s,box-shadow .3s,transform .35s var(--ease);text-align:left;display:flex;flex-direction:column;gap:8px;overflow:hidden;
}
.choice:hover{border-color:var(--brass-soft);transform:translateY(-3px);box-shadow:var(--shadow);}
.choice.selected{border-color:var(--maroon);box-shadow:0 0 0 4px rgba(92,17,32,.12);}
.choice.selected::after{
  content:"✓";position:absolute;top:14px;right:14px;width:24px;height:24px;border-radius:50%;background:var(--maroon);color:#fff;font-size:.8rem;display:grid;place-items:center;animation:pop .3s var(--ease);
}
@keyframes pop{from{transform:scale(0);}to{transform:scale(1);}}
.choice-img{margin:-22px -22px 8px;aspect-ratio:16/8;overflow:hidden;background:var(--maroon-deep);}
.choice-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.choice:hover .choice-img img{transform:scale(1.06);}
.choice .ico{width:46px;height:46px;border-radius:12px;background:var(--cream-2);color:var(--maroon);display:grid;place-items:center;margin-bottom:6px;transition:background .3s,color .3s,transform var(--t);}
.choice:hover .ico,.choice.selected .ico{background:var(--maroon);color:#fff;}
.choice .ico svg{width:24px;height:24px;}
.choice h3{font-size:1.15rem;}
.choice p{color:var(--ink-soft);font-size:.88rem;flex:1;}
.choice .price{font-size:.85rem;color:var(--ink);margin-top:6px;}
.choice .price b{font-family:var(--font-head);font-size:1.25rem;font-weight:400;color:var(--maroon);}
.choice.compact{padding:16px;gap:4px;}
.choice.compact h3{font-size:1rem;}
.choice.compact .emoji{font-size:1.6rem;margin-bottom:4px;transition:transform var(--t);}
.choice.compact:hover .emoji{transform:scale(1.15) rotate(-6deg);}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;margin-top:24px;}
.form-grid .full{grid-column:1/-1;}

/* Guest slider */
.guest-box{background:var(--paper);border:1.5px solid var(--line);border-radius:18px;padding:24px;margin-top:8px;transition:box-shadow var(--t);}
.guest-box:hover{box-shadow:var(--shadow);}
.guest-box .top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:10px;}
.guest-box .top label{font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);}
.guest-count{display:flex;align-items:center;gap:8px;}
.guest-count button{width:36px;height:36px;border-radius:10px;border:1.5px solid var(--line);background:var(--cream);font-size:1.1rem;font-weight:700;transition:background .25s,color .25s,transform .2s;}
.guest-count button:hover{background:var(--maroon);color:#fff;transform:scale(1.06);}
.guest-count input{width:90px;text-align:center;font-family:var(--font-head);font-size:1.5rem;border:0;background:transparent;color:var(--maroon);}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:999px;background:linear-gradient(90deg,var(--maroon) var(--fill,0%),var(--cream-2) var(--fill,0%));outline:none;}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;border:3px solid var(--maroon);box-shadow:0 3px 10px rgba(0,0,0,.2);cursor:pointer;transition:transform .2s;}
input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15);}
input[type=range]::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#fff;border:3px solid var(--maroon);cursor:pointer;}
.tiers{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:16px;}
.tier{font-size:.72rem;text-align:center;padding:8px 4px;border-radius:8px;background:var(--cream);border:1px solid var(--line);color:var(--ink-soft);transition:all .3s;}
.tier b{display:block;color:var(--ink);font-size:.8rem;}
.tier.active{background:var(--green-soft);border-color:var(--green);color:var(--green);transform:translateY(-2px);}
.tier.active b{color:var(--green);}
.hint{font-size:.82rem;color:var(--ink-mute);margin-top:10px;display:flex;gap:6px;align-items:flex-start;}
.hint svg{width:16px;height:16px;flex:none;margin-top:2px;}

/* Menu builder */
.pkg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:34px;}
.pkg{
  background:var(--paper);border:1.5px solid var(--line);border-radius:20px;padding:24px;cursor:pointer;position:relative;text-align:left;
  display:flex;flex-direction:column;transition:border-color .25s,box-shadow .3s,transform .35s var(--ease);
}
.pkg:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.pkg.selected{border-color:var(--maroon);box-shadow:0 0 0 4px rgba(92,17,32,.12);}
.pkg .badge{position:absolute;top:-10px;left:20px;background:linear-gradient(135deg,var(--brass),#8f6c23);color:#fff;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;padding:4px 10px;border-radius:999px;}
.pkg h3{font-size:1.25rem;margin-bottom:4px;}
.pkg .from{font-size:.8rem;color:var(--ink-soft);margin-bottom:14px;}
.pkg .from b{font-family:var(--font-head);font-size:1.6rem;font-weight:400;color:var(--maroon);}
.pkg ul{list-style:none;padding:0;display:grid;gap:6px;font-size:.86rem;color:var(--ink-soft);flex:1;}
.pkg li{display:flex;gap:8px;}
.pkg li::before{content:"•";color:var(--brass);}
.pkg .pick{margin-top:16px;font-size:.82rem;font-weight:600;color:var(--maroon);}
.pkg.selected .pick::after{content:" · Selected";color:var(--green);}

.cat{background:var(--paper);border:1px solid var(--line);border-radius:18px;margin-bottom:14px;overflow:hidden;transition:border-color .3s,box-shadow var(--t);}
.cat.open{border-color:rgba(169,129,46,.4);box-shadow:var(--shadow);}
.cat-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;cursor:pointer;gap:12px;user-select:none;transition:background .25s;}
.cat-head:hover{background:var(--cream);}
.cat-head h3{font-size:1.08rem;display:flex;align-items:center;gap:10px;}
.cat-head .quota{font-size:.78rem;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--cream-2);color:var(--ink-soft);white-space:nowrap;transition:all .3s;}
.cat-head .quota.full{background:var(--green-soft);color:var(--green);}
.cat-head .quota.over{background:#FBE9E7;color:#B3261E;}
.cat-head .chev{width:20px;height:20px;transition:transform .3s;color:var(--ink-mute);}
.cat.open .chev{transform:rotate(180deg);}
.cat-body{display:none;padding:0 22px 20px;}
.cat.open .cat-body{display:block;animation:fade .35s var(--ease);}
.cat-hint{font-size:.82rem;color:var(--ink-mute);margin-bottom:12px;}
.items{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.item{
  display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--cream);cursor:pointer;
  transition:border-color .2s,background .2s,transform .25s var(--ease);
}
.item:hover{border-color:var(--brass-soft);transform:translateX(3px);}
.item.on{border-color:var(--maroon);background:#fff;}
.item .box{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--line);display:grid;place-items:center;flex:none;background:#fff;color:#fff;font-size:.7rem;transition:all .2s;}
.item.on .box{background:var(--maroon);border-color:var(--maroon);}
.item .txt{flex:1;min-width:0;}
.item .txt b{display:block;font-weight:600;font-size:.93rem;}
.item .extra{font-size:.75rem;font-weight:600;color:var(--brass-text);white-space:nowrap;}
.item .extra.incl{color:var(--green);}

/* Add-ons */
.addon{display:flex;align-items:center;gap:16px;background:var(--paper);border:1.5px solid var(--line);border-radius:16px;padding:18px 20px;margin-bottom:12px;transition:border-color .2s,transform .3s var(--ease),box-shadow var(--t);}
.addon:hover{transform:translateX(4px);box-shadow:var(--shadow);}
.addon.on{border-color:var(--maroon);}
.addon .ico{width:44px;height:44px;border-radius:12px;background:var(--cream-2);color:var(--maroon);display:grid;place-items:center;flex:none;transition:background .3s,color .3s;}
.addon.on .ico{background:var(--maroon);color:#fff;}
.addon .ico svg{width:22px;height:22px;}
.addon .txt{flex:1;}
.addon .txt b{display:block;font-size:.98rem;}
.addon .txt span{font-size:.84rem;color:var(--ink-soft);}
.addon .price{font-size:.85rem;font-weight:600;color:var(--maroon);white-space:nowrap;}
.switch{position:relative;width:48px;height:28px;flex:none;}
.switch input{opacity:0;width:0;height:0;position:absolute;}
.switch span{position:absolute;inset:0;background:#D8CFC2;border-radius:999px;transition:.25s;cursor:pointer;}
.switch span::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:.25s;box-shadow:0 2px 6px rgba(0,0,0,.2);}
.switch input:checked + span{background:var(--maroon);}
.switch input:checked + span::after{transform:translateX(20px);}
.qty{display:flex;align-items:center;gap:6px;}
.qty button{width:30px;height:30px;border-radius:8px;border:1.5px solid var(--line);background:var(--cream);font-weight:700;transition:background .25s,color .25s;}
.qty button:hover{background:var(--maroon);color:#fff;}
.qty span{min-width:26px;text-align:center;font-weight:600;}

/* Summary / cart */
.cart{position:sticky;top:76px;background:var(--paper);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden;}
.cart-head{background:linear-gradient(135deg,var(--maroon-black),var(--maroon));color:var(--cream);padding:20px 22px;position:relative;}
.cart-head::before{content:"";position:absolute;inset:0;background-image:var(--pattern);opacity:.4;pointer-events:none;}
.cart-head h3{color:var(--cream);font-size:1.15rem;margin-bottom:2px;position:relative;}
.cart-head p{font-size:.8rem;color:rgba(250,247,240,.65);position:relative;}
.cart-close{display:none;position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;border:1px solid rgba(250,247,240,.3);background:rgba(250,247,240,.08);color:var(--cream);place-items:center;transition:background .25s;}
.cart-close:hover{background:rgba(250,247,240,.2);}
.cart-close svg{width:18px;height:18px;}
.cart-body{padding:20px 22px;}
.cart-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:.9rem;}
.cart-row:last-child{border-bottom:0;}
.cart-row span{color:var(--ink-soft);}
.cart-row b{font-weight:600;text-align:right;min-width:0;overflow-wrap:anywhere;}
.cart-menu{margin:10px 0;font-size:.85rem;color:var(--ink-soft);}
.cart-menu b{display:block;color:var(--ink);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;margin:10px 0 4px;}
.cart-menu ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:6px;}
.cart-menu li{overflow-wrap:anywhere;background:var(--cream);border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:.78rem;animation:pop .3s var(--ease);}
.cart-total{background:var(--cream);margin:14px -22px -20px;padding:18px 22px;}
.cart-total .line{display:flex;justify-content:space-between;font-size:.9rem;padding:4px 0;color:var(--ink-soft);}
.cart-total .line.big{font-size:1.05rem;color:var(--ink);padding-top:10px;margin-top:6px;border-top:1px solid var(--line);}
.cart-total .line.big b{font-family:var(--font-head);font-size:1.7rem;font-weight:400;color:var(--maroon);}
.cart-total .line.save{color:var(--green);font-weight:600;}
.cart-total .fine{font-size:.74rem;color:var(--ink-mute);margin-top:10px;line-height:1.45;}
.cart-actions{padding:18px 22px 22px;display:grid;gap:10px;}
.cart-empty{padding:30px 22px;text-align:center;color:var(--ink-mute);font-size:.9rem;}

/* Mobile cart bar */
.cart-bar{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:95;background:linear-gradient(90deg,var(--maroon-black),var(--maroon));color:var(--cream);padding:12px 18px;
  align-items:center;justify-content:space-between;gap:12px;box-shadow:0 -10px 30px rgba(0,0,0,.25);
}
.cart-bar .amt b{font-family:var(--font-head);font-size:1.4rem;font-weight:400;color:var(--brass-bright);display:block;line-height:1;}
.cart-bar .amt span{font-size:.72rem;color:rgba(250,247,240,.65);}
.cart-bar .btn{padding:12px 18px;font-size:.88rem;}
.cart-sheet-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:96;}
.cart-sheet-backdrop.open{display:block;}

/* Review step */
.review-block{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:22px;margin-bottom:14px;transition:box-shadow var(--t);}
.review-block:hover{box-shadow:var(--shadow);}
.review-block h3{font-size:1rem;display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.review-block h3 button{background:none;border:0;color:var(--brass-text);font-weight:600;font-size:.82rem;transition:color .25s;}
.review-block h3 button:hover{color:var(--maroon);}
.review-block dl{display:grid;grid-template-columns:140px 1fr;gap:8px 12px;font-size:.92rem;}
.review-block dt{color:var(--ink-soft);}
.review-block dd{margin:0;min-width:0;overflow-wrap:anywhere;}
.msg-preview{background:var(--cream-2);border-radius:14px;padding:16px;outline-offset:2px;overflow-wrap:anywhere;font-size:.85rem;white-space:pre-wrap;color:var(--ink-soft);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;max-height:280px;overflow:auto;}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;color:var(--ink-soft);margin:18px 0;}
.consent input{margin-top:4px;width:18px;height:18px;accent-color:var(--maroon);}
.error{color:#B3261E;font-size:.82rem;margin-top:6px;display:none;}
.error.show{display:block;animation:fade .3s;}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#B3261E;}

.toast{
  position:fixed;left:50%;bottom:90px;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:12px 20px;border-radius:12px;font-size:.88rem;z-index:200;opacity:0;pointer-events:none;transition:.3s;
}
.toast.show{opacity:1;transform:translate(-50%,0);}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  #serviceGrid:empty{min-height:1200px;}
  .hero .wrap{grid-template-columns:1fr;gap:40px;}
  .hero-card{max-width:560px;}
  .hero-scroll{display:none;}
  .trust-grid{grid-template-columns:repeat(2,1fr);}
  .trust-item:nth-child(2){border-right:0;}
  .trust-item:nth-child(-n+2){border-bottom:1px solid var(--line);}
  .about .wrap,.visit .wrap{grid-template-columns:1fr;gap:48px;}
  .about-badge{right:0;}
  .dish-grid,.review-grid{grid-template-columns:repeat(2,1fr);}
  .gallery-grid{grid-template-columns:repeat(3,1fr);}
  .steps{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .booking-layout{grid-template-columns:1fr;padding-bottom:120px;}
  .cart{position:fixed;left:0;right:0;bottom:0;top:auto;max-height:82vh;overflow:auto;border-radius:22px 22px 0 0;transform:translateY(105%);transition:transform .45s var(--ease);z-index:97;}
  .cart.open{transform:none;}
  .cart-bar{display:flex;}
  .cart-close{display:grid;}
  .choice-grid.four{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:768px){
  .hero-card-inner{padding:24px 18px 20px;}
  .seg{grid-template-columns:repeat(2,minmax(0,1fr));}
  .seg span{white-space:normal;}
  .menu-tab{padding:9px 14px;font-size:.85rem;}
  .page-hero .wrap{grid-template-columns:1fr;gap:20px;}
  .contact-layout{grid-template-columns:1fr;gap:32px;}
  section{padding:72px 0;}
  .nav{display:none;}
  .nav-toggle{display:grid;}
  .hero{padding:120px 0 60px;}
  .hero-stats{gap:20px;}
  .hero-card-inner{padding:24px 20px 20px;}
  .seg{grid-template-columns:repeat(2,1fr);}
  .marquee-track{font-size:.95rem;}
  .about-points{grid-template-columns:1fr;}
  .dish-grid,.review-grid,.choice-grid,.items,.form-grid,.field-row{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .review-cta{grid-template-columns:1fr;padding:24px;}
  .review-cta-actions{justify-content:flex-start;}
  .gallery-grid .photo.wide{grid-column:span 2;}
  .menu-banner{aspect-ratio:16/9;}
  .menu-banner .cap{left:18px;bottom:16px;}
  .steps{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;gap:28px;}
  .footer-bottom{flex-direction:column;gap:8px;}
  .mini-footer{padding-bottom:110px;}
  .wa-float span{display:none;}
  .wa-float{padding:14px;}
  .tiers{grid-template-columns:repeat(3,1fr);}
  .review-block dl{grid-template-columns:1fr;gap:2px 0;}
  .review-block dt{margin-top:8px;}
  .trust-grid{grid-template-columns:1fr;}
  .trust-item{border-right:0;border-bottom:1px solid var(--line);}
  .trust-item:last-child{border-bottom:0;}
  .panel-nav{flex-direction:column-reverse;}
  .panel-nav .btn{width:100%;}
  .cta-band{padding:80px 0;}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
  .reveal{opacity:1;transform:none;}
  .marquee-track{animation:none;}
}

/* ---------- Off-screen sections: skip style/layout until near the viewport ---------- */
.cv{content-visibility:auto;contain-intrinsic-size:auto 720px;}
.site-footer{content-visibility:auto;contain-intrinsic-size:auto 480px;}
@media (max-width:768px){.cv{contain-intrinsic-size:auto 1200px;}.site-footer{contain-intrinsic-size:auto 1100px;}}
