/* Openly licensed Marcellus, self-hosted with its SIL OFL notice. */
@font-face {
    font-family: 'Marcellus';
    src: url('fonts/Marcellus-Regular.ttf') format('truetype');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}
/* vETD design tokens. Change these values to update the shared theme. */
/* Dark is the default. Shared brand colours remain identical in both themes. */
:root {
    color-scheme: dark;
    --page: #0d1117;
    --panel: #161b22;
    --raised: #1c2129;
    --line: #21262D;
    --text: #ede8de;
    --muted: #9e9585;
    --gold: #c69f56;
    --gold-lift: #ddb673;
    --gold-deep: #8c6b2f;
    --bronze: #6b5028;
    --accent-text: var(--gold-lift);
    --hero-glow: #6b5028;
    --sidebar-width: 250px;
}


* { box-sizing: border-box; }
body { margin: 0; background: var(--page); color: var(--text); font-family: Arial, Helvetica, sans-serif; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button, a, input { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible { outline: 3px solid var(--gold); outline-offset: 5px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: 'Marcellus', Georgia, serif; font-weight: 400; line-height: 1.12; }
h1 { font-size: clamp(2.8rem, 5.4vw, 5.2rem); letter-spacing: -0.04em; margin-bottom: 24px; }
h2 { font-size: clamp(2rem, 3vw, 3rem); letter-spacing: -0.025em; }
h3 { font-size: 2rem; }
.skip-link { position: fixed; top: -100px; left: 20px; background: var(--panel); padding: 12px; z-index: 1000; }
.skip-link:focus { top: 12px; }
/* Persistent left navigation, including tablet layouts. */
.sidebar { width: var(--sidebar-width); position: fixed; inset: 0 auto 0 0; display: flex; flex-direction: column; padding: 42px 28px 24px; border-right: 1px solid var(--line); background: var(--page); z-index: 20; }
.brand { font-family: 'Marcellus', Georgia, serif; font-size: 3.6rem; color: var(--accent-text); line-height: 1; letter-spacing: -4px; }
.brand span { display: block; font-family: Arial, sans-serif; font-size: 9px; letter-spacing: 3px; margin: 14px 0 52px 4px; color: var(--text); }
nav { display: grid; gap: 5px; }
nav a { padding: 13px 9px; font-size: 13px; border-left: 2px solid transparent; }
nav a span { font-size: 9px; color: var(--accent-text); margin-right: 17px; }
nav a:hover { background: var(--raised); }
nav a[aria-current] { border-left-color: var(--accent-text); background: var(--raised); }
.sidebar-note { margin-top: auto; padding-top: 42px; }
.sidebar-note .eyebrow { font-size: 8px; letter-spacing: 1.5px; }
.sidebar-note p { font-family: 'Marcellus', Georgia, serif; font-size: 20px; margin-top: 15px; }
.sidebar-note a { font-size: 12px; color: var(--accent-text); }
.sidebar-footer { font-size: 9px; color: var(--muted); margin: 35px 0 0; }
.menu-toggle { display: none; }
.page { margin-left: var(--sidebar-width); }
.eyebrow { color: var(--accent-text); font-size: 10px; font-weight: 600; letter-spacing: 2.3px; margin-bottom: 20px; }
.hero { min-height: 560px; position: relative; overflow: hidden; background: var(--panel); display: flex; align-items: center; }
.hero-content { position: relative; padding: 75px 6%; z-index: 2; width: 65%; }
.hero-content p:not(.eyebrow) { font-size: 14px; line-height: 1.9; }
.hero-art { position: absolute; inset: 0; background: linear-gradient(110deg, var(--panel) 25%, var(--raised) 65%, var(--hero-glow)); overflow: hidden; }
.sun { position: absolute; width: 290px; height: 290px; border-radius: 50%; right: 8%; top: 10%; background: radial-gradient(circle, #fff7db, #f3e2b833, transparent 70%); }
.dune { position: absolute; width: 110%; height: 250px; border-radius: 50% 50% 0 0; transform: rotate(-12deg); right: -36%; bottom: -70px; }
.dune-back { background: var(--bronze); bottom: -15px; right: -30%; opacity: .55; }
.dune-front { background: var(--gold-deep); }
.hero-aircraft { position: absolute; width: 62%; right: -12%; top: 34%; transform: rotate(-19deg); filter: drop-shadow(0 16px 10px #776c4c33); }
.hero-caption { position: absolute; bottom: 22px; right: 30px; font-size: 8px; letter-spacing: 1.5px; color: var(--muted); }
.button { border: 0; appearance: none; display: inline-flex; gap: 38px; align-items: center; padding: 14px 23px; margin-top: 15px; background: var(--gold); color: #0d1117; font-size: 12px; }
.button:hover { background: var(--gold-lift); }
.quick-links { display: grid; grid-template-columns: repeat(3, 1fr); background: var(--panel); border-bottom: 1px solid var(--line); }
.quick-links a { padding: 28px 10%; font-family: 'Marcellus', Georgia, serif; font-size: 21px; border-right: 1px solid var(--line); }
.quick-links span { display: block; font: 8px Arial, sans-serif; letter-spacing: 2px; color: var(--accent-text); margin-bottom: 8px; }
.quick-links b { float: right; font-weight: 400; color: var(--accent-text); }
.quick-links a:hover { background: var(--raised); }
.section { padding: 64px 6%; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
.section-heading h2 { margin-bottom: 0; }
.text-link { font-size: 12px; color: var(--accent-text); border-bottom: 1px solid var(--gold-deep); padding-bottom: 5px; display: inline-block; }
.destination-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.destination { min-height: 310px; padding: 24px; display: flex; flex-direction: column; justify-content: space-between; color: white; overflow: hidden; position: relative; }
.destination::before { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, #162e30ed, #18333700); }
.destination > * { position: relative; }
.abu { background: #9d9275 url('https://images.unsplash.com/photo-1512632578888-169bbbc64f33?auto=format&fit=crop&w=1000&q=85') center/cover; }
.london { background: #6a7e86 url('https://images.unsplash.com/photo-1513635269975-59663e0ac1ad?auto=format&fit=crop&w=1000&q=85') center/cover; }
.airport-code { font-size: 9px; letter-spacing: 2px; }
.destination div > span { font-size: 8px; letter-spacing: 2px; }
.destination h3 { margin: 10px 0; }
.destination p { font-size: 12px; margin-bottom: 0; }
.community { margin: 0 6% 64px; padding: 40px; background: var(--panel); display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.community p:not(.eyebrow) { color: var(--muted); font-size: 14px; }
.community h2 { margin-bottom: 0; }
.footer { border-top: 1px solid var(--line); margin: 0 6%; padding: 32px 0; display: flex; flex-wrap: wrap; gap: 22px; align-items: center; font-size: 10px; color: var(--muted); }
.footer-brand { color: var(--accent-text); font: 28px Georgia, serif; }
.footer p { flex: 1; min-width: 220px; margin: 0; }
.footer > span { font-size: 9px; }
.page-intro { padding: 65px 6% 42px; background: var(--raised); }
.lead { max-width: 650px; font-size: 15px; color: var(--muted); margin-bottom: 0; }
.badge { display: inline-block; background: var(--raised); color: var(--accent-text); font-size: 9px; padding: 7px 11px; letter-spacing: 1px; }
.map-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin-bottom: 18px; }
.small-button { background: var(--panel); border: 1px solid var(--line); color: var(--text); padding: 8px 14px; font-size: 12px; }
.map-layout { display: grid; grid-template-columns: 1fr 290px; border: 1px solid var(--line); }
.flight-map { min-height: 480px; background: var(--panel); z-index: 1; }
.map-fallback { padding: 30px; }
.flight-panel { background: var(--panel); padding: 28px 22px; }
.flight-panel h2 { font-size: 25px; }
.flight-choice { display: block; width: 100%; background: none; text-align: left; padding: 18px 0; border: 0; border-bottom: 1px solid var(--line); color: var(--text); }
.flight-choice[aria-pressed='true'] { background: var(--raised); }
.flight-choice strong { display: block; color: var(--accent-text); font-size: 11px; letter-spacing: 1px; }
.flight-choice span { display: block; font: 24px 'Marcellus', Georgia, serif; margin: 5px 0; }
.flight-choice small { color: var(--muted); }
.fine-print { color: var(--muted); font-size: 11px; margin-top: 20px; }
.search-label { display: block; font-size: 12px; margin-bottom: 8px; }
input[type='search'] { width: 100%; max-width: 540px; background: var(--panel); border: 1px solid var(--line); padding: 14px 17px; color: var(--text); }
.brief-grid, .fleet-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 30px; }
.brief-card, .fleet-card, .content-card { padding: 25px; background: var(--panel); border: 1px solid var(--line); }
.brief-card h2 { font-size: 26px; margin: 15px 0; }
.brief-card p, .fleet-card p, .content-card p { color: var(--muted); font-size: 13px; }
.brief-card details { margin-top: 18px; font-size: 12px; }
.brief-card summary { cursor: pointer; color: var(--accent-text); }
.brief-card ul { padding-left: 18px; color: var(--muted); }
.fleet-card h2, .content-card h2 { font-size: 27px; }
.aircraft-illustration { font-size: 80px; line-height: 1; color: var(--accent-text); background: linear-gradient(145deg, var(--panel), var(--raised)); text-align: center; padding: 30px 0; margin: -25px -25px 25px; }
.content-grid, .about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.about-grid p { color: var(--muted); }
.empty-state { border: 1px solid var(--line); padding: 60px; text-align: center; background: var(--panel); }
.empty-state p { max-width: 550px; margin: 20px auto; color: var(--muted); }
/* Tablet retains the side menu. Mobile attaches navigation to the top. */
@media (max-width: 1100px) {
    :root { --sidebar-width: 205px; }
    .sidebar { padding: 32px 18px 20px; }
    .brief-grid, .fleet-grid { grid-template-columns: repeat(2, 1fr); }
    .map-layout { grid-template-columns: 1fr; }
    .flight-panel { display: block; }
    #flight-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
    .hero-content { width: 75%; }
    .section-heading { align-items: start; flex-direction: column; }
}
@media (max-width: 759px) {
    .sidebar { position: sticky; top: 0; width: 100%; padding: 14px 22px; flex-direction: row; align-items: center; flex-wrap: wrap; justify-content: space-between; border-right: 0; border-bottom: 1px solid var(--line); }
    .brand { font-size: 36px; letter-spacing: -2px; }
    .brand span { margin: 7px 0 0; font-size: 7px; letter-spacing: 2px; }
    .menu-toggle { display: block; border: 1px solid var(--line); padding: 8px 12px; background: transparent; font-size: 12px; }
    nav { width: 100%; display: none; padding-top: 18px; grid-template-columns: 1fr 1fr; }
    nav.is-open { display: grid; }
    .sidebar-note, .sidebar-footer { display: none; }
    .page { margin-left: 0; }
    .hero { min-height: 530px; }
    .hero-content { padding: 50px 7% 110px; width: 100%; }
    .hero-aircraft { width: 80%; right: -32%; top: 66%; }
    .hero-caption { font-size: 6px; right: 20px; }
    .quick-links a { padding: 20px 12px; font-size: 16px; }
    .quick-links b { display: none; }
    .section { padding: 42px 6%; }
    .destination-grid, .community, .brief-grid, .fleet-grid, .content-grid, .about-grid { grid-template-columns: 1fr; }
    .community { padding: 30px; gap: 25px; margin-bottom: 42px; }
    .page-intro { padding: 45px 6% 35px; }
    .flight-map { min-height: 350px; }
    #flight-list { grid-template-columns: 1fr; }
    .empty-state { padding: 35px 22px; }
    .footer { gap: 15px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; }
}

/* Theme controls stay available in the top bar at every viewport width. */
.hero-content { text-shadow: 0 1px 12px var(--panel); }
.leaflet-container { font-family: Arial, Helvetica, sans-serif; }
.leaflet-control-zoom a, .leaflet-control-attribution { background: var(--panel) !important; color: var(--text) !important; }
.leaflet-control-attribution a { color: var(--accent-text); }
.leaflet-tooltip { background: var(--panel); color: var(--text); border-color: var(--line); }
.plane-marker { color: var(--gold-lift); font-size: 28px; }
@media (max-width: 759px) {
}

/* Brand asset slot and expandable navigation. */
.sidebar { overflow-y: auto; }
.brand { display: block; width: 100%; letter-spacing: normal; }
.brand-logo { display: block; width: 100%; max-width: 180px; height: 72px; object-fit: contain; }
.brand .brand-slogan { font: 9px Arial, sans-serif; letter-spacing: 1px; margin: 12px 0 24px; color: var(--muted); }
.menu-toggle { display: block; background: var(--raised); color: var(--text); border: 1px solid var(--line); padding: 8px 12px; font-size: 11px; margin-bottom: 16px; }
nav a .nav-label { font-size: 13px; color: var(--text); margin: 0; }
.nav-collapsed { --sidebar-width: 80px; }
.nav-collapsed .sidebar { padding: 24px 10px; align-items: center; }
.nav-collapsed .brand-logo { height: 32px; width: 60px; }
.nav-collapsed .brand-slogan, .nav-collapsed .sidebar-note, .nav-collapsed .sidebar-footer, .nav-collapsed .nav-label, .nav-collapsed .menu-label, .nav-collapsed .theme-label { display: none; }
.nav-collapsed nav { width: 100%; }
.nav-collapsed nav a { padding: 13px 10px; text-align: center; }
.focus-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 28px; }
.focus-grid .content-card h3 { font-size: 27px; }
.contact-details { font-size: 13px; }
.contact-details dt { margin-top: 16px; color: var(--accent-text); }
.contact-details dd { margin: 4px 0; color: var(--muted); }
.support-form { padding: 32px; margin-top: 32px; border: 1px solid var(--line); background: var(--panel); }
.support-form h2 { font-size: 28px; }
.support-form label { display: block; font-size: 12px; margin: 16px 0 8px; }
.support-form input, .support-form select, .support-form textarea { width: 100%; padding: 12px; border: 1px solid var(--line); background: var(--page); color: var(--text); font: inherit; border-radius: 0; }
.support-form textarea { resize: vertical; }
.support-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
#support-draft { margin-top: 25px; }
@media (max-width: 1100px) {
    .focus-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 759px) {
    .sidebar { gap: 10px; overflow-y: visible; }
    .brand { width: auto; }
    .brand-logo { width: 105px; height: 42px; }
    .brand .brand-slogan { font-size: 7px; margin: 5px 0 0; letter-spacing: .4px; }
    .menu-toggle { margin: 0 0 0 auto; }
    .sidebar nav { order: 3; flex-basis: 100%; padding-top: 8px; }
    .focus-grid, .support-fields { grid-template-columns: 1fr; }
    .support-form { padding: 24px; }
}
@media (max-width: 399px) {
    .sidebar { padding: 12px 14px; gap: 8px; }
    .brand-logo { width: 90px; height: 36px; }
    .brand .brand-slogan { font-size: 6px; }
    .menu-toggle { padding: 8px; }
}

/* Logo divider with an icon-only control crossing the sidebar boundary. */
.sidebar { overflow: visible; }
.brand { flex-shrink: 0; }
.nav-divider { position: relative; width: 100%; height: 1px; margin: 0 0 24px; background: var(--line); flex-shrink: 0; }
.nav-divider .menu-toggle { position: absolute; right: -46px; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 36px; height: 36px; margin: 0; padding: 7px; border-radius: 50%; border: 1px solid var(--line); background: var(--panel); color: var(--accent-text); box-shadow: 0 3px 12px #00000030; z-index: 25; }
.nav-divider .menu-toggle:hover { background: var(--raised); border-color: var(--gold); }
.collapse-icon { width: 20px; height: 20px; }
nav { min-height: 0; overflow-y: auto; }
nav a { display: flex; align-items: center; gap: 14px; }
.nav-icon { width: 20px; height: 20px; flex-shrink: 0; color: var(--accent-text); }
.sidebar-note { padding-top: 28px; flex-shrink: 0; }
.sidebar-note a { display: flex; align-items: center; gap: 12px; }
.nav-collapsed .nav-divider { margin-top: 20px; }
.nav-collapsed .nav-divider .menu-toggle { right: -28px; }
.nav-collapsed .collapse-icon { transform: rotate(180deg); }
.nav-collapsed nav a { justify-content: center; padding: 13px 8px; }
.nav-collapsed .sidebar-note { display: block; }
.nav-collapsed .sidebar-note a { justify-content: center; }
.nav-collapsed .pilot-centre-label { display: none; }
@media (min-width: 760px) and (max-width: 1100px) {
    .nav-divider .menu-toggle { right: -36px; }
    .nav-collapsed .nav-divider .menu-toggle { right: -28px; }
}
@media (max-width: 759px) {
    .sidebar { padding-bottom: 24px; }
    .nav-divider { position: absolute; left: 22px; bottom: 0; width: calc(100% - 44px); margin: 0; }
    .nav-divider .menu-toggle { right: 0; width: 36px; height: 36px; }
    .collapse-icon { transform: rotate(-90deg); }
    .mobile-menu-open .collapse-icon { transform: rotate(90deg); }
    .sidebar nav { overflow-y: auto; max-height: 50vh; }
    .sidebar-note { display: none; }
    .mobile-menu-open .sidebar-note { display: block; width: 100%; order: 4; padding-top: 12px; margin-top: 0; }
}

/* Separate brand assets for the expanded sidebar and compact rail. */
.brand-logo-compact { display: none; }
.nav-collapsed .brand-logo-full { display: none; }
.nav-collapsed .brand-logo-compact { display: block; width: 48px; height: 48px; }
.nav-bottom { margin-top: auto; width: 100%; padding-top: 24px; flex-shrink: 0; }
.nav-bottom .sidebar-note { margin-top: 0; padding-top: 18px; }
/* Hover expansion overlays the page, keeping its content in place. */
.nav-preview .page { margin-left: 80px; }
.nav-preview .sidebar { box-shadow: 12px 0 30px #00000030; }
@media (max-width: 759px) {
    .brand-logo-compact { display: none; }
    .sidebar .nav-bottom { display: none; width: 100%; order: 4; padding: 12px 0 4px; margin-top: 0; border-top: 1px solid var(--line); }
    .mobile-menu-open .nav-bottom { display: flex; justify-content: space-between; align-items: center; gap: 15px; }
    .sidebar .nav-bottom .sidebar-note { display: block; width: auto; padding: 0; margin: 0; }
}

/* Supplied logo variants: light lettering on dark, dark lettering on light. */
.footer-brand img { object-fit: contain; }

/* Animate the rail width and crossfade logos without changing row heights. */
@media (min-width: 760px) {
    .sidebar { padding-top: 32px; transition: width 1.5s ease, padding 1.5s ease, box-shadow 1.5s ease; }
    .nav-collapsed .sidebar { padding-top: 32px; }
    .page { transition: margin-left 1.5s ease; }
    .brand { position: relative; height: 96px; }
    .brand .brand-logo { position: absolute; top: 0; left: 50%; transform: translateX(-50%); object-fit: contain; }
    .brand .brand-logo-full { width: 180px; max-width: none; height: 64px; opacity: 1; visibility: visible; transition: opacity 1.5s ease, visibility 1.5s ease; }
    .brand .brand-logo-compact { display: block; width: 48px; height: 48px; top: 8px; opacity: 0; visibility: hidden; transition: opacity 1.5s ease, visibility 1.5s ease; }
    .nav-collapsed .brand .brand-logo-full { display: block; opacity: 0; visibility: hidden; }
    .nav-collapsed .brand .brand-logo-compact { opacity: 1; visibility: visible; }
    .brand .brand-slogan { display: block; position: absolute; top: 68px; width: 192px; left: 50%; transform: translateX(-50%); text-align: center; margin: 0; opacity: 1; transition: opacity 1.5s ease; }
    .nav-collapsed .brand .brand-slogan { display: block; opacity: 0; }
    .nav-collapsed .nav-divider { margin-top: 0; }
    .nav-divider .menu-toggle { transition: right 1.5s ease; }
    .collapse-icon { transition: transform 1.5s ease; }
    .sidebar nav { width: 100%; overflow-x: hidden; }
    .sidebar nav a { height: 47px; justify-content: flex-start; padding: 13px 9px; gap: 14px; white-space: nowrap; }
    .nav-collapsed .sidebar nav a { padding: 13px 9px; }
    .sidebar .nav-label, .sidebar .theme-label, .sidebar .pilot-centre-label { display: inline-block; opacity: 1; visibility: visible; transition: opacity 1.5s ease, visibility 1.5s ease; }
    .nav-collapsed .sidebar .nav-label, .nav-collapsed .sidebar .theme-label, .nav-collapsed .sidebar .pilot-centre-label { display: inline-block; opacity: 0; visibility: hidden; }
    .nav-bottom { overflow: hidden; }
    .nav-bottom .sidebar-note a { height: 24px; white-space: nowrap; justify-content: flex-start; padding-left: 9px; }
    /* The inactive theme image stays hidden even in the collapsed state. */
}
@media (max-width: 759px) {
    .brand .brand-logo-compact { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .sidebar, .page, .brand .brand-logo, .brand .brand-slogan, .nav-divider .menu-toggle, .collapse-icon, .sidebar .nav-label, .sidebar .theme-label, .sidebar .pilot-centre-label { transition: none; }
}

/* Larger navigation type and consistent Pilot Centre menu styling. */
.sidebar nav a .nav-label { font-size: 15px; }
.nav-bottom .sidebar-note { padding-top: 0; }
.nav-bottom .sidebar-note a { height: 47px; padding: 13px 9px; gap: 14px; font-size: 15px; color: var(--text); border-left: 2px solid transparent; }
.nav-bottom .sidebar-note a:hover { background: var(--raised); }
.brand .brand-slogan { font-size: 10px; }
/* Follow the animated boundary and rotate with the visible expanded state. */
.nav-divider .menu-toggle { transition: right 1.5s ease, background-color 150ms ease; }
.menu-toggle .collapse-icon { transition: transform 1.5s ease; }
.menu-toggle[aria-expanded='true'] .collapse-icon { transform: rotate(0deg); }
.menu-toggle[aria-expanded='false'] .collapse-icon { transform: rotate(180deg); }
.social-links { display: flex; align-items: center; gap: 12px; }
.social-link { display: grid; place-items: center; width: 36px; height: 36px; padding: 7px; background: transparent; border: 1px solid var(--line); color: var(--gold); opacity: 1; cursor: pointer; }
.social-link svg { width: 21px; height: 21px; }
@media (max-width: 759px) {
    .mobile-menu-open .nav-bottom { justify-content: flex-start; }
    .nav-bottom .sidebar-note a { height: 47px; }
    .menu-toggle[aria-expanded='true'] .collapse-icon { transform: rotate(90deg); }
    .menu-toggle[aria-expanded='false'] .collapse-icon { transform: rotate(-90deg); }
}
@media (prefers-reduced-motion: reduce) {
    .nav-divider .menu-toggle, .menu-toggle .collapse-icon { transition: none; }
}

/* Footer messages stay centred independently of the logo and social icons. */
.footer { display: grid; grid-template-columns: 120px minmax(0, 1fr) 120px; gap: 24px; }
.footer-statements { text-align: center; }
.footer .footer-copyright { min-width: 0; font-size: 11px; margin: 0 0 8px; }
.footer .footer-disclaimer { min-width: 0; font-size: 10px; margin: 0; }
.footer .social-links { justify-content: flex-end; }
@media (max-width: 759px) {
    .footer { grid-template-columns: 1fr; justify-items: center; gap: 18px; }
    .footer-statements { width: 100%; }
    .footer .social-links { justify-content: center; }
}

/* A wide editorial carousel, sized for the monthly 2–4 airport selection. */
.focus-carousel { margin-top: 30px; }
.focus-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; position: relative; }
.focus-track::-webkit-scrollbar { display: none; }
.focus-slide { flex: 0 0 100%; min-width: 0; min-height: 340px; scroll-snap-align: start; background: radial-gradient(ellipse at 90% 90%, #8c6b2f66, transparent 55%), linear-gradient(130deg, var(--panel), var(--raised)); background-size: cover; background-position: center; display: flex; align-items: center; }
.focus-slide-1 { background-color: #1c2129; background-image: radial-gradient(ellipse at 90% 20%, #6b502877, transparent 65%), linear-gradient(150deg, #161b22, #21262d); }
.focus-slide-2 { background-image: radial-gradient(ellipse at 80% 80%, #c69f5633, transparent 55%), linear-gradient(110deg, #161b22, #1c2129); }
.focus-slide-content { padding: 45px 6%; max-width: 760px; }
.focus-slide-content h3 { font-size: clamp(2rem, 3.6vw, 3.6rem); margin-bottom: 22px; }
.focus-slide-content > p:not(.eyebrow) { color: var(--muted); max-width: 520px; }
.carousel-controls { display: flex; justify-content: space-between; align-items: center; padding-top: 18px; gap: 18px; }
.carousel-controls[hidden] { display: none; }
.carousel-arrows, .carousel-dots { display: flex; align-items: center; gap: 10px; }
.carousel-arrow { width: 42px; height: 42px; border: 1px solid var(--line); background: var(--panel); color: var(--gold); font-size: 20px; }
.carousel-arrow:hover { border-color: var(--gold); }
.carousel-dot { width: 24px; height: 24px; padding: 6px; border: 0; background: none; display: grid; place-items: center; }
.carousel-dot::after { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--muted); }
.carousel-dot[aria-pressed='true']::after { background: var(--gold); width: 10px; height: 10px; }
.carousel-controls .fine-print { margin: 0; min-width: 40px; text-align: right; }
.footer { padding: 0; }
.footer-statements { padding: 0; }
.footer .footer-declaration { min-width: 0; margin: 0; padding: 0; font-size: 10px; }
@media (max-width: 759px) {
    .focus-slide { min-height: 300px; }
    .focus-slide-content { padding: 32px 7%; }
}

/* Destination cards keep the other monthly airports visible below the feature. */
.focus-cards { display: grid; grid-template-columns: repeat(var(--focus-count, 3), minmax(0, 1fr)); gap: 22px; margin-top: 28px; }
.focus-airport-card { padding: 0; text-align: left; background: var(--panel); color: var(--text); border: 1px solid var(--line); display: flex; flex-direction: column; min-width: 0; }
.focus-airport-card:hover, .focus-airport-card[aria-pressed='true'] { border-color: var(--gold); }
.focus-card-image { display: block; width: 100%; aspect-ratio: 16 / 7; background: radial-gradient(ellipse at 80% 100%, #c69f5655, transparent 60%), linear-gradient(135deg, #161b22, #6b502855); background-size: cover; background-position: center; }
.focus-card-1 .focus-card-image { background-color: #303846; }
.focus-card-2 .focus-card-image { background-color: #45402c; }
.focus-card-3 .focus-card-image { background-color: #273d42; }
.focus-card-body { display: flex; flex-direction: column; padding: 24px; flex: 1; }
.focus-card-body .eyebrow { margin-bottom: 12px; font-size: 9px; }
.focus-card-name { font: 400 clamp(1.4rem, 2vw, 2rem)/1.2 'Marcellus', Georgia, serif; }
.focus-card-detail { color: var(--muted); font-size: 12px; margin: 14px 0 24px; }
.focus-card-action { color: var(--gold-lift); font-size: 12px; margin-top: auto; }
@media (max-width: 1100px) {
    .focus-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 599px) {
    .focus-cards { grid-template-columns: 1fr; gap: 16px; }
}

/* Reference-inspired overlapping destination carousel. */
.focus-section { background: var(--panel); position: relative; overflow: hidden; }
.focus-section::before { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .15; background: linear-gradient(115deg, transparent 30%, var(--gold) 30.1%, transparent 30.25%), linear-gradient(20deg, transparent 62%, var(--gold) 62.1%, transparent 62.25%); }
.focus-section > * { position: relative; }
.focus-heading-accent { color: var(--gold-lift); border-bottom: 1px solid var(--gold-deep); padding-bottom: 5px; }
.focus-carousel { max-width: 1200px; margin: 30px auto 0; text-align: center; }
.focus-stage { display: block; height: 370px; position: relative; overflow: visible; scroll-snap-type: none; touch-action: pan-y; }
.focus-cover-card { position: absolute; top: 15px; left: 50%; width: 440px; height: 320px; border: 1px solid var(--line); border-radius: 15px; padding: 0; color: var(--text); text-align: left; background: radial-gradient(ellipse at 90% 20%, #c69f5677, transparent 70%), linear-gradient(0deg, #0d1117, #303b42); background-size: cover; background-position: center; box-shadow: 0 14px 24px #00000044; transform: translateX(calc(-50% + var(--card-offset, 0) * 240px)) scale(var(--card-scale, 1)); transition: transform 500ms ease, border-color 300ms ease; }
.focus-cover-1 { background-color: #3c4550; }
.focus-cover-2 { background-color: #3d4933; }
.focus-cover-3 { background-color: #3a3649; }
.focus-cover-card.is-featured { border-color: var(--gold-deep); }
.focus-cover-badge { position: absolute; left: 22px; top: 20px; padding: 4px 8px; background: #0d111777; border-radius: 3px; font-size: 10px; }
.focus-cover-copy { position: absolute; bottom: 24px; left: 24px; right: 24px; }
.focus-cover-name { display: block; color: var(--gold-lift); font: 28px/1.2 'Marcellus', Georgia, serif; }
.focus-cover-description { display: block; margin-top: 9px; font-size: 12px; }
.focus-carousel .carousel-controls { justify-content: center; padding: 0; position: relative; }
.carousel-arrows { display: contents; }
#focus-previous { order: 0; }
#focus-dots { order: 1; }
#focus-next { order: 2; }
#focus-position { display: none; }
.focus-carousel .carousel-arrow { width: 30px; height: 30px; border-radius: 50%; font-size: 16px; background: transparent; border-color: var(--muted); }
.carousel-dot[aria-pressed='true']::after { width: 22px; border-radius: 10px; }
#focus-brief-link { margin-top: 18px; }
#focus-brief-link[hidden] { display: none; }
#focus-status { text-align: center; }
/* Move the compact flag right while revealing the wordmark from the left. */
@media (min-width: 760px) {
    .brand .brand-logo-compact { left: 50%; transform: translateX(45px); opacity: 0; transition: transform 1.5s ease, opacity 1.5s ease, visibility 1.5s ease; }
    .nav-collapsed .brand .brand-logo-compact { transform: translateX(-50%); opacity: 1; }
    .brand .brand-logo-full { transform: translateX(-50%); clip-path: inset(0 0 0 0); transition: clip-path 1.5s ease, transform 1.5s ease, opacity 1.5s ease, visibility 1.5s ease; }
    .nav-collapsed .brand .brand-logo-full { transform: translateX(-75%); clip-path: inset(0 0 0 100%); }
}
@media (max-width: 1100px) {
    .focus-cover-card { width: 360px; transform: translateX(calc(-50% + var(--card-offset, 0) * 160px)) scale(var(--card-scale, 1)); }
}
@media (max-width: 599px) {
    .focus-stage { height: 300px; }
    .focus-cover-card { width: 76%; height: 260px; transform: translateX(calc(-50% + var(--card-offset, 0) * 120px)) scale(var(--card-scale, 1)); }
    .focus-cover-name { font-size: 23px; }
    .focus-cover-copy { left: 18px; right: 18px; bottom: 20px; }
}
@media (prefers-reduced-motion: reduce) {
    .focus-cover-card, .brand .brand-logo-full, .brand .brand-logo-compact { transition: none; }
}

/* Shared geometric background across every page. */
body {
    background-color: var(--panel);
    background-image: linear-gradient(115deg, transparent 30%, #c69f5626 30.1%, transparent 30.25%), linear-gradient(20deg, transparent 62%, #c69f5626 62.1%, transparent 62.25%);
    background-attachment: fixed;
    background-size: 100vw 100vh;
}
.sidebar { background-color: #161b22e8; }
.page-intro, .focus-section { background: transparent; }
.focus-section::before { content: none; }
/* 1448 × 1086 artwork keeps its entire 4:3 composition, up to 800px wide. */
.focus-carousel { max-width: 1600px; }
.focus-stage { --focus-width: min(800px, 62%); height: auto; aspect-ratio: 8 / 3.3; min-height: 0; }
.focus-cover-card {
    width: var(--focus-width);
    height: auto;
    aspect-ratio: 4 / 3;
    top: 50%;
    transform: translate(calc(-50% + var(--card-offset, 0) * 34%), -50%) scale(var(--card-scale, 1));
    overflow: hidden;
}
.focus-cover-image { display: block; width: 100%; height: 100%; position: absolute; inset: 0; object-fit: contain; }
.focus-cover-card.has-artwork .focus-cover-badge, .focus-cover-card.has-artwork .focus-cover-copy { display: none; }
@media (max-width: 1100px) {
    .focus-stage { --focus-width: min(800px, 70%); aspect-ratio: 1.8; }
    .focus-cover-card { width: var(--focus-width); transform: translate(calc(-50% + var(--card-offset, 0) * 34%), -50%) scale(var(--card-scale, 1)); }
}
@media (max-width: 599px) {
    .focus-stage { --focus-width: min(800px, 78%); aspect-ratio: 1.55; }
    .focus-cover-card { width: var(--focus-width); height: auto; transform: translate(calc(-50% + var(--card-offset, 0) * 34%), -50%) scale(var(--card-scale, 1)); }
    .focus-cover-copy { bottom: 18px; }
}

/* Match visible logo heights despite different transparent image margins. */
.brand .brand-logo { overflow: hidden; }
.brand .brand-logo-full { width: 190px; max-width: none; height: 42px; }
.brand .brand-logo-compact { width: 51.15px; max-width: none; height: 42px; }
.brand .brand-logo img { position: absolute; max-width: none; object-fit: fill; }
.brand-logo-full img { width: 108.696%; height: 163.934%; left: -4.348%; top: -31.967%; }
.brand-logo-compact img { width: 137.615%; height: 111.732%; left: -25.229%; top: -8.939%; }
@media (min-width: 760px) {
    .brand .brand-logo-full, .brand .brand-logo-compact,
    .nav-collapsed .brand .brand-logo-full, .nav-collapsed .brand .brand-logo-compact { top: 8px; height: 42px; }
    .nav-collapsed .brand .brand-logo-full { width: 190px; }
    .nav-collapsed .brand .brand-logo-compact { width: 51.15px; height: 42px; }
}
/* Smaller sidebars and the mobile menu use an immediate button state change. */
@media (max-width: 1100px) {
    .nav-divider .menu-toggle, .menu-toggle .collapse-icon { transition: none; }
}
.footer .social-links { justify-content: flex-start; }
.footer-brand { justify-self: end; }
@media (max-width: 759px) {
    .brand .brand-logo-full { position: relative; width: 126.69px; height: 28px; }
    .brand .brand-logo-compact { display: none; }
    .footer .social-links { justify-content: center; }
    .footer-brand { justify-self: center; }
}
.brand .brand-logo { margin: 0; }

/* Keep the site footer at the viewport bottom when content is short. */
body { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.page { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.page > main { flex: 1; }
.page > .footer { flex-shrink: 0; }
@media (max-width: 759px) {
    .page { min-height: 0; flex: 1; }
}

/* Current and historic aircraft lists. */
.fleet-section + .fleet-section { padding-top: 0; }
.fleet-table-wrap { overflow-x: auto; border: 1px solid var(--line); }
.fleet-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 14px; }
.fleet-table th, .fleet-table td { padding: 18px 24px; border-bottom: 1px solid var(--line); }
.fleet-table thead { background: var(--raised); color: var(--accent-text); }
.fleet-table tbody { background: var(--panel); }
.fleet-table tbody th { font-weight: 400; }
.fleet-table tr:last-child th, .fleet-table tr:last-child td { border-bottom: 0; }
@media (max-width: 759px) { .fleet-table th, .fleet-table td { padding: 14px 18px; } }

.fleet-card h3 { font-size: 27px; }
.profile-links { display: flex; flex-wrap: wrap; gap: 12px 24px; padding: 28px 0; overflow: visible; }
.profile-links a { font-size: 12px; color: var(--accent-text); border-bottom: 1px solid var(--gold-deep); padding: 8px 0; }
.fleet-profile > .content-card + .content-card { margin-top: 24px; }
.fleet-profile section[id] { scroll-margin-top: 30px; }
.profile-table-wrap { overflow-x: auto; }
.profile-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 13px; }
.profile-table th, .profile-table td { border: 1px solid var(--line); padding: 14px; }
.profile-table th { color: var(--accent-text); background: var(--raised); }
@media (max-width: 759px) { .fleet-profile section[id] { scroll-margin-top: 100px; } }

/* Fleet carousels share the homepage's overlapping focus-card design. */
.fleet-stage { overflow: hidden; }
.fleet-slide { max-height: 1000px; text-decoration: none; }
.fleet-artwork { width: 100%; height: 100%; max-height: 1000px; display: block; object-fit: contain; }
.fleet-artwork-placeholder { position: absolute; inset: 0; display: grid; place-items: center; color: var(--accent-text); font-size: clamp(80px, 12vw, 180px); padding-bottom: 50px; }
.fleet-slide .focus-cover-copy { background: linear-gradient(transparent, #0d1117dd); left: 0; right: 0; bottom: 0; padding: 32px 24px 24px; }
.fleet-slide:focus-visible { outline-offset: -5px; }
.fleet-carousel .carousel-controls { display: flex; justify-content: center; align-items: center; gap: 18px; }
.fleet-carousel:not(.is-enhanced) .fleet-stage { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); height: auto; aspect-ratio: auto; gap: 22px; }
.fleet-carousel:not(.is-enhanced) .fleet-slide { position: relative; width: 100%; top: auto; left: auto; transform: none; }
.fleet-carousel:not(.is-enhanced) .fleet-controls { display: none; }

.fleet-section > h2 { text-align: center; }
.fleet-status-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

.fleet-era-switch { margin-top: 0; flex-shrink: 0; gap: 12px; font-size: 12px; }

/* A muted slate palette distinguishes the historic fleet without a bright page. */
.fleet-brief.is-historic, #historic-fleet {
    color-scheme: dark;
    --panel: #252d36;
    --raised: #303944;
    --line: #414b57;
    --text: #e5e0d6;
    --muted: #b4ada0;
    --gold: #b3996b;
    --gold-lift: #c6b18a;
    --gold-deep: #85724f;
    --accent-text: #c6b18a;
    color: var(--text);
}
.historic-fleet-page .page > main, #historic-fleet { background: transparent; }
#historic-fleet .fleet-slide { background: radial-gradient(ellipse at 90% 20%, #b3996b22, transparent 70%), linear-gradient(0deg, #252d36, #303944); }
#historic-fleet .fleet-slide .focus-cover-copy { background: linear-gradient(transparent, #252d36ee); }
#historic-fleet .focus-cover-name { color: #e5e0d6; }
#historic-fleet .fleet-artwork-placeholder { color: #c6b18a; }

.route-brief-search { margin-bottom: 34px; padding: 24px; background: var(--panel); border: 1px solid var(--line); }
.route-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.route-fields input { max-width: none; }
.route-brief-search .small-button { margin-left: 12px; }
.route-navigation { border-top: 1px solid var(--line); }
.route-navigation h2 { font-size: 28px; }
.route-navigation h3 { margin-top: 28px; font-size: 23px; }
.route-navigation-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.route-navigation-buttons .button { margin-top: 0; gap: 12px; }
.route-navigation-buttons .small-button { display: inline-block; }
.selected-alternate { outline: 2px solid var(--gold); outline-offset: -2px; background: var(--raised); }
@media (max-width: 759px) { .route-fields { grid-template-columns: 1fr; gap: 16px; } }

/* Direct airport lookup and footer partner. */
#individual-brief-search input { display: block; width: 100%; margin-bottom: 18px; }
.footer-partners { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.vamsys-brand { display: inline-flex; align-items: center; min-height: 28px; }
.vamsys-brand img { width: 120px; height: auto; object-fit: contain; }
[data-theme="light"] .vamsys-brand { background: #252d36; padding: 8px; border-radius: 4px; }
@media (max-width: 700px) { .footer-partners { align-items: center; } }

/* Footer affiliations left; social controls and airline identity right. */
.footer { grid-template-columns: auto minmax(0, 1fr) auto; }
.footer-partners { flex-direction: row; align-items: center; gap: 22px; }
.footer-right { display: flex; align-items: center; gap: 20px; }
.vatsim-brand { display: inline-flex; align-items: center; }
.vatsim-brand img { width: 100px; height: auto; object-fit: contain; }
[data-theme="light"] .vatsim-brand { background: #252d36; padding: 8px; border-radius: 8px; }
/* Consistent softened corners for controls, cards and bordered panels. */
button, .button, .small-button, .support-form input, .support-form select,
.support-form textarea, input[type="search"] { border-radius: 8px; }
.brief-card, .fleet-card, .content-card, .empty-state, .support-form,
.route-brief-search, .flight-panel, .flight-map, .map-toolbar,
.focus-airport-card, .fleet-table-wrap, .route-brief-navigation { border-radius: 14px; }
.focus-airport-card { overflow: hidden; }
.badge { border-radius: 6px; }
@media (max-width: 1000px) {
    .footer { grid-template-columns: 1fr; justify-items: center; }
    .footer-partners, .footer-right { justify-content: center; }
    .footer-statements { width: 100%; }
}

/* Shared depth for page content and interactive controls. */
:root { --content-shadow: 0 8px 24px #0000002e, 0 2px 6px #0000001f; --control-shadow: 0 3px 9px #00000026; }
[data-theme="light"] { --content-shadow: 0 8px 24px #102b4314, 0 2px 6px #102b4310; --control-shadow: 0 3px 9px #102b4317; }
.hero, .page-intro, .quick-links, .destination, .community,
.brief-card, .fleet-card, .content-card, .empty-state, .support-form,
.route-brief-search, .flight-panel, .flight-map, .focus-airport-card,
.fleet-table-wrap, .route-brief-navigation, .airport-brief .sheet,
.airport-brief .table-wrap, .airport-brief .note, .airport-brief .callout {
    box-shadow: var(--content-shadow);
}
button, .button, .small-button, input[type="search"],
.support-form input, .support-form select, .support-form textarea,
.airport-brief .a380-capability { box-shadow: var(--control-shadow); }
.carousel-dot { box-shadow: none; }

/* Keep one solid flag moving horizontally; never crossfade two flag images. */
@media (min-width: 760px) {
    .brand .brand-logo-full {
        clip-path: inset(0 57px 0 0);
        opacity: 1;
        visibility: visible;
        transition: clip-path 1.5s ease, transform 1.5s ease;
    }
    .nav-collapsed .brand .brand-logo-full {
        opacity: 1;
        visibility: visible;
        clip-path: inset(0 57px 0 133px);
        transform: translateX(-163.85px);
    }
    .brand .brand-logo-compact {
        display: block;
        opacity: 1;
        visibility: visible;
        transform: translateX(43.85px);
        transition: transform 1.5s ease;
    }
    .nav-collapsed .brand .brand-logo-compact {
        opacity: 1;
        visibility: visible;
        transform: translateX(-50%);
    }
}
@media (min-width: 760px) and (prefers-reduced-motion: reduce) {
    .brand .brand-logo-full, .brand .brand-logo-compact { transition: none; }
}

/* Uncover lettering from its right edge so D leads E/T behind the solid flag. */
@media (min-width: 760px) {
    .brand .brand-logo-full { transform: translateX(-95px); z-index: 1; }
    .brand .brand-logo-compact { z-index: 2; }
}

.social-link { border-radius: 8px; box-shadow: var(--control-shadow); }
.social-link:hover { background: var(--raised); border-color: var(--gold); }

/* Links read as ordinary text; reveal link styling on interaction. */
html body a:any-link:not(.button) { color: inherit; text-decoration: none; }
html body a.text-link { border-bottom-color: transparent; }
html body a:any-link:not(.button):hover,
html body a:any-link:not(.button):focus-visible { color: var(--accent-text); }
html body a.text-link:hover,
html body a.text-link:focus-visible { border-bottom-color: var(--gold); }
html body main a:any-link:not(.button):not(.focus-cover-card):not(.destination):hover,
html body main a:any-link:not(.button):not(.focus-cover-card):not(.destination):focus-visible {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.vamsys-summary{display:flex;flex-wrap:wrap;gap:1.5rem;padding:12px 24px;border-bottom:1px solid var(--line,#39434a);font-size:.85rem}.vamsys-summary strong{color:var(--gold,#c69f56)}.vamsys-summary small{margin-left:auto;opacity:.7}.vamsys-data{margin-top:2rem}

/* Keep depth on the hero button, with clean lettering. */
.hero-content, .hero-content * { text-shadow: none; }
.hero-content .button { box-shadow: var(--control-shadow, 0 4px 12px #00000030); }

/* Fleet tables size naturally; headings stay on one line. */
.fleet-brief #variants table { table-layout:auto; width:100%; }
.fleet-brief #variants th { white-space:nowrap; width:auto; }
.fleet-brief #variants td { width:auto; }
.fleet-brief #variants td:first-child strong,.fleet-brief #variants td:first-child small { display:block; }
.fleet-brief #variants td:first-child small { margin-top:.25rem; opacity:.7; }

/* Subtle striping preserves each table's existing background. */
:root { --table-row-tint: rgb(255 255 255 / 4%); --table-row-hover: rgb(255 255 255 / 8%); }
[data-theme="light"] { --table-row-tint: rgb(16 43 67 / 4%); --table-row-hover: rgb(16 43 67 / 8%); }
table tbody tr:nth-child(even) > :is(th, td) {
    background-image: linear-gradient(var(--table-row-tint), var(--table-row-tint));
}
table tbody tr:hover > :is(th, td),
table tbody tr:focus-within > :is(th, td) {
    background-image: linear-gradient(var(--table-row-hover), var(--table-row-hover));
}

.flight-map { height:560px; background:#101b25; }
.maplibregl-popup-content { background:var(--panel); color:var(--text); border:1px solid var(--line); border-radius:12px; }
@media (max-width:1100px) { .map-layout { grid-template-columns:minmax(0,1fr); } .flight-panel { border-left:0; border-top:1px solid var(--line); } .flight-map { height:480px; } }
@media (max-width:759px) { .flight-map { height:400px; } }

/* Flight details stay below the globe on standard displays. */
@media (max-width:1599px) {
 .map-layout { grid-template-columns:minmax(0,1fr); }
 .flight-panel { border-left:0; border-top:1px solid var(--line); }
}
.maplibregl-popup-content { background:#18232e; color:#f2f4f6; padding:16px 30px 16px 16px; }
.maplibregl-popup-close-button { color:#f2f4f6; }
.flight-popup strong,.flight-popup span { display:block; }
.flight-popup span { margin-top:6px; }
.maplibregl-popup-anchor-bottom .maplibregl-popup-tip { border-top-color:#18232e; }
.maplibregl-popup-anchor-top .maplibregl-popup-tip { border-bottom-color:#18232e; }

.live-flight-table-wrap { overflow-x:auto; }
.live-flight-table { width:100%; border-collapse:collapse; font-size:13px; table-layout:auto; }
.live-flight-table th,.live-flight-table td { text-align:left; padding:14px 16px; border-bottom:1px solid var(--line); white-space:nowrap; }
.live-flight-table th { color:var(--accent-text); }
.flight-table-select { border:0; background:transparent; color:inherit; padding:0; font:inherit; box-shadow:none; cursor:pointer; }
.flight-table-select:hover { color:var(--gold); }
.flight-table-select:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }
#flight-map .maplibregl-popup .maplibregl-popup-content { background:#18232e !important; color:#f2f4f6 !important; }
#flight-map .flight-popup,#flight-map .flight-popup * { color:#f2f4f6; text-shadow:none; }

.flight-aircraft-code { display:none; }
@media (max-width:1000px) { .flight-aircraft-name { display:none; } .flight-aircraft-code { display:inline; } }
#flight-map .maplibregl-popup .maplibregl-popup-content { color:var(--gold) !important; padding:9px 20px; text-align:center; }
#flight-map .flight-popup,#flight-map .flight-popup * { color:var(--gold); }
#flight-map .flight-popup span { margin-top:3px; }

#flight-map .maplibregl-popup .maplibregl-popup-content { padding:5px 12px; }
#flight-map .flight-popup span { margin-top:2px; }
/* Scale the globe and fit flight details to their available column. */
.flight-map { height:clamp(400px,38vw,1000px); min-height:0; }
.map-layout,.flight-panel,#flight-list,.live-flight-table-wrap { min-width:0; }
.flight-panel { container-type:inline-size; }
.live-flight-table-wrap,.live-flight-table { width:100%; max-width:100%; }
@container (max-width:950px) {
 .flight-aircraft-name { display:none; }
 .flight-aircraft-code { display:inline; }
 .live-flight-table th,.live-flight-table td { padding:12px 10px; }
}
@media (max-width:1100px) {
 .map-section { padding-inline:0; }
 .map-section .map-toolbar,.map-section > #map-status { margin-inline:16px; }
 .flight-panel { padding-inline:12px; }
}

/* The stacked flight table occupies the entire panel, not a legacy card column. */
@media (max-width:1599px) { #flight-list { display:block; width:100%; } #flight-list > .live-flight-table-wrap { width:100%; } }

.flight-choice small + small { margin-top:10px; padding-top:8px; border-top:1px solid var(--line); }
.events-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:24px; }
.event-card { background:var(--panel); border:1px solid var(--line); border-radius:16px; overflow:hidden; box-shadow:var(--content-shadow); }
.event-card img { width:100%; height:220px; object-fit:cover; }
.event-card-content { padding:24px; }
.event-card h2 { font-size:26px; }
.event-description { white-space:pre-line; }

.events-empty { padding:clamp(36px,6vw,88px) 28px; background:var(--panel); border:1px solid var(--line); border-radius:18px; text-align:center; box-shadow:var(--content-shadow); }
.events-empty h2 { font-size:clamp(28px,3vw,44px); margin-bottom:20px; }
.events-empty > p:not(.eyebrow) { max-width:660px; margin:0 auto; line-height:1.8; color:var(--muted); }
.events-empty-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-top:30px; }
/* Use one hover underline and avoid a browser outline on fragment targets. */
html body a.text-link:hover,html body a.text-link:focus-visible { border-bottom-color:transparent; }
#focus-airports:target,#focus-airports:focus { outline:none; }
#focus-airports a:focus:not(:focus-visible),#focus-airports button:focus:not(:focus-visible) { outline:none; }

.vamsys-summary[data-connection=degraded] small,.vamsys-summary[data-connection=failed] { color:#e3be85; }

.flight-choice small{display:block}.flight-choice small+small{margin-top:5px;padding-top:0;border-top:0}

/* Keep sidebar link hit targets inside the rail while labels fade on collapse. */
.sidebar #navigation { grid-template-columns: minmax(0, 1fr); }
.sidebar #navigation a { min-width: 0; width: 100%; overflow: hidden; }
