/* v1.25.0 — Global Design System Phase 1.
 * OWNER: layout primitives, controls, surfaces, shared typography and shell geometry.
 * Shared typography, controls, surfaces and focus states are token-owned.
 * Route-family owners keep only composition/data-specific styling. */
.container,.page-container{width:min(calc(100% - (var(--page-pad)*2)),var(--container));margin-inline:auto}
.page-shell{width:100%;min-width:0}
.content-container{width:min(calc(100% - (var(--page-pad)*2)),var(--content-wide));margin-inline:auto}
.content-narrow{width:min(calc(100% - (var(--page-pad)*2)),var(--content-copy));margin-inline:auto}
.section{min-width:0;margin-top:var(--space-10)}
.grid{display:grid;min-width:0;gap:var(--space-5)}
.stack{display:grid;min-width:0;gap:var(--space-4)}
.cluster{display:flex;min-width:0;flex-wrap:wrap;align-items:center;gap:var(--space-3)}
.skip-link{position:fixed;left:12px;top:-100px;z-index:100000;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);color:var(--link);box-shadow:var(--shadow-sm)}
.skip-link:focus{top:12px}
.sr-only,.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--primary-dark);outline-offset:3px;box-shadow:0 0 0 3px var(--focus)}
.eyebrow,.hero-kicker{display:block;margin:0 0 var(--space-2);color:var(--primary-dark);font-size:var(--font-xs);font-weight:var(--weight-bold);line-height:1.35;letter-spacing:.04em;text-transform:uppercase}
.text-link,.text-link-button,.ui-link-action{color:var(--link);font-size:var(--font-sm);font-weight:var(--weight-medium);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.text-link:hover,.text-link-button:hover,.ui-link-action:hover{color:var(--link-hover)}

/* Canonical action system: primary / secondary / compact / icon / toggle share one owner. */
.button{display:inline-flex;min-height:var(--control);align-items:center;justify-content:center;gap:var(--space-2);padding:0 var(--space-5);border:1px solid transparent;border-radius:var(--radius-control);font-size:var(--font-sm);font-weight:var(--weight-bold);line-height:1.2;text-align:center;text-decoration:none;touch-action:manipulation;transition:background-color var(--transition),border-color var(--transition),color var(--transition),box-shadow var(--transition),transform var(--transition)}
.button-primary{background:var(--primary-action);color:var(--on-brand)}.button-primary:hover{background:var(--primary-action-hover);color:var(--on-brand)}.button-primary:active{transform:translateY(1px)}
.button-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--heading)}.button-secondary:hover{background:var(--primary-soft);border-color:var(--primary-line);color:var(--primary-dark)}
.button-small{min-height:var(--touch);padding-inline:12px;font-size:var(--font-xs)}
.button[disabled],.button[aria-disabled="true"]{opacity:var(--disabled-opacity);cursor:not-allowed;transform:none}
.button[aria-busy="true"]{cursor:wait}
.button-secondary:active{transform:translateY(1px)}
.ui-secondary-control,.ui-toggle-button,.ui-icon-button:not([hidden]){display:inline-flex;min-height:var(--touch);align-items:center;justify-content:center;gap:7px;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface);color:var(--primary-dark);font-size:var(--font-sm);font-weight:var(--weight-medium);line-height:1.2;touch-action:manipulation;transition:background-color var(--transition),border-color var(--transition),color var(--transition)}
.ui-secondary-control,.ui-toggle-button{padding:0 14px}.ui-icon-button{width:var(--touch);min-width:var(--touch);padding:0}
.ui-secondary-control:hover,.ui-toggle-button:hover,.ui-icon-button:hover{border-color:var(--primary-line);background:var(--primary-soft);color:var(--primary-dark)}
.ui-toggle-button[aria-pressed="true"],.ui-secondary-control.is-selected,.ui-icon-button.is-selected{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}
.ui-secondary-control:disabled,.ui-toggle-button:disabled,.ui-icon-button:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}

/* Canonical form/search system: field, control, validation, search, filter and listbox share one owner. */
.ui-form,.ui-field,.ui-control-wrap,.ui-filter-controls,.ui-tool-controls{min-width:0}
.ui-field{display:grid;gap:var(--space-1)}
.ui-field-label{display:block;color:var(--heading);font-size:var(--font-sm);font-weight:var(--weight-medium);line-height:1.35}
.ui-field-help{margin:var(--space-1) 0 0;color:var(--muted);font-size:var(--font-xs);line-height:1.5}
.ui-control,input:not([type="checkbox"]):not([type="radio"]),select,textarea{min-width:0;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface);color:var(--text);padding:0 var(--space-4);font:inherit;font-size:var(--font-sm);line-height:1.4;transition:border-color var(--transition),background-color var(--transition),box-shadow var(--transition),color var(--transition),opacity var(--transition)}
.ui-control,input:not([type="checkbox"]):not([type="radio"]),select{min-height:var(--control)}
.ui-control{width:100%}.ui-control::placeholder,input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
textarea.ui-control,textarea{min-height:120px;padding-block:var(--space-3);resize:vertical}
.ui-control:hover:not(:disabled):not([aria-disabled="true"]),input:not([type="checkbox"]):not([type="radio"]):hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--primary-line)}
.ui-control:focus,input:not([type="checkbox"]):not([type="radio"]):focus,select:focus,textarea:focus{position:relative;z-index:1;border-color:var(--primary-dark);outline:0;box-shadow:0 0 0 3px var(--focus)}
.ui-control:disabled,.ui-control[aria-disabled="true"],input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;background:var(--surface-muted);color:var(--muted);opacity:.72}
.ui-form :is(.ui-control,input,select,textarea)[aria-invalid="true"]{border-color:var(--danger-line);background:var(--danger-soft);color:var(--text)}
.ui-form :is(.ui-control,input,select,textarea)[aria-invalid="true"]:focus{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-focus)}
.ui-form-validation-status:not(:empty){grid-column:1/-1;margin-top:var(--space-2);color:var(--danger);font-size:var(--font-xs);font-weight:var(--weight-medium);line-height:1.45}
.ui-select{padding-right:var(--space-7)}
.ui-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}
.ui-form-grid .ui-field{align-self:end}
.ui-submit{white-space:nowrap}
.ui-submit[aria-busy="true"]{cursor:wait}
.ui-search-form{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2);align-items:end;min-width:0}
.ui-search-form .ui-control-wrap{position:relative}
.ui-search-form .ui-search-input{padding-right:52px}
.ui-search-submit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2);align-items:center;min-width:0}
.ui-filter-form{min-width:0}
.ui-filter-controls{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--space-2);align-items:center}
.ui-reset{white-space:nowrap}
.ui-options{display:grid;gap:0;overflow:hidden;border:1px solid var(--border-strong);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-md)}
.ui-option{display:grid;min-height:56px;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:transparent}
.ui-option:last-child{border-bottom:0}
.ui-option:is(:hover,.is-active,[aria-selected="true"]){background:var(--primary-soft)}
.ui-option[aria-selected="true"]{box-shadow:inset 3px 0 0 var(--primary)}
.ui-option:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;box-shadow:none}
.ui-options[hidden],.ui-link-action[hidden]{display:none}

/* Canonical card / panel / answer surfaces. Geometry lives here; route owners keep only composition. */
.card,.ds-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:none}
.ds-panel--strong{border-color:var(--border-strong)}
.ds-panel--quiet{background:var(--surface-soft);box-shadow:none}
.ds-answer-surface{min-width:0;padding:var(--space-6);border:1px solid var(--primary-line);border-radius:var(--radius-card);background:var(--surface-info);box-shadow:none}
.data-summary-grid,.data-summary-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.data-summary-card{min-width:0;padding:16px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);box-shadow:none}
.data-summary-card small{display:block;margin-bottom:4px;color:var(--muted);font-size:var(--font-xs)}.data-summary-card strong,.data-summary-card h3{display:block;color:var(--heading);font-size:var(--font-ui-title)}.data-summary-card p{margin:5px 0 0;color:var(--text-2);font-size:var(--font-xs)}
.ds-quiet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface)}
.ds-quiet-grid>article{min-width:0;padding:16px 18px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent}
.ds-quiet-grid>article:last-child{border-right:0}.ds-quiet-grid small{display:block;margin-bottom:4px;color:var(--muted);font-size:var(--font-xs)}.ds-quiet-grid strong{display:block;color:var(--heading);font-size:var(--font-sm);font-weight:var(--weight-medium);line-height:1.4}.ds-quiet-grid p{margin:5px 0 0;color:var(--text-2);font-size:var(--font-xs);line-height:1.52}
.ds-section-open,.section-block{background:transparent;border:0;border-radius:0;box-shadow:none}
:where(.metric-page-icon,.location-signal-icon,.intent-answer-visual,.demo27-section-icon,.demo27-event-icon,.event-link-visual,.climate-highlight-icon)>svg{display:block;flex:0 0 auto}

.weather-page,.content-layout{padding-block:var(--space-7) var(--space-11)}
.weather-page>.container,.content-layout{min-width:0}
.section-block{margin-top:var(--space-10)}
/* Canonical section heading: one hierarchy for eyebrow / H2 / description / action. */
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3) var(--space-7);margin-bottom:var(--space-6)}
.section-heading>div:first-child{min-width:0;max-width:var(--content-copy)}.section-heading h2{max-width:var(--content-copy);font-size:var(--font-h2);line-height:var(--line-heading);letter-spacing:-.025em}
.section-heading :is(.eyebrow,.hero-kicker){margin-bottom:var(--space-1)}
.section-heading p:not(.eyebrow):not(.section-subtle){max-width:var(--reading-measure);margin:var(--space-2) 0 0;color:var(--text-2);font-size:var(--font-sm);line-height:1.6}
.section-heading>.text-link,.section-heading>.section-subtle{flex:0 0 auto;align-self:flex-end}.section-heading>.text-link{display:inline-flex;min-height:var(--touch);align-items:center}
.section-subtle{max-width:360px;color:var(--muted);font-size:var(--font-xs);line-height:1.45;text-align:right}

/* v1.20.11 shared functional primitives: same function = same owner/class. */
.ds-link-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;border-top:1px solid var(--line)}
.ds-link-list>a{display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--heading);font-size:var(--font-sm);font-weight:var(--weight-medium)}
.ds-link-list>a:hover{background:var(--surface-hover)}
.ds-link-list>a>span:not([aria-hidden="true"]){display:grid;gap:2px;min-width:0}
.ds-link-list>a strong{color:var(--heading);font-size:var(--font-sm);font-weight:var(--weight-medium);line-height:1.35}
.ds-link-list>a small{color:var(--muted);font-size:var(--font-xs);font-weight:var(--weight-regular);line-height:1.4}
.ds-link-list>a:focus-visible{outline:2px solid var(--primary);outline-offset:2px;box-shadow:0 0 0 3px var(--focus)}
.ds-link-list>a[aria-current="page"]{background:var(--primary-soft);color:var(--primary-dark)}
.ds-link-list>a>span[aria-hidden="true"]:first-child{display:grid;flex:0 0 36px;width:36px;height:36px;place-items:center;border-radius:var(--radius-control);background:var(--surface-muted);color:var(--primary-dark)}
.ds-link-list>a>span[aria-hidden="true"]:first-child svg{width:20px;height:20px}
.ds-link-list>a>b,.ds-link-list>a>i:last-child,.ds-link-list>a>span:last-child[aria-hidden="true"]{flex:0 0 auto;color:var(--link);font-size:var(--font-body);font-style:normal;font-weight:var(--weight-medium)}
.ds-faq-list{display:grid;border-block:1px solid var(--border)}
.ds-faq-list>.ui-disclosure{border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}
.ds-faq-list>.ui-disclosure:last-child{border-bottom:0}
.ds-faq-list>.ui-disclosure[open]{background:var(--surface-soft)}
.ds-faq-list>.ui-disclosure>summary{min-height:56px;padding:14px 2px;color:var(--heading);font-size:var(--font-sm);font-weight:var(--weight-medium)}
.ds-faq-list>.ui-disclosure>div{max-width:var(--reading-measure);padding:0 34px 14px 2px}
.ds-faq-list>.ui-disclosure p{margin:0;color:var(--text-2);font-size:var(--font-xs);line-height:1.6}
/* Canonical table workspace: semantic tables and ARIA data grids share one scroll/focus shell. */
.data-table-shell{position:relative;max-width:100%;min-width:0;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);scrollbar-width:thin;scroll-padding-inline:var(--space-2);overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.data-table-shell:focus-visible{outline:2px solid var(--primary);outline-offset:2px;box-shadow:0 0 0 3px var(--focus)}
.data-table{width:100%;font-variant-numeric:tabular-nums}
table.data-table{min-width:680px;border-collapse:collapse}
table.data-table :is(th,td){padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;font-size:var(--font-xs);line-height:1.4}
table.data-table thead th{position:sticky;top:0;z-index:2;background:var(--surface-soft);color:var(--muted);font-size:var(--font-xs);font-weight:var(--weight-medium);white-space:nowrap}
table.data-table tbody tr{background:var(--surface)}
table.data-table tbody tr:last-child>*{border-bottom:0}
table.data-table tbody tr:hover{background:var(--surface-hover)}
table.data-table--numeric-columns thead th:not(:first-child),table.data-table--numeric-columns tbody td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}
table.data-table--sticky-first :is(th,td):first-child{position:sticky;left:0;z-index:1;background:inherit;box-shadow:1px 0 0 var(--line)}
table.data-table--sticky-first thead th:first-child{z-index:3;background:var(--surface-soft)}
.ds-data-list{display:grid;min-width:0;gap:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface)}
.ds-data-list>*{min-width:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}
.ds-data-list>*:last-child{border-bottom:0}
/* Canonical data row/list/rail: owners keep only real column schemas and domain typography. */
.ds-data-row{display:grid;align-items:center;min-width:0;min-height:64px;padding:10px 14px;background:transparent}
:is(a,button).ds-data-row{width:100%;color:inherit;text-align:left;cursor:pointer}
:is(a,button).ds-data-row:hover{background:var(--surface-hover)}
:is(a,button).ds-data-row:focus-visible{position:relative;z-index:1;outline:2px solid var(--primary);outline-offset:-3px}
button.ds-data-row:disabled{cursor:default;opacity:.68}
button.ds-data-row:disabled:hover{background:transparent}
button.ds-data-row[aria-expanded="true"]{background:var(--surface-soft);box-shadow:inset 3px 0 0 var(--primary)}
.ds-data-row:is(.is-current,.is-now,.is-today,.is-best),.ds-data-row[aria-current="date"]{background:var(--primary-soft)}
.ds-data-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,1fr);gap:0;max-width:100%;min-width:0;overflow-x:auto;padding:0;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);scrollbar-width:thin;scroll-snap-type:x proximity;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.ds-data-rail:focus-visible{outline:2px solid var(--primary);outline-offset:2px;box-shadow:0 0 0 3px var(--focus)}
.ds-data-rail>.ds-data-rail-item{display:grid;align-content:start;gap:6px;min-width:0;padding:13px 14px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;scroll-snap-align:start}
.ds-data-rail>.ds-data-rail-item:last-child{border-right:0}
.ds-data-rail>.ds-data-rail-item:is(.is-current,.is-now,.is-best){background:var(--primary-soft)}
.ds-data-rail>.ds-data-rail-item strong{color:var(--heading)}
.ds-data-rail>.ds-data-rail-item small{color:var(--muted);font-size:var(--font-xs)}
/* Canonical stat/signal strip: label -> value -> supporting note. Route owners only choose columns/context colors. */
.ds-signal-strip{--signal-divider:var(--border);--signal-label:var(--muted);--signal-value:var(--heading);--signal-note:var(--text-2);display:grid;min-width:0;border-block:1px solid var(--signal-divider)}
.ds-signal-strip>*{display:grid;align-content:center;gap:3px;min-width:0;padding:var(--space-3) var(--space-4);border-right:1px solid var(--signal-divider)}
.ds-signal-strip>*:first-child{padding-left:0}.ds-signal-strip>*:last-child{padding-right:0;border-right:0}
.ds-signal-strip small{color:var(--signal-label);font-size:var(--font-xs);line-height:1.35}
.ds-signal-strip strong{color:var(--signal-value);font-size:var(--font-lead);line-height:1.2;font-weight:var(--weight-medium);font-variant-numeric:tabular-nums}
.ds-signal-strip :is(em,p),.ds-signal-strip>*>span{margin:0;color:var(--signal-note);font-size:var(--font-xs);font-style:normal;line-height:1.4}
.region-classification-note,.source-note,.intent-provider-note{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--line);color:var(--muted);font-size:var(--font-xs);line-height:1.55}

.breadcrumbs,.content-breadcrumbs{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:0 0 var(--space-6);color:var(--muted);font-size:var(--font-xs)}
.breadcrumbs a,.content-breadcrumbs a{color:var(--link);text-decoration:underline;text-underline-offset:2px}
.breadcrumbs span[aria-hidden="true"],.content-breadcrumbs span[aria-hidden="true"]{color:#9aacb5}

/* Canonical product hero: shared task hierarchy; route owners keep only composition that is genuinely different. */
.product-page-hero,.forecast-landing-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3);margin:0 0 var(--space-7);padding:var(--space-2) 0 var(--space-7);border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}
.product-page-hero h1,.forecast-landing-hero h1{max-width:920px;margin:0;font-size:clamp(38px,4.5vw,var(--font-h1));line-height:var(--line-tight);letter-spacing:-.035em;text-wrap:balance}
.forecast-landing-lead{max-width:var(--content-copy);margin:0;color:var(--text-2);font-size:var(--font-lead);line-height:1.65;text-wrap:pretty;overflow-wrap:anywhere}
.forecast-landing-kicker{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--space-2) var(--space-3);color:var(--muted);font-size:var(--font-sm)}
.forecast-landing-kicker .eyebrow{margin:0}.forecast-landing-kicker>span:last-child:not(.eyebrow),.forecast-landing-kicker>time:last-child{color:var(--muted);font-size:var(--font-xs)}
.forecast-landing-meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px 15px;margin-top:var(--space-2);color:var(--muted);font-size:var(--font-xs);line-height:1.5}
.forecast-landing-meta a{color:var(--link);text-decoration:underline;text-underline-offset:2px}
.product-page-hero :is(.intent-hero-visual,.decision-hero-visual,.planning-hero-visual,.risk-hero-visual,.bestday-hero-visual,.trip-hero-visual,.legacy-intent-hero-visual,.deep-page-hero-visual,.content-hero-visual,.article-hero-visual){position:absolute;right:8px;top:4px;width:150px;max-width:22%;opacity:.07;pointer-events:none}
/* v1.20.24 media / figure primitives */
.ds-media-frame{display:block;overflow:hidden;min-width:0;background:var(--surface-muted)}
.ds-media-frame>img,.ds-media-frame>picture>img{display:block;width:100%;height:100%;object-fit:cover}
.ds-media-frame--contain>img,.ds-media-frame--contain>picture>img{object-fit:contain}
.ds-media-fallback{display:grid;place-items:center;color:var(--primary-dark);isolation:isolate}
.ds-figure{display:grid;min-width:0;max-width:100%;margin:0}
.ds-figure>img,.ds-figure>picture>img{display:block;max-width:100%;height:auto}
.ds-figure>figcaption{max-width:var(--reading-measure);margin:8px auto 0;padding-inline:var(--space-1);color:var(--muted);font-size:var(--font-xs);line-height:1.5;text-wrap:pretty}
.route-media-banner{position:relative;margin:var(--space-3) 0 0;border:1px solid var(--border);border-radius:var(--radius-xl);aspect-ratio:16/5}


.product-next-step{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);margin-top:var(--space-8);padding:var(--space-5) var(--space-6);border:1px solid var(--primary-line);border-radius:var(--radius-card);background:var(--surface-info)}
.product-next-step strong{display:block;margin-bottom:3px;color:var(--heading);font-size:var(--font-ui-title)}.product-next-step small,.product-next-step p{display:block;margin:0;color:var(--text-2);font-size:var(--font-sm)}
.intent-next-step-kicker{display:block;margin-bottom:3px;color:var(--primary-dark);font-size:var(--font-xs);font-weight:var(--weight-medium)}

/* Canonical public state system: empty / info / warning / error / success / loading share one owner. */
.ui-state{min-width:0;padding:var(--space-5);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:var(--radius-card);background:var(--surface);box-shadow:none;overflow-wrap:anywhere}
.ui-state[hidden]{display:none}.ui-state--info{border-left-color:var(--primary);background:var(--primary-soft)}.ui-state--empty{border-left-color:var(--border-strong);background:var(--surface-soft)}.ui-state--error{border-color:var(--danger-line);border-left-color:var(--danger);background:var(--danger-soft)}.ui-state--warning{border-color:var(--warning-line);border-left-color:var(--warning);background:var(--warning-soft)}.ui-state--success{border-left-color:var(--success);background:var(--success-soft)}.ui-state--loading{border-left-color:var(--primary);background:var(--surface-soft);cursor:progress}
.ui-state-body{min-width:0}.ui-state-kicker{display:block;margin-bottom:4px;color:var(--primary-dark);font-size:var(--font-xs);font-weight:var(--weight-medium)}.ui-state-title{display:block;color:var(--heading);font-size:var(--font-ui-title);font-weight:var(--weight-bold);line-height:1.35}.ui-state-copy{display:block;max-width:780px;margin:5px 0 0;color:var(--text-2);font-size:var(--font-sm);line-height:1.55}.ui-state-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ui-state--loading>.ui-state-body{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:3px 12px}.ui-state--loading>.ui-state-body>.ui-state-spinner{grid-row:1/5}.ui-state-spinner{width:24px;height:24px;flex:0 0 24px;border:3px solid var(--border);border-top-color:var(--primary-dark);border-radius:50%;animation:dbtt-spin .8s linear infinite}@keyframes dbtt-spin{to{transform:rotate(360deg)}}
.weather-page-state{margin-top:var(--space-5)}.ui-state--page{width:100%;max-width:900px;margin-top:var(--space-7);padding:var(--space-6)}.ui-state--compact{padding:14px 16px}.ui-state--inline{padding:10px 12px;border-radius:var(--radius-control)}
@media(max-width:820px){.ui-state--page{padding:var(--space-5)}.ui-state-actions{display:grid;grid-template-columns:1fr}.ui-state-actions .button{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.ui-state-spinner{animation-duration:1.6s}}

/* Canonical site shell — Phase 1C owner: header/navigation + footer/trust/end-of-page shell. */

/* Admin-bar-aware sticky geometry. WordPress does not guarantee a public CSS custom
 * property for the toolbar across all supported installs, so own the offset here. */
:root{--dbtt-admin-bar-offset:0px}
body{--dbtt-anchor-offset:calc(var(--header-height) + var(--dbtt-admin-bar-offset,0px) + var(--space-4))}
body.admin-bar{--dbtt-admin-bar-offset:32px}
@media(max-width:782px){body.admin-bar{--dbtt-admin-bar-offset:46px}}

.site-header{position:sticky;top:var(--dbtt-admin-bar-offset,0px);z-index:999;width:100%;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:none;transition:border-color var(--transition),box-shadow var(--transition),background var(--transition)}
.site-header.is-scrolled,.site-header.has-open-nav{border-bottom-color:var(--border-strong);background:var(--surface);box-shadow:var(--shadow-sm)}
.header-inner{position:relative;display:flex;min-height:var(--header-height);align-items:center;gap:18px}
.brand{flex:0 1 224px;min-width:0}.brand a,.footer-brand-logo a{display:flex;align-items:center}.brand-text--weather{display:inline-flex;min-height:var(--touch);max-width:100%;align-items:center;gap:var(--space-2);overflow:hidden}.brand-weather-mark{display:grid;flex:0 0 42px;width:42px;height:32px;place-items:center}.brand-weather-mark svg{width:42px;height:31px}.brand-weather-copy{display:grid;min-width:0;gap:2px}.brand-weather-copy strong,.brand-weather-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-weather-copy strong{color:var(--primary-dark);font-size:var(--font-ui-compact);font-weight:var(--weight-bold);letter-spacing:-.02em;line-height:1.1}.brand-weather-copy small{color:var(--muted);font-size:var(--font-xs);font-weight:var(--weight-regular);line-height:1.2}.site-logo,.custom-logo-link{min-width:0;max-width:100%}.brand img,.custom-logo{display:block;width:auto;max-width:min(218px,28vw);max-height:42px}
.site-nav{display:flex;flex:1 1 auto;min-width:0;justify-content:center;margin-left:auto}.primary-nav-list{display:flex;min-width:0;align-items:center;justify-content:center;gap:2px;margin:0;padding:0;list-style:none}.primary-nav-group{position:relative;min-width:0}.primary-nav-trigger{position:relative;display:flex;min-height:var(--touch);align-items:center;gap:5px;padding:0 10px;border:0;border-radius:0;background:transparent;color:var(--text);font-size:var(--font-sm);font-weight:var(--weight-medium);white-space:nowrap}.primary-nav-trigger::after{content:"";position:absolute;right:10px;bottom:4px;left:10px;height:2px;border-radius:var(--radius-xs);background:transparent;transition:background var(--transition)}.primary-nav-trigger:hover,.primary-nav-trigger[aria-expanded="true"],.primary-nav-group.is-current>.primary-nav-trigger{color:var(--primary-dark);background:transparent}.primary-nav-trigger:hover::after,.primary-nav-trigger[aria-expanded="true"]::after{background:var(--primary-line)}.primary-nav-group.is-current>.primary-nav-trigger::after{background:var(--primary)}.primary-nav-chevron{display:grid;flex:0 0 auto;width:12px;height:12px;place-items:center;color:var(--muted);transition:transform var(--transition),color var(--transition)}.primary-nav-trigger:hover .primary-nav-chevron,.primary-nav-trigger[aria-expanded="true"] .primary-nav-chevron{color:var(--primary-dark)}.primary-nav-trigger[aria-expanded="true"] .primary-nav-chevron{transform:rotate(180deg)}
.primary-nav-panel{position:absolute;z-index:20;right:0;top:calc(100% + 10px);width:min(560px,calc(100vw - (var(--page-pad)*2)));max-height:calc(100dvh - var(--header-height) - var(--space-6));overflow:auto;padding:16px;border:1px solid var(--border-strong);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-md);scrollbar-gutter:stable}.primary-nav-panel-head{display:grid;gap:3px;padding:2px 4px 12px;border-bottom:1px solid var(--line)}.primary-nav-panel-head strong{color:var(--heading);font-size:var(--font-ui-compact);line-height:1.3}.primary-nav-panel-head span{color:var(--muted);font-size:var(--font-xs);line-height:1.45}.primary-nav-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding-top:10px}.primary-nav-link{display:grid;min-height:58px;align-content:center;gap:2px;padding:9px 12px;border-radius:var(--radius-control);background:transparent}.primary-nav-link:hover,.primary-nav-link:focus-visible{background:var(--surface-hover)}.primary-nav-link.is-current,.primary-nav-link[aria-current="page"]{background:var(--surface-info);box-shadow:inset 3px 0 0 var(--primary);color:var(--primary-dark)}.primary-nav-link-label{color:var(--heading);font-size:var(--font-sm);font-weight:var(--weight-medium);line-height:1.3}.primary-nav-link.is-current .primary-nav-link-label,.primary-nav-link[aria-current="page"] .primary-nav-link-label{color:var(--primary-dark)}.primary-nav-link-meta{color:var(--muted);font-size:var(--font-xs);line-height:1.4}
.primary-nav-head,.primary-nav-location,.primary-nav-close{display:none}.site-header-actions{position:relative;z-index:4;display:flex;flex:0 0 auto;align-items:center;gap:8px}.header-location-link{display:inline-flex;min-height:var(--touch);align-items:center;gap:7px;padding:0 13px;border:1px solid var(--primary-action);border-radius:var(--radius-control);background:var(--primary-action);color:var(--on-brand);font-size:var(--font-sm);font-weight:var(--weight-medium);white-space:nowrap;transition:background var(--transition),border-color var(--transition),transform var(--transition)}.header-location-link:hover{border-color:var(--primary-action-hover);background:var(--primary-action-hover);color:var(--on-brand)}.header-location-link:active{transform:translateY(1px)}.header-location-icon{display:grid;flex:0 0 auto;place-items:center}.nav-toggle,.nav-backdrop{display:none}
@media(min-width:1121px){.primary-nav-group--forecast>.primary-nav-panel{right:auto;left:0}.primary-nav-group--tools>.primary-nav-panel,.primary-nav-group--intent>.primary-nav-panel{right:auto;left:50%;transform:translateX(-50%)}.primary-nav-group--knowledge>.primary-nav-panel{right:0;left:auto}.primary-nav-group--tools>.primary-nav-panel{width:min(640px,calc(100vw - (var(--page-pad)*2)))}.primary-nav-group--intent>.primary-nav-panel{width:min(760px,calc(100vw - (var(--page-pad)*2)))}.primary-nav-group--intent .primary-nav-links{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1121px) and (max-width:1240px){.header-inner{gap:12px}.brand{flex-basis:190px}.brand-weather-mark{flex-basis:38px;width:38px}.brand-weather-mark svg{width:38px}.brand-weather-copy small{display:none}.primary-nav-trigger{padding-inline:8px;font-size:var(--font-xs)}.primary-nav-trigger::after{right:8px;left:8px}.header-location-link{width:44px;justify-content:center;padding:0}.header-location-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}}

.site-footer{margin-top:0;border-top:1px solid var(--border-strong);background:var(--footer-surface);color:var(--text-2)}.footer-main{padding-block:var(--space-9)}.footer-main-grid{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,2.1fr);gap:clamp(36px,5vw,64px);align-items:start}.footer-brand{min-width:0}.footer-brand-logo{margin-bottom:var(--space-4)}.footer-brand p{max-width:390px;margin:0;color:var(--text-2);font-size:var(--font-sm);line-height:1.6}.footer-trust{display:grid;gap:9px;margin:var(--space-5) 0 0;padding:0;list-style:none;color:var(--muted);font-size:var(--font-xs);line-height:1.45}.footer-trust li{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:8px;min-width:0}.footer-trust li::before{content:"✓";display:grid;width:18px;height:18px;place-items:center;margin-top:1px;border:1px solid var(--primary-line);border-radius:50%;background:var(--primary-soft);color:var(--primary-dark);font-size:var(--font-xs);font-weight:var(--weight-bold);line-height:1}.footer-nav-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-7);min-width:0}.footer-nav-group{min-width:0}.footer-title{margin:0;padding:0 0 11px;border-bottom:1px solid var(--border);color:var(--heading);font-size:var(--font-sm);font-weight:var(--weight-bold);line-height:1.3;letter-spacing:0}.footer-links{display:grid;gap:0;margin:8px 0 0;padding:0;list-style:none}.footer-links li{min-width:0}.footer-links a{display:flex;min-height:var(--touch);align-items:center;padding:5px 0;color:var(--text-2);font-size:var(--font-xs);line-height:1.4;text-decoration:none}.footer-links a:hover,.footer-links a:focus-visible{color:var(--link-hover);text-decoration:underline;text-underline-offset:3px}.footer-links li.is-current>a,.footer-links a[aria-current="page"]{position:relative;color:var(--primary-dark);font-weight:var(--weight-medium);text-decoration:none}.footer-links li.is-current>a::before,.footer-links a[aria-current="page"]::before{content:"";width:3px;height:18px;flex:0 0 3px;margin-right:7px;border-radius:var(--radius-xs);background:var(--primary)}.footer-meta-wrap{border-top:1px solid var(--border);background:rgba(255,255,255,.42)}.footer-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 28px;align-items:center;padding-block:18px;color:var(--muted);font-size:var(--font-xs)}.footer-copyright{color:var(--text-2);font-weight:var(--weight-medium)}.footer-top-link{display:inline-flex;min-height:var(--touch);align-items:center;gap:7px;justify-self:end;color:var(--link);font-weight:var(--weight-medium);text-decoration:none}.footer-top-link span{display:grid;width:24px;height:24px;place-items:center;border:1px solid var(--primary-line);border-radius:50%;background:var(--primary-soft);line-height:1}.footer-top-link:hover{color:var(--link-hover);text-decoration:underline;text-underline-offset:3px}.footer-disclaimer{grid-column:1/-1;max-width:960px;padding-top:10px;border-top:1px solid var(--line);line-height:1.55}.footer-disclaimer a{color:var(--link);text-decoration:underline;text-underline-offset:3px}

@media(max-width:1120px){
  html.nav-open,body.nav-open{overflow:hidden}.header-inner{min-height:var(--header-height-mobile);gap:8px}.brand{flex:1 1 auto;max-width:calc(100% - 214px)}.brand-weather-mark{flex-basis:38px;width:38px;height:30px}.brand-weather-mark svg{width:38px;height:29px}.brand-weather-copy strong{font-size:var(--font-sm)}.brand img,.custom-logo{max-width:min(188px,48vw);max-height:36px}.site-nav{position:fixed;z-index:3;inset:calc(var(--header-height-mobile) + var(--dbtt-admin-bar-offset,0px)) 0 0 auto;display:block;width:min(420px,94vw);max-height:calc(var(--dbtt-visual-viewport-height,100dvh) - var(--header-height-mobile) - var(--dbtt-admin-bar-offset,0px));overflow:auto;margin:0;padding:18px 16px max(24px,env(safe-area-inset-bottom));border-left:1px solid var(--border-strong);background:var(--surface);box-shadow:var(--shadow-md);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.site-nav:not(.is-open){display:none}.primary-nav-head,.primary-nav-location{display:grid}.primary-nav-head{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:0 2px 14px}.primary-nav-head-copy{display:grid;min-width:0;gap:3px}.primary-nav-title{color:var(--heading);font-size:var(--font-body);font-weight:var(--weight-bold);line-height:1.25}.primary-nav-note{color:var(--muted);font-size:var(--font-xs);line-height:1.45}.primary-nav-close{display:grid;width:44px;height:44px;place-items:center;padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface);color:var(--heading)}.primary-nav-close:hover,.primary-nav-close:focus-visible{border-color:var(--primary-line);background:var(--primary-soft);color:var(--primary-dark)}.primary-nav-location{grid-template-columns:auto minmax(0,1fr);min-height:46px;align-items:center;gap:9px;margin-bottom:12px;padding:9px 12px;border:1px solid var(--primary-line);border-radius:var(--radius-control);background:var(--primary-soft);color:var(--primary-dark);font-size:var(--font-sm);font-weight:var(--weight-medium)}.primary-nav-list{display:grid;justify-content:stretch;gap:2px}.primary-nav-group{border-top:1px solid var(--line)}.primary-nav-group:last-child{border-bottom:1px solid var(--line)}.primary-nav-trigger{width:100%;min-height:50px;justify-content:space-between;padding:0 4px;border-radius:0;text-align:left}.primary-nav-trigger::after{display:none}.primary-nav-trigger:hover,.primary-nav-trigger[aria-expanded="true"],.primary-nav-group.is-current>.primary-nav-trigger{background:transparent;color:var(--primary-dark)}.primary-nav-group.is-current>.primary-nav-trigger{font-weight:var(--weight-bold)}.primary-nav-panel{position:static;width:100%;max-height:none;margin:0 0 10px;padding:0 0 0 12px;overflow:visible;border:0;border-left:2px solid var(--primary-line);border-radius:0;background:transparent;box-shadow:none}.primary-nav-panel-head{padding:2px 10px 9px;border-bottom:0}.primary-nav-panel-head strong{display:none}.primary-nav-links{grid-template-columns:1fr;gap:2px;padding-top:0}.primary-nav-link{min-height:52px;padding:8px 10px}.primary-nav-link.is-current,.primary-nav-link[aria-current="page"]{box-shadow:inset 3px 0 0 var(--primary)}.header-location-link{margin-left:auto}.nav-toggle{display:inline-flex;width:auto;min-height:44px;align-items:center;justify-content:center;gap:8px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface);color:var(--heading)}.nav-toggle:hover,.nav-toggle[aria-expanded="true"]{border-color:var(--primary-line);background:var(--primary-soft);color:var(--primary-dark)}.nav-toggle-icon{display:grid;gap:3px}.nav-toggle-icon i{display:block;width:17px;height:2px;background:currentColor;transition:transform var(--transition),opacity var(--transition)}.nav-toggle[aria-expanded="true"] .nav-toggle-icon i:nth-child(1){transform:translateY(5px) rotate(45deg)}.nav-toggle[aria-expanded="true"] .nav-toggle-icon i:nth-child(2){opacity:0}.nav-toggle[aria-expanded="true"] .nav-toggle-icon i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.nav-toggle-label{position:static;width:auto;height:auto;overflow:visible;clip:auto;clip-path:none;white-space:nowrap;font-size:var(--font-sm);font-weight:var(--weight-medium)}.nav-backdrop{position:fixed;z-index:2;inset:calc(var(--header-height-mobile) + var(--dbtt-admin-bar-offset,0px)) 0 0;border:0;background:rgba(17,35,45,.32)}body.nav-open .nav-backdrop{display:block}.footer-main{padding-block:var(--space-8)}.footer-main-grid{grid-template-columns:1fr;gap:var(--space-7)}.footer-brand{max-width:720px}.footer-nav-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 36px}
}
@media(max-width:900px){.ds-quiet-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.data-summary-grid,.data-summary-board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.ds-answer-surface{padding:18px}.ds-quiet-grid{grid-template-columns:1fr}.ds-quiet-grid>article{border-right:0;border-bottom:1px solid var(--line)}.ds-quiet-grid>article:last-child{border-bottom:0}}
@media(max-width:820px){
  .weather-page,.content-layout{padding-block:20px 56px}.section-block{margin-top:40px}.section-heading{align-items:flex-start;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.section-heading h2{font-size:var(--font-h2)}.section-subtle{text-align:left}.product-page-hero,.forecast-landing-hero{margin-bottom:var(--space-6);padding:0 0 var(--space-6)}.product-page-hero h1,.forecast-landing-hero h1{font-size:clamp(32px,7vw,44px)}.forecast-landing-lead{font-size:var(--font-body)}.forecast-landing-kicker{align-items:flex-start;flex-direction:column;gap:4px}.product-page-hero :is(.intent-hero-visual,.decision-hero-visual,.planning-hero-visual,.risk-hero-visual,.bestday-hero-visual,.trip-hero-visual,.legacy-intent-hero-visual,.deep-page-hero-visual,.content-hero-visual,.article-hero-visual){width:112px;max-width:26%;opacity:.055}.route-media-banner{aspect-ratio:16/7}.product-next-step{align-items:flex-start;flex-direction:column;padding:16px}.ui-form-grid{grid-template-columns:1fr}.footer-main{padding-block:32px}.footer-main-grid{gap:28px}.footer-nav-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 28px}.footer-bottom{grid-template-columns:1fr auto}.brand-weather-copy small{display:none}
}
@media(max-width:430px){.ds-answer-surface{padding:16px}.data-summary-grid,.data-summary-board{grid-template-columns:1fr}.footer-main{padding-block:28px}.footer-nav-grid{grid-template-columns:1fr;gap:24px}.footer-title{padding-bottom:9px}.footer-links{margin-top:5px}.footer-bottom{grid-template-columns:1fr;gap:4px}.footer-top-link{justify-self:start}.footer-disclaimer{margin-top:4px;padding-top:12px}.route-media-banner{aspect-ratio:16/8}.product-page-hero h1,.forecast-landing-hero h1{font-size:32px}.product-page-hero :is(.intent-hero-visual,.decision-hero-visual,.planning-hero-visual,.risk-hero-visual,.bestday-hero-visual,.trip-hero-visual,.legacy-intent-hero-visual,.deep-page-hero-visual,.content-hero-visual,.article-hero-visual){display:none}}

/* Phase 1B narrow-mobile header lock. */
@media(max-width:620px){.brand{max-width:calc(100% - 104px)}.header-location-link{width:44px;justify-content:center;padding:0}.header-location-label,.nav-toggle-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.nav-toggle{width:44px;padding:0}.footer-brand p{max-width:100%}.footer-trust{margin-top:16px}.footer-nav-grid{gap:20px 22px}}
@media(max-width:430px){.brand{max-width:calc(100% - 96px)}.brand-weather-copy small{display:none}.brand img,.custom-logo{max-width:min(166px,50vw)}.site-nav{width:100%;max-width:100vw;border-left:0;padding-inline:14px}.primary-nav-panel{padding-left:10px}.primary-nav-link-meta{font-size:var(--font-xs)}.nav-backdrop{background:rgba(17,35,45,.38)}}
@media(max-width:360px){.brand-weather-mark{flex-basis:34px;width:34px}.brand-weather-mark svg{width:34px}.brand-weather-copy strong{font-size:var(--font-xs)}.site-nav{padding-inline:12px}.primary-nav-location{padding-inline:10px}}

/* Shared tool workspace primitives. One owner only. */
.tool-production-page{min-width:0}.tool-workspace,.tool-task-section,.tool-result-section,.tool-supporting-section,.tool-evidence-section,.tool-faq-section,.tool-discovery-section{margin-top:var(--space-9)}
.tool-answer-surface,.tool-answer-hero{min-width:0}.tool-explanation{max-width:900px}.tool-explanation p{color:var(--text-2)}
.tool-action-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:var(--space-5)}

.component-note{color:var(--muted);font-size:var(--font-xs)}.forecast-landing-hero--error{border-bottom-color:var(--danger-line)}
@media(max-width:820px){.tool-action-row>.button{flex:1 1 180px}}

/* v1.20.0 completion — canonical form/disclosure/layout primitives. */
.ui-form .ui-control,.ui-search-input,.ui-select{width:100%}
.ui-disclosure{min-width:0}.ui-disclosure>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:44px;align-items:center;gap:12px;list-style:none;color:var(--link);font-size:var(--font-sm);font-weight:var(--weight-medium);cursor:pointer}.ui-disclosure>summary::-webkit-details-marker{display:none}.ui-disclosure>summary::after{content:"›";display:grid;width:24px;height:24px;place-items:center;color:var(--primary-dark);font-size:20px;font-weight:var(--weight-regular);line-height:1;transform:rotate(90deg);transition:transform var(--transition)}.ui-disclosure>summary:hover,.ui-disclosure[open]>summary{color:var(--primary-dark)}.ui-disclosure[open]>summary::after{transform:rotate(-90deg)}.ui-disclosure>summary:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm);box-shadow:0 0 0 3px var(--focus)}
@media(prefers-reduced-motion:reduce){.ui-disclosure>summary::after{transition:none}}
.ds-route-section,.ds-data-section,.ds-reading-section,.ds-discovery-section,.ds-related-section,.ds-evidence-section{min-width:0}.ds-context-strip{min-width:0}.data-module{min-width:0}.weather-module-state{margin-top:var(--space-6)}
@media(max-width:820px){.ui-filter-controls{grid-template-columns:minmax(0,1fr) auto}.ui-filter-controls .ui-reset{grid-column:1/-1}.ds-link-list{grid-template-columns:1fr;gap:0}.section-heading>.text-link,.section-heading>.section-subtle{align-self:flex-start;max-width:100%;text-align:left}}


/* v1.20.1 — cross-route composition closure. Shared editorial/navigation surfaces only. */
.topic-authority{margin-top:0;padding-block:var(--space-6);border-top:1px solid var(--border);background:var(--surface-soft)}
.topic-authority .container{display:grid;gap:0}.topic-authority .section-heading{margin-bottom:var(--space-3)}
@media(max-width:820px){.topic-authority{padding-block:var(--space-5)}}
@media(max-width:430px){.ui-search-form,.ui-search-submit,.ui-filter-controls{grid-template-columns:1fr}.ui-search-form>.ui-submit,.ui-search-submit>.ui-submit,.ui-filter-controls>.button,.ui-filter-controls>.ui-reset{width:100%}.ui-submit,.ui-reset{white-space:normal;overflow-wrap:anywhere}.ui-search-input{font-size:var(--font-body)}.ui-form-validation-status:not(:empty){font-size:var(--font-sm)}.topic-authority{padding-block:var(--space-4)}}

/* v1.20.25 — end-of-page handoff: outer page padding owns the final breath. */
.weather-page>.container>:last-child,.weather-directory-page>:last-child,.content-production-page>:last-child{margin-bottom:0}

/* v1.20.1 — mobile visual-viewport / open-navigation state closure. */

@media(max-width:1120px){
  html.dbtt-keyboard-open .site-nav{max-height:calc(var(--dbtt-visual-viewport-height,100dvh) - var(--header-height-mobile) - var(--dbtt-admin-bar-offset,0px))}
  html.dbtt-keyboard-open .search-results{max-height:min(280px,42vh);box-shadow:var(--shadow-sm)}
}

/* v1.20.1 — shell leaf-state ownership. */
.site-nav .menu{display:grid;gap:6px;margin:0;padding:0;list-style:none}

/* v1.21.13 — Real browser screenshot closure / sticky-anchor consistency lock.
 * This is a shared contract, not a page-specific patch: containment, keyboard focus,
 * touch geometry, sticky clearance and narrow-screen density use the existing system. */
:where(.weather-page,.weather-directory-page,.content-production-page,.content-layout) :where(h1,h2,h3,h4,.section-heading,.section-heading>*,.product-page-hero>*,.forecast-landing-hero>*,.ds-answer-surface>*,.data-summary-card>*,.card>*){min-width:0;max-width:100%}
:where(.weather-page,.weather-directory-page,.content-production-page,.content-layout) :where(h1,h2,h3,h4,.section-heading p,.section-subtle,.button,.ui-secondary-control,.ui-toggle-button,.text-link,.footer-links a){overflow-wrap:anywhere}
:where(.weather-page,.weather-directory-page,.content-production-page,.content-layout) :where(.section-heading,.metric-section-heading,.content-section-heading,.ui-state-body,.ui-state-actions,.weather-context-main,.weather-context-location,.footer-brand-copy){min-width:0}
:where(.weather-page,.weather-directory-page,.content-production-page,.content-layout) :where(.button,.ui-submit,.ui-reset,.text-link){max-width:100%}
table.data-table td{max-width:360px;overflow-wrap:anywhere;word-break:normal}
:where(.button,.ui-secondary-control,.ui-toggle-button,.ui-icon-button,.nav-toggle,.header-location-link,.footer-top-link,.footer-links a,.ui-disclosure>summary,.directory-page-numbers a,.content-production-page .navigation.pagination .page-numbers){min-height:var(--touch)}
:where(a,button,input,select,textarea,summary,[tabindex]:not([tabindex="-1"])):focus-visible{outline:3px solid var(--primary-dark);outline-offset:3px;box-shadow:0 0 0 3px var(--focus)}
:where(.site-header,.article-reading-nav,[class*="sticky"]){scroll-margin-top:var(--dbtt-anchor-offset)}
:where(.weather-page,.weather-directory-page,.content-production-page,.content-layout) :where(section,[class$="-section"],[class*="-section "]){scroll-margin-top:var(--dbtt-anchor-offset)}
:where(.data-table-shell,.metric-data-scroll,.comparison-table-wrap,.rain-time-scroll,.hourly-scroll,.ds-data-rail,.entry-content .wp-block-table,.entry-content .content-table-scroll){max-width:100%;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}

@media(max-width:1024px){
  :where(.weather-page,.weather-directory-page,.content-production-page,.content-layout) .section-heading{max-width:100%}
}
@media(max-width:1120px){:where(.site-nav,.primary-nav-panel){overscroll-behavior:contain}}

/* 768 is an explicit QA width: close tablet squeeze zones before phone rules apply. */
@media(max-width:768px){
  :root{--section-lock-gap:40px}
  body{--dbtt-anchor-offset:calc(var(--header-height-mobile) + var(--dbtt-admin-bar-offset,0px) + var(--space-3))}
  .section-block{margin-top:var(--section-lock-gap)}
  :where(.tool-workspace,.tool-task-section,.tool-result-section,.tool-supporting-section,.tool-evidence-section,.tool-faq-section,.tool-discovery-section){margin-top:40px}
  :where(.section-heading,.metric-section-heading,.content-section-heading){align-items:flex-start}
  :where(.product-next-step,.intent-next-step,.location-recovery-help){min-width:0}
  :where(.product-next-step,.intent-next-step) :where(.button,.ui-secondary-control){max-width:100%}
  :where(.weather-page,.weather-directory-page,.content-production-page,.content-layout) :where(h1,h2,h3){text-wrap:pretty}
  :where(.site-header,.article-reading-nav,[class*="sticky"]){scroll-margin-top:var(--dbtt-anchor-offset)}
  :where(.weather-page,.weather-directory-page,.content-production-page,.content-layout) :where(section,[class$="-section"],[class*="-section "]){scroll-margin-top:var(--dbtt-anchor-offset)}
}

@media(max-width:430px){
  :where(.weather-page,.content-layout){padding-bottom:48px}
  .section-block{margin-top:36px}
  :where(.tool-workspace,.tool-task-section,.tool-result-section,.tool-supporting-section,.tool-evidence-section,.tool-faq-section,.tool-discovery-section){margin-top:36px}
  :where(.tool-action-row,.metric-primary-answer-actions,.intent-next-step-action,.location-recovery-actions){width:100%}
  :where(.tool-action-row,.metric-primary-answer-actions,.intent-next-step-action,.location-recovery-actions)>.button{flex:1 1 100%;width:100%;white-space:normal}
  :where(.section-heading h2,.metric-section-heading h2,.content-section-heading h2){line-height:1.22}
}

/* 390/360 are real device lock widths, not alternate component systems. */
@media(max-width:390px){
  :where(.ds-answer-surface,.data-summary-card){padding-inline:14px}
  :where(.button,.ui-secondary-control,.ui-toggle-button){padding-inline:12px}
  :where(.section-heading,.metric-section-heading,.content-section-heading){gap:8px}
}
@media(max-width:360px){
  :root{--page-pad:12px}
  :where(.weather-page,.content-layout){padding-top:16px;padding-bottom:44px}
  .section-block{margin-top:32px}
  :where(.tool-workspace,.tool-task-section,.tool-result-section,.tool-supporting-section,.tool-evidence-section,.tool-faq-section,.tool-discovery-section){margin-top:32px}
  :where(.button,.ui-secondary-control,.ui-toggle-button){max-width:100%;white-space:normal}
  :where(.footer-links a,.ui-disclosure>summary){line-height:1.35}
}

/* v1.20.27 — real-render screenshot closure hardening.
 * Tighten interactive geometry to the same 44px contract measured by Browser QA. */
:where(.section-heading,.metric-section-heading,.content-section-heading)>.text-link{max-width:100%;overflow-wrap:anywhere}
@media(max-width:430px){
  :where(.ui-submit,.ui-reset,.section-heading>.text-link,.metric-section-heading>.text-link,.content-section-heading>.text-link){white-space:normal;overflow-wrap:anywhere}
}
