/* The shell owns the viewport; only internal page content scrolls. */
html:has(body.public-seo), body.public-seo {height:100%;overflow:hidden}
.public-seo .app-shell {height:100vh;height:100dvh;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) calc(var(--nav-h) + env(safe-area-inset-bottom));overflow:hidden}
.public-seo #app-view {height:100%;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;padding-bottom:0}
.public-seo #app-view > .page-screen {height:auto;min-height:100%;overflow:visible}
.public-seo .bottom-slot {min-height:0}
.public-seo #app-view:has(> .home-screen),
.public-seo #app-view:has(> .alerts-page) {overflow:hidden;padding-bottom:0}
.public-seo #app-view:has(> .home-screen) > .seo-content-block,
.public-seo #app-view:has(> .alerts-page) > .seo-content-block {display:none}
.public-seo .home-screen {height:100%;min-height:0;overflow:hidden}
@media(min-width:700px) {
  .public-seo .app-shell {height:calc(100dvh - 40px);max-height:900px}
}
/* Map chrome, map and a filled ad share the available space above navigation. */
html[data-tryvohy-app="1"] .public-seo .app-shell {height:var(--tryvohy-vv-height,100dvh);max-height:none;grid-template-rows:minmax(0,1fr) calc(var(--nav-h) + env(safe-area-inset-bottom))}
html[data-tryvohy-app="1"] .public-seo #app-view > .alerts-page {display:grid;height:100%;min-height:0;grid-template-rows:auto minmax(0,1fr) auto;--alerts-ad-space:0px}
html[data-tryvohy-app="1"] .public-seo .alerts-chrome {position:relative}
html[data-tryvohy-app="1"] .public-seo .alerts-map-wrap {position:relative;inset:auto;height:100%;min-height:0;padding-bottom:0}
html[data-tryvohy-app="1"] .public-seo .alerts-ad-host {position:relative;height:auto;padding:0}
html[data-tryvohy-app="1"] .public-seo .alerts-ad-host:empty,
html[data-tryvohy-app="1"] .public-seo .alerts-ad-host[data-ad-empty="1"] {display:none}
/* Compact landscape layout keeps all six shortcuts accessible. */
@media(max-height:540px) and (min-width:500px) {
  .public-seo .home-screen {grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:64px minmax(0,1fr) auto;gap:6px}
  .public-seo .home-screen .hero {grid-column:1/-1;margin:0 -14px}
  .public-seo .hero-compact .hero-note {display:none}
  .public-seo .weather-home-rich {height:100%;align-content:center}
  .public-seo .home-ad-host {grid-column:1/-1}
  .public-seo .feature-text span {display:none}
  .public-seo .feature-chevron {display:none}
  .public-seo .feature-icon {width:28px;height:28px}
  .public-seo .feature-icon img {width:22px;height:22px}
}
.public-summary,.public-details {padding:16px;max-width:1000px;margin:0 auto;color:#e7f2ff;line-height:1.5;background:#061a39;overflow-wrap:anywhere}
.public-summary h1 {font-size:clamp(21px,4vw,30px);line-height:1.2;margin:0 0 10px}
.public-summary p {margin:8px 0}.public-answer{font-size:16px}.public-freshness{font-size:14px}
.public-summary a,.public-details a {color:#9bd3ff;text-decoration:underline}
.public-summary nav,.public-details nav {display:flex;flex-wrap:wrap;gap:8px 16px}
.public-details article {border-bottom:1px solid #435870;padding:12px 0}
/* Keep the public summary and crawlable links below the interactive screen. */
.seo-content-block {clear:both}
html.pwa-standalone .seo-content-block {display:none!important}
@media (display-mode: standalone) {
  .seo-content-block {display:none!important}
}

/* Outages keeps its map controls inside the shared navigation shell. */
body.public-seo.om-active #app-view {overflow-y:auto;padding-bottom:0}
body.public-seo.om-active #app-view > .om {position:relative!important;top:auto;left:auto;height:calc(var(--om-height,100dvh) - var(--nav-h) - env(safe-area-inset-bottom));min-height:0;overflow:hidden;z-index:0;isolation:isolate}

/* Reserve navigation height once for all public pages, including safe area. */
.public-seo .app-shell.app-shell--fixed-nav {
  grid-template-rows:minmax(0,1fr);
  padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));
}
