.forecast-page header{position:sticky;top:0}
.forecast-hero{position:relative;padding:30px max(24px,calc((100vw - 1180px)/2)) 25px;isolation:isolate}
.forecast-hero::before{content:"";position:absolute;z-index:-1;inset:0 0 auto;height:150px;background:var(--hero-wash);mask-image:linear-gradient(to bottom,#000 0,#000 68%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 68%,transparent 100%)}
.forecast-hero>small,.forecast-heading small{font-size:11px;font-weight:700;letter-spacing:1.8px;color:#718d99}
.forecast-hero h1{font:44px/1.15 Georgia,serif;margin:12px 0}
.forecast-hero>p{max-width:880px;margin:0;color:#637e8c;font-size:16px;line-height:1.6}
.forecast-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:18px;color:#607d8b;font-size:12px;line-height:1.4}
.forecast-badge{display:inline-flex;align-items:center;border:1px solid #c9dfe5;border-radius:999px;padding:6px 11px;background:#edf7f8;color:#28687f;font-weight:700}
.forecast-badge.fresh{background:#eff8f3;color:#286e55;border-color:#cee4d8}
.forecast-badge.retained,.forecast-badge.expired{background:#fff7e6;color:#835911;border-color:#e9d7ad}
.forecast-main{width:min(1180px,calc(100% - 48px));margin:auto;padding-bottom:0}
.forecast-sections{position:sticky;top:100px;z-index:30;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:0 0 25px;padding:9px;background:#f7fbfcf5;border:1px solid var(--line);border-radius:13px;backdrop-filter:blur(12px)}
.forecast-sections a{display:flex;min-height:42px;align-items:center;justify-content:center;text-decoration:none;font-size:14px;font-weight:700;color:#4c7485;border-radius:8px;white-space:nowrap}
.forecast-sections a:hover,.forecast-sections a:focus-visible,.forecast-sections a.is-active{color:#fff;background:#287fa5;outline-offset:3px}
.forecast-panel{scroll-margin-top:184px;margin:0 0 28px;padding:28px;background:#fff;border:1px solid var(--line);border-radius:15px}
.forecast-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}
.forecast-heading h2{margin:8px 0 0;font:29px/1.2 Georgia,serif}
.forecast-panel h3{font:22px/1.3 Georgia,serif;margin:0 0 12px}
.forecast-panel p{line-height:1.65;font-size:15px}
.forecast-timestamp{font-size:12px!important;color:#617a88;line-height:1.6;max-width:325px}
.forecast-heading>.forecast-timestamp{text-align:right}
.forecast-notice{padding:12px 14px;border-left:3px solid #b7822d;background:#fff8eb;color:#7c5a28;border-radius:0 8px 8px 0;font-size:13px!important}
.forecast-panel .forecast-note,.forecast-note{font-size:13px;color:#637b89;line-height:1.6}
.pressure-centres{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.pressure-centre{padding:20px;border:1px solid #d9e8ed;border-radius:12px;background:#f8fbfc}
.pressure-centre .centre-heading{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.pressure-letter{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:#ecf3fa;color:#3c77a2;font:26px Georgia}
.pressure-centre.high .pressure-letter{background:#f9efdf;color:#a26628}
.pressure-centre .centre-heading h3{font:20px/1.3 Georgia;margin:0}
.pressure-centre p{margin:0;font-size:14px;color:#456678}
.pressure-centre .centre-coordinates{display:block;font-size:12px;color:#607c8b;margin-top:4px}
.upper-flow{margin:24px 0;border-top:1px solid var(--line);padding-top:24px}
.upper-flow>p{color:#476777}
.europe-flows{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.flow-item{padding:14px;border-radius:10px;background:#f2f8fa;font-size:13px;line-height:1.6}
.flow-item b{display:block;margin-bottom:4px}.flow-item span{display:block;color:#597886}
.fronts-detail{padding-top:20px;border-top:1px solid var(--line)}
.fronts-detail summary,.forecast-method>summary{cursor:pointer;font-size:16px;font-weight:700;min-height:44px;line-height:1.5;padding:10px 0}
.fronts-detail>p{color:#577381;margin:9px 0}
.fronts-map-link{display:block;text-decoration:none;color:#287fa5;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:16px 0}
.fronts-map-link img{display:block;width:100%;height:auto;max-height:650px;object-fit:contain;background:#f9fbfc}
.fronts-map-link span{display:block;padding:12px 16px;text-align:center;font-size:13px;font-weight:700;background:#f1f7f9}
.forecast-periods,.forecast-chart-tabs{display:flex;gap:8px;flex-wrap:wrap}
.forecast-periods button,.forecast-chart-tabs button{flex:1;min-height:44px;padding:10px 14px;border:1px solid #ccdee6;border-radius:999px;background:#f6fafb;color:#456d7f;font:700 14px Arial;cursor:pointer}
.forecast-periods button[aria-pressed=true],.forecast-chart-tabs button[aria-pressed=true]{background:#287fa5;color:#fff;border-color:#287fa5}
.forecast-periods{max-width:650px}.forecast-chart-tabs{max-width:650px;margin:28px 0 20px}
.regional-forecasts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}
.region-card{border:1px solid var(--line);border-radius:12px;padding:21px;background:#fcfefe}
.region-card>p{margin:0;color:#466677;font-size:14px}
.region-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 0;padding-top:14px;border-top:1px solid var(--line)}
.region-values dt{font-size:11px;color:#637d89;line-height:1.4;min-height:30px}
.region-values dd{margin:6px 0 0;font:20px Georgia}
.local-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.local-day{padding:19px;border:1px solid var(--line);border-radius:12px;background:#f7fbfc}
.local-day p{margin:0;color:#466677;font-size:14px}
.local-effects{margin:23px 0;color:#466677}
.forecast-uncertainty{padding:18px 20px;border:1px solid #e6ddc9;border-radius:12px;background:#fcf9f1}
.forecast-uncertainty h3{font-size:21px}.forecast-uncertainty p{margin:0;color:#71634e;font-size:14px}
.forecast-alert-link{display:inline-block;min-height:44px;margin-top:13px;padding:12px 0;color:#287fa5;font-size:14px;font-weight:700;text-underline-offset:3px}
.eight-day-cards{display:grid;grid-template-columns:repeat(8,minmax(125px,1fr));gap:9px;overflow-x:auto;overscroll-behavior-x:contain;padding:5px 0 15px;scroll-snap-type:x proximity}
.eight-day-card{scroll-snap-align:start;padding:15px 8px;text-align:center;border:1px solid #d8e7ec;border-radius:12px;background:#f7fbfc}
.eight-day-card h3{font:21px Georgia;margin:0 0 4px}.eight-day-card>.day-date{font-size:12px;color:#657f8d}
.day-symbols{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin:17px 0}
.day-symbols span{display:flex;flex-direction:column;gap:5px;align-items:center}.day-symbols i{font-style:normal;font-size:23px;line-height:1.3}.day-symbols small{font-size:10px;color:#526f7f}
.day-temperatures{font:22px Georgia;white-space:nowrap;margin:12px 0 8px}.day-temperatures .day-low{color:#357fa1}.day-temperatures .day-high{color:#ad692b}
.day-rain{font-size:13px;font-weight:700;color:#426f82}
.forecast-chart-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}
.forecast-chart-heading h3{margin:0}.forecast-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;color:#4f6d7c}
.forecast-legend span{display:flex;gap:6px;align-items:center}.forecast-legend i{display:inline-block;width:20px;height:3px;border-radius:2px}.forecast-legend i.band{height:10px;opacity:.3}
.chart-help{font-size:13px!important;color:#5c7886;margin:12px 0}
.forecast-chart-scroll{width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid #e0eaef;border-radius:10px;touch-action:pan-x pan-y pinch-zoom}
.forecast-chart-scroll svg{display:block;width:100%;min-width:980px;height:auto;cursor:crosshair;-webkit-tap-highlight-color:transparent;touch-action:pan-x pan-y pinch-zoom}
.forecast-chart-scroll svg:focus-visible{outline:2px solid #287fa5;outline-offset:-3px}
.forecast-point-controls{display:flex;align-items:center;gap:12px;margin-top:14px;min-height:56px}
.forecast-point-controls button{flex:0 0 44px;width:44px;min-height:44px;border:1px solid #c9dce5;border-radius:50%;background:#f1f8fa;color:#287fa5;font:28px Georgia;cursor:pointer}
.forecast-point-controls button:disabled{opacity:.35;cursor:default}
.forecast-point-controls p{flex:1;text-align:center;font-size:13px;line-height:1.5;color:#436777;margin:0}
.forecast-method{margin:0 0 28px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px 25px;scroll-margin-top:90px}
.forecast-method>summary{color:#4d7282}.method-content{max-width:950px;font-size:14px;line-height:1.7;color:#4d6b7c;padding-bottom:10px}.method-content h3{font:22px Georgia;color:var(--ink);margin-top:23px}.method-content a{color:#23769b;text-underline-offset:3px}.loading-copy{font-size:14px;color:#607c8b}
.forecast-page [hidden]{display:none!important}
@media(max-width:900px){.forecast-page header{position:relative;top:auto}.forecast-sections{top:0}.forecast-panel{scroll-margin-top:84px}.forecast-hero{padding-top:23px}.forecast-hero h1{font-size:34px}.forecast-main{width:calc(100% - 32px)}.forecast-heading{display:block}.forecast-heading>.forecast-timestamp{display:block;text-align:left;max-width:none;margin-top:12px}.forecast-panel{padding:22px}.local-days{grid-template-columns:1fr}.local-day{padding:17px}.forecast-sections{margin-bottom:20px}.forecast-panel h2{font-size:27px}.pressure-centres,.regional-forecasts{grid-template-columns:1fr}}
@media(max-width:520px){.forecast-hero{padding:22px 18px}.forecast-hero h1{font-size:31px}.forecast-hero>p{font-size:15px}.forecast-meta{font-size:12px}.forecast-main{width:calc(100% - 24px)}.forecast-panel{padding:19px 16px;margin-bottom:22px}.forecast-panel h2{font-size:25px}.forecast-heading small{font-size:10px;letter-spacing:1.4px}.forecast-sections{padding:5px;gap:2px;border-radius:11px}.forecast-sections a{font-size:12px;min-height:42px}.pressure-centre,.region-card{padding:17px}.pressure-centre .centre-heading h3{font-size:21px}.europe-flows{grid-template-columns:1fr}.flow-item{display:grid;grid-template-columns:1fr 1fr;gap:4px}.flow-item b{grid-column:1/-1}.forecast-periods button,.forecast-chart-tabs button{font-size:13px;padding:10px 7px}.forecast-periods,.forecast-chart-tabs{gap:6px}.forecast-point-controls{gap:7px}.forecast-point-controls p{font-size:12px}.forecast-method{padding:10px 17px}.region-values dd{font-size:19px}.forecast-uncertainty{padding:17px}.eight-day-cards{grid-template-columns:repeat(8,140px)}}
@media(prefers-reduced-motion:no-preference){.forecast-page .forecast-sections a{transition:background .15s,color .15s}}
