/* [layoutfit] Site-wide device fit (staging, Oct 25 2026).
   Loaded after style.css on every page except the main homepage (its layout belongs to [recapfit] [latest6] [homewx]).
   CSS only: no content, features or ad labels are added or removed. Tested at 390x844, 820x1180, 1024x1366, 1180x820, 1280x800, 1440x900. */

/* 1. Short pages: no blank band between the content and the footer. The footer colour fills any space left below it. */
html{background:#14181f}
main{min-height:0}

/* 2. Section and Business pages: when the side column only holds the house ad, the lead story runs full width as a side-by-side card
      (picture left, story right) and the ad sits under it as a banner, so the ad column no longer sits next to ~500px of empty space. */
@media (min-width:600px){
  .top-single:has(>.side-col>.ad:only-child){grid-template-columns:minmax(0,1fr)}
  .top-single:has(>.side-col>.ad:only-child)>.side-col{position:static;top:auto}
  .top-single:has(>.side-col>.ad:only-child)>.lead{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:stretch}
  .top-single:has(>.side-col>.ad:only-child)>.lead>.lead-img{display:block;min-height:100%}
  .top-single:has(>.side-col>.ad:only-child)>.lead>.lead-img img{height:100%;min-height:240px;aspect-ratio:auto;object-fit:cover}
  .top-single:has(>.side-col>.ad:only-child)>.lead>.lead-body{align-self:center}
  .top-single:has(>.side-col>.ad:only-child)>.lead h2{font-size:clamp(22px,2.6vw,32px)}
  /* single-story sections: the house-ad banner would sit right on top of the footer house ad, so show only the footer one */
  main>.hx-page:has(+.ad.ad-footer)>.top-single:last-child:has(>.side-col>.ad.ad-house:only-child)>.side-col{display:none}
}

/* 3. Expose Fraud: "Before you send" and "What happens to your tip" sit side by side, the form runs full width below
      with short fields paired up, so the right column no longer leaves ~1,000px of blank space next to the form. */
@media (min-width:821px){
  .ft-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);grid-template-areas:"note side" "form form";align-items:stretch}
  .ft-grid>.ft-main{display:contents}
  .ft-grid .ft-note{grid-area:note;margin-bottom:0}
  .ft-grid .ft-form{grid-area:form}
  .ft-grid>.ft-side{grid-area:side;position:static}
  .ft-grid .ft-form fieldset{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px 16px}
  .ft-grid .ft-form fieldset>*{grid-column:1/-1}
  .ft-grid .ft-form fieldset:first-of-type>.ft-field:has(>input[type=text]){grid-column:span 2}
  .ft-grid .ft-form fieldset+fieldset>.ft-field:has(>input[type=text]){grid-column:span 3}
}

/* 4. Long source links and URLs wrap inside their cards instead of pushing the page sideways. */
.con-card,.dwl-card,.ev-body,.card-body,.th-tile,.pt-tile,.gd-tile{min-width:0}
a.src,.con-src,.dwl-src,.pt-src,.re-fact-src,.sky-src,.legal-sources,li>span.url{overflow-wrap:anywhere}
a.src{max-width:100%}
main a.src{white-space:normal}

/* 6. Touch screens (phones and every iPad size): links, buttons and fields are at least 40px tall to tap.
      style.css already does this up to 820px wide; this extends it to larger iPads (1024 portrait, 1180 landscape). */
@media (pointer:coarse){
  .cats a,.cats-explore a,.cats-sub a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;min-width:40px;box-sizing:border-box}
  .breaking-bar a,.footer-links a,.kicker,.site-name a{display:inline-flex;align-items:center;min-height:40px}
  .more,.strip-head h2 a,p.more a,.latest-links a,.recap h3 a,.card h3 a,.event-card h3 a,dd a,main>p>a:only-child,.item-foot a,.srcs a,a.src,td a,.th-more a,.ex3-back a,.gd-helpful a,.recap-foot a,.contact-big a{display:inline-flex;align-items:center;min-height:40px}
  .jump a,.sub-nav a,.cam-towns a,.av-filters a,nav.re-jump a{display:inline-flex;align-items:center;min-height:40px}
  .btn,button,select,input[type=submit],input[type=email],input[type=text],input[type=search],input[type=password]{min-height:40px}
  .ex-crumbs a,.gd-crumbs a,.ex-mi-more summary,details>summary{min-height:40px}
  .nlbar .nlbar-form input[type=email],.nlbar .nlbar-btn{height:40px}
  .nlbar-x{width:40px;height:40px}
  p.follow-links a{display:inline-flex;align-items:center;min-height:40px}
  /* chip and inline links: bigger tap area without changing the layout */
  .wxh-chips li>a,.ex-pc-tag a,.cam-by a,.pt-src a,.re-fact-src a,.sky-src a,.legal-sources a,.gd-kick a,.gd-reviewed a,figcaption a,.ev-credit a,.strip-list li>a,.recap-list li>a,.pt-links li>a,.sources li>a,.ssh-chips li>a,.skyh-chips li>a,.gd-towns li>a,.mem-page li>a{padding-block:11px;margin-block:-11px}
  .wxh-chips li>a,.ex-pc-tag a{display:inline-block}
  .ex-crumbs a,.gd-crumbs a,.th-others a{display:inline-flex;align-items:center;min-height:40px}
  details.ex-mi-more>summary{padding-block:4px;margin-block:-4px;min-width:40px}
  .event-page>p>a:only-child,.story.policy .prose p>a:only-child{display:inline-flex;align-items:center;min-height:40px}
  /* explore.css loads after this file, so these use a stronger selector */
  html body .ex-crumbs a,html body .gd-crumbs a{min-height:40px}
  html body details.ex-mi-more>summary{min-height:40px;box-sizing:border-box}
  html body .ex-pc-tag a{display:inline-block;padding-block:9px;margin-block:-9px}
  html body form.filters a.clear{display:inline-flex;align-items:center;justify-content:center;min-height:40px;min-width:40px}
  html body sup.gd-cite a{display:inline-block;padding:12px 8px;margin:-12px -8px}
  html body .gd-kick a{display:inline-flex;align-items:center;min-height:40px}
}
/* 7. Tile and card grids: no lone card stranded on its own row. Column counts adapt to how many cards a grid has, at every iPad and desktop width. */
@media (min-width:686px) and (max-width:907px){.ex-grid:not(.ex-grid-home):not(.ex-grid-sm):has(>:is(:nth-child(4),:nth-child(7),:nth-child(10),:nth-child(16),:nth-child(19),:nth-child(22),:nth-child(28),:nth-child(31),:nth-child(34),:nth-child(40)):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:908px) and (max-width:1129px){.ex-grid:not(.ex-grid-home):not(.ex-grid-sm):has(>:is(:nth-child(9),:nth-child(21),:nth-child(33)):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.ex-grid:not(.ex-grid-home):not(.ex-grid-sm):has(>:is(:nth-child(5),:nth-child(13),:nth-child(17),:nth-child(25),:nth-child(29),:nth-child(37)):last-child){grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (min-width:1130px){.ex-grid:not(.ex-grid-home):not(.ex-grid-sm):has(>:is(:nth-child(21)):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.ex-grid:not(.ex-grid-home):not(.ex-grid-sm):has(>:is(:nth-child(16),:nth-child(31)):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}.ex-grid:not(.ex-grid-home):not(.ex-grid-sm):has(>:is(:nth-child(6),:nth-child(11),:nth-child(26),:nth-child(36)):last-child){grid-template-columns:repeat(6,minmax(0,1fr))}}
@media (min-width:641px) and (max-width:741px){.ex-grid-sm:not(.ex-grid-home):has(>:is(:nth-child(4),:nth-child(7),:nth-child(10),:nth-child(16),:nth-child(19),:nth-child(22),:nth-child(28),:nth-child(31),:nth-child(34),:nth-child(40)):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:742px) and (max-width:921px){.ex-grid-sm:not(.ex-grid-home):has(>:is(:nth-child(9),:nth-child(21),:nth-child(33)):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.ex-grid-sm:not(.ex-grid-home):has(>:is(:nth-child(5),:nth-child(13),:nth-child(17),:nth-child(25),:nth-child(29),:nth-child(37)):last-child){grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (min-width:922px) and (max-width:1101px){.ex-grid-sm:not(.ex-grid-home):has(>:is(:nth-child(21)):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.ex-grid-sm:not(.ex-grid-home):has(>:is(:nth-child(16),:nth-child(31)):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}.ex-grid-sm:not(.ex-grid-home):has(>:is(:nth-child(6),:nth-child(11),:nth-child(26),:nth-child(36)):last-child){grid-template-columns:repeat(6,minmax(0,1fr))}}
@media (min-width:1102px){.ex-grid-sm:not(.ex-grid-home):has(>:is(:nth-child(25)):last-child){grid-template-columns:repeat(5,minmax(0,1fr))}.ex-grid-sm:not(.ex-grid-home):has(>:is(:nth-child(7),:nth-child(13),:nth-child(19),:nth-child(31),:nth-child(37)):last-child){grid-template-columns:repeat(7,minmax(0,1fr))}}
@media (min-width:956px){.dwl-grid:has(>:is(:nth-child(4),:nth-child(7),:nth-child(10),:nth-child(16),:nth-child(19),:nth-child(22),:nth-child(28),:nth-child(31),:nth-child(34),:nth-child(40)):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:844px) and (max-width:1119px){.event-grid:has(>:is(:nth-child(4),:nth-child(7),:nth-child(10),:nth-child(16),:nth-child(19),:nth-child(22),:nth-child(28),:nth-child(31),:nth-child(34),:nth-child(40)):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1120px){.event-grid:has(>:is(:nth-child(9),:nth-child(21),:nth-child(33)):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.event-grid:has(>:is(:nth-child(5),:nth-child(13),:nth-child(17),:nth-child(25),:nth-child(29),:nth-child(37)):last-child){grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (min-width:960px){.con-grid:has(>:is(:nth-child(4),:nth-child(7),:nth-child(10),:nth-child(16),:nth-child(19),:nth-child(22),:nth-child(28),:nth-child(31),:nth-child(34),:nth-child(40)):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:870px){.th-tiles:has(>:is(:nth-child(4),:nth-child(7),:nth-child(10),:nth-child(16),:nth-child(19),:nth-child(22),:nth-child(28),:nth-child(31),:nth-child(34),:nth-child(40)):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1020px){.th-index:has(>:is(:nth-child(4),:nth-child(7),:nth-child(10),:nth-child(16),:nth-child(19),:nth-child(22),:nth-child(28),:nth-child(31),:nth-child(34),:nth-child(40)):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:806px) and (max-width:1067px){.gd-tiles:has(>:is(:nth-child(4),:nth-child(7),:nth-child(10),:nth-child(16),:nth-child(19),:nth-child(22),:nth-child(28),:nth-child(31),:nth-child(34),:nth-child(40)):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1068px){.gd-tiles:has(>:is(:nth-child(9),:nth-child(21),:nth-child(33)):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.gd-tiles:has(>:is(:nth-child(5),:nth-child(13),:nth-child(17),:nth-child(25),:nth-child(29),:nth-child(37)):last-child){grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (min-width:810px) and (max-width:1073px){.gd-grid:has(>:is(:nth-child(4),:nth-child(7),:nth-child(10),:nth-child(16),:nth-child(19),:nth-child(22),:nth-child(28),:nth-child(31),:nth-child(34),:nth-child(40)):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1074px){.gd-grid:has(>:is(:nth-child(9),:nth-child(21),:nth-child(33)):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.gd-grid:has(>:is(:nth-child(5),:nth-child(13),:nth-child(17),:nth-child(25),:nth-child(29),:nth-child(37)):last-child){grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (min-width:960px){.sky-cw-grid:has(>:is(:nth-child(4),:nth-child(7),:nth-child(10),:nth-child(16),:nth-child(19),:nth-child(22),:nth-child(28),:nth-child(31),:nth-child(34),:nth-child(40)):last-child),.sky-sl-grid:has(>:is(:nth-child(4),:nth-child(7),:nth-child(10),:nth-child(16),:nth-child(19),:nth-child(22),:nth-child(28),:nth-child(31),:nth-child(34),:nth-child(40)):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:761px) and (max-width:871px){.wx-rec-grid:has(>:is(:nth-child(9),:nth-child(21),:nth-child(33)):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.wx-rec-grid:has(>:is(:nth-child(5),:nth-child(13),:nth-child(17),:nth-child(25),:nth-child(29),:nth-child(37)):last-child){grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (min-width:872px) and (max-width:1041px){.wx-rec-grid:has(>:is(:nth-child(21)):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.wx-rec-grid:has(>:is(:nth-child(16),:nth-child(31)):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}.wx-rec-grid:has(>:is(:nth-child(6),:nth-child(11),:nth-child(26),:nth-child(36)):last-child){grid-template-columns:repeat(6,minmax(0,1fr))}}
@media (min-width:1042px){.wx-rec-grid:has(>:is(:nth-child(25)):last-child){grid-template-columns:repeat(5,minmax(0,1fr))}.wx-rec-grid:has(>:is(:nth-child(7),:nth-child(13),:nth-child(19),:nth-child(31),:nth-child(37)):last-child){grid-template-columns:repeat(7,minmax(0,1fr))}}
@media (min-width:761px) and (max-width:905px){.gd-towns:has(>:is(:nth-child(9),:nth-child(21),:nth-child(33)):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.gd-towns:has(>:is(:nth-child(5),:nth-child(13),:nth-child(17),:nth-child(25),:nth-child(29),:nth-child(37)):last-child){grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (min-width:906px) and (max-width:1081px){.gd-towns:has(>:is(:nth-child(21)):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.gd-towns:has(>:is(:nth-child(16),:nth-child(31)):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}.gd-towns:has(>:is(:nth-child(6),:nth-child(11),:nth-child(26),:nth-child(36)):last-child){grid-template-columns:repeat(6,minmax(0,1fr))}}
@media (min-width:1082px){.gd-towns:has(>:is(:nth-child(25)):last-child){grid-template-columns:repeat(5,minmax(0,1fr))}.gd-towns:has(>:is(:nth-child(7),:nth-child(13),:nth-child(19),:nth-child(31),:nth-child(37)):last-child){grid-template-columns:repeat(7,minmax(0,1fr))}}
@media (min-width:1012px){.ex3-cals:has(>:is(:nth-child(4),:nth-child(7),:nth-child(10),:nth-child(16),:nth-child(19),:nth-child(22),:nth-child(28),:nth-child(31),:nth-child(34),:nth-child(40)):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:848px) and (max-width:1107px){.sp-opts:has(>:is(:nth-child(4),:nth-child(7),:nth-child(10),:nth-child(16),:nth-child(19),:nth-child(22),:nth-child(28),:nth-child(31),:nth-child(34),:nth-child(40)):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1108px){.sp-opts:has(>:is(:nth-child(9),:nth-child(21),:nth-child(33)):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.sp-opts:has(>:is(:nth-child(5),:nth-child(13),:nth-child(17),:nth-child(25),:nth-child(29),:nth-child(37)):last-child){grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (min-width:761px) and (max-width:875px){.brew-stats:has(>:is(:nth-child(9),:nth-child(21),:nth-child(33)):last-child),.brew-hours:has(>:is(:nth-child(9),:nth-child(21),:nth-child(33)):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.brew-stats:has(>:is(:nth-child(5),:nth-child(13),:nth-child(17),:nth-child(25),:nth-child(29),:nth-child(37)):last-child),.brew-hours:has(>:is(:nth-child(5),:nth-child(13),:nth-child(17),:nth-child(25),:nth-child(29),:nth-child(37)):last-child){grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (min-width:876px) and (max-width:1039px){.brew-stats:has(>:is(:nth-child(21)):last-child),.brew-hours:has(>:is(:nth-child(21)):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.brew-stats:has(>:is(:nth-child(16),:nth-child(31)):last-child),.brew-hours:has(>:is(:nth-child(16),:nth-child(31)):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}.brew-stats:has(>:is(:nth-child(6),:nth-child(11),:nth-child(26),:nth-child(36)):last-child),.brew-hours:has(>:is(:nth-child(6),:nth-child(11),:nth-child(26),:nth-child(36)):last-child){grid-template-columns:repeat(6,minmax(0,1fr))}}
@media (min-width:1040px){.brew-stats:has(>:is(:nth-child(25)):last-child),.brew-hours:has(>:is(:nth-child(25)):last-child){grid-template-columns:repeat(5,minmax(0,1fr))}.brew-stats:has(>:is(:nth-child(7),:nth-child(13),:nth-child(19),:nth-child(31),:nth-child(37)):last-child),.brew-hours:has(>:is(:nth-child(7),:nth-child(13),:nth-child(19),:nth-child(31),:nth-child(37)):last-child){grid-template-columns:repeat(7,minmax(0,1fr))}}

/* 8. /aerospace on desktop and iPad landscape: the live map sits beside "Today over Brevard" only; the hourly chart, top types/operators
      and everything below run full width, so there is no long empty band on the right under the map. */
@media (min-width:901px){
  main .av-split>.av-b{grid-column:1/-1;grid-row:2}
  main .av-split>.av-m{grid-row:1;position:static;top:auto}
}
