/* UATOPIA type system: two families, shared roles across all panels.
   Brand artwork is an image; hero composition and event identity are retained.
   Edit this scale instead of adding per-section type overrides. */
:root{
  --body:'Manrope',sans-serif;
  --disp:var(--body);
  --mono:'IBM Plex Mono',monospace;
  --type-caption:14px;
  --type-body:16px;
  --type-subhead:24px;
  --type-heading:40px;
  --type-day:32px;
}
body{font-family:var(--body);font-size:var(--type-body);line-height:1.6}
.card__t,.card[data-open] .card__t{font-family:var(--body);font-weight:400;letter-spacing:0;line-height:1.2}
.card[data-open] .card__t{font-size:var(--type-heading)!important}
.card:not([data-open]) .card__t{font-size:var(--type-subhead)!important}
.card__n{font:400 var(--type-caption)/1.4 var(--mono);letter-spacing:.06em}
.bridge p{font:400 clamp(32px,3vw,48px)/1.2 var(--body);letter-spacing:0}
.bridge p.bridge__sub{font:400 var(--type-subhead)/1.45 var(--body);letter-spacing:0;max-width:36ch}
.f>label,.f input,.f select,.f textarea,.stay-requests label,.stay-requests .stay-times,.blk__v,.amenities li,.hotel .amenities li,.day__d,.ses__q,.ses__speakers{font-family:var(--body);font-size:var(--type-body);line-height:1.6;letter-spacing:0}
.f>label{font-weight:600}
.f small,.form-required,.travel-details>p,.stay-requests p,.foot-note,.privacy-note,.done{font:400 var(--type-caption)/1.6 var(--body);letter-spacing:0}
.travel-details legend,.stay-requests legend{font:600 var(--type-body)/1.5 var(--body);letter-spacing:0}
.stay-requests{border:0;padding-top:16px;gap:14px 28px}
.stay-requests .stay-times{margin:0 0 2px;color:var(--ink)}
#form-main .actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px;max-width:1080px}
.actions .btn{flex:0 0 auto;font:600 var(--type-body)/1.4 var(--body);letter-spacing:0}
.privacy-note{flex:1 1 260px;max-width:48ch;margin:0;color:#62594F}
.privacy-note a{white-space:nowrap;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.actions .done{flex-basis:100%;max-width:none}
.addr,.hotel .addr{font:400 var(--type-subhead)/1.35 var(--body);letter-spacing:0}
.blk__k,.pill-row span,.pill-row time,.sessions__k,.ses__n,.who__c,.foot__meta,.foot__nav{font-family:var(--mono);font-size:var(--type-caption);line-height:1.5;letter-spacing:.04em}
.pill-row b{font:400 var(--type-day)/1.2 var(--body);letter-spacing:0}
.days .day{padding:32px 28px}
.days .day__k{font:500 var(--type-caption)/1.4 var(--mono);letter-spacing:.04em;margin-bottom:20px}
.days .day__t{font:500 var(--type-day)/1.25 var(--body);letter-spacing:0;margin-bottom:24px}
.days .day__t span{font:400 var(--type-subhead)/1.4 var(--body);letter-spacing:.015em;margin-top:10px;text-wrap:pretty}
.day__d{max-width:68ch}
.ses__t{font:500 var(--type-subhead)/1.35 var(--body);letter-spacing:0}
.ses__q{font-weight:400;margin-top:10px}
.ses__speakers{font-weight:500}
.who__n{font:500 var(--type-body)/1.45 var(--body);letter-spacing:0}
.outro__t{font:400 var(--type-heading)/1.2 var(--body);letter-spacing:0}
@media(max-width:1100px){.card:not([data-open]) .card__t{font-size:20px!important}}
@media(max-width:900px){.card:not([data-open]) .card__t{font-size:var(--type-subhead)!important}}
@media(max-width:620px){
  :root{--type-heading:32px;--type-day:28px;--type-subhead:20px}
  #card-2[data-open] .hotel-heading .card__t{font-size:var(--type-heading)!important}
  .days .day{padding:26px 16px}
  .days .day__t span{line-height:1.45}
  #form-main .actions{gap:16px}
  .actions .btn{width:100%}
  .privacy-note{flex-basis:100%;max-width:none}
  .foot__meta{letter-spacing:0}
}

.travel-day{display:grid;grid-template-columns:minmax(52px,.7fr) minmax(80px,1fr);gap:12px;min-width:0}
.travel-day input,.travel-day select{width:100%;min-width:0}
.request-optional{font-size:var(--type-caption);font-weight:400;color:#62594F}

/* Success confirmation appears only after the collector acknowledges the save. */
.actions .done:not(:empty):not([data-error]){background:var(--cheeto);color:var(--ink);border:1px solid var(--ink);padding:14px 18px;font:600 var(--type-body)/1.5 var(--body);letter-spacing:0}
