
.airport-main{max-width:1100px;padding-top:24px;padding-bottom:30px}.airport-hero{padding:24px 0 28px;border-bottom:1px solid var(--line)}.airport-hero h1{font-size:clamp(2.1rem,4vw,3.5rem);line-height:1.12;max-width:21ch;margin:12px 0}.airport-hero p{max-width:65ch}.airport-code{font:700 .82rem var(--text);letter-spacing:.14em;color:var(--pri);text-transform:uppercase}.airport-sub{font-size:1.08rem;color:var(--mut)}.airport-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.airport-layout{display:grid;gap:20px;margin-top:24px}.airport-panel{background:var(--paper);border:1px solid var(--line2);border-radius:var(--r-l);padding:24px;min-width:0}.airport-panel h2{font-size:1.65rem;line-height:1.2;margin-bottom:16px}.airport-panel h3{font:700 1rem var(--text);margin:14px 0 6px}.airport-panel p{margin:8px 0}.airport-zone{padding:15px 0;border-top:1px solid var(--line)}.airport-zone:last-child{padding-bottom:0}.airport-zone strong{display:block;color:var(--head)}.airport-tag{display:inline-block;border:1px solid var(--line2);padding:3px 9px;border-radius:30px;font-size:.75rem;color:var(--pri);margin:0 0 10px}.airport-meta{font-size:.8rem;color:var(--mut);margin-top:18px!important}.airport-note{border-left:3px solid var(--pri);padding:9px 12px;color:var(--mut);font-size:.9rem}.airport-airlines{display:flex;flex-wrap:wrap;gap:9px;list-style:none;padding:0;margin:16px 0}.airport-airlines a{display:block;padding:9px 13px;border:1px solid var(--line2);border-radius:6px;text-decoration:none;min-height:44px}.airport-airlines a:hover{border-color:var(--pri)}.airport-grid{display:grid;gap:18px;margin-top:25px}.airport-grid a{text-decoration:none;padding:24px;background:var(--paper);border:1px solid var(--line2);border-radius:var(--r-l)}.airport-grid strong{display:block;color:var(--pri);font-size:1.8rem}.airport-grid span{display:block;color:var(--ink)}.airport-back{font-size:.88rem}.airport-main a:focus-visible{outline:3px solid var(--pri);outline-offset:4px}.airport-panel a,.airport-meta a{overflow-wrap:anywhere}.airport-disclaimer{margin:28px 0 0;font-size:.9rem;color:var(--mut)}@media(min-width:850px){.airport-layout{grid-template-columns:1.25fr 1fr}.airport-relief{grid-row:span 2}.airport-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:500px){.airport-panel{padding:20px}.airport-hero{padding-top:14px}.airport-actions .btn{width:100%;justify-content:center}.airport-grid{grid-template-columns:1fr}.airport-hero h1{font-size:2.35rem}}
/* Original source-text schematics; no airport floorplan geometry is reproduced. */
.airport-diagram{margin-top:24px}.diagram-intro{max-width:75ch;margin-bottom:20px}.diagram-intro h2{margin:8px 0}.diagram-layout{display:grid;gap:28px;align-items:start}.airport-diagram-svg{display:block;width:100%;max-width:480px;height:auto;margin:0 auto;font:16px var(--text);color:var(--ink)}.diagram-region{fill:var(--bg);stroke:var(--line2)}.diagram-heading{fill:var(--pri);font:700 15px var(--text);letter-spacing:.04em}.diagram-point rect{fill:var(--paper);stroke:var(--line2)}.diagram-point circle{fill:var(--pri)}.diagram-point text{fill:var(--ink);font-size:16px}.diagram-point .diagram-marker{fill:var(--on-pri);font-weight:700}.diagram-point .diagram-label{fill:var(--head);font-weight:700}.diagram-point .diagram-detail{fill:var(--mut);font-size:15px}.diagram-uncertain rect{stroke:var(--pri);stroke-dasharray:5 4}.diagram-boundary{fill:none;stroke:var(--mut);stroke-dasharray:6 5}.airport-diagram-svg a:hover rect,.airport-diagram-svg a:focus rect{stroke:var(--pri);stroke-width:2}.diagram-legend{display:grid;gap:8px;font-size:.86rem;margin:14px 0}.diagram-legend>span{display:flex;align-items:center;gap:9px}.legend-dot{display:inline-grid;place-items:center;flex:0 0 24px;height:24px;border-radius:50%;background:var(--pri);color:var(--on-pri)}.legend-unknown{background:transparent;color:var(--pri);border:1px dashed var(--pri)}.legend-boundary{display:inline-block;width:24px;border-top:1px dashed var(--mut)}.diagram-sources ol{list-style:none;padding:0;margin:0}.diagram-sources li{margin:0 0 16px;font-size:.9rem}.diagram-sources h3{margin-top:0}.diagram-vet{padding:16px;border:1px solid var(--line2);border-radius:10px;margin-top:20px}.diagram-vet p{font-size:.9rem}.diagram-sources a{overflow-wrap:anywhere}@media(min-width:850px){.diagram-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}}@media(max-width:500px){.airport-diagram{padding:14px}.diagram-point text{font-size:16px}.diagram-point .diagram-detail{font-size:15px}}

/* Pet map: original schematic */
.petmap{margin-top:22px}.petmap h2{margin:6px 0 4px}.pm-disc{font-size:.88rem;color:var(--mut)}.pm-frame{margin:12px auto 0;max-width:560px}.pm-open{all:unset;display:block;position:relative;width:100%;cursor:zoom-in;border-radius:16px;background:var(--bg);border:1px solid var(--line2);padding:6px;box-sizing:border-box}.pm-open:focus-visible{outline:3px solid var(--pri);outline-offset:3px}.pm-fs{display:block;width:max-content;margin:6px auto 4px;background:var(--pri);color:var(--on-pri);font:700 .78rem var(--text);padding:5px 9px;border-radius:20px}
.pm-svg{display:block;width:100%;height:auto;font-family:var(--text)}.pm-side{fill:var(--mut);font-size:12px;font-weight:700;letter-spacing:.04em}.pm-zone{font-size:12px;font-weight:700;letter-spacing:.06em}.pm-zb{fill:#9fd6a0}.pm-za{fill:var(--pri)}
.pm-tb{fill:rgba(159,214,160,.10);stroke:var(--line2);stroke-width:1.5}.pm-ta{fill:rgba(217,183,101,.13)}.pm-chip{fill:#11252a;stroke:var(--line2)}.pm-tn{fill:var(--head);font-size:13px;font-weight:700}.pm-t{fill:var(--ink);font-size:12px}.pm-n{fill:var(--mut);font-size:12px}.pm-q{fill:#f0a3a3}
.pm-pin circle{fill:var(--pri);stroke:#0b1719;stroke-width:1.5}.pm-pin text{fill:#0b1719;font-size:12px;font-weight:800}.pm-unc circle{fill:transparent;stroke:#f0a3a3;stroke-width:2;stroke-dasharray:4 3}.pm-unc text{fill:#f0a3a3}
.pm-sec{stroke:#f0a3a3;stroke-width:3;stroke-dasharray:8 6;fill:none}.pm-sect{fill:#f0a3a3;font-size:12px;font-weight:700}.pm-link{stroke:#f0a3a3;stroke-width:2.5;stroke-dasharray:4 4;fill:none}
.pm-extra rect{fill:none;stroke:#f0a3a3;stroke-dasharray:6 4}.pm-arrow{stroke:var(--mut);stroke-width:2;fill:none;stroke-dasharray:3 3}.pm-ahd{fill:var(--mut)}.pm-vet rect{fill:var(--paper);stroke:#9fd6a0;stroke-width:1.5}.pm-vi{fill:#9fd6a0;font-size:13px;font-weight:800}
.pm-key{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.84rem;margin:12px 0 6px;color:var(--mut)}.pm-ln{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:50%;background:var(--pri);color:var(--on-pri);font-size:.8rem;margin-right:6px;flex:none}.pm-lq,.pm-lu .pm-ln{background:transparent;color:#f0a3a3;border:2px dashed #f0a3a3}.pm-ks{display:inline-block;width:26px;border-top:3px dashed #f0a3a3;vertical-align:middle;margin-right:6px}
.pm-legend{list-style:none;padding:0;margin:8px 0;display:grid;gap:8px}.pm-legend li{display:flex;gap:4px;align-items:flex-start;font-size:.92rem}.pm-legend small{color:var(--mut)}.pm-links{margin-top:14px}@media(min-width:900px){.pm-legend{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.petmap.airport-panel{padding:14px 10px}.pm-open{padding:2px}}
.pm-overlay{position:fixed;inset:0;z-index:1000;background:#071012;display:flex;flex-direction:column}.pm-overlay[hidden]{display:none}.pm-ohead{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;color:var(--head)}.pm-close{font:700 1.6rem var(--text);width:48px;height:48px;border-radius:50%;border:1px solid var(--line2);background:var(--paper);color:var(--head);cursor:pointer}.pm-close:focus-visible{outline:3px solid var(--pri)}.pm-obody{flex:1;overflow:auto;padding:8px;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch}.pm-obody svg{width:100%;min-width:340px;max-width:900px;margin:0 auto;display:block;height:auto}.pm-zoom{display:flex;gap:8px}.pm-zoom button{min-width:44px;height:44px;border-radius:10px;border:1px solid var(--line2);background:var(--paper);color:var(--head);font-weight:700;cursor:pointer}
/* PET-MAP-V2 START */
/* Pet map V2: illustrated top view (preview). Scoped to .petmap-v2; site tokens untouched. */
.petmap-v2,.pm-overlay{--v2-land:#16302a;--v2-air:#2a2a1f;--v2-road:#2c3b3e;--v2-bld:#e9dfc4;--v2-bld-ink:#1a2a2c;--v2-lawn:#3f7a4d;--v2-grass:#8fd08f;--v2-sec:#f0a3a3;--v2-before:#9fd6a0;--v2-after:var(--pri)}
.petmap-v2 .v2-grid{display:grid;gap:18px;align-items:start}.petmap-v2 .v2-frame{max-width:520px;width:100%}
@media(min-width:900px){.petmap-v2 .v2-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}}
.v2-svg text{font-family:var(--text)}.v2-land{fill:var(--v2-land)}.v2-air{fill:var(--v2-air)}
.v2-side{fill:var(--head);font-size:12.5px;font-weight:700;letter-spacing:.05em}.v2-dim{fill:#b9c1b3;opacity:.95}.v2-small{font-size:12.5px}
.v2-zone{font-size:12.5px;font-weight:800;letter-spacing:.08em}.v2-zhead rect{fill:#0f2226;opacity:.92}.v2-zb rect{stroke:var(--v2-before)}.v2-za rect{stroke:var(--v2-after)}.v2-trail{opacity:.55}.v2-tnum{fill:var(--head)}.v2-tb .v2-tnum{fill:var(--v2-before)}.v2-ta .v2-tnum{fill:var(--v2-after)}.v2-tq .v2-tnum{fill:var(--v2-sec)}.v2-tnumt{fill:#0b1719;font-size:12.5px;font-weight:800}.v2-zb{fill:var(--v2-before)}.v2-za{fill:var(--v2-after)}
.v2-road{fill:var(--v2-road)}.v2-roadline{stroke:#e9dfc4;stroke-width:1.5;stroke-dasharray:8 7;fill:none;opacity:.55}
.v2-car rect{fill:#6f8f96}.v2-taxi rect{fill:#e8c25a}.v2-taxi .v2-taxisign{fill:#fff3c4}.v2-glass{fill:#1b2a2d!important;opacity:.75}
.v2-train rect{fill:#7fb3c9}.v2-garage{fill:#30474b;stroke:#4f6a6b;stroke-width:1.5}.v2-stall{stroke:#5b7778;stroke-width:1.5}
.v2-p rect{fill:#3c7bd6}.v2-p text{fill:#fff;font-size:13px;font-weight:800}
.v2-lawn{fill:var(--v2-lawn);opacity:.85}.v2-grass{fill:var(--v2-grass)}.v2-tree circle{fill:#2f6b3e}.v2-tree .v2-treehi{fill:#4b8f58}
.v2-post rect{fill:#e9dfc4}.v2-paw{fill:#f5ecd6;opacity:.9}.v2-zebra{fill:#e9dfc4;opacity:.6}
.v2-term{fill:var(--v2-bld);stroke:#c9bb94;stroke-width:1.5}.v2-tc{fill:#24423c;stroke:#5f8d7a;stroke-width:1.5}.v2-roof{stroke:#c9bb94;stroke-width:2;stroke-linecap:round;fill:none}
.v2-bld{fill:var(--head);font-size:13px;font-weight:700}.v2-bld.v2-ink{fill:var(--v2-bld-ink)}
.v2-tbadge circle{fill:#1a2a2c}.v2-tbadge text{fill:#f5ecd6;font-size:13px;font-weight:800}
.v2-kerb{fill:#2c3b3e}.v2-finger{fill:#c9bb94}.v2-plane{fill:#dfe7ea;opacity:.9}.v2-rwy{fill:#1b2324}.v2-rwydash{stroke:#f5ecd6;stroke-width:2.5;stroke-dasharray:14 10;fill:none}.v2-rwyt{fill:#b9c1b3;font-size:12.5px;font-weight:700;letter-spacing:.1em}
.v2-roofgarden{fill:var(--v2-lawn)}.v2-lounge{fill:#3a5a56}.v2-sofa{fill:#d9b765}
.v2-gate rect{fill:#1a2a2c}.v2-gate text{fill:#f5ecd6;font-size:12.5px;font-weight:700}
.v2-sec{stroke:var(--v2-sec);stroke-width:3;stroke-dasharray:9 6;fill:none}.v2-secbg{fill:#3b1d22;stroke:var(--v2-sec)}.v2-sect{fill:var(--v2-sec);font-size:12.5px;font-weight:800;letter-spacing:.06em}
.v2-shield path{fill:#3b1d22;stroke:var(--v2-sec);stroke-width:1.5}.v2-shield .v2-shieldk{fill:none}
.v2-vet rect{fill:#f5ecd6}.v2-vet .v2-vetc{fill:#c84b4b}
.v2-compass circle{fill:none;stroke:#b9c1b3}.v2-compass path{stroke:#b9c1b3}.v2-compass text{fill:#b9c1b3;font-size:12.5px;font-weight:700}
.v2-pin path{stroke:#0b1719;stroke-width:1.5}.v2-pin text{fill:#0b1719;font-size:13px;font-weight:800}
.v2-before path{fill:var(--v2-before)}.v2-after path{fill:var(--v2-after)}.v2-restricted path,.v2-access path{fill:#f0a3a3}
.v2-unc path{stroke:#0b1719;stroke-dasharray:3 2;stroke-width:2}
.v2-tag rect{fill:#0f2226;stroke:var(--line2);opacity:.96}.v2-tb rect{stroke:var(--v2-before)}.v2-ta rect{stroke:var(--v2-after)}.v2-tq rect{stroke:var(--v2-sec);stroke-dasharray:4 3}
.v2-tt{fill:var(--head);font-size:12.5px;font-weight:700}.v2-ts{fill:#c9cfc2;font-size:12.5px}
.v2-note>rect:first-child{fill:#0f2226;stroke:var(--v2-sec);stroke-dasharray:5 4}.v2-ntxt{fill:var(--head);font-size:12.5px}.v2-t2 rect:first-child{stroke:var(--v2-before);stroke-dasharray:none}
.v2-bt{fill:var(--v2-bld-ink);font-size:12.5px;font-weight:700}.v2-bs{fill:#4a5552;font-size:12.5px}.v2-unk{fill:none;stroke:var(--v2-sec);stroke-dasharray:5 4;stroke-width:1.5}.v2-pawink{fill:#b9a877}.v2-ntb{font-weight:700}
.v2-taxiway{stroke:#d9b765;stroke-width:1.5;stroke-dasharray:10 8;fill:none;opacity:.55}
.v2-qmark{fill:var(--v2-sec);font-size:22px;font-weight:800}
.petmap-v2 .pm-legend{grid-template-columns:1fr!important}.v2-k-before,.v2-li-before:not(.pm-lu) .pm-ln{background:#9fd6a0}.v2-k-after,.v2-li-after:not(.pm-lu) .pm-ln{background:var(--pri)}
.v2-maps{display:flex;flex-wrap:wrap;gap:10px}
.v2-vetbox{border:1px solid var(--line2);border-radius:14px;padding:14px 16px;margin-top:14px;background:var(--bg)}.v2-vetbox p{font-size:.9rem;margin:8px 0}
.v2-vethead{display:flex;align-items:center;gap:10px}.v2-vethead h3{margin:0!important}.v2-vetico{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#f5ecd6;color:#c84b4b;font-weight:800}
/* PET-MAP-V2 END */
/* JAPAN-AIRPORTS START */
/* Japan airports (NRT/HND/KIX): extra pictograms, scoped, site tokens untouched. */
.jp-carrier rect{fill:#d9b765;stroke:#0b1719;stroke-width:1.2}.jp-carrier .jp-handle{fill:none;stroke:#d9b765;stroke-width:2.4}.jp-carrier .jp-bars{stroke:#0b1719;stroke-width:1.4}
.jp-bridge{stroke:#c9bb94;stroke-width:6;stroke-linecap:round}.jp-walk{stroke:#e9dfc4;stroke-width:2;stroke-dasharray:4 4;fill:none}
.jp-tile{fill:#24523f;stroke:#5f8d7a;stroke-width:1.2}.jp-cross path{fill:#e25b5b}.jp-cross-lg{transform-box:fill-box}.jp-lblbg{fill:#1b2a2d;opacity:.92}.v2-svg .jp-lblbg+text{fill:#dfe7ea}
.jp-timeline{margin-top:24px}.jp-tl-intro{max-width:75ch;color:var(--mut)}
.jp-tl{list-style:none;margin:20px 0 8px;padding:0;position:relative;display:grid;gap:14px}
.jp-tl:before{content:'';position:absolute;left:19px;top:8px;bottom:8px;border-left:2px dashed var(--line2)}
.jp-tl-step{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:start;position:relative}
.jp-tl-dot{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--bg);border:2px solid var(--pri);color:var(--pri);position:relative;z-index:1}
.jp-tl-body{background:var(--bg);border:1px solid var(--line2);border-radius:12px;padding:10px 12px;min-width:0}
.jp-tl-body h3{font:700 .98rem var(--text);color:var(--head);margin:6px 0 4px!important}.jp-tl-n{color:var(--pri)}.jp-tl-body p{font-size:.86rem;margin:0!important;color:var(--ink)}
.jp-tl-badge{display:inline-block;font:800 .74rem var(--text);letter-spacing:.04em;padding:3px 9px;border-radius:30px;background:var(--pri);color:var(--on-pri,#0b1719)}
.jp-tl-step:last-child .jp-tl-dot{background:var(--pri);color:var(--on-pri,#0b1719)}
.jp-tl-warn{border:1px dashed #f0a3a3;border-radius:12px;padding:12px 14px;margin:14px 0}.jp-tl-warn strong{color:#f0a3a3}.jp-tl-warn p{font-size:.88rem;margin:6px 0 0!important}
@media(min-width:1100px){.jp-tl{grid-template-columns:repeat(9,minmax(0,1fr));gap:10px}.jp-tl:before{left:4%;right:4%;top:19px;bottom:auto;border-left:0;border-top:2px dashed var(--line2)}
.jp-tl-step{grid-template-columns:1fr;grid-template-rows:40px 1fr;justify-items:center;align-items:stretch;gap:10px}.jp-tl-dot{align-self:start}.jp-tl-body{width:100%;padding:9px 9px;text-align:left}.jp-tl-body h3{font-size:.86rem}.jp-tl-body p{font-size:.78rem}.jp-tl-badge{font-size:.7rem;padding:3px 7px}}
.jp-floor{fill:#f3ead3;stroke:#c9bb94;stroke-width:1.2}.v2-ink2{fill:#3b4a4c}.jp-wave{fill:none;stroke:#7fb3c9;stroke-width:1.6;opacity:.6}
/* JAPAN-AIRPORTS END */
