/* From design/handoff/travel-site (revision 3), unchanged except: the logo rules and its @font-face are removed
   (the logo is server/pages/logo.mjs + /static/logo.css). Glue for live data is in app.css. */
/* worthitfortravel site styles. Direction 1a. No inline styles anywhere; every value comes from tokens.css. */
@layer reset,base,layout,components,pages,motion;

@layer reset{
  *,*::before,*::after{box-sizing:border-box}
  html{-webkit-text-size-adjust:100%;scroll-padding-top:72px}
  body{margin:0}
  h1,h2,h3,h4,p,ul,ol,figure,dl,dd{margin:0}
  ul,ol{padding:0;list-style:none}
  button,input,select,textarea{font:inherit;color:inherit}
  button{cursor:pointer}
  img,svg{display:block;max-width:100%}
  summary{cursor:pointer}
}
@layer base{
  body{background:var(--bg);color:var(--ink);font:400 var(--fs-base)/1.47 var(--font);letter-spacing:-.01em;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
  h1,h2,h3,h4{font-weight:600;letter-spacing:-.03em;line-height:1.05;text-wrap:balance}
  h1{font-size:var(--fs-h1);letter-spacing:-.035em}
  h2{font-size:var(--fs-h2)}
  h3{font-size:var(--fs-h3);letter-spacing:-.02em}
  h4{font-size:var(--fs-h4);letter-spacing:-.02em}
  p{text-wrap:pretty}
  a{color:var(--link);text-underline-offset:3px}
  a:hover{text-decoration:underline}
  :focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-xs)}
  ::selection{background:color-mix(in oklch,var(--blue) 28%,transparent)}
  .muted{color:var(--ink-3)} .soft{color:var(--ink-2)}
  .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .skip{position:absolute;left:var(--s4);top:-80px;background:var(--tile);padding:var(--s3) var(--s4);border-radius:var(--r-sm);z-index:100}
  .skip:focus{top:var(--s3)}
  .i{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
  .eyebrow{font-size:var(--fs-lg);font-weight:600;color:var(--link)}
  .kicker{font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
}
@layer layout{
  .wrap{width:min(var(--wrap),100% - 2*var(--gutter));margin-inline:auto}
  .section{padding-block:var(--s9)}
  .section--white{background:var(--tile)}
  .section--dark{background:var(--dark-band);color:var(--on-dark)}
  .center{text-align:center}
  .row{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap}
  .stack>*+*{margin-top:var(--s4)}
  .grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6)}
  .grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5)}
  .grid-5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s4)}
  @container (max-width:640px){.cq-stack{grid-template-columns:minmax(0,1fr)!important}}
  @media (max-width:1040px){.grid-5{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2{grid-template-columns:minmax(0,1fr)}}
  @media (max-width:760px){.grid-3,.grid-5{grid-template-columns:minmax(0,1fr)}.section{padding-block:var(--s8)}}
}
@layer components{
  /* nav */
  .nav{position:sticky;top:0;z-index:60;height:48px;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--line)}
  .nav__in{height:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--s4)}
  .nav__links{display:flex;gap:var(--s7);font-size:var(--fs-xs)}
  .nav__links a{color:var(--ink);text-decoration:none;min-height:var(--tap);display:inline-flex;align-items:center}
  .nav__links a:hover,.nav__links a[aria-current]{color:var(--link)}
  .nav__end{justify-self:end;font-size:var(--fs-xs)}
  .nav__end a{color:var(--ink);text-decoration:none;min-height:var(--tap);display:inline-flex;align-items:center}
  @media (max-width:1040px){.nav__links{display:none}.nav__in{grid-template-columns:1fr auto}}


  /* buttons */
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:var(--tap);padding:0 var(--s5);border:1px solid transparent;border-radius:var(--r-pill);font-size:var(--fs-base);font-weight:600;line-height:1.2;text-decoration:none;white-space:nowrap;transition:background var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-out),border-color var(--dur-2),opacity var(--dur-2)}
  .btn:hover{text-decoration:none}
  .btn:active,.btn.is-active{transform:scale(.98)}
  .btn--primary{background:var(--blue);color:var(--on-blue)}
  .btn--primary:hover,.btn--primary.is-hover{background:var(--blue-hover)}
  .btn--primary:active,.btn--primary.is-active{background:var(--blue-press)}
  .btn--secondary{background:transparent;color:var(--link);border-color:var(--link)}
  .btn--secondary:hover,.btn--secondary.is-hover{background:color-mix(in srgb,var(--blue) 10%,transparent)}
  .btn--ghost{background:transparent;color:var(--link);padding-inline:var(--s3)}
  .btn--ghost:hover,.btn--ghost.is-hover{background:color-mix(in srgb,var(--blue) 10%,transparent)}
  .btn--danger{background:var(--over-bg);color:var(--over-ink)}
  .btn--lg{min-height:56px;padding-inline:var(--s6);font-size:var(--fs-md)}
  .btn--sm{min-height:var(--tap);padding-inline:var(--s4);font-size:var(--fs-sm)}
  .btn--block{width:100%}
  .btn:disabled,.btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;transform:none}
  .btn.is-focus{outline:2px solid var(--focus);outline-offset:2px}
  .btn[aria-busy="true"]{pointer-events:none}
  .btn[aria-busy="true"]::before{content:"";width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}
  .link-btn{border:0;background:none;color:var(--link);font-weight:600;min-height:var(--tap);padding:0}
  .link-btn:hover{text-decoration:underline}

  /* segmented control */
  .seg{display:inline-flex;gap:2px;padding:3px;border-radius:12px;background:color-mix(in srgb,var(--ink) 9%,transparent)}
  .seg label{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 var(--s5);border-radius:9px;font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:background var(--dur-2)}
  .seg input{position:absolute;opacity:0;pointer-events:none}
  .seg label:has(input:checked){background:var(--tile);box-shadow:var(--shadow-1)}
  .seg label:has(input:focus-visible){outline:2px solid var(--focus)}

  /* fields */
  .field{display:grid;gap:6px}
  .field__label{font-size:var(--fs-sm);color:var(--ink-3)}
  .input{width:100%;min-height:52px;padding:0 var(--s4);border:1px solid transparent;border-radius:var(--r-md);background:var(--bg);color:var(--ink);transition:border-color var(--dur-2),background var(--dur-2)}
  .input:hover{border-color:var(--line-strong)}
  .input:focus-visible{outline:0;border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 25%,transparent)}
  .input[aria-invalid="true"]{border-color:var(--over-ink);background:var(--over-bg)}
  .input:disabled{opacity:.45}
  .field__error{display:flex;gap:6px;align-items:center;font-size:var(--fs-sm);color:var(--over-ink);font-weight:600}
  .field__hint{font-size:var(--fs-sm);color:var(--ink-3)}
  .stepper{display:inline-flex;align-items:center;gap:var(--s2)}
  .stepper__btn{width:var(--tap);height:var(--tap);display:grid;place-items:center;border:0;border-radius:50%;background:var(--bg);color:var(--ink);transition:background var(--dur-2)}
  .stepper__btn:hover{background:var(--inset)}
  .stepper__btn:disabled{opacity:.4}
  .stepper__val{min-width:48px;text-align:center;font-size:var(--fs-h3);font-weight:600;letter-spacing:-.02em}
  .toggle-chip{display:inline-flex;align-items:center;gap:var(--s2);min-height:var(--tap);padding:0 var(--s4) 0 var(--s3);border:1.5px solid var(--line-strong);border-radius:var(--r-pill);background:transparent;font-weight:600;font-size:var(--fs-base);transition:background var(--dur-2),border-color var(--dur-2)}
  .toggle-chip[aria-pressed="true"]{background:color-mix(in srgb,var(--blue) 12%,transparent);border-color:var(--blue);color:var(--link)}
  .toggle-chip[aria-pressed="false"] .i--on,.toggle-chip[aria-pressed="true"] .i--off{display:none}

  /* honesty chips */
  .chip{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:1px 8px 1px 6px;border:1px solid currentColor;border-radius:var(--r-xs);font-size:var(--fs-xs);font-weight:700;line-height:1.3;background:var(--tile);text-decoration:none;white-space:nowrap}
  button.chip{cursor:pointer;font-family:inherit}
  button.chip:focus-visible{outline-offset:2px}
  .chip--live{background:var(--chip-live-bg);color:var(--chip-live-ink)}
  .chip--recent{background:var(--chip-recent-bg);color:var(--chip-recent-ink)}
  .chip--estimate{background:var(--chip-est-bg);color:var(--chip-est-ink);border-style:dashed}
  .chip--none{background:var(--chip-none-bg);color:var(--chip-none-ink);border-style:dashed}
  .chip--buffer{background:var(--chip-buf-bg);color:var(--chip-buf-ink);border-style:dashed}
  .chip--ai{background:var(--chip-ai-bg);color:var(--chip-ai-ink);border-color:transparent}
  .chip--lg{font-size:var(--fs-sm);min-height:32px;padding:3px 12px 3px 9px;border-radius:var(--r-sm)}
  .popover{max-width:300px;padding:var(--s4) var(--s5);border:1px solid var(--line);border-radius:var(--r-md);background:var(--tile);color:var(--ink);box-shadow:var(--shadow-3);font-size:var(--fs-sm)}
  .popover::backdrop{background:transparent}
  .popover b{display:block;font-size:var(--fs-base);margin-bottom:var(--s1)}
  @starting-style{.popover:popover-open{opacity:0;transform:translateY(4px)}}
  .popover{transition:opacity var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out),display var(--dur-2) allow-discrete,overlay var(--dur-2) allow-discrete}

  /* status */
  .status{display:inline-flex;align-items:center;gap:6px;padding:5px 12px 5px 9px;border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:700;line-height:1.2}
  .status--fits{background:var(--ok-bg);color:var(--ok-ink)}
  .status--without{background:var(--tight-bg);color:var(--tight-ink)}
  .status--tight{background:var(--tight-bg);color:var(--tight-ink)}
  .status--over{background:var(--over-bg);color:var(--over-ink)}
  .status--unpriced{background:var(--none-bg);color:var(--none-ink)}
  .status--plain{padding:0;background:none}

  /* tiles */
  .tile{background:var(--tile);border-radius:var(--r-xl);padding:var(--s6);box-shadow:var(--shadow-1)}
  .tile--flat{box-shadow:none}
  .tile--inset{background:var(--bg);box-shadow:none}
  .notice{display:flex;gap:var(--s3);align-items:flex-start;padding:var(--s4) var(--s5);border-radius:var(--r-lg);background:var(--tight-bg);color:var(--tight-ink)}
  .notice--over{background:var(--over-bg);color:var(--over-ink)}
  .notice--ok{background:var(--ok-bg);color:var(--ok-ink)}
  .notice--info{background:var(--chip-est-bg);color:var(--chip-est-ink)}
  .notice .i{margin-top:3px;font-size:18px}
  .notice b{display:block}
  .notice ul{margin-top:var(--s2);display:grid;gap:var(--s1);font-size:var(--fs-sm)}

  /* budget bar (SVG, widths are dollars in the viewBox) */
  .bar{display:block;width:100%;height:14px;border-radius:99px;background:var(--bar-track);overflow:hidden}
  .bar rect{transition:width var(--dur-4) var(--ease-out),x var(--dur-4) var(--ease-out)}
  .seg-flights{fill:var(--bar-flights)} .seg-flight-buffer{fill:var(--bar-flight-buffer)} .seg-stay{fill:var(--bar-stay)}
  .seg-food{fill:var(--bar-food)} .seg-local{fill:var(--bar-local)} .seg-plan-buffer{fill:var(--bar-plan-buffer)} .seg-left{fill:var(--bar-left)}
  .seg-over{fill:var(--over-ink)}
  .legend{display:grid;gap:2px;font-size:var(--fs-sm)}
  .legend li{display:flex;align-items:center;gap:var(--s2);padding:2px 0}
  .legend__dot{width:10px;height:10px;border-radius:50%;flex:none}
  .legend__dot--flights{background:var(--bar-flights)} .legend__dot--flight-buffer{background:var(--bar-flight-buffer)} .legend__dot--stay{background:var(--bar-stay)}
  .legend__dot--food{background:var(--bar-food)} .legend__dot--local{background:var(--bar-local)} .legend__dot--plan-buffer{background:var(--bar-plan-buffer)} .legend__dot--left{background:var(--bar-left);border:1.5px solid var(--ink-3)}
  .legend__name{flex:1}

  /* plan cards */
  .plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
  .plan{display:flex;flex-direction:column;gap:var(--s1);padding:var(--s5);border:2px solid transparent;border-radius:var(--r-lg);background:var(--tile);color:var(--ink);text-decoration:none;box-shadow:var(--shadow-1);transition:border-color var(--dur-3) var(--ease-out),box-shadow var(--dur-3),transform var(--dur-3) var(--ease-out)}
  .plan:hover{text-decoration:none;box-shadow:var(--shadow-2);transform:translateY(-2px)}
  .plan[aria-current="true"]{border-color:var(--blue)}
  .plan__rec{font-size:var(--fs-xs);font-weight:700;color:var(--link);min-height:18px}
  .plan__name{font-size:var(--fs-h4);font-weight:600;letter-spacing:-.02em}
  .plan__desc{font-size:var(--fs-sm);color:var(--ink-3);min-height:40px}
  .plan__total{font-size:40px;font-weight:700;letter-spacing:-.03em;line-height:1;margin:var(--s3) 0 var(--s2)}
  .plan--over .plan__total{color:var(--ink-3)}
  @media (max-width:760px){.plans{grid-template-columns:minmax(0,1fr)}}

  /* price rows */
  .prices{border-top:1px solid var(--line)}
  .price{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s5);align-items:center;padding:var(--s5) 0;border-bottom:1px solid var(--line)}
  .price__name{font-size:var(--fs-lg);font-weight:600;letter-spacing:-.015em}
  .price__basis{font-size:var(--fs-sm);color:var(--ink-3)}
  .price__meta{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap;margin-top:var(--s2);font-size:var(--fs-xs);color:var(--ink-3)}
  .price__amt{text-align:right;font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.1}
  .price__per{display:block;font-size:var(--fs-xs);font-weight:400;color:var(--ink-3);letter-spacing:0}
  .price--missing .price__amt{color:var(--ink-3);font-weight:600}
  .price--changed{background:color-mix(in srgb,var(--blue) 8%,transparent);border-radius:var(--r-md);padding-inline:var(--s4);margin-inline:calc(-1*var(--s4))}
  .price__was{font-size:var(--fs-sm);font-weight:400;color:var(--ink-3);text-decoration:line-through;margin-right:var(--s2)}
  .price--total{border-top:2px solid var(--ink);border-bottom:0}
  .price--total .price__amt{font-size:36px}
  .amt--pp{display:none}
  .results:has(#view-pp:checked) .amt--party{display:none}
  .results:has(#view-pp:checked) .amt--pp{display:inline}

  /* offers (flight, hotel) */
  .offer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s5);align-items:end}
  .offer--photo{padding:0;overflow:hidden;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:0;align-items:stretch}
  .offer__body{padding:var(--s6);display:flex;flex-direction:column;gap:var(--s2)}
  .offer__title{font-size:var(--fs-h4);font-weight:600;letter-spacing:-.02em;line-height:1.15;overflow-wrap:anywhere}
  .offer__price{font-size:40px;font-weight:700;letter-spacing:-.03em;line-height:1}
  .offer__cta{display:flex;flex-direction:column;gap:var(--s2);align-items:flex-start;margin-top:var(--s3)}
  .offer__alt{font-size:var(--fs-sm)}
  .photo-ph{background:linear-gradient(135deg,var(--inset),color-mix(in srgb,var(--inset) 60%,var(--blue)));display:grid;place-items:center;color:var(--ink-3);font-size:var(--fs-sm);min-height:220px}
  .photo-ph--wide{border-radius:var(--r-xl);aspect-ratio:4/3}
  @media (max-width:760px){.offer,.offer--photo{grid-template-columns:minmax(0,1fr)}}

  /* day by day */
  .day{padding:var(--s6) 0 var(--s2);border-top:1px solid var(--line)}
  .day__head{display:flex;align-items:baseline;gap:var(--s3);flex-wrap:wrap}
  .slot{display:grid;grid-template-columns:96px minmax(0,1fr);gap:var(--s5);padding:var(--s4) 0}
  .slot__when{font-size:var(--fs-sm);font-weight:600;color:var(--ink-3);padding-top:3px}
  .slot__name{font-size:var(--fs-md);font-weight:600;letter-spacing:-.015em}
  .slot__reason{font-size:var(--fs-sm);color:var(--ink-3);display:flex;gap:6px;align-items:flex-start}
  .slot__reason .i{margin-top:4px;font-size:12px}
  .level{font-size:var(--fs-sm);color:var(--ink-3);font-weight:600}
  .level b{color:var(--ink)}
  .map{position:relative;min-height:300px;border-radius:var(--r-xl);background:var(--ok-bg);overflow:hidden;border:1px solid var(--line)}
  .map__pin{position:absolute;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--blue);color:var(--on-blue);border:3px solid var(--tile);font-size:var(--fs-sm);font-weight:700;box-shadow:var(--shadow-2)}

  /* tradeoffs, chat */
  .tradeoffs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
  .tradeoff{display:flex;align-items:center;gap:var(--s4);padding:var(--s5);border:2px solid transparent;border-radius:var(--r-lg);background:var(--tile);box-shadow:var(--shadow-1);transition:border-color var(--dur-3)}
  .tradeoff:has([aria-pressed="true"]){border-color:var(--blue)}
  .tradeoff__text{flex:1;min-width:0}
  .tradeoff__label{font-weight:600;letter-spacing:-.01em}
  .tradeoff__note{font-size:var(--fs-sm);color:var(--ink-3)}
  .delta{min-width:92px;min-height:var(--tap);padding:0 var(--s4);border:1.5px solid currentColor;border-radius:var(--r-pill);background:transparent;font-weight:700;font-size:var(--fs-base);transition:background var(--dur-2),color var(--dur-2)}
  .delta--save{color:var(--ok-ink);background:var(--ok-bg)}
  .delta--add{color:var(--chip-est-ink);background:var(--chip-est-bg)}
  .delta[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}
  @media (max-width:760px){.tradeoffs{grid-template-columns:minmax(0,1fr)}}
  .chat{display:grid;gap:var(--s3)}
  .bubble{max-width:82%;padding:var(--s3) var(--s4);border-radius:20px;background:var(--bg);font-size:var(--fs-base)}
  .bubble--me{justify-self:end;background:var(--blue);color:var(--on-blue)}
  .proposal{padding:var(--s5);border:2px solid var(--blue);border-radius:var(--r-lg);background:var(--tile)}
  .chat__form{display:flex;gap:var(--s2)}

  /* summary aside + book list */
  .summary{position:sticky;top:72px;padding:var(--s6);border-radius:var(--r-xl);background:var(--tile);box-shadow:var(--shadow-1);display:grid;gap:var(--s4)}
  .summary__total{font-size:var(--fs-price);font-weight:700;letter-spacing:-.035em;line-height:1.02}
  .book-list li{display:flex;align-items:center;gap:var(--s3);min-height:var(--tap);font-size:var(--fs-sm)}
  .book-list a{flex:1}
  .check{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line-strong);display:grid;place-items:center;flex:none}
  .check[data-done="true"]{background:var(--ok-ink);border-color:var(--ok-ink);color:var(--tile)}
  .disclosure{font-size:var(--fs-xs);color:var(--ink-3);line-height:1.4}

  /* misc */
  .toast{position:fixed;left:50%;bottom:var(--s6);translate:-50% 0;display:flex;align-items:center;gap:var(--s3);padding:6px 8px 6px var(--s5);border-radius:var(--r-md);background:var(--ink);color:var(--bg);box-shadow:var(--shadow-3);z-index:80;animation:rise var(--dur-3) var(--ease-out)}
  .toast button{min-height:var(--tap);padding:0 var(--s4);border:0;background:none;color:var(--blue);font-weight:700}
  dialog{border:0;border-radius:var(--r-xl);padding:var(--s7);background:var(--tile);color:var(--ink);box-shadow:var(--shadow-3);width:min(520px,calc(100% - 32px))}
  dialog::backdrop{background:var(--scrim);backdrop-filter:blur(8px)}
  .skeleton{border-radius:var(--r-lg);background:linear-gradient(100deg,var(--inset) 30%,var(--tile) 50%,var(--inset) 70%);background-size:200% 100%;animation:shim 1.6s linear infinite}
  .empty{display:grid;justify-items:center;gap:var(--s3);text-align:center;padding:var(--s8) var(--s5)}
  .faq details{border-top:1px solid var(--line)}
  .faq summary{display:flex;align-items:center;gap:var(--s4);min-height:68px;padding:var(--s3) 0;font-size:var(--fs-lg);font-weight:600;letter-spacing:-.015em;list-style:none}
  .faq summary::-webkit-details-marker{display:none}
  .faq summary::after{content:"+";margin-left:auto;font-size:30px;font-weight:300;color:var(--link);transition:rotate var(--dur-3) var(--ease-out)}
  .faq details[open] summary::after{rotate:45deg}
  .faq p{padding-bottom:var(--s5);color:var(--ink-2);max-width:60ch}
  .footer{border-top:1px solid var(--line);padding:var(--s5) 0 var(--s9);font-size:var(--fs-xs);color:var(--ink-3)}
}
@layer pages{
  /* home */
  .hero{padding:var(--s8) 0 var(--s7);text-align:center}
  .hero h1{max-width:22ch;margin:0 auto var(--s5);font-size:clamp(40px,6.2vw,80px);letter-spacing:-.03em;line-height:1.06}
  .hero__sub{font-size:clamp(19px,2vw,24px);line-height:1.35;letter-spacing:-.01em;color:var(--ink-3);max-width:50ch;margin:0 auto var(--s6);text-wrap:balance}
  .start{max-width:860px;margin-inline:auto}
  .start__mode{margin-bottom:var(--s5)}
  .start__text,.start__fields{display:none}
  .start:has(#mode-text:checked) .start__text{display:flex}
  .start:has(#mode-form:checked) .start__fields{display:grid}
  .start__text{align-items:center;gap:var(--s2);padding:10px 10px 10px 34px;border-radius:var(--r-pill);background:var(--tile);box-shadow:var(--shadow-2),0 0 0 1px var(--line)}
  .start__field{position:relative;flex:1;min-width:0}
  .start__input{width:100%;height:60px;border:0;background:transparent;font-size:22px;letter-spacing:-.015em;outline:0}
  .start__examples{position:absolute;inset:0;display:flex;align-items:center;pointer-events:none;color:var(--ink-3);font-size:22px;letter-spacing:-.015em;text-align:left}
  .start__examples span{position:absolute;opacity:0;animation:cycle 12s infinite}
  .start__examples span:nth-child(2){animation-delay:4s} .start__examples span:nth-child(3){animation-delay:8s}
  .start__input:not(:placeholder-shown)+.start__examples{display:none}
  .start__fields{grid-template-columns:1.1fr 1fr 1fr 1fr .9fr auto;align-items:center;text-align:left;padding:8px 8px 8px 10px;border-radius:var(--r-pill);background:var(--tile);box-shadow:var(--shadow-2),0 0 0 1px var(--line);max-width:1000px}
  .start__cell{display:block;padding:10px 22px;border-radius:var(--r-pill);cursor:text;transition:background var(--dur-2)}
  .start__cell:hover{background:var(--bg)}
  .start__cell b{display:block;font-size:var(--fs-xs)}
  .start__cell input{width:100%;border:0;background:transparent;padding:0;outline:0}
  .start__go{width:60px;height:60px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--blue);color:var(--on-blue)}
  .start__go:hover{background:var(--blue-hover)}
  @media (max-width:1040px){.start:has(#mode-form:checked) .start__fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-radius:var(--r-xl)}}
  .trust{display:flex;gap:var(--s3) var(--s6);flex-wrap:wrap;justify-content:center;margin-top:var(--s5);font-size:var(--fs-sm);color:var(--ink-3)}
  .trust li{display:flex;gap:var(--s2);align-items:center}
  .trust .i{color:var(--ok-ink)}
  .band{position:relative;min-height:clamp(460px,56vw,700px);border-radius:var(--r-2xl);overflow:hidden;background:#260c0c;color:#fff}
  .band__img{position:absolute;inset:-6% 0;width:100%;height:112%;object-fit:cover}
  .band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.66))}
  .band__copy{position:absolute;z-index:2;left:clamp(24px,4vw,56px);bottom:clamp(24px,4vw,52px);max-width:34ch}
  .band__copy h2{color:#fff;font-size:clamp(34px,5vw,64px);margin:var(--s2) 0 var(--s3)}
  .glass{position:absolute;z-index:2;right:clamp(16px,3vw,40px);top:clamp(16px,3vw,40px);width:min(360px,calc(100% - 32px));padding:var(--s5) var(--s5) var(--s4);border-radius:var(--r-xl);background:var(--glass);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);color:var(--ink);box-shadow:var(--shadow-3)}
  .glass li{display:flex;align-items:center;gap:var(--s2);padding:9px 0;border-top:1px solid var(--line);font-size:var(--fs-sm)}
  .glass li b{flex:1;font-size:15px}
  .label-card{padding:var(--s5);border-radius:var(--r-xl);background:var(--bg)}
  .label-card h3{font-size:var(--fs-md);letter-spacing:-.015em;margin:var(--s4) 0 var(--s2);line-height:1.25}
  .city{display:block;border-radius:var(--r-xl);background:var(--tile);overflow:hidden;color:var(--ink);text-decoration:none;transition:transform var(--dur-4) var(--ease-out),box-shadow var(--dur-4)}
  .city:hover{text-decoration:none;transform:translateY(-6px);box-shadow:var(--shadow-3)}
  .city__body{padding:var(--s5) var(--s5) var(--s6)}
  .step__n{font-size:88px;font-weight:600;letter-spacing:-.04em;line-height:1;color:var(--blue);margin-bottom:var(--s3)}
  .partners{display:flex;gap:var(--s2);flex-wrap:wrap}
  .partners li{padding:8px 18px;border-radius:var(--r-pill);background:var(--bg);font-size:var(--fs-sm);font-weight:600}

  /* confirm + form */
  .page-head{padding:var(--s8) 0 var(--s6)}
  .page-head h1{font-size:clamp(36px,6vw,64px);margin:var(--s2) 0 var(--s3)}
  .layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--s8);align-items:start}
  @media (max-width:1040px){.layout{grid-template-columns:minmax(0,1fr);gap:var(--s6)}.summary{position:static;order:-1}}
  .group{margin-bottom:var(--s3)}
  .group h2{font-size:var(--fs-h3);letter-spacing:-.02em;margin-bottom:var(--s5)}
  .budget-hero{display:flex;align-items:center;gap:var(--s5);flex-wrap:wrap}
  .budget-hero__val{font-size:clamp(48px,7vw,72px);font-weight:600;letter-spacing:-.035em;line-height:1;min-width:230px;text-align:center}
  .budget-hero__input{width:min(360px,100%);min-height:84px;font-size:56px;font-weight:600;letter-spacing:-.03em;text-align:center}
  .ask{border:2px solid var(--blue);border-radius:var(--r-lg);padding:var(--s5)}
  .ask h3{font-size:var(--fs-h4);margin-bottom:var(--s2)}
  .assumptions li{display:flex;gap:var(--s3);align-items:flex-start;padding:var(--s4) 0;border-top:1px solid var(--line);font-size:var(--fs-sm)}
  .assumptions .i{margin-top:3px;color:var(--ink-3)}
  .assumptions button{margin-left:auto}
  .ages{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s4)}
  .covers-copy{font-size:var(--fs-md);color:var(--ink-3);margin-top:var(--s4)}
  .covers-copy b{color:var(--ink)}

  /* planning */
  .route{padding:var(--s5) var(--s6);border-radius:var(--r-xl);background:var(--tile)}
  .route__line{fill:none;stroke:var(--line-strong);stroke-width:3;stroke-linecap:round}
  .route__live{fill:none;stroke:var(--blue);stroke-width:3.5;stroke-linecap:round;stroke-dasharray:2 22;animation:dash 1.2s linear infinite}
  .route__end{fill:var(--blue);animation:ping 1.6s ease-out infinite}
  .source{padding:var(--s5) 0;border-top:1px solid var(--line);display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:var(--s4);align-items:center}
  .source__bar{grid-column:2/-1;height:4px;border-radius:99px;background:var(--bar-track);overflow:hidden}
  .source__bar>span{display:block;height:100%;background:var(--blue);border-radius:99px;transform-origin:left;animation:fill 2.4s var(--ease-out) both}
  .source[data-state="done"] .source__bar>span{background:var(--ok-ink);animation:none}
  .source[data-state="failed"] .source__bar>span{background:var(--ink-3);animation:none}
  .source[data-state="skipped"]{opacity:.55}
  .source__state{font-size:var(--fs-sm);font-weight:700}
  .spinner{width:20px;height:20px;border:2.5px solid var(--bar-track);border-top-color:var(--blue);border-radius:50%;animation:spin .9s linear infinite}

  /* results */
  .results{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--s8);align-items:start}
  @media (max-width:1040px){.results{grid-template-columns:minmax(0,1fr);gap:var(--s6)}.results .summary{position:static;order:-1}}
  .results__main{display:grid;gap:var(--s9);min-width:0}
  .sec-head{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;margin-bottom:var(--s4)}
  .sec-head h2{font-size:var(--fs-h3);letter-spacing:-.02em;flex:1}
  .trip-head{padding:var(--s7) 0 var(--s6)}
  .trip-head h1{font-size:clamp(36px,6vw,64px);margin-top:var(--s1)}
  .gap{font-size:clamp(88px,14vw,152px);font-weight:700;letter-spacing:-.045em;line-height:1}
  .fix{display:flex;align-items:center;gap:var(--s5);width:100%;text-align:left;padding:var(--s5) var(--s6);border:2px solid transparent;border-radius:var(--r-lg);background:var(--tile);box-shadow:var(--shadow-1);transition:border-color var(--dur-3),transform var(--dur-3) var(--ease-out)}
  .fix:hover{border-color:var(--blue);transform:translateY(-2px)}
  .fix__text{flex:1}
  .fix__title{font-size:var(--fs-lg);font-weight:600;letter-spacing:-.015em}
  .fix__save{text-align:right;font-size:var(--fs-h4);font-weight:700;letter-spacing:-.02em}
  .nf-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s8);align-items:start}
  @media (max-width:1040px){.nf-grid{grid-template-columns:minmax(0,1fr)}}
  .err{padding:var(--s10) 0;text-align:center}
  .err__code{font-size:clamp(100px,22vw,220px);font-weight:700;letter-spacing:-.05em;line-height:1;color:var(--ink-3)}
  .sheet{display:grid;gap:var(--s5);margin-bottom:var(--s9)}
  .sheet__row{display:flex;gap:var(--s4);align-items:center;flex-wrap:wrap}
  .sheet__label{width:110px;font-size:var(--fs-sm);color:var(--ink-3)}
}
@layer motion{
  @keyframes spin{to{transform:rotate(360deg)}}
  @keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  @keyframes wordIn{from{transform:translateY(110%);opacity:0}to{transform:none;opacity:1}}
  @keyframes shim{0%{background-position:200% 0}100%{background-position:-200% 0}}
  @keyframes dash{to{stroke-dashoffset:-48}}
  @keyframes ping{0%{filter:drop-shadow(0 0 0 rgba(0,113,227,.5))}100%{filter:drop-shadow(0 0 14px rgba(0,113,227,0))}}
  @keyframes fill{from{transform:scaleX(.04)}to{transform:scaleX(1)}}
  @keyframes cycle{0%{opacity:0;transform:translateY(6px)}4%,30%{opacity:1;transform:none}34%,100%{opacity:0;transform:translateY(-6px)}}
  @keyframes reveal{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}

  .word{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em;margin-right:.22em}
  .word>span{display:inline-block;animation:wordIn var(--dur-5) var(--ease-out) both;animation-delay:calc(var(--i,0)*70ms + 100ms)}
  .rise{animation:rise .9s var(--ease-out) both}
  .rise--2{animation-delay:.5s}.rise--3{animation-delay:.65s}.rise--4{animation-delay:.8s}.rise--5{animation-delay:1s}
  /* scroll-driven reveal where supported; the small island in site.js covers the rest */
  @supports (animation-timeline:view()){
    .reveal{animation:reveal linear both;animation-timeline:view();animation-range:entry 0% entry 45%}
  }
  @supports not (animation-timeline:view()){
    .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}
    .reveal.is-in{opacity:1;transform:none}
  }
  /* page-to-page view transitions (home to confirm to planning to results) */
  @view-transition{navigation:auto}
  ::view-transition-old(root){animation:var(--dur-2) ease both fade-out}
  ::view-transition-new(root){animation:var(--dur-3) var(--ease-out) both rise}
  @keyframes fade-out{to{opacity:0}}
  .plan__total,.summary__total,.offer__price{view-transition-class:money}

  @media (prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
    .reveal{opacity:1;transform:none}
    .start__examples span:first-child{opacity:1}
    .route__live{animation:none}
    ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
  }
}

@layer pages{
  .i0{--i:0}.i1{--i:1}.i2{--i:2}.i3{--i:3}.i4{--i:4}.i5{--i:5}.i6{--i:6}.i7{--i:7}.i8{--i:8}
  .mt-2{margin-top:var(--s2)}.mt-3{margin-top:var(--s3)}.mt-4{margin-top:var(--s4)}.mt-5{margin-top:var(--s5)}.mt-6{margin-top:var(--s6)}.mt-9{margin-top:var(--s9)}
  .mb-3{margin-bottom:var(--s3)}.mb-4{margin-bottom:var(--s4)}.mb-5{margin-bottom:var(--s5)}.mb-6{margin-bottom:var(--s6)}.mb-7{margin-bottom:var(--s7)}.mb-8{margin-bottom:var(--s8)}
  .fs-12{font-size:12px}.fs-14{font-size:var(--fs-sm)}.fs-15{font-size:15px}.fs-19{font-size:var(--fs-md)}.fs-21{font-size:var(--fs-lg)}.fs-24{font-size:24px}
  .wrap--narrow{max-width:900px}.wrap--mid{max-width:1000px}
  .h-narrow{max-width:16ch;margin-inline:auto}
  .h2-md{font-size:clamp(32px,4.4vw,52px)}.h2-xl{font-size:clamp(38px,6vw,72px)}
  .lede-center{font-size:24px;max-width:36ch;margin:var(--s4) auto var(--s8)}
  .lede-block{margin:var(--s4) 0 28px}
  .lede-dark{font-size:24px;color:var(--on-dark-2);margin:20px auto 36px;max-width:26ch}
  .credit{font-size:12px;margin-top:10px}
  .kicker--on-img{color:#fff}
  .city__price{font-size:28px;font-weight:700;letter-spacing:-.025em;margin-top:10px}
  .push{margin-left:auto}
  .right{text-align:right}
  .nowrap{white-space:nowrap}
  .gap-2{gap:var(--s2)} .gap-4{gap:var(--s4)} .gap-5{gap:var(--s5)}
  .block{display:block}
  .hide{display:none}
}

@layer pages{
  .grow{flex:1;min-width:0}.push{margin-left:auto}.push-top{margin-top:auto}
  .fs-48{font-size:48px;letter-spacing:-.02em;color:var(--ink)}
  .plan-skel{height:150px;border-radius:var(--r-lg)}.row-skel{height:96px}
  .sheet__skel{width:320px}
  .static-toast{position:static;translate:none;animation:none}
  .offline-card{max-width:520px;margin-inline:auto;text-align:left}
  .input.is-hover{border-color:var(--line-strong)}
  .input.is-focus{outline:0;border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 25%,transparent)}
  code{font:600 .9em ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--bg);padding:1px 6px;border-radius:var(--r-xs)}
  .page-head .gap{display:flex;align-items:baseline;gap:var(--s4);flex-wrap:wrap}
  .nf-grid .eyebrow+.gap{margin-top:var(--s3)}
}

@layer components{
  /* compact sticky budget bar, phones and tablets only */
  .budget-bar{display:none}
  .budget-bar__total{font-size:var(--fs-md);font-weight:700;letter-spacing:-.02em;line-height:1.1}
  .budget-bar__total small{display:block;font-size:var(--fs-xs);font-weight:400;color:var(--ink-3);letter-spacing:0}
  @media (max-width:1040px){
    .budget-bar{position:sticky;top:56px;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-top:var(--s4);padding:var(--s2) var(--s3) var(--s2) var(--s4);border-radius:var(--r-md);background:color-mix(in srgb,var(--tile) 86%,transparent);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);box-shadow:var(--shadow-2),0 0 0 1px var(--line)}
  }
  .budget-bar--static{display:flex!important;position:static!important;margin-top:0}

  /* checkbox */
  .checkbox{display:flex;gap:var(--s3);align-items:flex-start;min-height:var(--tap);padding:var(--s2) 0;cursor:pointer}
  .checkbox input{appearance:none;-webkit-appearance:none;flex:none;width:24px;height:24px;margin:2px 0 0;border:1.5px solid var(--line-strong);border-radius:7px;background:var(--tile);display:grid;place-items:center;cursor:pointer;transition:background var(--dur-2),border-color var(--dur-2)}
  .checkbox input:hover{border-color:var(--ink-3)}
  .checkbox input:checked{background:var(--blue);border-color:var(--blue)}
  .checkbox input:checked::after{content:"";width:6px;height:11px;margin-top:-2px;border:solid var(--on-blue);border-width:0 2.5px 2.5px 0;rotate:45deg}
  .checkbox input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
  .checkbox input:disabled{opacity:.45}
  .checkbox b{display:block;font-weight:600}
  .checkbox .field__hint{display:block}

  /* "Same as" plan card */
  .plan--same{background:transparent;border:2px dashed var(--line-strong);box-shadow:none;justify-content:center}
  .plan--same:hover{box-shadow:none;transform:none;border-color:var(--ink-3)}
  .plan--same .plan__total{font-size:var(--fs-lg);letter-spacing:-.015em;margin:var(--s2) 0}
  .link-label{font-size:var(--fs-sm);font-weight:600;color:var(--link)}

  /* photos */
  .photo{position:relative;display:block;margin:0;min-height:220px;overflow:hidden;background:linear-gradient(135deg,var(--inset),color-mix(in srgb,var(--inset) 60%,var(--blue)))}
  .photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .photo--none{display:grid;place-items:center;align-content:center;gap:var(--s2);padding:var(--s5);color:var(--ink-3);font-size:var(--fs-sm);text-align:center}
  .photo--none .i{font-size:32px;stroke-width:1.8}
  .photo--wide{border-radius:var(--r-xl);aspect-ratio:4/3}

  /* book states */
  .offer__note{font-size:var(--fs-sm);color:var(--ink-3);max-width:34ch}
  .btn--primary[aria-busy="true"]{opacity:.85}
  .price--nofit .price__amt{color:var(--over-ink)}
  .price--nofit .price__name::after{content:" · doesn’t fit";font-size:var(--fs-sm);font-weight:600;color:var(--over-ink)}

  /* one tradeoff at a time */
  .applied{display:flex;align-items:center;gap:var(--s4);margin-bottom:var(--s4);padding:var(--s2) var(--s3) var(--s2) var(--s5);border-radius:var(--r-lg);background:var(--ok-bg);color:var(--ok-ink);font-weight:600}
  .applied[hidden]{display:none}
  .applied span{flex:1;padding-block:var(--s2)}
  .applied .link-btn{color:var(--ok-ink);text-decoration:underline;padding-inline:var(--s3)}
  .delta:disabled{opacity:.4;cursor:not-allowed}
  .delta[aria-busy="true"]{pointer-events:none;opacity:.7}

  /* where to eat */
  .eat{border-top:1px solid var(--line)}
  .eat li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s4);align-items:center;padding:var(--s4) 0;border-bottom:1px solid var(--line)}
  .eat__name{font-size:var(--fs-lg);font-weight:600;letter-spacing:-.015em}
  .eat__meta{display:flex;gap:var(--s1) var(--s4);flex-wrap:wrap;font-size:var(--fs-sm);color:var(--ink-3);margin-top:2px}
  .rating{font-weight:700;color:var(--ink)}
  .rating span{font-weight:400;color:var(--ink-3)}

  /* quote and errors */
  .quote{padding:var(--s4) var(--s5);border-radius:var(--r-md);background:var(--bg);font-size:var(--fs-lg);color:var(--ink-2)}
  .go{max-width:620px;margin-inline:auto;padding:var(--s10) 0;text-align:center}
  .go .spinner{width:44px;height:44px;margin:0 auto var(--s5);border-width:4px}
  .go__fallback{display:none;text-align:left}
  .go:has(#fallback:target) .go__fallback{display:block}
  .go:has(#fallback:target) .go__busy{display:none}
}
@layer pages{
  /* map view (List / Map switch, no script) */
  .days__body{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s6)}
  .days__map{display:none;margin:0}
  .days:has(#iv-map:checked) .days__body{grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:start}
  .days:has(#iv-map:checked) .days__map{display:block;position:sticky;top:120px}
  @media (max-width:1040px){
    .days:has(#iv-map:checked) .days__body{grid-template-columns:minmax(0,1fr)}
    .days:has(#iv-map:checked) .days__map{position:static;order:-1}
  }
  .map__svg{display:block;width:100%;height:auto;border-radius:var(--r-xl);background:var(--bg);border:1px solid var(--line)}
  .map__road{fill:none;stroke:var(--tile);stroke-width:5;stroke-linecap:round}
  .map__road--main{stroke-width:11}
  .map__label{fill:var(--ink-3);font:600 11px var(--font);letter-spacing:0}
  .map__scale{stroke:var(--ink-3);stroke-width:2}
  .map__pin circle{stroke:var(--tile);stroke-width:3;transition:r var(--dur-2) var(--ease-out)}
  .map__pin text{fill:var(--on-blue);font:700 15px var(--font);text-anchor:middle}
  .map__pin:hover circle{r:18}
  .map__pin:focus-visible{outline:0}
  .map__pin:focus-visible circle{stroke:var(--ink);stroke-width:3.5}
  .map__pin--d1 circle,.slot__pin--d1{fill:var(--blue);background:var(--blue)}
  .map__pin--d2 circle,.slot__pin--d2{fill:var(--bar-stay);background:var(--bar-stay)}
  .map__pin--d3 circle,.slot__pin--d3{fill:var(--ink-2);background:var(--ink-2)}
  .slot__pin{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:8px;border-radius:50%;color:var(--on-blue);font-size:12px;font-weight:700;vertical-align:2px}
  .slot__nopin{display:none;font-size:var(--fs-xs);color:var(--ink-3);margin-top:2px}
  .days:has(#iv-map:checked) .slot__nopin{display:block}
  .map__cap{margin-top:var(--s3);font-size:var(--fs-sm);color:var(--ink-3);display:grid;gap:var(--s2)}
  .map__key{display:flex;gap:var(--s4);flex-wrap:wrap;color:var(--ink)}
  .map__key i{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:50%}
  .print-only{display:none}
}
@media print{
  @page{margin:16mm}
  :root{color-scheme:light}
  body{background:#fff;color:#000;font-size:11pt}
  .nav,.skip,.budget-bar,.btn,.link-btn,.seg,.toast,dialog,.popover,.no-print,.days__map,.footer p+p,.offer__alt,.eyebrow+.sr-only{display:none!important}
  .print-only{display:block;margin:0 0 12pt;font-size:10pt}
  .results{display:block}
  .results__main{gap:18pt}
  .summary{position:static;box-shadow:none;border:1px solid #888;break-inside:avoid;margin:12pt 0}
  .tile,.plan,.price,.day,.notice,.eat li{box-shadow:none!important;break-inside:avoid;background:#fff!important}
  .tile,.notice{border:1px solid #bbb}
  .chip,.status{border:1px solid #000!important;background:none!important;color:#000!important}
  .chip--estimate,.chip--none,.chip--buffer{border-style:dashed!important}
  a{color:#000;text-decoration:none}
  .offer a[href^="http"]::after,.book-list a[href^="http"]::after,.eat a[href^="http"]::after{content:" (" attr(href) ")";font-size:8pt;font-weight:400;word-break:break-all}
  .reveal,.rise,.word>span{animation:none!important;opacity:1!important;transform:none!important}
  .bar{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .photo{max-height:140pt;min-height:0}
  h2,h3{break-after:avoid}
  .footer{border:0;padding:12pt 0 0}
}

@layer pages{.center-row{justify-content:center}.stack>.btn,.stack>.offer__note{align-self:flex-start}}

@layer pages{.days__map{max-width:460px}.map__svg{max-height:min(72vh,600px)}@media (max-width:1040px){.days:has(#iv-map:checked) .days__map{margin-inline:auto}}}

@layer components{
  .link-btn--inline{min-height:0;font-weight:400;font-size:inherit;display:inline;padding:0}
  .honest{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s2);padding:var(--s6);border-radius:var(--r-xl);background:var(--tile);color:var(--ink);text-decoration:none;box-shadow:var(--shadow-1);transition:transform var(--dur-4) var(--ease-out),box-shadow var(--dur-4)}
  .honest:hover{text-decoration:none;transform:translateY(-6px);box-shadow:var(--shadow-3)}
  .honest__num{font-size:clamp(48px,5.4vw,72px);font-weight:700;letter-spacing:-.04em;line-height:1}
  .honest .link-label{margin-top:auto;padding-top:var(--s4)}
  .leave h3{font-size:var(--fs-h4)}
  .consent{position:fixed;left:var(--s4);bottom:var(--s4);z-index:70;max-width:420px;padding:var(--s5);border-radius:var(--r-xl);background:var(--tile);box-shadow:var(--shadow-3),0 0 0 1px var(--line);display:grid;gap:var(--s3);font-size:var(--fs-sm)}
  .consent[hidden]{display:none}
  @media (max-width:520px){.consent{left:var(--s2);right:var(--s2);bottom:var(--s2);max-width:none}}
  .ad{display:grid;gap:var(--s2);justify-items:center;margin-block:var(--s8)}
  .ad__label{font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase}
  .ad__box{width:min(100%,728px);height:280px;display:grid;place-items:center;border:1px dashed var(--line-strong);border-radius:var(--r-md);color:var(--ink-3);font-size:var(--fs-sm)}
  [data-alert-step][hidden]{display:none}
}
@layer pages{
  .city-hero{position:relative;min-height:clamp(320px,40vw,460px);border-radius:var(--r-2xl);overflow:hidden;background:#260c0c;color:#fff;margin-top:var(--s5)}
  .city-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .city-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(0,0,0,.7))}
  .city-hero__copy{position:absolute;z-index:2;left:clamp(24px,4vw,56px);right:clamp(24px,4vw,56px);bottom:clamp(24px,4vw,48px)}
  .city-hero h1{color:#fff;font-size:clamp(40px,6vw,76px)}
  .city-hero p{font-size:var(--fs-lg);margin-top:var(--s2)}
  .city-sec{margin-top:var(--s9)}
  .city-sec>h2{font-size:var(--fs-h3);letter-spacing:-.02em;margin-bottom:var(--s5)}
  .stay-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}
  @media (max-width:760px){.stay-pair{grid-template-columns:minmax(0,1fr)}}
  .stay-pair .offer__price{margin:var(--s3) 0 var(--s1)}
  .sights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
  @media (max-width:1040px){.sights{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @media (max-width:560px){.sights{grid-template-columns:minmax(0,1fr)}}
  .sight{padding:var(--s5);border-radius:var(--r-lg);background:var(--tile);box-shadow:var(--shadow-1)}
  .sight p:first-child{font-size:var(--fs-md);font-weight:600;letter-spacing:-.015em}
  .legal{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--s8);align-items:start;padding-bottom:var(--s9)}
  @media (max-width:1040px){.legal{grid-template-columns:minmax(0,1fr);gap:var(--s5)}}
  .toc{position:sticky;top:72px;display:grid;gap:var(--s1);font-size:var(--fs-sm)}
  @media (max-width:1040px){.toc{position:static}}
  .toc a{color:var(--ink-2);text-decoration:none;padding:6px 0;min-height:var(--tap);display:inline-flex;align-items:center}
  .toc a:hover,.toc a[aria-current]{color:var(--link)}
  .prose{max-width:68ch}
  .prose h2{font-size:var(--fs-h3);letter-spacing:-.02em;margin:var(--s8) 0 var(--s3)}
  .prose h2:first-child{margin-top:0}
  .prose p,.prose li{font-size:var(--fs-md);line-height:1.55;color:var(--ink-2);margin-bottom:var(--s3)}
  .prose ul{list-style:disc;padding-left:var(--s5)}
  .prose b{color:var(--ink)}
}

@layer components{.consent--static{position:static;max-width:420px}.photo--none svg:empty{display:none}}
