/* A forecast is supporting trip information, never a competing hero. */
.weather-bar { padding-block:2rem; background:var(--soft); border-bottom:1px solid var(--line); }
.weather-panel { color:var(--ink); font-size:.85rem; line-height:1.5; }
.weather-heading { display:flex; align-items:start; justify-content:space-between; gap:1rem; }
.weather-heading h2 { margin:0; color:var(--forest); font-family:var(--font-display); font-size:1.25rem; font-weight:700; line-height:1.3; overflow-wrap:normal; }
.weather-heading p { margin:.3rem 0 0; color:var(--muted); }
.weather-zone { flex-shrink:0; color:var(--muted); font-size:.75rem; }
.weather-intro { margin:.8rem 0; color:var(--muted); }
.weather-content { position:relative; min-height:168px; }
.weather-status { margin:0; padding-block:1.2rem; }
.weather-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; }
.weather-grid[hidden],.weather-panel [hidden] { display:none; }
.weather-card { min-width:0; min-height:168px; padding:.9rem 1rem; border:1px solid var(--line); border-radius:8px; background:var(--white); }
.weather-day { margin:0 0 .3rem; font-size:.85rem; font-weight:700; line-height:1.35; overflow-wrap:normal; }
.weather-time { display:block; color:var(--muted); font-size:.75rem; }
.weather-metric { display:flex; align-items:center; gap:.7rem; margin-block:.6rem .4rem; color:var(--forest); }
.weather-icon { width:34px; height:34px; flex:none; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.weather-temperature { font-size:1.7rem; font-weight:650; line-height:1.2; }
.weather-condition,.weather-missing { margin:0; font-size:.8rem; }
.weather-updated,.weather-notice,.weather-source,.weather-noscript { margin:.65rem 0 0; color:var(--muted); font-size:.75rem; }
.weather-updated { min-height:1.15rem; }
.weather-panel .weather-updated[hidden] { display:block; visibility:hidden; }
.weather-source a { text-underline-offset:.2em; }
.weather-retry { min-height:44px; padding:.55rem 1rem; border:1px solid var(--forest); border-radius:5px; color:var(--forest); background:#fff; font:inherit; cursor:pointer; }
.weather-retry:disabled { color:var(--muted); border-color:var(--line); cursor:wait; }
.gate-utilities { position:absolute; z-index:6; inset-block-start:24px; inset-inline-start:24px; display:flex; flex-wrap:wrap; align-items:center; gap:12px; max-width:calc(100% - 48px); }
.gate-utilities>.map-home-entry { position:static; margin:0; }
.gate-utilities>.map-home-entry a { display:inline-flex; align-items:center; min-height:44px; white-space:nowrap; }
.gate-weather { position:static; }
.gate-weather>summary { display:flex; align-items:center; gap:.65rem; min-height:44px; padding:.5rem .9rem; border:1px solid #ffffff80; border-radius:999px; background:var(--paper); color:var(--forest-dark); font-size:.8rem; font-weight:650; list-style:none; cursor:pointer; }
.gate-weather>summary::-webkit-details-marker { display:none; }
.gate-weather[open]>summary>span { transform:rotate(45deg); }
.gate-weather .weather-panel { position:absolute; inset-inline-start:0; inset-inline-end:auto; inset-block-start:calc(100% + .6rem); width:min(700px,calc(100vw - 48px)); max-height:calc(100svh - 160px); overflow:auto; overscroll-behavior:contain; padding:1.25rem; border:1px solid var(--line); border-radius:12px; background:var(--paper); box-shadow:0 12px 35px #0003; }
.gate-weather .weather-panel p { max-width:none; color:var(--muted); font-size:.75rem; line-height:1.5; }
.gate-weather .weather-panel .weather-condition,.gate-weather .weather-panel .weather-status { color:var(--ink); font-size:.8rem; }
@media (max-width:640px) {
  .weather-bar { padding-block:1.4rem; }
  .weather-heading { display:block; }
  .weather-zone { display:block; margin-block-start:.45rem; }
  .weather-heading h2 { font-size:1.15rem; }
  .weather-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; }
  .weather-content { min-height:348px; }
  .weather-card { min-height:168px; padding:.85rem .75rem; }
  .weather-temperature { font-size:1.55rem; }
  .gate-utilities { inset-inline-start:14px; inset-block-start:16px; max-width:calc(100% - 28px); gap:8px; }
  .gate-weather>summary { padding:.5rem .7rem; font-size:.75rem; }
  .gate-weather .weather-panel { inset-block-start:calc(100% + 4.25rem); width:calc(100vw - 28px); padding:1rem; }
  .language-gate .video-play-button { inset-block-start:4.5rem; }
  .language-gate .language-gate-content { padding-block-start:8.5rem; }
}
@media (min-width:641px) and (max-height:480px) { .language-gate .language-gate-content { padding-block-start:7rem; } }
@media (prefers-reduced-motion:reduce) { .gate-weather>summary>span { transform:none; } }
