
:root{--navy:#04162e;--navy2:#071f3e;--ink:#071d36;--muted:#58728c;--blue:#0e62e8;--cyan:#2ed9cc;--amber:#f2ac24;--red:#df6658;--paper:#fff;--mist:#f0f6fb;--line:#b7ccdf;--line2:#24496d;--green:#16825f;--max:1440px;--r:2px;--shadow:0 14px 34px rgba(4,22,46,.11)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--mist);line-height:1.5}a{text-decoration:none;color:inherit}img{max-width:100%}button,input,select{font:inherit}.wrap{max-width:var(--max);margin:auto;padding:0 28px}.ui-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.site-header{position:sticky;top:0;z-index:500;background:rgba(4,22,46,.98);border-bottom:1px solid #18395d;color:#fff}.header-row{height:74px;display:flex;align-items:center;gap:30px}.brand img{width:205px;display:block}.main-nav{display:flex;gap:24px;align-items:center;flex:1;font-size:14px;font-weight:720}.main-nav a{color:#d7e6f4}.main-nav a:hover{color:#fff}.header-meta{font-size:13px;color:#b2c7da}.nav-cta{height:44px;padding:0 18px;background:var(--cyan);color:#03243f;border:1px solid var(--cyan);display:inline-flex;align-items:center;gap:9px;font-weight:900;border-radius:var(--r);box-shadow:0 5px 0 #0c655f}.nav-cta:hover{transform:translateY(1px);box-shadow:0 4px 0 #0c655f}.mobile-menu{display:none;background:transparent;color:#fff;border:1px solid #66819d;height:42px;padding:0 13px;border-radius:var(--r)}
.hero{background:var(--navy);color:#fff;padding:42px 0 30px}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:46px;align-items:start}.eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:900;color:#56afff}.hero h1{font-size:clamp(44px,5vw,69px);line-height:1.01;letter-spacing:-.045em;margin:10px 0 17px;max-width:710px}.lead{font-size:18px;line-height:1.55;color:#b9cee0;max-width:690px}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.wizard{padding:24px;color:var(--ink)}.wizard-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.wizard-title{font-weight:900;font-size:20px;display:flex;gap:10px;align-items:center}.tag{font-size:10px;font-weight:900;letter-spacing:.07em;border:1px solid #8ca4bb;padding:5px 7px;border-radius:var(--r)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-grid.three{grid-template-columns:repeat(3,1fr);margin-top:14px}.field label{display:block;margin-bottom:6px;font-size:11px;text-transform:uppercase;letter-spacing:.025em;font-weight:850;color:#34526f}.control{height:50px;width:100%;border:1px solid #abc2d7;background:#fff;padding:0 13px;border-radius:var(--r);color:var(--ink)}.control:focus{outline:2px solid #5ca5ff;outline-offset:1px}.primary-cta{margin-top:17px;width:100%;height:52px;background:var(--blue);color:#fff;border:1px solid #0b4cae;border-radius:var(--r);font-weight:900;display:flex;justify-content:center;align-items:center;gap:10px}.micro{text-align:center;color:#7289a0;font-size:11px;margin-top:9px}
.leave-frame{margin-top:25px;border:1px solid #2a4d70;padding:12px}.frame-head{display:flex;justify-content:space-between;color:#9fb8d0;font-size:11px;text-transform:uppercase;font-weight:800;margin-bottom:9px}.leave-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.leave-card{min-height:127px;background:#0a2649;border:1px solid #315474;padding:14px}.leave-card.rec{background:#073f49;border-color:var(--cyan)}.leave-label{font-size:10px;font-weight:950;letter-spacing:.04em;text-transform:uppercase}.leave-time{font-size:30px;font-weight:950;letter-spacing:-.03em;margin:3px 0}.caut .leave-label,.caut .leave-time{color:var(--amber)}.rec .leave-label,.rec .leave-time{color:var(--cyan)}.leave-note{font-size:11px;color:#bbcee0}
.trust-strip{margin-top:28px;border:1px solid #25476a;display:grid;grid-template-columns:repeat(5,1fr)}.trust-item{padding:13px 14px;border-right:1px solid #25476a;display:flex;align-items:center;gap:9px;min-height:62px}.trust-item:last-child{border-right:0}.trust-item b{font-size:12px;display:block}.trust-item span{font-size:10px;color:#96afc7}
.section{padding:42px 0}.section-title{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px}.section-title h2{font-size:30px;letter-spacing:-.03em;margin:0}.section-title p{margin:0;color:var(--muted);max-width:520px;text-align:right}.route-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:12px}.map-shell{min-height:430px;position:relative;overflow:hidden;background:#dceaf5}.leaflet-map{height:430px;width:100%;z-index:1}.map-topbar{position:absolute;z-index:10;top:12px;left:12px;right:12px;display:flex;justify-content:space-between;pointer-events:none}.map-chip{background:#fff;border:1px solid #acc4d8;padding:7px 9px;font-size:11px;font-weight:850;box-shadow:0 4px 15px rgba(0,20,45,.1)}.map-legend{position:absolute;z-index:10;bottom:12px;left:12px;background:#fff;border:1px solid #acc4d8;padding:8px 10px;font-size:10px}.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.feature{padding:19px;min-height:205px;display:flex;flex-direction:column}.icon-box{width:38px;height:38px;border:1px solid #8eabc5;display:flex;align-items:center;justify-content:center;color:#0d4d96;margin-bottom:13px;background:#f7fbff}.feature h3{font-size:17px;margin:0 0 8px}.feature p{font-size:13px;color:var(--muted);margin:0 0 16px}.feature a{margin-top:auto;color:var(--blue);font-size:12px;font-weight:900}
.airport-network{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.airport-toolbar{display:flex;gap:10px;margin-bottom:16px}.airport-search{height:48px;border:1px solid #abc2d7;flex:1;padding:0 14px;border-radius:var(--r)}.tier-tabs{display:flex;border:1px solid var(--line)}.tier-tabs button{border:0;border-right:1px solid var(--line);background:#fff;padding:0 14px;font-weight:800}.tier-tabs button:last-child{border-right:0}.airport-list{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line)}.airport-link{padding:14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:56px 1fr auto;gap:10px;align-items:center}.airport-code{font-size:19px;font-weight:950;color:#0b4f9e}.airport-name{font-size:12px;font-weight:800}.airport-place{font-size:10px;color:#748ca3;display:block}.tier-badge{font-size:9px;border:1px solid #97afc5;padding:4px 5px}
.data-board{background:#03162d;color:#e9f4fc;border:1px solid #173c61;padding:13px}.board-head{display:flex;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.board-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.board-cell{background:#071f3d;border:1px solid #193b5e;padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;letter-spacing:.055em}.ok{color:#62d7a4}.est{color:#ffd16b}
.site-footer{background:#03152b;color:#d9e7f3;border-top:1px solid #173a5e}.footer-top{display:grid;grid-template-columns:1.25fr repeat(4,1fr);gap:34px;padding:42px 0 30px}.footer-brand img{width:190px}.footer-brand p{font-size:12px;color:#92abc2;max-width:300px}.footer-col h3{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:#6eaef0;margin:0 0 13px}.footer-col a{display:block;font-size:12px;color:#c2d5e6;margin:8px 0}.footer-bottom{border-top:1px solid #173a5e;padding:17px 0;display:flex;justify-content:space-between;gap:20px;color:#7895b0;font-size:10px}
.page-hero{background:var(--navy);color:#fff;padding:34px 0}.breadcrumb{font-size:11px;color:#7ea3c4;margin-bottom:10px}.page-hero h1{font-size:42px;line-height:1.05;letter-spacing:-.035em;margin:0 0 10px}.page-hero p{max-width:780px;color:#b8cde0}.airport-page-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:12px}.airport-map{height:430px}.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.metric-card{padding:17px}.metric-card h3{font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px;color:#657f98}.metric-value{font-size:27px;font-weight:950;color:#0b887e}.metric-sub{font-size:11px;color:#6c849c}.hourly{display:grid;grid-template-columns:repeat(12,1fr);gap:4px}.hour-cell{border:1px solid #a9bfd2;background:#fff;padding:9px 4px;text-align:center;font-size:10px}.hour-cell b{display:block}.h-good{border-bottom:3px solid #22a57d}.h-fair{border-bottom:3px solid #d29b28}.h-poor{border-bottom:3px solid #d76253}
.content-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:16px}.article-panel{padding:25px}.article-panel h2{font-size:25px;letter-spacing:-.025em;margin:28px 0 10px}.article-panel h2:first-child{margin-top:0}.article-panel h3{font-size:17px;margin:20px 0 8px}.article-panel p,.article-panel li{font-size:14px;color:#38536f}.toc{padding:18px;position:sticky;top:95px}.toc h3{font-size:11px;text-transform:uppercase;letter-spacing:.07em}.toc a{display:block;font-size:12px;color:#315878;padding:6px 0;border-bottom:1px solid #d7e3ed}.faq{border-top:1px solid var(--line)}.faq-item{border-bottom:1px solid var(--line);padding:14px 0}.faq-item b{display:block;margin-bottom:5px}.faq-item p{margin:0;color:#49657f;font-size:13px}.security-hero-grid{display:grid;grid-template-columns:1fr .75fr;gap:18px}.security-box{padding:21px}.security-range{font-size:42px;font-weight:950;letter-spacing:-.04em;color:#21cdbf}.confidence{display:inline-block;border:1px solid #7390ac;padding:5px 7px;font-size:10px;text-transform:uppercase;margin-top:7px}.hub-search{display:flex;gap:10px}.hub-search input{flex:1;height:50px;border:1px solid #abc2d7;padding:0 14px}.hub-search button{height:50px;background:var(--blue);color:#fff;border:0;padding:0 18px;font-weight:900}.core-page{padding:28px}.core-page .article-panel{max-width:980px;margin:auto}
@media(max-width:1000px){.hero-grid,.route-grid,.airport-page-grid,.security-hero-grid,.content-grid{grid-template-columns:1fr}.airport-list{grid-template-columns:repeat(2,1fr)}.main-nav,.header-meta{display:none}.mobile-menu{display:block;margin-left:auto}.feature-grid{grid-template-columns:1fr 1fr}.footer-top{grid-template-columns:1fr 1fr 1fr}.section-title{align-items:start}.section-title p{text-align:left}.hourly{grid-template-columns:repeat(6,1fr)}}
@media(max-width:650px){.wrap{padding-left:16px;padding-right:16px}.brand img{width:177px}.nav-cta{padding:0 11px;font-size:12px}.hero{padding-top:28px}.hero h1{font-size:43px}.form-grid,.form-grid.three,.leave-grid,.feature-grid,.metric-grid{grid-template-columns:1fr}.trust-strip{grid-template-columns:1fr}.trust-item{border-right:0;border-bottom:1px solid #25476a}.airport-list{grid-template-columns:1fr}.footer-top{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.footer-bottom{flex-direction:column}.board-grid{grid-template-columns:1fr 1fr}.hourly{grid-template-columns:repeat(3,1fr)}.page-hero h1{font-size:34px}}

/* E7 exact planner */
.e7-planner-options{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}
.e7-check{min-height:50px;border:1px solid var(--line);background:#f8fbfe;padding:11px 12px;display:flex;align-items:center;gap:9px;font-size:12px;font-weight:800}
.e7-check input{width:18px;height:18px}
.e7-status{font-size:11px;color:var(--muted);text-align:center;margin-top:9px;min-height:18px}
.e7-result{margin-top:14px;padding:22px}
.e7-result[hidden]{display:none}
.e7-result-head{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:16px}
.e7-result-meta{display:flex;gap:7px;flex-wrap:wrap}
.e7-result-chip{border:1px solid var(--line);padding:5px 7px;font-size:10px;font-weight:900;text-transform:uppercase}
.e7-plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.e7-plan{border:1px solid var(--line);padding:16px;background:#fff}
.e7-plan.recommended{border-color:#18a99c;background:#f1fffd}
.e7-plan.cautious{border-color:#db9f25}
.e7-plan-time{font-size:31px;font-weight:950;letter-spacing:-.035em;margin:4px 0}
.e7-detail-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:12px;margin-top:14px}
.e7-timeline,.e7-breakdown{border:1px solid var(--line);padding:17px;background:#fff}
.e7-timeline-row{display:grid;grid-template-columns:32px 1fr auto;gap:10px;padding:9px 0;border-bottom:1px solid #d7e3ed;align-items:center}
.e7-timeline-row:last-child{border-bottom:0}
.e7-timeline-row strong{font-size:12px;text-align:right}
.e7-timeline-row span{font-size:12px}
.e7-break-row{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #d7e3ed;padding:8px 0;font-size:12px}
.e7-break-row:last-child{border-bottom:0}
.e7-warnings{font-size:11px;color:#5d748c;margin:13px 0 0;padding-left:18px}
.e7-constraint{margin-top:12px;padding:10px;border:1px solid #d79e2c;background:#fff8e8;font-size:11px}
@media(max-width:900px){.e7-planner-options{grid-template-columns:repeat(2,1fr)}.e7-detail-grid{grid-template-columns:1fr}}
@media(max-width:650px){.e7-planner-options,.e7-plan-grid{grid-template-columns:1fr}}


/* E8-E related-airport component: 4-up desktop, 2-up tablet, 1-up mobile */
.related-airport-list{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  border:0;
  background:transparent;
}
.related-airport-list .related-airport-link{
  min-width:0;
  min-height:82px;
  padding:13px 14px;
  border:1px solid var(--line);
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 18px;
  gap:10px;
  align-items:center;
  background:#fff;
}
.related-airport-list .related-airport-link:hover{
  border-color:#87a7c5;
  background:#f8fbfe;
}
.related-airport-list .airport-code{
  font-size:18px;
  line-height:1;
}
.related-airport-copy{
  min-width:0;
}
.related-airport-list .airport-name{
  display:block;
  font-size:11px;
  line-height:1.35;
  white-space:normal;
}
.related-airport-list .airport-place{
  margin-top:4px;
  font-size:10px;
  line-height:1.25;
}
.related-airport-arrow{
  justify-self:end;
  font-size:17px;
  font-weight:900;
  color:#6f879d;
}
@media(max-width:1000px){
  .related-airport-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .related-airport-list{grid-template-columns:1fr}
  .related-airport-list .related-airport-link{min-height:74px}
}

/* E8-F content/sidebar layout stabilization */
@media(min-width:1001px){
  .content-grid{
    grid-template-columns:minmax(0,1fr) 292px;
    gap:18px;
    align-items:start;
  }
  .content-grid>.article-panel{
    min-width:0;
  }
  .content-grid>.toc{
    width:100%;
    min-width:0;
    height:max-content;
    align-self:start;
  }
}
.toc{
  height:max-content;
  align-self:start;
}


/* =========================================================
   E8-G — Page width, breadcrumbs and navigation system
   ========================================================= */
:root{
  --page-max:1240px;
  --reading-max:1120px;
  --rail:264px;
  --measure:80ch;
}

/* Hierarchy */
.page-core .page-hero .wrap{
  max-width:var(--page-max);
}
.page-core .page-hero p{
  max-width:860px;
}
.breadcrumb{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
  min-height:18px;
  margin:0 0 11px;
  font-size:11px;
  line-height:1.4;
  color:#8eacc8;
}
.breadcrumb a{
  color:#b9d0e4;
  font-weight:750;
}
.breadcrumb a:hover{
  color:#fff;
}
.breadcrumb-sep{
  opacity:.58;
}
.breadcrumb [aria-current="page"]{
  color:#fff;
  font-weight:800;
}

/* Core pages: full reading width, no tall right rail */
.reading-wrap{
  max-width:var(--reading-max);
}
.page-hub .reading-wrap{
  max-width:1280px;
}
.reading-article{
  width:100%;
  min-width:0;
  padding:32px 36px;
  box-shadow:none;
}
.reading-article h2{
  margin-top:38px;
  font-size:27px;
  line-height:1.18;
}
.reading-article h2:first-child{
  margin-top:0;
}
.reading-article p,
.reading-article li{
  max-width:var(--measure);
  font-size:15px;
  line-height:1.72;
}
.reading-article .faq-item p{
  max-width:none;
}
.page-core main>.section{
  padding:34px 0 42px;
}

/* Compact horizontal index for core pages */
.section-index-shell{
  background:#fff;
  border-bottom:1px solid var(--line);
}
.section-index{
  min-height:54px;
  display:flex;
  align-items:center;
  gap:16px;
}
.section-index-label{
  flex:none;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.09em;
  font-weight:950;
  color:#6e8499;
}
.section-index-links{
  display:flex;
  align-items:center;
  gap:4px;
  min-width:0;
  flex-wrap:wrap;
}
.section-index-links a{
  padding:9px 11px;
  font-size:11px;
  line-height:1.2;
  font-weight:800;
  color:#315878;
  border:1px solid transparent;
}
.section-index-links a:hover{
  border-color:#c3d5e4;
  background:#f7fbfe;
  color:#0b4f9e;
}

/* Related links on core pages are now a bottom continuation band */
.related-actions-section{
  padding-top:0!important;
}
.related-actions-head{
  display:flex;
  justify-content:space-between;
  align-items:end;
  margin-bottom:12px;
}
.related-actions-head h2{
  margin:4px 0 0;
  font-size:23px;
}
.related-action-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
}
.related-action-card{
  min-height:66px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 20px;
  gap:10px;
  align-items:center;
  padding:13px 14px;
  border:1px solid var(--line);
  background:#fff;
  font-size:12px;
  font-weight:850;
  color:#244d73;
}
.related-action-card:hover{
  border-color:#8eaac3;
  background:#f8fbfe;
}
.related-action-arrow{
  justify-self:end;
  font-size:17px;
  font-weight:950;
  color:#0e62e8;
}

/* Home support cards: compact utility card, not sticky navigation */
.home-support-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:18px;
  align-items:start;
}
.home-support-grid>.article-panel{
  min-width:0;
}
.support-card{
  position:static;
  height:max-content;
  align-self:start;
  padding:18px;
  box-shadow:none;
}
.support-card h3{
  margin:0 0 8px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.support-card a{
  display:block;
  padding:8px 0;
  border-bottom:1px solid #d7e3ed;
  font-size:12px;
  color:#315878;
}

/* Hub directories: use full available width instead of spending 1/3 on Related */
.page-hub .hub-search{
  max-width:760px;
  margin-bottom:16px;
}
.hub-airport-list{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  border:0;
  background:transparent;
}
.hub-airport-list .airport-link{
  min-width:0;
  min-height:82px;
  border:1px solid var(--line);
  padding:14px 15px;
  grid-template-columns:52px minmax(0,1fr) 18px;
  background:#fff;
}
.hub-airport-list .airport-link:hover{
  border-color:#8faac3;
  background:#f8fbfe;
}
.hub-airport-list .airport-name{
  line-height:1.35;
}
.airport-arrow{
  justify-self:end;
  color:#6d879f;
  font-size:17px;
  font-weight:950;
}

/* Long detail pages: only family that keeps a persistent side index */
.detail-reading-grid{
  max-width:var(--page-max);
  display:grid;
  grid-template-columns:minmax(0,1fr) var(--rail);
  gap:28px;
  align-items:start;
}
.detail-reading-grid>.article-panel{
  min-width:0;
  padding:30px 34px;
  box-shadow:none;
}
.detail-reading-grid>.article-panel p,
.detail-reading-grid>.article-panel li{
  max-width:var(--measure);
  font-size:15px;
  line-height:1.7;
}
.page-nav{
  min-width:0;
  position:sticky;
  top:92px;
  align-self:start;
}
.page-nav-inner{
  border:1px solid var(--line);
  background:#fff;
  padding:15px 16px;
}
.page-nav-label{
  margin-bottom:7px;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.09em;
  font-weight:950;
  color:#667f97;
}
.page-nav-links a,
.page-nav-actions a{
  display:block;
  padding:7px 0;
  border-bottom:1px solid #dbe6ef;
  font-size:11px;
  line-height:1.35;
  color:#315878;
}
.page-nav-links a:hover,
.page-nav-actions a:hover{
  color:#0b4f9e;
}
.page-nav-actions{
  margin-top:11px;
  padding-top:3px;
}
.page-nav-actions a{
  font-weight:900;
  color:#0e62e8;
}

/* About-data table may be wide, but never force the page grid */
.core-data-table{
  max-width:100%;
  overflow-x:auto;
}

/* Methodology sequence remains compact and uses the full reading column */
.page-methodology .core-formula{
  margin-bottom:30px;
}

/* Remove obsolete core TOC behavior from indexable core pages */
.page-core .toc{
  position:static;
}

/* Intermediate viewport: detail navigation becomes a horizontal jump bar */
@media(max-width:1100px){
  .detail-reading-grid{
    grid-template-columns:1fr;
  }
  .page-nav{
    order:-1;
    position:static;
  }
  .page-nav-inner{
    padding:11px 13px;
  }
  .page-nav-label{
    margin:0 0 8px;
  }
  .page-nav-links,
  .page-nav-actions{
    display:flex;
    gap:6px;
    overflow-x:auto;
    scrollbar-width:thin;
  }
  .page-nav-links a,
  .page-nav-actions a{
    flex:0 0 auto;
    border:1px solid #cfdee9;
    padding:8px 10px;
    white-space:nowrap;
  }
  .page-nav-actions{
    margin-top:7px;
    padding-top:0;
  }
}

@media(max-width:900px){
  .home-support-grid{
    grid-template-columns:1fr;
  }
  .support-card{
    display:none;
  }
  .related-action-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .hub-airport-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .reading-article,
  .detail-reading-grid>.article-panel{
    padding:26px 24px;
  }
  .section-index{
    align-items:flex-start;
    padding:10px 0;
  }
}

@media(max-width:650px){
  .section-index{
    display:block;
  }
  .section-index-label{
    display:block;
    margin-bottom:7px;
  }
  .section-index-links{
    flex-wrap:nowrap;
    overflow-x:auto;
    padding-bottom:3px;
    scrollbar-width:thin;
  }
  .section-index-links a{
    flex:0 0 auto;
    white-space:nowrap;
    border-color:#d5e2ec;
  }
  .related-action-grid,
  .hub-airport-list{
    grid-template-columns:1fr;
  }
  .reading-article,
  .detail-reading-grid>.article-panel{
    padding:22px 18px;
  }
  .reading-article h2{
    font-size:23px;
  }
  .breadcrumb{
    font-size:10px;
  }
}


/* =========================================================
   E8-H — resilient airport map runtime
   ========================================================= */
.map-runtime-status{
  position:absolute;z-index:11;right:12px;bottom:12px;max-width:250px;
  padding:6px 8px;border:1px solid #afc5d7;background:rgba(255,255,255,.94);
  color:#46647e;font-size:9px;line-height:1.35;pointer-events:none;
}
.map-runtime-fallback{border-color:#9ab8cf}.map-runtime-warning{border-color:#d7b76c;color:#775d25}.map-runtime-ok{display:none}
.native-map-fallback{position:relative;overflow:hidden;background:#dceaf5}
.native-tile-layer{position:absolute;inset:0;overflow:hidden}
.native-tile-layer img{position:absolute;width:256px;height:256px;max-width:none!important;user-select:none;-webkit-user-drag:none}
.native-map-marker{position:absolute;left:50%;top:50%;width:18px;height:18px;transform:translate(-50%,-50%);border:3px solid #0e62e8;background:#2ed9cc;border-radius:50%;box-shadow:0 0 0 8px rgba(14,98,232,.12);z-index:3}
.native-map-osm-link{position:absolute;right:12px;top:52px;z-index:4;background:#fff;border:1px solid #acc4d8;padding:6px 8px;font-size:9px;font-weight:850;color:#25577d;text-decoration:none}
.native-map-unavailable{display:grid;place-items:center;background:linear-gradient(135deg,#dceaf5,#edf5fa)}
.native-map-message{display:grid;gap:7px;max-width:320px;padding:18px;border:1px solid #abc3d6;background:#fff;text-align:center;box-shadow:0 5px 18px rgba(0,25,55,.08)}
.native-map-message strong{font-size:14px}.native-map-message span{font-size:11px;color:#617b91}.native-map-message a{font-size:11px;font-weight:900;color:#0e62e8}


/* =========================================================
   E8-I — Security data visualization
   ========================================================= */
.security-pattern{
  position:relative;
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  column-gap:12px;
  row-gap:14px;
  padding:22px 22px 18px;
  border:1px solid var(--line);
  background:#fff;
}
.security-pattern-scale{
  height:176px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  align-items:flex-end;
  padding:2px 0 26px;
  font-size:9px;
  font-weight:800;
  color:#7890a5;
}
.security-pattern-chart{
  min-width:0;
  height:202px;
  display:grid;
  grid-template-columns:repeat(12,minmax(42px,1fr));
  gap:8px;
  overflow-x:auto;
  padding:0 2px 2px;
}
.security-hour{
  min-width:42px;
  display:grid;
  grid-template-rows:176px auto auto auto;
  text-align:center;
  align-items:end;
}
.security-hour-chart{
  position:relative;
  height:164px;
  margin:0 auto 8px;
  width:64%;
  min-width:24px;
  border-bottom:1px solid #aebfd0;
  background:
    linear-gradient(to top,
      transparent 24.5%,#e4edf4 25%,transparent 25.5%,
      transparent 49.5%,#e4edf4 50%,transparent 50.5%,
      transparent 74.5%,#e4edf4 75%,transparent 75.5%);
}
.security-pressure-fill{
  position:absolute;
  left:4px;
  right:4px;
  bottom:0;
  height:var(--mid);
  border:1px solid #7e9bb4;
  background:#d8e7f3;
}
.security-range-band{
  position:absolute;
  left:-2px;
  right:-2px;
  bottom:var(--low);
  height:calc(var(--high) - var(--low));
  min-height:7px;
  border:2px solid currentColor;
  background:rgba(255,255,255,.54);
}
.security-range-band:before,
.security-range-band:after{
  content:"";
  position:absolute;
  left:-4px;
  right:-4px;
  height:1px;
  background:currentColor;
}
.security-range-band:before{top:-2px}
.security-range-band:after{bottom:-2px}
.pattern-lower .security-range-band{color:#16825f}
.pattern-lower .security-pressure-fill{background:#d9f1e8;border-color:#72aa96}
.pattern-mid .security-range-band{color:#b47c0e}
.pattern-mid .security-pressure-fill{background:#fff0c9;border-color:#c7a251}
.pattern-higher .security-range-band{color:#c54f43}
.pattern-higher .security-pressure-fill{background:#f9ddd9;border-color:#d28a82}
.security-hour strong{
  font-size:10px;
  line-height:1.15;
  color:#294966;
  white-space:nowrap;
}
.security-hour-range{
  margin-top:4px;
  font-size:10px;
  line-height:1;
  font-weight:900;
  color:#102f4c;
}
.security-hour-unit{
  margin-top:2px;
  font-size:8px;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:#7990a5;
}
.security-pattern-summary{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.security-pattern-summary>div{
  padding:14px 16px;
  border-right:1px solid var(--line);
}
.security-pattern-summary>div:last-child{border-right:0}
.security-pattern-summary span{
  display:block;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.07em;
  font-weight:900;
  color:#6f8599;
}
.security-pattern-summary strong{
  display:block;
  margin:4px 0 3px;
  font-size:19px;
  line-height:1.1;
  color:#0c3155;
}
.security-pattern-summary small{
  display:block;
  font-size:10px;
  line-height:1.4;
  color:#667f96;
}
.security-pattern-note{
  grid-column:1/-1;
  margin:0;
  max-width:980px;
  font-size:11px;
  line-height:1.55;
  color:#607a92;
}
.security-context-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.78fr);
  gap:12px;
  align-items:stretch;
}
.security-context-stats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border:1px solid var(--line);
  background:#fff;
}
.security-context-stat{
  padding:22px;
}
.security-context-stat+ .security-context-stat{
  border-left:1px solid var(--line);
}
.security-context-stat>span,
.precheck-label{
  display:block;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:950;
  color:#647e96;
}
.security-context-stat>strong{
  display:block;
  margin:7px 0 6px;
  font-size:31px;
  line-height:1;
  letter-spacing:-.025em;
  color:#0b887e;
}
.security-context-stat>small{
  display:block;
  max-width:340px;
  font-size:11px;
  line-height:1.5;
  color:#607a92;
}
.precheck-callout{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:14px;
  padding:19px 20px;
  border:1px solid #9db5c9;
  background:#f8fbfe;
}
.precheck-callout-icon{
  width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #8fa9bf;
  color:#0e62e8;
  background:#fff;
}
.precheck-callout h3{
  margin:4px 0 7px;
  font-size:17px;
  line-height:1.2;
}
.precheck-callout p{
  margin:0 0 9px;
  font-size:11px;
  line-height:1.55;
  color:#536e87;
}
.precheck-callout a{
  font-size:11px;
  font-weight:900;
  color:#0e62e8;
}

/* Mobile navigation must actually open, not merely show a button. */
@media(max-width:1000px){
  .header-row{position:relative}
  .main-nav.is-open{
    display:flex;
    position:absolute;
    top:74px;
    left:28px;
    right:28px;
    z-index:520;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:8px;
    border:1px solid #315577;
    background:#061b36;
    box-shadow:0 16px 34px rgba(0,0,0,.2);
  }
  .main-nav.is-open a{
    padding:12px 11px;
    border-bottom:1px solid #244664;
  }
  .main-nav.is-open a:last-child{border-bottom:0}
}
@media(max-width:850px){
  .security-context-layout{grid-template-columns:1fr}
}
@media(max-width:650px){
  .security-pattern{
    grid-template-columns:1fr;
    padding:16px 14px;
  }
  .security-pattern-scale{display:none}
  .security-pattern-chart{
    height:194px;
    grid-column:1;
  }
  .security-pattern-summary{
    grid-template-columns:1fr;
  }
  .security-pattern-summary>div{
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .security-pattern-summary>div:last-child{border-bottom:0}
  .security-context-stats{grid-template-columns:1fr}
  .security-context-stat+ .security-context-stat{
    border-left:0;
    border-top:1px solid var(--line);
  }
  .main-nav.is-open{
    left:16px;
    right:16px;
  }
}
