/* ===== Golden Hour design system (Oct 2026 glow-up) ===== */
body { background:#0d0b09; font-feature-settings:"ss01","kern"; }
::selection { background:#e8a33d; color:#0d0b09; }
/* film grain: kills the flat "digital" look of photos and gradients */
body::after { content:""; position:fixed; inset:-50%; z-index:70; pointer-events:none; opacity:.07; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.glass { background:rgba(13,11,9,.72); backdrop-filter:blur(16px) saturate(1.2); -webkit-backdrop-filter:blur(16px) saturate(1.2); }
.golden-sky { background:
    radial-gradient(1100px 520px at 78% 115%, rgba(232,163,61,.38), transparent 62%),
    radial-gradient(800px 420px at 8% -10%, rgba(109,63,94,.28), transparent 60%),
    linear-gradient(180deg,#120f0c 0%,#1d1510 55%,#33200f 100%); }
.parallax { background-image:linear-gradient(180deg,rgba(13,11,9,.35) 0%,rgba(13,11,9,.15) 40%,rgba(13,11,9,.85) 100%),url('/assets/img/hero.webp');
    background-size:cover; background-position:center; will-change:transform; }
.gold-text { background:linear-gradient(90deg,#f3e9d2,#d9b75c 40%,#e8a33d 70%,#f3e9d2); -webkit-background-clip:text; background-clip:text; color:transparent; }
.display { font-family:Fraunces,Georgia,serif; font-weight:300; letter-spacing:-.025em; line-height:.92; font-variation-settings:"opsz" 144; }
.eyebrow { font-size:.68rem; font-weight:600; letter-spacing:.32em; text-transform:uppercase; color:#d9b75c; }
.nav-link { position:relative; white-space:nowrap; letter-spacing:.06em; color:rgba(243,233,210,.85); transition:color .3s; }
.nav-link::after { content:""; position:absolute; left:0; right:0; bottom:-6px; height:1px; background:#d9b75c; transform:scaleX(0); transform-origin:right; transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.nav-link:hover, .nav-link.text-gold-400 { color:#d9b75c; }
.nav-link:hover::after, .nav-link.text-gold-400::after { transform:scaleX(1); transform-origin:left; }

/* buttons: one solid style, one outline style, one text link */
.btn-lux, .btn-line, .btn-ink { position:relative; isolation:isolate; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; gap:.7rem;
  min-height:3.25rem; padding:.9rem 2rem; border-radius:2px; font-size:.74rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; text-align:center;
  transition:color .5s cubic-bezier(.2,.7,.2,1), border-color .4s, background-color .4s; }
.btn-lux { background:#f3e9d2; color:#0d0b09; }
.btn-lux::before, .btn-ink::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#b8741a,#e8a33d); transform:translateX(-101%); transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.btn-lux:hover::before, .btn-ink:hover::before, .btn-lux:focus-visible::before { transform:none; }
.btn-lux::after, .btn-ink::after { content:"\2192"; font-size:1rem; letter-spacing:0; transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.btn-lux:hover::after, .btn-ink:hover::after { transform:translateX(4px); }
.btn-line { border:1px solid rgba(243,233,210,.32); color:#f3e9d2; background:transparent; }
.btn-line:hover { border-color:#d9b75c; color:#d9b75c; background:rgba(217,183,92,.06); }
.btn-ink { background:#15120f; color:#f3e9d2; }
.btn-ink:hover { color:#0d0b09; }
.btn-sm { min-height:2.6rem; padding:.55rem 1.2rem; font-size:.66rem; }
.btn-sm::after { display:none; }
.link-u { background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat; padding-bottom:2px; transition:background-size .5s cubic-bezier(.2,.7,.2,1), color .3s; }
.link-u:hover { background-size:100% 1px; color:#d9b75c; }
.plus-ico { display:grid; place-items:center; width:2rem; height:2rem; border-radius:9999px; border:1px solid rgba(217,183,92,.5); color:#d9b75c; transition:transform .3s; }
details[open] .plus-ico { transform:rotate(45deg); }

/* light "sand" sections bring daylight into the dark palette */
.section-sand { background:#f4ece0; color:#2a2118; }
.section-sand .eyebrow { color:#8a4b12; }

/* motion */
.reveal { opacity:0; transform:translateY(28px); filter:blur(4px); transition:opacity 1s cubic-bezier(.2,.7,.2,1), transform 1s cubic-bezier(.2,.7,.2,1), filter 1s; }
.reveal.in { opacity:1; transform:none; filter:none; }
.reveal-img { clip-path:inset(14% 0 0 0); transition:clip-path 1.4s cubic-bezier(.2,.7,.2,1); }
.reveal-img img { transform:scale(1.12); transition:transform 1.8s cubic-bezier(.2,.7,.2,1); }
.reveal-img.in { clip-path:inset(0); }
.reveal-img.in img { transform:scale(1); }
.line-mask { display:block; overflow:hidden; padding-bottom:.08em; }
.line-mask > span { display:block; transform:translateY(105%); transition:transform 1.1s cubic-bezier(.2,.7,.2,1); }
.is-loaded .line-mask > span { transform:none; }
.is-loaded .line-mask:nth-child(2) > span { transition-delay:.09s; }
.is-loaded .line-mask:nth-child(3) > span { transition-delay:.18s; }
.fade-late { opacity:0; transform:translateY(12px); transition:opacity 1s .45s, transform 1s .45s cubic-bezier(.2,.7,.2,1); }
.is-loaded .fade-late { opacity:1; transform:none; }
.marquee:hover .animate-marquee { animation-play-state:paused; }
/* section that drifts from golden hour to dusk as it scrolls past (falls back to a static gradient) */
.dusk-scroll { background:linear-gradient(180deg,#3a230f,#1d1510); }
@supports (animation-timeline: view()) {
  .dusk-scroll { animation:dusk linear both; animation-timeline:view(); animation-range:entry 0% exit 100%; }
  @keyframes dusk { 0% { background-color:#4a2a10; background-image:linear-gradient(180deg,rgba(232,163,61,.35),rgba(13,11,9,0)); }
                    55% { background-color:#3d2236; background-image:linear-gradient(180deg,rgba(194,96,58,.25),rgba(13,11,9,0)); }
                    100% { background-color:#0d0b09; background-image:linear-gradient(180deg,rgba(61,34,54,.4),rgba(13,11,9,0)); } }
}
.drink-card .drink-panel { transform:translateY(calc(100% - 5.5rem)); transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.drink-card:hover .drink-panel, .drink-card:focus-within .drink-panel { transform:none; }
.drink-card img { transition:transform 1.6s cubic-bezier(.2,.7,.2,1); }
.drink-card:hover img { transform:scale(1.06); }
@media (hover:none) { .drink-card .drink-panel { transform:none; } }

/* sticky mobile action bar */
.mbar { position:fixed; inset-inline:0; bottom:0; z-index:45; display:grid; grid-template-columns:1fr 1.4fr; gap:.5rem; padding:.7rem .75rem calc(.7rem + env(safe-area-inset-bottom));
  background:rgba(13,11,9,.9); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-top:1px solid rgba(255,255,255,.08);
  transform:translateY(110%); transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.mbar.show { transform:none; }
.mbar .btn-lux, .mbar .btn-line { min-height:2.9rem; padding:.6rem 1rem; font-size:.68rem; }

/* reviews */
.stars { color:#e8a33d; letter-spacing:.15em; }
.star-input { display:flex; flex-direction:row-reverse; justify-content:flex-end; gap:.25rem; }
.star-input input { position:absolute; opacity:0; width:1px; height:1px; }
.star-input label { cursor:pointer; font-size:2.1rem; line-height:1; color:#3a3127; transition:color .2s, transform .2s; }
.star-input label:hover, .star-input label:hover ~ label, .star-input input:checked ~ label { color:#e8a33d; }
.star-input label:hover { transform:scale(1.12); }
.star-input input:focus-visible + label { outline:2px solid #f3e9d2; outline-offset:2px; border-radius:4px; }

/* chips for quick single/multi choice in forms */
.chip { display:block; cursor:pointer; }
.chip span { display:inline-flex; align-items:center; min-height:2.6rem; padding:.5rem 1rem; border:1px solid rgba(255,255,255,.12); border-radius:9999px; font-size:.88rem; color:rgba(243,233,210,.85); transition:border-color .2s, background .2s, color .2s; }
.chip:hover span { border-color:rgba(217,183,92,.5); }
.chip input:checked + span { border-color:#d9b75c; background:#d9b75c; color:#0d0b09; font-weight:600; }
.chip input:focus-visible + span { outline:2px solid #f3e9d2; outline-offset:2px; }

input[type=range]{ -webkit-appearance:none; appearance:none; height:4px; border-radius:9999px; background:#2b251e; outline:none; }
input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; width:24px; height:24px; border-radius:50%; background:#f3e9d2; border:6px solid #d9b75c; cursor:pointer; transition:transform .2s; }
input[type=range]:active::-webkit-slider-thumb{ transform:scale(1.15); }
input[type=range]::-moz-range-thumb{ width:14px; height:14px; border-radius:50%; background:#f3e9d2; border:6px solid #d9b75c; cursor:pointer; }
.field { width:100%; background:#15120f; border:1px solid #3a3127; color:#fbf6ea; border-radius:.75rem; padding:.8rem 1rem; transition:border-color .2s, box-shadow .2s; }
.field:focus { outline:none; border-color:#d9b75c; box-shadow:0 0 0 3px rgba(217,183,92,.2); }
.field.err { border-color:#e0715c; }
.faq-body { display:grid; grid-template-rows:0fr; transition:grid-template-rows .45s cubic-bezier(.2,.7,.2,1); }
.faq-item.open .faq-body { grid-template-rows:1fr; }
.faq-item.open .faq-icon { transform:rotate(45deg); }
.pkg input:checked + div { border-color:#d9b75c; box-shadow:0 0 0 1px #d9b75c, 0 10px 30px -10px rgba(217,183,92,.4); }
@media (prefers-reduced-motion: reduce){
  *{ transition:none!important; animation:none!important; scroll-behavior:auto!important; }
  .reveal{opacity:1;transform:none;filter:none;} .reveal-img{clip-path:none;} .reveal-img img{transform:none;}
  .line-mask > span, .fade-late{transform:none;opacity:1;}
}

.no-scrollbar{scrollbar-width:none} .no-scrollbar::-webkit-scrollbar{display:none}
dialog[open]{animation:pop .25s ease} @keyframes pop{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}

/* ===== Form system (audit Oct 2026) ===== */
.fgroup{display:block}
.flabel{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;color:#f3e9d2;margin-bottom:.4rem}
.req,.opt{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;border-radius:9999px;padding:.1rem .5rem;font-weight:600}
.req{color:#d9b75c;background:rgba(217,183,92,.12)}
.opt{color:rgba(243,233,210,.55);background:rgba(255,255,255,.05)}
.hint{margin-top:.35rem;font-size:.8rem;color:rgba(243,233,210,.6)}
.ferr{margin-top:.35rem;font-size:.82rem;color:#f0a493;min-height:0}
.ferr:empty{display:none}
.field{min-height:3rem;font-size:1rem;background:#0f0d0b;border-color:#3a3127}
.field::placeholder{color:rgba(243,233,210,.38)}
.field[aria-invalid=true]{border-color:#e0715c;box-shadow:0 0 0 3px rgba(224,113,92,.15)}
.field:disabled{opacity:.45;cursor:not-allowed}
input[type=date].field,input[type=time].field{color-scheme:dark}
.select{appearance:none;-webkit-appearance:none;padding-right:2.75rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23d9b75c' stroke-width='2.2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center}
.check{display:flex;align-items:flex-start;gap:.7rem;min-height:2.75rem;padding:.6rem .8rem;border:1px solid rgba(255,255,255,.08);border-radius:.75rem;cursor:pointer;color:rgba(243,233,210,.88);font-size:.92rem;transition:border-color .2s,background .2s}
.check:hover{border-color:rgba(217,183,92,.45)}
.check input{appearance:none;-webkit-appearance:none;flex:none;width:1.2rem;height:1.2rem;margin-top:.1rem;border:1.5px solid #6b5d48;border-radius:.35rem;background:#0f0d0b;display:grid;place-content:center;cursor:pointer}
.check input::after{content:"";width:.6rem;height:.35rem;border-left:2px solid #0d0b09;border-bottom:2px solid #0d0b09;transform:rotate(-45deg) translate(1px,-1px);opacity:0}
.check input:checked{background:#d9b75c;border-color:#d9b75c}
.check input:checked::after{opacity:1}
.check:has(input:checked){border-color:rgba(217,183,92,.6);background:rgba(217,183,92,.06)}
.pkg{display:block;cursor:pointer}
.pkg-card{display:flex;flex-direction:column;gap:.15rem;height:100%;border:1px solid rgba(255,255,255,.1);border-radius:1rem;background:#0f0d0b;padding:.9rem;text-align:center;transition:border-color .2s,box-shadow .2s}
.pkg:hover .pkg-card{border-color:rgba(217,183,92,.45)}
.pkg input:checked + .pkg-card{border-color:#d9b75c;box-shadow:0 0 0 1px #d9b75c}
.pkg input:focus-visible + .pkg-card{outline:2px solid #f3e9d2;outline-offset:3px}
.stepdot{display:flex;align-items:center;gap:.5rem;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(243,233,210,.45);border-top:3px solid #2b251e;padding-top:.6rem}
.stepdot span{display:grid;place-items:center;width:1.4rem;height:1.4rem;border-radius:9999px;border:1px solid currentColor;font-size:.7rem}
.stepdot.is-on{color:#d9b75c;border-top-color:#d9b75c}
.extras{border:1px solid rgba(255,255,255,.1);border-radius:1rem;padding:1rem 1.1rem}
.extras summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;cursor:pointer;list-style:none}
.extras summary::-webkit-details-marker{display:none}
.extras .plus{display:grid;place-items:center;flex:none;width:2rem;height:2rem;border-radius:9999px;border:1px solid rgba(217,183,92,.5);color:#d9b75c;transition:transform .2s}
.extras[open] .plus{transform:rotate(45deg)}
.btn-gold{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3.25rem;border-radius:2px;padding:.9rem 2rem;font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#0d0b09;background:#f3e9d2;transition:background .4s,opacity .2s}
.btn-gold:hover{background:#e8a33d}
.btn-gold[disabled]{opacity:.6;cursor:progress}
.btn-ghost{display:inline-flex;align-items:center;justify-content:center;min-height:3.25rem;border-radius:2px;padding:.9rem 1.75rem;border:1px solid rgba(243,233,210,.25);color:#f3e9d2;font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;transition:border-color .3s,color .3s}
.btn-ghost:hover{border-color:#d9b75c;color:#d9b75c}
.spin{width:1rem;height:1rem;border-radius:9999px;border:2px solid rgba(13,11,9,.3);border-top-color:#0d0b09;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
/* global keyboard focus */
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid #d9b75c;outline-offset:3px;border-radius:.5rem}
.check input:focus-visible{outline:2px solid #f3e9d2;outline-offset:2px}
.field:focus-visible{outline:none}
.btn-gold.hidden,.btn-ghost.hidden{display:none}
.btn-lux.hidden,.btn-line.hidden,.btn-ink.hidden{display:none}
