/* ─────────────────────────────────────────────────────────────────────────────
   La Boda · landing-v2
   One hand-written sheet. The page sits in one rounded canvas on a dark
   ground; a glass bar floats above it and flips tone over dark blocks; each
   section is a block with a tone (paper / ivory / dark) that every component
   inside inherits through --bg / --surface / --fg / --rule.
   Order: tokens · reset · ground + canvas · bar · blocks · type · motion ·
   components · sections · launcher · responsive · reduced motion.
   ───────────────────────────────────────────────────────────────────────────── */

/* ── tokens ─────────────────────────────────────────────────────────────── */
:root{
  --paper:#FAF8F1; --ivory:#FFFDFC; --dark:#321F15; --dark-card:#3A2419;
  --ink:#472D20; --ink-soft:#67483B; --ink-muted:#8A796C; --line:#E3D8CB;
  --accent:#472D20; --accent-deep:#321F15; --gold:#A99563; --sage:#8F925C;
  --on-dark:#F7EFE4; --on-dark-soft:rgba(247,239,228,.78); --on-dark-muted:rgba(247,239,228,.58); --on-dark-line:rgba(247,239,228,.16);

  --ground:radial-gradient(ellipse at 50% -8%, rgba(197,147,91,.22), transparent 42rem),
           radial-gradient(ellipse at 8% 58%, rgba(73,76,50,.24), transparent 36rem),
           linear-gradient(142deg, #39342B 0%, #25221C 48%, #171713 100%);
  --canvas:min(1280px, calc(100vw - 48px));
  --radius-xl:clamp(30px, 4vw, 54px); --radius-card:22px; --radius-pill:999px;
  --shadow-canvas:0 46px 120px rgba(52,38,31,.28), 0 14px 36px rgba(52,38,31,.14), 0 0 0 1px rgba(255,255,255,.4);
  --shadow-card:0 1px 3px rgba(71,45,32,.08), 0 4px 14px rgba(71,45,32,.06);
  --shadow-lg:0 14px 30px rgba(71,45,32,.12), 0 22px 60px rgba(71,45,32,.08);
  --ease:cubic-bezier(.2,.8,.2,1); --ease-refined:cubic-bezier(.16,1,.3,1); --ease-out-expo:cubic-bezier(.16,1,.3,1);

  --serif:"Cormorant Garamond","Iowan Old Style",Georgia,serif;
  --sans:"Montserrat",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --script:"Pinyon Script","Snell Roundhand",cursive;
  --copy:clamp(1.12rem, 1.4vw, 1.3rem);
  --title:clamp(2.55rem, 5.6vw, 5.4rem);
  --title-sm:clamp(1.9rem, 3vw, 2.7rem);

  --bar-bg:rgba(244,235,224,.62); --bar-ink:#34261F; --bar-line:rgba(73,54,44,.16); --bar-btn-ink:var(--paper);
}
@font-face{font-family:"Pinyon Script";src:url("/fonts/PinyonScript-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}

/* ── reset ──────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden}
body{margin:0;overflow-x:hidden;background:var(--ground);background-attachment:fixed;color:var(--ink);font:400 var(--copy)/1.55 var(--serif);-webkit-font-smoothing:antialiased}
img,video,svg{display:block;max-width:100%}
button{font:inherit;color:inherit;cursor:pointer}
a{color:inherit}
h1,h2,h3,p,ul,dl,dd{margin:0}
ul{padding:0;list-style:none}
[hidden]{display:none}
:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.skip-link{position:absolute;left:-999px;top:12px;z-index:200;padding:.6rem 1rem;background:var(--ivory);color:var(--ink);border-radius:999px}
.skip-link:focus{left:16px}

/* ── ground grain + canvas ──────────────────────────────────────────────── */
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.05;mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.site{position:relative;width:var(--canvas);margin:28px auto;overflow:clip;isolation:isolate;background:var(--paper);border:1px solid rgba(255,247,235,.46);border-radius:var(--radius-xl);box-shadow:var(--shadow-canvas)}

/* ── the bar ────────────────────────────────────────────────────────────── */
.bar{position:fixed;top:38px;left:50%;z-index:90;display:flex;align-items:center;justify-content:space-between;gap:12px;width:calc(var(--canvas) - 64px);min-height:64px;padding:8px 11px 8px 16px;transform:translateX(-50%);
  color:var(--bar-ink);background:var(--bar-bg);border:1px solid var(--bar-line);border-radius:calc(var(--radius-xl) - 14px);
  box-shadow:0 18px 50px rgba(20,14,10,.16), inset 0 1px rgba(255,255,255,.35);
  -webkit-backdrop-filter:blur(22px) saturate(135%);backdrop-filter:blur(22px) saturate(135%);
  animation:fade .9s ease .55s both;
  transition:top .55s ease, background-color .55s ease, color .55s ease, border-color .55s ease, box-shadow .55s ease}
.bar.scrolled{top:16px}
.bar[data-tone="dark"]{--bar-bg:rgba(45,33,27,.46);--bar-ink:#F7EFE4;--bar-line:rgba(255,249,239,.18);--bar-btn-ink:var(--dark)}
.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;flex:0 0 auto}
.brand svg{width:40px;height:40px;fill:currentColor;transition:transform .25s var(--ease)}
.brand:hover svg{transform:translateY(-2px) scale(1.06) rotate(-2deg)}
.brand-name{font:400 1.2rem/1 var(--serif);letter-spacing:.01em}
.nav{position:relative;display:flex;align-items:center;gap:2px;min-width:0}
.nav a{padding:.72rem .84rem;color:inherit;opacity:.68;font:600 .64rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:opacity .25s}
.nav a:hover,.nav a.active{opacity:1}
.nav::after{content:"";position:absolute;bottom:4px;left:var(--nav-indicator-left,0);width:var(--nav-indicator-width,0);height:1px;background:currentColor;opacity:.9;transform:scaleX(.58);transform-origin:center;transition:left .48s var(--ease-refined), width .48s var(--ease-refined)}
.bar-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.pill{display:inline-flex;align-items:center;min-height:38px;padding:.55rem 1rem;border:1px solid color-mix(in srgb, currentColor 32%, transparent);border-radius:var(--radius-pill);color:inherit;font:600 .62rem/1 var(--sans);letter-spacing:.13em;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:background-color .25s, color .25s, border-color .25s}
.pill:hover{background:var(--bar-ink);color:var(--bar-btn-ink);border-color:var(--bar-ink)}
.bar-login{padding:.55rem .8rem;color:inherit;opacity:.68;font:600 .62rem/1 var(--sans);letter-spacing:.13em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.bar-login:hover{opacity:1}
.menu-toggle{display:none;width:44px;height:44px;place-items:center;border:0;border-radius:50%;background:color-mix(in srgb, currentColor 10%, transparent)}
.menu-toggle span,.menu-toggle::before,.menu-toggle::after{content:"";display:block;width:18px;height:1px;background:currentColor;transition:.3s ease}
.menu-toggle span{margin:4px 0}
.menu-open .menu-toggle::before{transform:translateY(5px) rotate(45deg)}
.menu-open .menu-toggle span{opacity:0}
.menu-open .menu-toggle::after{transform:translateY(-5px) rotate(-45deg)}

/* ── blocks: tones and seams ────────────────────────────────────────────── */
.block{position:relative;padding:clamp(72px, 9vw, 130px) clamp(22px, 6vw, 88px);background:var(--bg);color:var(--fg);scroll-margin-top:96px;transition:background-color .6s ease, color .6s ease}
.site > .block + .block{margin-top:-44px;padding-top:calc(clamp(72px, 9vw, 130px) + 22px);border-radius:44px 44px 0 0}
.block:nth-child(1){z-index:1}.block:nth-child(2){z-index:2}.block:nth-child(3){z-index:3}.block:nth-child(4){z-index:4}.block:nth-child(5){z-index:5}
.block:nth-child(6){z-index:6}.block:nth-child(7){z-index:7}.block:nth-child(8){z-index:8}.block:nth-child(9){z-index:9}
.block[data-surface="paper"]{--bg:var(--paper);--surface:var(--ivory);--fg:var(--ink);--fg-soft:var(--ink-soft);--fg-muted:var(--ink-muted);--rule:var(--line);--chip:rgba(71,45,32,.06)}
.block[data-surface="ivory"]{--bg:var(--ivory);--surface:#FFFFFF;--fg:var(--ink);--fg-soft:var(--ink-soft);--fg-muted:var(--ink-muted);--rule:var(--line);--chip:rgba(71,45,32,.06)}
.block[data-header-tone="dark"]{--bg:var(--dark);--surface:var(--dark-card);--fg:var(--on-dark);--fg-soft:var(--on-dark-soft);--fg-muted:var(--on-dark-muted);--rule:var(--on-dark-line);--chip:rgba(247,239,228,.1)}
.site > .block[data-header-tone="dark"]{box-shadow:0 -22px 50px rgba(52,38,31,.16)}
.block-photo{position:absolute;inset:0;z-index:0;overflow:hidden;border-radius:inherit}
.block-photo img{width:100%;height:100%;object-fit:cover;opacity:var(--photo-opacity,.2)}
.block-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(50,31,21,.9), rgba(50,31,21,.55) 50%, rgba(50,31,21,.96))}
.block > .inner{position:relative;z-index:1;width:min(1100px, 100%);margin:0 auto}

/* ── type ───────────────────────────────────────────────────────────────── */
.section-title{margin:0;font:400 var(--title)/.95 var(--serif);letter-spacing:-.035em;max-width:16ch;text-wrap:balance}
.section-title em,.hero h1 em,.footer-line em{font-family:var(--script);font-style:normal;font-weight:400;font-size:1.22em;line-height:.78;letter-spacing:-.04em;color:var(--gold)}
.script-line{margin:0 0 .5rem;font:400 clamp(1.8rem, 2.6vw, 2.4rem)/1 var(--script);color:var(--gold)}
.lead{max-width:56ch;color:var(--fg-soft)}
.section-head{display:grid;gap:1rem;margin-bottom:clamp(36px, 5vw, 64px)}
.section-head .lead{margin-top:.25rem}
.rule{width:58px;height:1px;margin:1.5rem 0;border:0;background:currentColor;opacity:.38}
.small{font:500 .78rem/1.5 var(--sans);letter-spacing:.02em;color:var(--fg-muted)}

/* ── motion ─────────────────────────────────────────────────────────────── */
@keyframes rise{from{opacity:0;transform:translateY(24px);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.05)}}
@keyframes rise-in{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
@keyframes dots{0%,80%,100%{transform:translateY(0);opacity:.4}40%{transform:translateY(-4px);opacity:1}}
@supports (animation-timeline: view()){
  .section-head,.tour-head,.stage-wrap,.film,.tile,.bento-more,.themes-copy,.mini-dash,.assistant-layout > div,.tier,.compare,.contact-layout > div,.footer-close{
    animation:rise-in linear both;animation-timeline:view();animation-range:entry 0% entry 55%}
  .tile:nth-child(2){animation-range:entry 6% entry 62%}
  .tile:nth-child(3){animation-range:entry 12% entry 68%}
  .tile:nth-child(4){animation-range:entry 0% entry 55%}
  .tile:nth-child(5){animation-range:entry 6% entry 62%}
  .tile:nth-child(6){animation-range:entry 12% entry 68%}
  .tier:nth-child(2){animation-range:entry 8% entry 64%}
  .tier:nth-child(3){animation-range:entry 16% entry 72%}
}

/* ── components ─────────────────────────────────────────────────────────── */
.button{position:relative;display:inline-flex;min-height:52px;align-items:center;justify-content:center;gap:.7rem;overflow:hidden;padding:.95rem 1.5rem;border:1px solid currentColor;border-radius:var(--radius-pill);color:inherit;background:transparent;font:650 .66rem/1.2 var(--sans);letter-spacing:.15em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:transform .3s var(--ease), box-shadow .3s var(--ease), background-color .3s, color .3s, border-color .3s}
.button::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg, transparent 20%, rgba(255,255,255,.22), transparent 70%);transform:translateX(-130%);transition:transform .65s ease}
.button:hover{transform:translateY(-3px);box-shadow:0 12px 25px rgba(42,28,19,.16)}
.button:hover::after{transform:translateX(130%)}
.button--clay{border-color:var(--accent);color:var(--paper);background:var(--accent)}
.button--clay:hover{border-color:var(--accent-deep);background:var(--accent-deep)}
[data-header-tone="dark"] .button--clay{background:var(--on-dark);color:var(--dark);border-color:var(--on-dark)}
[data-header-tone="dark"] .button--clay:hover{background:#FFFFFF;border-color:#FFFFFF}
.text-link{display:inline-flex;align-items:center;gap:.5rem;color:inherit;font:650 .68rem/1.2 var(--sans);letter-spacing:.13em;text-transform:uppercase;text-decoration:underline;text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);text-underline-offset:5px}
.text-link::after{content:"→";transition:transform .25s ease}
.text-link:hover::after{transform:translateX(5px)}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:.45rem .8rem;border:1px solid var(--rule);border-radius:var(--radius-pill);background:var(--chip);font:600 .58rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-soft)}
.check-list li{position:relative;padding:.35rem 0 .35rem 1.6rem;color:var(--fg-soft)}
.check-list li::before{content:"";position:absolute;left:0;top:.95rem;width:12px;height:6px;border-left:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(-45deg)}
.segmented{display:inline-flex;padding:4px;border:1px solid var(--rule);border-radius:var(--radius-pill);background:var(--surface)}
.segmented button{min-height:36px;padding:.5rem 1rem;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--fg-muted);font:600 .6rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;transition:.2s}
.segmented button[aria-pressed="true"]{background:var(--accent);color:var(--paper)}
:is([data-header-tone="dark"] .segmented, .segmented--stage) button[aria-pressed="true"]{background:var(--on-dark);color:var(--dark)}

/* ── hero ───────────────────────────────────────────────────────────────── */
.hero{min-height:min(920px, calc(100svh - 56px));padding:0 0 clamp(200px, 22vw, 300px);display:grid;grid-template-rows:1fr;isolation:isolate;color:var(--on-dark);--fg:var(--on-dark);--fg-soft:var(--on-dark-soft);--fg-muted:var(--on-dark-muted);--rule:var(--on-dark-line);--chip:rgba(247,239,228,.12);--surface:var(--dark-card);--bg:var(--dark);background:var(--dark)}
.hero-photo{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 42%;transform-origin:50% 40%;animation:kb 14s var(--ease-out-expo) both}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg, rgba(21,16,10,.5), rgba(42,29,18,.14) 40%, rgba(29,20,12,.7) 100%), radial-gradient(62% 58% at 74% 30%, rgba(30,18,11,.5), transparent 72%)}
.hero-copy{justify-self:end;align-self:start;width:min(620px, 92%);padding:clamp(124px, 15vw, 180px) clamp(24px, 6vw, 88px) 0 0}
.hero h1{margin:0 0 1.3rem;font:400 clamp(3rem, 6.4vw, 6rem)/.92 var(--serif);letter-spacing:-.035em;text-wrap:balance}
.hero h1 .line{display:block;animation:rise .9s var(--ease-out-expo) both}
.hero h1 .line:nth-child(2){animation-delay:.09s}
.hero .lead{max-width:40ch;color:var(--on-dark-soft);animation:rise .9s var(--ease-out-expo) .2s both}
.hero .actions{margin-top:1.7rem;animation:rise .9s var(--ease-out-expo) .28s both}
.hero-card{position:relative;z-index:2;width:min(900px, 82%);margin:calc(-1 * clamp(180px, 20vw, 280px) - 22px) auto clamp(56px, 7vw, 96px);border-radius:var(--radius-card);overflow:hidden;border:1px solid rgba(255,247,235,.5);box-shadow:0 40px 90px -20px rgba(20,14,10,.6), 0 0 0 1px rgba(20,14,10,.15)}
.hero-card img{width:100%;height:auto}

/* ── tour ───────────────────────────────────────────────────────────────── */
.tour > .inner{width:min(1160px, 100%)}
.tour-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px 40px;flex-wrap:wrap;margin-bottom:clamp(22px, 3vw, 36px)}
.tour-head .lead{max-width:30ch;padding-bottom:.6rem}
.stage-wrap{position:relative}
.tour-stage{position:relative;aspect-ratio:16/10;border-radius:var(--radius-card);overflow:hidden;background:#1E130D;border:1px solid rgba(247,239,228,.16);box-shadow:0 40px 90px -24px rgba(0,0,0,.65), 0 0 0 1px rgba(0,0,0,.2)}
.tour[data-header-tone="light"] .tour-stage{border-color:var(--rule);box-shadow:0 4px 8px rgba(71,45,32,.1)}
.tour-stage::before{content:"";position:absolute;inset:-40px;background:var(--poster) center/cover no-repeat;filter:blur(36px) saturate(.8);opacity:0;transition:opacity .5s}
.tour-stage[data-orientation="phone"]{aspect-ratio:auto;height:clamp(440px, 60vw, 680px)}
.tour-stage[data-orientation="phone"]::before{opacity:.45}
.tour-stage video{position:relative;width:100%;height:100%;object-fit:cover;background:transparent}
.tour-stage[data-orientation="phone"] video{object-fit:contain;padding:22px 0}
.segmented--stage{position:absolute;top:14px;right:14px;z-index:2;background:rgba(45,33,27,.58);border-color:rgba(255,249,239,.2);box-shadow:0 8px 24px rgba(0,0,0,.25);-webkit-backdrop-filter:blur(14px) saturate(130%);backdrop-filter:blur(14px) saturate(130%)}
.segmented--stage button{color:rgba(247,239,228,.72)}
.film{position:relative;display:flex;gap:12px;margin-top:18px;padding:6px 2px 10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.film::-webkit-scrollbar{display:none}
.film-item{flex:0 0 136px;scroll-snap-align:center;display:grid;gap:8px;padding:0;border:0;background:none;color:var(--fg-muted);text-align:left;transition:color .3s}
.film-thumb{position:relative;display:block;aspect-ratio:16/10;border-radius:12px;overflow:hidden;border:1px solid rgba(247,239,228,.14);background:#1E130D;transition:transform .45s var(--ease-out-expo), box-shadow .35s, border-color .35s}
.film-thumb img{position:absolute;top:0;left:-20%;width:120%;max-width:none;height:100%;object-fit:cover;object-position:0 0;opacity:.72;transition:opacity .3s}
.film-item:hover{color:var(--fg)}
.film-item:hover .film-thumb{transform:translateY(-3px)}
.film-item:hover .film-thumb img{opacity:1}
.film-item[aria-pressed="true"]{color:var(--fg)}
.film-item[aria-pressed="true"] .film-thumb{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold), 0 12px 24px rgba(0,0,0,.3)}
.film-item[aria-pressed="true"] .film-thumb img{opacity:1}
.film-name{font:500 1rem/1.2 var(--serif);padding-left:2px}
.tour-caption{margin-top:14px;font:500 .74rem/1.5 var(--sans);color:var(--fg-muted)}

/* ── tools: the bento ───────────────────────────────────────────────────── */
.bento{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));grid-template-rows:repeat(3, clamp(200px, 18vw, 250px)) auto;grid-template-areas:"guests guests budget" "guests guests seating" "menu itinerary calendar" "more more more";gap:14px}
.tile{position:relative;display:block;overflow:hidden;border-radius:var(--radius-card);background:var(--dark);color:var(--on-dark);text-decoration:none;box-shadow:var(--shadow-card);transition:box-shadow .5s var(--ease-out-expo)}
.tile img{position:absolute;top:0;left:-20%;width:120%;max-width:none;height:100%;object-fit:cover;object-position:0 0;filter:saturate(.9);transform-origin:70% 40%;transition:transform .9s var(--ease-out-expo), filter .6s}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(50,31,21,0) 42%, rgba(50,31,21,.86));transition:opacity .5s}
.tile-copy{position:absolute;left:0;right:0;bottom:0;z-index:1;display:grid;gap:.15rem;padding:18px 22px 20px;transform:translateY(0);transition:transform .5s var(--ease-out-expo)}
.tile-copy b{font:500 1.55rem/1.1 var(--serif);letter-spacing:-.01em}
.tile-copy i{font:400 italic 1.02rem/1.3 var(--serif);color:var(--on-dark-soft)}
.tile--guests{grid-area:guests}.tile--budget{grid-area:budget}.tile--seating{grid-area:seating}.tile--menu{grid-area:menu}.tile--itinerary{grid-area:itinerary}.tile--calendar{grid-area:calendar}
.tile--guests .tile-copy{padding:24px 28px 26px}
.tile--guests .tile-copy b{font-size:2.3rem}
.tile--guests .tile-copy i{font-size:1.15rem}
.tile:hover{box-shadow:var(--shadow-lg)}
.tile:hover img{transform:scale(1.045);filter:saturate(1)}
.tile:hover .tile-copy{transform:translateY(-3px)}
.bento-more{grid-area:more;max-width:64ch;padding-top:12px;font:400 italic 1.18rem/1.5 var(--serif);color:var(--fg-soft)}

/* ── themes: the palette drench ─────────────────────────────────────────── */
.themes-layout{display:grid;grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr);gap:clamp(28px, 5vw, 72px);align-items:center}
.themes-copy .lead{margin-top:1rem;max-width:34ch}
.swatch-row{display:grid;grid-template-columns:repeat(3, max-content);gap:24px 32px;margin-top:2.2rem}
.swatch{display:grid;justify-items:center;gap:10px;padding:0;border:0;background:none;color:var(--fg-muted);transition:color .3s}
.swatch i{width:54px;height:54px;border-radius:50%;background:conic-gradient(from 210deg, var(--a) 0 34%, var(--b) 0 67%, var(--c) 0);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08), 0 8px 18px rgba(0,0,0,.12);transition:transform .5s var(--ease-out-expo), box-shadow .4s}
.swatch:hover i{transform:translateY(-3px) scale(1.06)}
.swatch[aria-pressed="true"]{color:var(--fg)}
.swatch[aria-pressed="true"] i{box-shadow:0 0 0 3px var(--bg), 0 0 0 4.5px var(--accent), 0 10px 22px rgba(0,0,0,.16)}
.swatch span{font:500 .95rem/1.2 var(--serif);white-space:nowrap}
.mini-dash{--t-bg:#FFFFFF;--t-surface:#FFFDFC;--t-surface2:#FAF7F3;--t-ink:#472D20;--t-muted:#8A796C;--t-accent:#472D20;--t-border:#E3D8CB;--t-gold:#A99563;
  overflow:hidden;border-radius:var(--radius-card);background:var(--t-bg);color:var(--t-ink);border:1px solid var(--t-border);box-shadow:var(--shadow-lg);font-family:var(--sans);transition:background-color .6s, color .6s, border-color .6s}
.md-band{display:grid;gap:6px;justify-items:center;text-align:center;padding:30px 24px 26px;background:var(--t-surface2);border-bottom:1px solid var(--t-border);transition:background-color .6s, border-color .6s}
.md-names{font:400 2.1rem/1 var(--script);color:var(--t-accent);transition:color .6s}
.md-band > b{display:flex;align-items:baseline;gap:.5rem;font:400 4.4rem/1 var(--serif);letter-spacing:-.03em}
.md-band > b small{font:600 .55rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--t-muted)}
.md-date{font:600 .58rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--t-muted)}
.md-grid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr))}
.md-stat{display:grid;gap:5px;align-content:start;padding:18px 20px;border-right:1px solid var(--t-border);transition:border-color .6s}
.md-stat:nth-child(3){border-right:0}
.md-stat > span{font:600 .55rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--t-muted)}
.md-stat > b{font:400 1.9rem/1 var(--serif);letter-spacing:-.02em}
.md-stat > small{font:500 .74rem/1.3 var(--sans);color:var(--t-muted)}
.md-bar{height:5px;margin-top:8px;border-radius:999px;background:var(--t-surface2);overflow:hidden}
.md-bar i{display:block;width:58%;height:100%;background:var(--t-accent);transition:background-color .6s}
.md-next{grid-column:1 / -1;padding:14px 20px 18px;border-top:1px solid var(--t-border);transition:border-color .6s}
.md-next > span{display:block;margin-bottom:4px;font:600 .55rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--t-muted)}
.md-row{display:flex;justify-content:space-between;gap:12px;padding:.6rem 0;border-top:1px solid var(--t-border);font-size:.86rem;transition:border-color .6s}
.md-row:first-of-type{border-top:0}
.md-row span:last-child{color:var(--t-gold);white-space:nowrap}

/* ── assistant ──────────────────────────────────────────────────────────── */
.assistant{--photo-opacity:.28}
.assistant-layout{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:clamp(28px, 5vw, 72px);align-items:center}
.assistant-layout .lead{margin-top:1.2rem;max-width:34ch}
.assistant-layout .chips{margin-top:1.6rem}
.exchange{display:grid;gap:14px;padding:clamp(18px, 2.4vw, 28px);border-radius:var(--radius-card);background:var(--ivory);color:var(--ink);border:1px solid rgba(255,247,235,.4);box-shadow:0 34px 80px -20px rgba(20,14,10,.55);transition:opacity .3s}
.exchange.out{opacity:0}
.exchange > [hidden]{display:none}
.msg{display:grid;gap:.4rem;padding:14px 16px;border-radius:16px;font-family:var(--sans);font-size:.92rem;line-height:1.5}
.msg small{font:600 .55rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted)}
.msg--you{justify-self:end;max-width:82%;background:var(--paper);border:1px solid var(--line);border-bottom-right-radius:6px}
.msg--you.in{animation:rise .5s var(--ease-out-expo) both}
.msg--laboda{max-width:92%;background:#FFFFFF;border:1px solid var(--line);border-bottom-left-radius:6px}
.msg--laboda ul{display:grid;gap:.15rem;padding-left:1rem;list-style:disc;color:var(--ink-soft)}
.msg--laboda table{width:100%;border-collapse:collapse;font-size:.86rem}
.msg--laboda th,.msg--laboda td{padding:.4rem 0;text-align:left;border-bottom:1px solid var(--line)}
.msg--laboda th{font:600 .52rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}
.msg--laboda td:last-child,.msg--laboda th:last-child{text-align:right}
.msg--laboda.in > *{animation:rise .55s var(--ease-out-expo) both;animation-delay:calc(var(--d, 0) * 150ms)}
.msg--laboda > :nth-child(2){--d:0}.msg--laboda > :nth-child(3){--d:1}.msg--laboda > :nth-child(4){--d:2}.msg--laboda > :nth-child(5){--d:3}
.msg-links{display:flex;flex-wrap:wrap;gap:8px 16px;font:600 .58rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.thinking{display:flex;gap:5px;align-items:center;width:max-content;padding:14px 16px;border:1px solid var(--line);border-radius:16px;border-bottom-left-radius:6px;background:#FFFFFF}
.thinking i{width:6px;height:6px;border-radius:50%;background:var(--ink-muted);animation:dots 1.1s ease-in-out infinite}
.thinking i:nth-child(2){animation-delay:.15s}.thinking i:nth-child(3){animation-delay:.3s}
.composer{min-width:0;display:flex;align-items:center;gap:10px;padding:8px 8px 8px 16px;border:1px solid var(--line);border-radius:999px;background:#FFFFFF;color:var(--ink-muted);font:400 .9rem/1 var(--sans)}
.composer span{min-width:0;min-height:1em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.exchange.typing .composer{color:var(--ink);border-color:var(--ink-muted)}
.exchange.typing .composer span::after{content:"";display:inline-block;width:1px;height:1em;margin-left:2px;background:currentColor;vertical-align:-.15em;animation:blink 1s steps(1) infinite}
.composer i{margin-left:auto;flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:var(--accent);transition:transform .3s var(--ease-out-expo)}
.exchange.typing .composer i{transform:scale(1.08)}
.assistant-caption{margin-top:12px;font:500 .74rem/1.5 var(--sans);color:var(--fg-muted)}

/* ── pricing ────────────────────────────────────────────────────────────── */
.pricing-grid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:16px;align-items:stretch}
.tier{display:grid;grid-template-rows:auto auto auto 1fr auto;gap:.6rem;padding:clamp(24px, 3vw, 36px);border:1px solid var(--rule);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);position:relative}
.tier h3{font:600 .62rem/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--fg-muted)}
.tier .price{font:400 clamp(2.6rem, 4vw, 3.6rem)/1 var(--serif);letter-spacing:-.03em}
.tier .price small{font:400 .38em/1 var(--serif);letter-spacing:0;color:var(--fg-muted)}
.tier .price-sub{font:400 italic 1rem/1.4 var(--serif);color:var(--fg-muted)}
.tier .check-list{margin:.6rem 0 1.2rem;font-size:.98rem}
.tier .button{width:100%}
.tier--featured{--bg:var(--dark);--surface:var(--dark-card);--fg:var(--on-dark);--fg-soft:var(--on-dark-soft);--fg-muted:var(--on-dark-muted);--rule:var(--on-dark-line);background:var(--dark);color:var(--on-dark);border-color:transparent;box-shadow:0 30px 70px -20px rgba(20,14,10,.55)}
.tier--featured .button--clay{background:var(--on-dark);color:var(--dark);border-color:var(--on-dark)}
.tier--featured .button--clay:hover{background:#FFFFFF}
.tier-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);padding:.4rem .8rem;border-radius:999px;background:var(--gold);color:var(--dark);font:650 .55rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.compare{margin-top:clamp(24px, 3vw, 40px)}
.compare summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;font:650 .66rem/1.2 var(--sans);letter-spacing:.13em;text-transform:uppercase;text-decoration:underline;text-underline-offset:5px;text-decoration-color:color-mix(in srgb, currentColor 35%, transparent)}
.compare summary::-webkit-details-marker{display:none}
.compare table{width:100%;margin-top:20px;border-collapse:collapse;font-size:.98rem}
.compare th,.compare td{padding:.7rem .4rem;text-align:left;border-bottom:1px solid var(--rule)}
.compare th{font:600 .58rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-muted)}
.compare th:not(:first-child),.compare td:not(:first-child){text-align:center;width:22%}
.compare .group td{padding-top:1.2rem;font:600 .58rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-muted);border-bottom:0}
.compare .yes{color:var(--sage)}
.compare .no{color:var(--fg-muted)}
.pricing-note{margin-top:1.4rem;font:400 italic 1rem/1.5 var(--serif);color:var(--fg-muted)}

/* ── accordion (lives in the quick-answers pop-up) ──────────────────────── */
.accordion{border-top:1px solid var(--rule)}
.accordion-item{border-bottom:1px solid var(--rule)}
.accordion-item[hidden]{display:none}
.accordion-trigger{display:grid;width:100%;grid-template-columns:1fr 30px;gap:12px;align-items:center;padding:18px 2px;border:0;background:none;color:inherit;text-align:left;font:400 1.3rem/1.25 var(--serif)}
.accordion-plus{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--rule);border-radius:50%;font:400 1.1rem/1 var(--serif);transition:.35s}
.accordion-item.open .accordion-plus{background:var(--accent);color:var(--paper);transform:rotate(45deg)}
.accordion-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--ease-out-expo)}
.accordion-panel > div{overflow:hidden}
.accordion-panel p{padding:0 2px 20px;max-width:60ch;color:var(--fg-soft)}
.accordion-item.open .accordion-panel{grid-template-rows:1fr}

/* ── contact ────────────────────────────────────────────────────────────── */
.contact-layout{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1.1fr);gap:clamp(28px, 5vw, 72px);align-items:center}
.contact-email{margin-top:1.2rem;overflow-wrap:anywhere}
.contact-card{padding:clamp(24px, 3vw, 40px);border-radius:var(--radius-card);color:var(--ink);background:linear-gradient(145deg, rgba(255,252,247,.97), rgba(240,229,214,.95));border:1px solid rgba(255,248,238,.3);box-shadow:0 30px 80px rgba(0,0,0,.28)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:grid;gap:7px}
.field.full{grid-column:1 / -1}
.field label{font:650 .61rem/1 var(--sans);letter-spacing:.11em;text-transform:uppercase;color:var(--ink-soft)}
.field input,.field textarea{width:100%;padding:.85rem 1rem;border:1px solid rgba(58,39,26,.2);border-radius:16px;background:rgba(255,255,255,.68);color:var(--ink);font:400 1.05rem/1.4 var(--serif);transition:.25s}
.field textarea{min-height:110px;resize:vertical}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--accent);background:#FFFFFF;box-shadow:0 0 0 4px rgba(71,45,32,.1)}
.contact-card .button{width:100%;margin-top:18px;background:var(--accent);color:var(--paper);border-color:var(--accent)}
.contact-card .button:hover{background:var(--accent-deep);border-color:var(--accent-deep)}
.form-status{min-height:1.5em;margin:12px 0 0;text-align:center;font:400 italic 1rem/1.4 var(--serif);color:var(--ink-soft)}

/* ── footer ─────────────────────────────────────────────────────────────── */
.footer{--photo-opacity:.34;padding-bottom:40px}
.footer .block-photo::after{background:linear-gradient(180deg, rgba(50,31,21,.92), rgba(50,31,21,.6) 45%, rgba(50,31,21,.9))}
.footer .block-photo img{object-position:center 30%}
.footer-close{display:grid;justify-items:center;text-align:center;gap:.4rem;padding-bottom:clamp(56px, 7vw, 96px)}
.footer-close .script-line{margin-bottom:0}
.footer-line{font:400 clamp(2.8rem, 6.4vw, 6rem)/.95 var(--serif);letter-spacing:-.035em;text-wrap:balance}
.footer-close .button{margin-top:1.6rem}
.footer-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 28px;padding-top:32px;border-top:1px solid var(--rule)}
.brand--footer{gap:14px}
.brand--footer svg{width:48px;height:48px}
.brand--footer span{display:grid;gap:3px}
.brand--footer strong{font:400 1.4rem/1 var(--serif);letter-spacing:.02em}
.brand--footer small{font:600 .56rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-muted)}
.footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 22px}
.footer-links a{font:600 .6rem/1 var(--sans);letter-spacing:.13em;text-transform:uppercase;text-decoration:none;opacity:.78;transition:.25s}
.footer-links a:hover{opacity:1}
.footer-links a[aria-disabled="true"]{opacity:.4;pointer-events:none}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;margin-top:28px;padding-top:18px;border-top:1px solid var(--rule);font:500 .58rem/1.5 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-muted)}
.footer-bottom a{text-decoration:none;white-space:nowrap}

/* ── the glass launcher + quick-answers pop-up ──────────────────────────── */
.launcher{position:fixed;z-index:80;bottom:24px;right:max(24px, calc((100vw - var(--canvas)) / 2 + 24px));width:52px;height:52px;display:grid;place-items:center;border:1px solid var(--bar-line);border-radius:50%;color:var(--bar-ink);background:var(--bar-bg);box-shadow:0 12px 34px rgba(20,14,10,.18), inset 0 1px rgba(255,255,255,.35);-webkit-backdrop-filter:blur(18px) saturate(135%);backdrop-filter:blur(18px) saturate(135%);transition:background-color .55s ease, color .55s ease, border-color .55s ease, transform .2s var(--ease)}
.launcher:hover{transform:translateY(-2px)}
.launcher[data-tone="dark"]{--bar-bg:rgba(45,33,27,.46);--bar-ink:#F7EFE4;--bar-line:rgba(255,249,239,.18)}
.launcher svg{grid-area:1 / 1;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .4s var(--ease-out-expo), opacity .25s}
.launcher .x{opacity:0;transform:rotate(-90deg) scale(.6)}
.launcher[aria-expanded="true"] .x{opacity:1;transform:none}
.launcher[aria-expanded="true"] .q{opacity:0;transform:rotate(90deg) scale(.6)}
.launcher-panel{position:fixed;z-index:79;bottom:88px;right:max(24px, calc((100vw - var(--canvas)) / 2 + 24px));width:min(440px, calc(100vw - 24px));max-height:min(76vh, 640px);display:flex;flex-direction:column;border-radius:28px;background:var(--ivory);color:var(--ink);border:1px solid var(--line);box-shadow:0 30px 80px rgba(20,14,10,.3), 0 0 0 1px rgba(255,255,255,.6) inset;overflow:hidden;
  transform-origin:100% 100%;opacity:0;transform:translateY(12px) scale(.96);filter:blur(8px);transition:opacity .42s var(--ease-out-expo), transform .42s var(--ease-out-expo), filter .42s var(--ease-out-expo)}
.launcher-panel.open{opacity:1;transform:none;filter:blur(0)}
.launcher-panel.closing{transition-duration:.26s}
.launcher-panel[hidden]{display:none}
.launcher-head{display:flex;align-items:center;gap:12px;padding:18px 20px 14px}
.launcher-head .mark{width:34px;height:34px;fill:currentColor}
.launcher-head b{display:block;font:400 1.35rem/1.1 var(--serif)}
.launcher-head span{font:500 .72rem/1.4 var(--sans);color:var(--ink-muted)}
.launcher-filters{display:flex;gap:6px;padding:0 16px 12px;overflow-x:auto;scrollbar-width:none;flex:0 0 auto;-webkit-mask-image:linear-gradient(90deg, #000 calc(100% - 36px), transparent);mask-image:linear-gradient(90deg, #000 calc(100% - 36px), transparent)}
.launcher-filters::-webkit-scrollbar{display:none}
.filter{flex:0 0 auto;padding:.5rem .8rem;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink-soft);font:600 .55rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;transition:background-color .25s, color .25s, border-color .25s}
.filter:hover{background:rgba(71,45,32,.06)}
.filter[aria-pressed="true"]{background:var(--accent);color:var(--paper);border-color:var(--accent)}
.launcher-body{overflow:auto;padding:0 20px 8px;--rule:var(--line);--fg-soft:var(--ink-soft)}
.launcher-body .accordion-trigger{padding:14px 0;font-size:1.12rem}
.launcher-body .accordion-plus{width:26px;height:26px;font-size:1rem}
.launcher-body .accordion-panel p{padding:0 0 16px;font:400 .9rem/1.55 var(--sans)}
.launcher-foot{padding:12px 16px 16px;border-top:1px solid var(--line)}
.launcher-foot .button{width:100%;min-height:44px}

/* ── responsive ─────────────────────────────────────────────────────────── */
@media (max-width:1020px){
  .bento{grid-template-columns:repeat(2, minmax(0, 1fr));grid-template-rows:repeat(2, clamp(190px, 24vw, 250px)) repeat(3, clamp(170px, 22vw, 230px));grid-template-areas:"guests guests" "guests guests" "budget seating" "menu itinerary" "calendar more"}
  .bento-more{align-self:center;padding:8px 4px}
  .pricing-grid{grid-template-columns:1fr;max-width:520px;margin:0 auto}
  .tier--featured{order:-1}
  .themes-layout,.assistant-layout,.contact-layout{grid-template-columns:minmax(0, 1fr)}
  .nav a{padding:.72rem .6rem;letter-spacing:.1em}
}
@media (max-width:720px){
  :root{--canvas:calc(100vw - 14px);--copy:1.08rem}
  .site{margin:7px auto;border-radius:28px}
  .bar{top:12px;width:calc(100% - 34px);min-height:60px;padding:8px 10px 8px 14px}
  .bar.scrolled{top:8px}
  .brand-name{display:none}
  .menu-toggle{display:grid}
  .bar-login{display:none}
  .nav{position:fixed;top:82px;left:17px;right:17px;display:grid;gap:5px;padding:12px;border:1px solid rgba(255,249,239,.18);border-radius:22px;color:var(--on-dark);background:rgba(52,38,31,.88);box-shadow:0 20px 60px rgba(0,0,0,.32);-webkit-backdrop-filter:blur(22px) saturate(120%);backdrop-filter:blur(22px) saturate(120%);opacity:0;pointer-events:none;transform:translateY(-12px) scale(.98);transition:.3s ease}
  .nav::after{display:none}
  .nav a{padding:.9rem 1rem;text-align:center;opacity:.85}
  .menu-open .nav{opacity:1;pointer-events:auto;transform:none}
  .menu-open .bar{--bar-bg:rgba(45,33,27,.76);--bar-ink:#F7EFE4;--bar-line:rgba(255,249,239,.18)}
  .menu-open{overflow:hidden}
  .block{padding:64px 20px}
  .site > .block + .block{margin-top:-26px;padding-top:76px;border-radius:26px 26px 0 0}
  .hero{min-height:calc(100svh - 14px);padding-bottom:140px}
  .hero-photo img{object-position:30% 60%}
  .hero::after{background:linear-gradient(180deg, rgba(21,16,10,.66), rgba(42,29,18,.3) 45%, rgba(29,20,12,.8) 100%)}
  .hero-copy{justify-self:stretch;width:auto;padding:7.4rem 20px 0}
  .hero-card{width:calc(100% - 32px);margin:-150px auto 44px}
  .tour-head .lead{padding-bottom:0}
  .segmented--stage{top:10px;right:10px}
  .segmented--stage button{min-height:32px;padding:.45rem .8rem}
  .film-item{flex-basis:108px}
  .bento{grid-template-columns:minmax(0, 1fr);grid-template-rows:64vw repeat(5, 46vw) auto;grid-template-areas:"guests" "budget" "seating" "menu" "itinerary" "calendar" "more"}
  .tile--guests .tile-copy{padding:18px 22px 20px}
  .tile--guests .tile-copy b{font-size:1.8rem}
  .swatch-row{gap:18px 20px}
  .swatch i{width:46px;height:46px}
  .md-band > b{font-size:3.6rem}
  .md-stat{padding:14px 12px}
  .md-stat > b{font-size:1.5rem}
  .md-next{padding:12px 14px 16px}
  .form-grid{grid-template-columns:1fr}
  .footer-links{justify-content:flex-start}
  .launcher{bottom:16px;right:16px;width:48px;height:48px}
  .launcher-panel{right:12px;bottom:74px;border-radius:24px}
  .msg--you,.msg--laboda{max-width:100%}
}

/* ── reduced motion ─────────────────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none !important;transition-duration:.01ms !important}
  .launcher-panel{opacity:1;transform:none;filter:none}
  .button::after{display:none}
}
