/* The planner keeps two primary choices; detail lives in the itinerary. */
.hero-grid { gap:2rem; align-items:center; }
.hero h1 { max-width:850px; }
.hero p:not(.eyebrow) { max-width:690px; }
.planner { grid-template-columns:minmax(280px,330px) minmax(0,1fr); gap:2rem; }
.panel { padding:1.4rem; box-shadow:0 8px 28px rgba(5,38,46,.06); }
.hint,.chip,.preferences summary,.powered small { font-size:.875rem; }
.eyebrow { font-size:.875rem; letter-spacing:.08em; }
.powered small { letter-spacing:.05em; }
.results-head { margin-bottom:.85rem; }
.results-head h2 { font-size:clamp(2.25rem,3.7vw,3.25rem); scroll-margin-top:1rem; }
.plan-context { margin:0 0 .6rem; font-size:1rem; color:var(--ink); }
.budget-context { margin:0 0 1.4rem; font-size:.875rem; color:var(--muted); }
.day { margin-bottom:1.4rem; border-radius:1rem; }
.day-head { align-items:center; justify-content:flex-start; gap:1rem; padding:1.15rem 1.3rem; }
.day-head h3 { font-size:1.75rem; line-height:1.12; }
.day-number { align-self:flex-start; color:var(--sand); font-family:Georgia,serif; font-size:2.4rem; line-height:1.2; }
.day-theme { margin:0 0 .4rem; color:#d2e9e6; font-size:.875rem; font-weight:600; }
.route-note { margin:0; padding:.85rem 1.3rem; color:var(--atlantic); background:var(--foam); font-size:.875rem; }
.stop { grid-template-columns:100px minmax(0,1fr); padding:1.2rem 1.3rem; gap:1rem; }
.time { font-size:.875rem; letter-spacing:0; text-transform:none; line-height:1.45; padding-top:.12rem; }
.stop h4 { font-size:1.0625rem; line-height:1.4; margin-bottom:.35rem; }
.stop p { font-size:1rem; line-height:1.55; }
.stop-meta { display:flex; flex-wrap:wrap; gap:.3rem .9rem; margin-top:.65rem; color:var(--muted); font-size:.8125rem; }
.stop-meta span + span { border-left:1px solid var(--line); padding-left:.9rem; }
.stop-links { display:flex; flex-wrap:wrap; gap:.1rem 1.4rem; margin-top:.25rem; }
.stop-links a,.dinner-note a,.rain-backup a { color:var(--teal-2); font-size:.875rem; font-weight:700; text-underline-offset:4px; }
.stop-links a { display:inline-flex; align-items:center; min-height:44px; }
.dinner-note { margin:0; padding:1rem 1.3rem; border-top:1px solid var(--line); font-size:.9375rem; }
.dinner-note a { display:inline-block; padding:.4rem 0; }
.rain-backup { padding:.25rem 1.3rem; border-top:1px solid var(--line); background:#f5f9f8; }
.rain-backup summary { padding:.8rem 0; color:var(--teal-2); font-size:.875rem; font-weight:700; cursor:pointer; }
.rain-backup p { margin:.1rem 0 1rem; font-size:.9375rem; line-height:1.55; }
.stay-card { grid-template-columns:130px minmax(0,1fr); gap:1rem; }
.stay-card img { height:130px; }
.stay-card p { font-size:.875rem; }
.stay-card .stay-button { grid-column:2; width:fit-content; margin-top:-.1rem; font-size:.875rem; white-space:normal; }
.sr-only { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
@media (max-width:900px) {
  .planner { grid-template-columns:minmax(0,1fr); }
  .panel { position:static; }
  .hero-grid { grid-template-columns:1fr; gap:1rem; }
  .powered { padding:0; border:0; background:none; }
  .powered small,.powered strong { display:inline; }
  .powered strong { margin-left:.5rem; font-size:1.125rem; }
  .panel .group { margin-top:1rem; }
}
@media (max-width:620px) {
  .panel { padding:1.2rem; }
  .day-head { padding:1rem; gap:.8rem; }
  .day-head h3 { font-size:1.65rem; }
  .day-number { font-size:2rem; }
  .route-note,.dinner-note { padding:.9rem 1rem; }
  .stop { grid-template-columns:minmax(0,1fr); padding:1rem; gap:.5rem; }
  .time { grid-column:auto; }
  .rain-backup { padding:.25rem 1rem; }
  .stay-card { grid-template-columns:minmax(0,1fr); }
  .stay-card img { height:190px; }
  .stay-card .stay-button { grid-column:auto; width:100%; text-align:center; }
  .results-head h2 { font-size:2.45rem; }
}
