/* Generated from public/index.html by marketing/scripts/build-layout.mjs. Do not edit: change the
   shared blocks in index.html and run the script again. */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:46px; padding:0 17px; border:1px solid transparent; border-radius:999px; font-size:13px; font-weight:650; letter-spacing:-.015em; transition:transform .28s var(--ease,cubic-bezier(.16,1,.3,1)),background .28s,border-color .28s,color .28s,box-shadow .28s; }
.btn:hover { transform:translateY(-2px); }
.btn-primary { color:#071008; background:var(--mint,#41765D); box-shadow:0 9px 24px rgba(194,234,189,.16); }
.btn-primary:hover { background:#d5f1ce; box-shadow:0 12px 33px rgba(194,234,189,.27); }
[data-theme="light"] .btn-primary { color:#fff; background:#41765D; box-shadow:0 9px 24px rgba(65,118,93,.2); }
[data-theme="light"] .btn-primary:hover { background:#2f5e49; box-shadow:0 12px 33px rgba(65,118,93,.28); }
.btn-quiet { border-color:var(--line); background:var(--surface); color:var(--text,var(--ink,#1d211e)); }
.btn-quiet:hover { border-color:rgba(194,234,189,.48); background:rgba(194,234,189,.08); }
.btn svg { width:16px; height:16px; }

/* Navigation */
/* Fixed width regardless of the host page's own --max/--gutter, so the
   header renders identically everywhere assets/js/layout.js injects it. */
.site-header .shell, footer .shell { width:min(1320px,100%); margin-inline:auto; padding-inline:clamp(20px,4vw,56px); }
.site-header { position:fixed; inset:0 0 auto; z-index:20; padding-top:max(13px,env(safe-area-inset-top)); pointer-events:none; }
.nav { display:flex; align-items:center; justify-content:space-between; min-height:54px; padding:6px 8px 6px 13px; background:color-mix(in srgb,var(--bg) 75%,transparent); border:1px solid color-mix(in srgb,var(--line) 85%,transparent); border-radius:16px; backdrop-filter:blur(18px) saturate(135%); pointer-events:auto; transition:background .3s,border-color .3s,box-shadow .3s; }
.site-header.is-scrolled .nav,.site-header.scrolled .nav { background:color-mix(in srgb,var(--bg) 92%,transparent); box-shadow:0 13px 35px var(--shadow); }
.brand { display:inline-flex; align-items:center; gap:9px; font-weight:750; font-size:15px; letter-spacing:-.035em; }
.brand img { width:29px; height:29px; object-fit:contain; border-radius:8px; }
.nav-links { display:flex; align-items:center; gap:3px; }
.nav-links > a,.nav-trigger { display:inline-flex; align-items:center; gap:5px; padding:8px 11px; border:0; border-radius:9px; color:var(--muted); background:transparent; cursor:pointer; font-size:12px; font-weight:600; transition:color .2s,background .2s; }
.nav-links > a:hover,.nav-links > a[aria-current="page"],.nav-trigger:hover,.nav-item:focus-within .nav-trigger,.nav-trigger[aria-expanded="true"] { color:var(--text,var(--ink,#1d211e)); background:var(--surface); }
.nav-item { position:relative; } .nav-item::after { content:""; position:absolute; z-index:4; top:100%; left:-28px; right:-28px; height:16px; } .nav-chevron { width:11px; height:11px; transition:transform .22s var(--ease,cubic-bezier(.16,1,.3,1)); } .nav-trigger[aria-expanded="true"] .nav-chevron { transform:rotate(180deg); }
.nav-dropdown { position:absolute; top:calc(100% + 12px); left:50%; z-index:5; display:grid; gap:4px; width:330px; padding:8px; border:1px solid color-mix(in srgb,var(--line) 92%,transparent); border-radius:16px; background:color-mix(in srgb,var(--bg) 96%,transparent); box-shadow:0 24px 55px var(--shadow); backdrop-filter:blur(22px) saturate(140%); opacity:0; visibility:hidden; pointer-events:none; transform:translate(-50%,-7px); transition:opacity .2s var(--ease,cubic-bezier(.16,1,.3,1)),transform .2s var(--ease,cubic-bezier(.16,1,.3,1)),visibility .2s; }
.nav-dropdown::before { content:""; position:absolute; top:-5px; left:50%; width:9px; height:9px; border-top:1px solid var(--line); border-left:1px solid var(--line); background:var(--bg); transform:translateX(-50%) rotate(45deg); }
.nav-item:hover .nav-dropdown,.nav-item:focus-within .nav-dropdown,.nav-trigger[aria-expanded="true"] + .nav-dropdown { opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0); }
.nav-dropdown--discover { grid-template-columns:1fr 1fr; width:390px; } .nav-dropdown--features { width:278px; }
.nav-dd-item { display:flex; align-items:center; gap:10px; min-width:0; padding:9px; border-radius:11px; color:var(--text,var(--ink,#1d211e)); transition:background .18s,transform .18s; } .nav-dd-item:hover { background:var(--surface); transform:translateX(2px); }
.nav-dd-icon { display:grid; flex:0 0 30px; width:30px; height:30px; place-items:center; overflow:hidden; border:1px solid rgba(194,234,189,.18); border-radius:9px; background:rgba(65,118,93,.18); color:#a8d7bb; } .nav-dd-icon svg { width:15px; height:15px; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; fill:none; }
.nav-dd-icon--restaurant { color:#b9d9ff; background:rgba(38,84,124,.22); } .nav-dd-icon--stay { color:#9fd7ba; background:rgba(65,118,93,.25); } .nav-dd-icon--flight { color:#cbb0d6; background:rgba(33,8,31,.28); } .nav-dd-icon--activity { color:#ffb08d; background:rgba(255,133,82,.18); } .nav-dd-icon--plan { color:#C2EABD; background:rgba(194,234,189,.22); } .nav-dd-icon--studio { color:#b9d9ff; background:rgba(38,84,124,.22); } .nav-dd-icon--journey { color:#b9d9ff; background:rgba(91,171,255,.16); } .nav-dd-icon--passport { color:#e5cc83; background:rgba(185,152,69,.19); } .nav-dd-icon--achievement { color:#d0c4ff; background:rgba(155,122,255,.16); } .nav-dd-icon--saved { color:#f5b6c4; background:rgba(178,69,95,.2); } .nav-dd-icon--stamps { color:#f6c27a; background:rgba(243,154,30,.15); }
.nav-dd-copy { display:block; min-width:0; } .nav-dd-copy b { display:block; font-size:11px; letter-spacing:-.02em; } .nav-dd-copy small { display:block; overflow:hidden; margin-top:3px; color:var(--faint); font-size:9px; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.nav-pro { color:var(--mint,#41765D) !important; }
.nav-event-link { color:var(--mint,#41765D) !important; }
.nav-event-link::before { content:""; width:5px; height:5px; border-radius:50%; background:currentColor; box-shadow:0 0 0 4px color-mix(in srgb,currentColor 14%,transparent); }
.nav-event-link[data-event-state="summer"] { color:#e7a66e !important; }
.nav-actions { display:flex; align-items:center; gap:3px; }
.nav-store { min-height:37px; padding-inline:13px; font-size:12px; }
.menu-toggle { width:38px; height:38px; display:grid; place-items:center; background:none; border:0; border-radius:10px; cursor:pointer; color:var(--muted); }
.menu-toggle:hover { color:var(--text,var(--ink,#1d211e)); background:var(--surface); } .menu-toggle svg { width:17px; height:17px; }
.menu-toggle { display:none; }
.mobile-menu { display:none; }
/* Feature links wait for their release moment (data-release); see the release gate in the page script and layout.js. */
[data-release][hidden] { display:none !important; }
.nav-dd-new { display:inline-block; margin-left:6px; padding:2px 6px 1px; border-radius:999px; background:rgba(194,234,189,.14); color:var(--mint,#41765D); font:500 8px/1.3 "DM Mono",monospace; font-style:normal; letter-spacing:.1em; text-transform:uppercase; vertical-align:1px; }
[data-theme="light"] .nav-dd-new { background:rgba(65,118,93,.12); }

@media (max-width:700px) {
  .site-header { padding-top:max(9px,env(safe-area-inset-top)); } .nav { min-height:51px; border-radius:14px; } .nav-links,.nav-store { display:none; } .menu-toggle { display:grid; }
  .mobile-menu { display:block; position:fixed; top:61px; left:var(--gutter,clamp(20px,4vw,56px)); right:var(--gutter,clamp(20px,4vw,56px)); z-index:3; padding:8px; border:1px solid var(--line); border-radius:15px; background:color-mix(in srgb,var(--bg) 96%,transparent); box-shadow:0 25px 45px var(--shadow); backdrop-filter:blur(20px); opacity:0; pointer-events:none; transform:translateY(-8px); transition:opacity .25s,transform .25s; }
  .mobile-menu.open { opacity:1; pointer-events:auto; transform:none; } .mobile-menu a { display:block; padding:11px; border-radius:9px; color:var(--muted); font-size:13px; font-weight:600; } .mobile-menu a:hover { color:var(--text,var(--ink,#1d211e)); background:var(--surface); }
  .mobile-menu .mobile-nav-group { margin:10px 10px 3px; color:var(--faint); font:500 9px "DM Mono",monospace; letter-spacing:.13em; text-transform:uppercase; } .mobile-menu .mobile-nav-group:first-child { margin-top:4px; }
  .mobile-menu a[data-header-event] { display:flex; align-items:center; gap:9px; color:var(--text,var(--ink,#1d211e)); }.mobile-menu a[data-header-event]::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--mint,#41765D); box-shadow:0 0 0 4px rgba(194,234,189,.12); }.mobile-menu a[data-header-event="summer"]::before { background:#e7a66e; box-shadow:0 0 0 4px rgba(231,166,110,.12); }
  .footer-grid { grid-template-columns:1.3fr 1fr; gap:31px 20px; } .footer-grid > :first-child { grid-column:span 2; } .footer-bottom { flex-direction:column; margin-top:35px; }
}
@media (max-width:380px) { .btn { width:100%; } }

footer { border-top:1px solid var(--line); padding:45px 0 30px; }
.footer-grid { display:grid; grid-template-columns:1.6fr repeat(3,.7fr); gap:32px; }
.footer-brand { display:flex; align-items:center; gap:9px; font-weight:750; font-size:15px; letter-spacing:-.035em; } .footer-brand img { width:31px; border-radius:9px; }
.footer-blurb { max-width:29ch; margin:15px 0 0; color:var(--muted); font-size:12px; line-height:1.65; }
.footer-col h2 { margin:4px 0 14px; color:var(--faint); font:500 9px "DM Mono",monospace; letter-spacing:.12em; text-transform:uppercase; }
.footer-col a { display:block; width:max-content; max-width:100%; margin:0 0 10px; color:var(--muted); font-size:12px; transition:color .2s; } .footer-col a:hover { color:var(--mint,#41765D); }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; margin-top:47px; padding-top:18px; border-top:1px solid var(--line); color:var(--faint); font-size:10px; } .footer-bottom a { text-decoration:underline; text-underline-offset:3px; }

/* Keep the gap below dropdown triggers interactive, so a pointer on its way to the menu doesn't close it. */
@media (hover:hover) and (pointer:fine) { .nav-item::after { content:""; position:absolute; z-index:199; top:100%; left:-28px; right:-28px; height:16px; } .nav-dropdown { z-index:200; } }
/* The temporary event link in the header and mobile menu. */
.nav-event-link { color:var(--header-event-color,var(--mint,#41765D)) !important; } .nav-event-link::before { content:""; display:inline-block; width:5px; height:5px; border-radius:50%; background:currentColor; box-shadow:0 0 0 4px color-mix(in srgb,currentColor 14%,transparent); } .nav-event-link[data-event-state="summer"] { color:#e7a66e !important; }
.mobile-menu a[data-header-event] { display:flex; align-items:center; gap:9px; } .mobile-menu a[data-header-event]::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--header-event-color,var(--mint,#41765D)); box-shadow:0 0 0 4px color-mix(in srgb,var(--header-event-color,var(--mint,#41765D)) 14%,transparent); } .mobile-menu a[data-header-event="summer"]::before { background:#e7a66e; }
