:root{--ink:#172f3b;--muted:#667985;--paper:#f6f7f3;--navy:#173e50;--line:#dbe3e4;--mint:#d8ebdc;--orange:#d88454}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,'Yu Gothic',sans-serif;line-height:1.8}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d08450;outline-offset:4px}header{display:flex;align-items:center;justify-content:space-between;padding:26px 5%;border-bottom:1px solid var(--line);gap:20px;background:#fff}header nav{display:flex;gap:30px;font-size:13px}.brand{display:flex;align-items:center;gap:12px;font-size:22px;line-height:1.2;letter-spacing:.09em}.brand b{font-weight:300}.brand small{display:block;font-size:9px;letter-spacing:.12em;margin-top:8px}.brand-icon{display:grid;place-items:center;width:43px;height:43px;background:var(--navy);border-radius:12px;color:#e1f2d3;font-size:32px}.local-badge{border:1px solid #cdd8dc;border-radius:20px;padding:6px 13px;font-size:9px;letter-spacing:.12em}main{max-width:1280px;margin:auto;padding:0 35px}.intro{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;padding:65px 15px 55px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.19em;color:#62818a;margin:0 0 13px}h1{font-size:clamp(32px,3.5vw,47px);line-height:1.5;letter-spacing:.06em;font-weight:650;margin:10px 0 23px}.intro-copy{font-size:13px;line-height:2.2;color:var(--muted)}.intro-art{height:250px;position:relative;background:linear-gradient(140deg,#e5eee7,#d7e5e6);border-radius:16px;display:grid;place-items:center;overflow:hidden}.plane{position:absolute;right:22px;top:-40px;font-size:240px;line-height:1;color:#b6cdd1;transform:rotate(-12deg)}.boarding{background:#fffef9;transform:rotate(-7deg);padding:23px 25px;border-radius:6px;box-shadow:0 12px 24px #28445417;width:320px;position:relative}.boarding>span{font-size:8px;letter-spacing:.18em}.boarding b{display:block;font-size:32px;letter-spacing:.07em;margin:12px 0 6px}.boarding i{font-style:normal;font-weight:300;color:#cc8b5a;margin:0 10px}.boarding small{font-size:7px;letter-spacing:.13em}.barcode{height:20px;margin-top:20px;background:repeating-linear-gradient(90deg,#243d49 0 2px,transparent 2px 5px,#243d49 5px 6px,transparent 6px 10px);opacity:.65}.art-label{position:absolute;bottom:10px;right:20px;font-size:7px;letter-spacing:.13em;color:#65808a}.airport-selector{background:var(--navy);color:white;display:grid;grid-template-columns:1fr 1.15fr 1.25fr;gap:30px;padding:24px 32px;border-radius:10px;align-items:center;margin-bottom:40px}.airport-selector .eyebrow{color:#b5d6cc;font-size:8px;margin-bottom:4px}.airport-selector h2{font-size:20px;font-weight:500;margin:0}.airport-selector label{display:grid;gap:7px;font-size:10px;color:#d1dfe3}.airport-selector input,.airport-selector select{min-height:44px;border:0;background:#fff;border-radius:5px;padding:10px 14px;color:var(--ink);width:100%;font-size:13px}.airport-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:25px;margin:38px 0 25px}.airport-heading h2{font-size:29px;margin:0 0 7px}.airport-heading p{font-size:12px;color:var(--muted);margin:0}.check-date{background:#e6eee3;padding:8px 15px;border-radius:4px;font-size:10px;white-space:nowrap}.airport-alert{background:#fff3dd;border:1px solid #edd9b3;border-radius:5px;padding:15px 20px;font-size:11px;line-height:1.9;margin-bottom:24px}.airport-alert a{text-decoration:underline}.workbench{background:#fff;border:1px solid var(--line);border-radius:12px;padding:25px;margin-bottom:40px}.workbench-title{display:flex;justify-content:space-between;align-items:center;gap:16px}.workbench h3{font-size:20px;margin:0}.schematic-label{font-size:9px;border:1px solid #b8c9c7;border-radius:20px;padding:5px 12px;color:#517068}.floor-toolbar{display:flex;justify-content:space-between;align-items:center;margin:22px 0 15px;gap:15px;flex-wrap:wrap}.floor-tabs{display:flex;gap:8px}.floor-tabs button,.map-tools button{border:1px solid var(--line);border-radius:6px;background:#f5f7f6;padding:8px 17px;min-height:42px;font-size:12px}.floor-tabs button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:white}.floor-caption{font-size:12px;color:var(--muted)}.map-stage{position:relative;border:1px solid #dfe8e6;border-radius:8px;background:radial-gradient(#d7e1dd .7px,transparent .7px) 0 0/14px 14px #f4f7f4;overflow:hidden}.map-stage #floor-map > svg,.map-stage #major-map > svg{display:block;width:100%;height:auto;min-height:240px;max-height:480px}.map-stage svg text{font-family:system-ui,'Yu Gothic',sans-serif}.map-stage g[role=button]{cursor:pointer}.map-stage g[role=button]:focus{outline:none}.map-stage g[role=button]:focus rect{stroke:#d08450;stroke-width:4}.map-tools{position:absolute;bottom:12px;right:12px;display:flex;gap:6px}.map-tools button{padding:4px 12px;min-width:38px;background:#fffffff2;font-size:15px}.map-caption{font-size:10px;color:var(--muted);line-height:1.9;margin:13px 0 20px}.map-caption a{text-decoration:underline}.category-filters{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.category-filters button{border:1px solid var(--line);border-radius:8px;padding:12px;background:#f8faf8;font-size:12px;min-height:48px}.category-filters button[aria-pressed=true]{border-color:#65826b;background:#e6f0e0;color:#314c37}.zone-detail{background:#eaf1e7;padding:18px 22px;border-radius:5px;margin-top:18px;font-size:12px}.zone-detail h4{margin:0 0 7px;font-size:15px}.zone-detail p{margin:0}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:0 0 25px}.metrics>div{border:1px solid var(--line);border-radius:8px;background:white;padding:20px 23px}.metrics b{font-size:29px;font-weight:600}.metrics span{font-size:10px;color:var(--muted);display:block}.metrics small{font-size:11px;font-weight:400;margin-left:8px}.section-title{display:flex;align-items:end;justify-content:space-between;margin:35px 0 18px;gap:20px}.section-title h3{font-size:23px;margin:0}.section-title p{font-size:11px;color:var(--muted);margin:0}.shop-toolbar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}.shop-toolbar input,.shop-toolbar select{min-height:44px;padding:8px 13px;border:1px solid var(--line);background:white;border-radius:5px;font-size:12px}.shop-toolbar input{flex:1;min-width:160px}.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.shop-card{background:white;border:1px solid var(--line);border-radius:8px;padding:20px}.shop-card small{font-size:9px;color:#7a6a52}.shop-card h4{font-size:15px;line-height:1.7;margin:10px 0}.shop-card p{font-size:10px;color:var(--muted)}.shop-card a{font-size:11px;text-decoration:underline}.status-tag{display:inline-block;border-radius:3px;padding:3px 7px;font-size:8px;background:#f4ecdc}.article-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.article-card{border:1px solid var(--line);border-radius:9px;background:white;padding:24px;text-align:left;min-height:200px;transition:transform .2s}.article-card:hover{transform:translateY(-3px)}.article-card>span{font-size:10px;letter-spacing:.1em;color:#759088}.article-card h4{font-size:18px;line-height:1.7;margin:15px 0 12px}.article-card p{font-size:11px;color:var(--muted)}.article-card>b{font-size:11px;font-weight:500}.official-link{display:inline-flex;min-height:44px;align-items:center;font-size:12px;text-decoration:underline}.no-map{border:1px dashed #adbfba;background:#edf2ec;padding:35px;border-radius:9px;margin-bottom:30px}.no-map h3{margin-top:0}.no-map p{font-size:13px}.more-features{margin:65px 0 70px;border-top:1px solid var(--line);padding-top:40px}.more-features>h2{font-size:27px}.more-features>div{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:30px}.more-features article>span{font-size:12px;color:#789588}.more-features h3{font-size:16px}.more-features article p{font-size:12px;color:var(--muted)}footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:25px;background:#e9eeea;padding:35px 5%}footer p,footer small{font-size:10px;color:var(--muted)}dialog{width:min(830px,94vw);max-height:90vh;border:1px solid var(--line);padding:35px 45px;border-radius:12px;color:var(--ink);background:var(--paper)}dialog::backdrop{background:#12303c99}.close-dialog{position:sticky;top:0;float:right;width:38px;height:38px;background:white;border:1px solid var(--line);border-radius:50%;font-size:22px}dialog h2{font-size:27px;line-height:1.6;margin:25px 0}dialog h3{font-size:20px;margin-top:35px}dialog p{font-size:13px;line-height:2.2}dialog a{text-decoration:underline;font-size:12px}dialog .time-warning{padding:17px;background:#eee7d7;font-size:12px}dialog article{margin-top:30px;padding-top:15px;border-top:1px solid var(--line)}.muted-note{font-size:10px;color:var(--muted)}.empty-message{padding:25px;background:#edf2ed;font-size:12px;border-radius:6px}
@media(max-width:850px){header nav{display:none}.intro{gap:25px;padding:45px 0}.intro-art{height:230px}.boarding{width:260px;padding:20px}.boarding b{font-size:25px}.airport-selector{gap:15px;padding:22px}.airport-selector h2{font-size:17px}.shop-grid,.article-grid{grid-template-columns:repeat(2,1fr)}.workbench{padding:20px}.more-features>div{gap:20px}}@media(max-width:600px){header{padding:20px;gap:10px}.brand{font-size:17px}.brand-icon{width:35px;height:35px;font-size:26px}.brand small{font-size:7px}.local-badge{font-size:7px;padding:5px 8px}main{padding:0 18px}.intro{grid-template-columns:1fr;gap:25px;padding:35px 0}.intro h1{font-size:33px}.intro-art{height:190px}.intro-copy{font-size:12px}.airport-selector{grid-template-columns:1fr;padding:22px;gap:16px}.airport-selector input,.airport-selector select{font-size:16px}.airport-heading{display:block;margin-top:25px}.airport-heading h2{font-size:25px}.check-date{display:inline-block;margin-top:15px;font-size:9px}.workbench{padding:15px}.workbench h3{font-size:17px}.schematic-label{font-size:8px;padding:4px 8px}.category-filters{gap:6px}.category-filters button{font-size:9px;padding:10px 3px}.map-stage #floor-map > svg,.map-stage #major-map > svg{min-height:210px}.floor-caption{font-size:10px}.floor-tabs button{font-size:11px;padding:7px 13px}.metrics{gap:8px}.metrics>div{padding:13px 11px}.metrics b{font-size:23px}.metrics small{font-size:8px;margin-left:3px}.metrics span{font-size:8px}.section-title{display:block}.section-title p{margin-top:8px}.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.shop-card{padding:15px;min-width:0}.shop-card h4{font-size:13px}.article-grid{grid-template-columns:1fr}.article-card{min-height:0;padding:21px}.more-features>div{grid-template-columns:1fr;gap:15px}.more-features article p{margin-bottom:0}.more-features h3{margin:12px 0}.more-features{margin:45px 0}.map-caption{font-size:9px}dialog{padding:22px}dialog h2{font-size:22px}}

/* Detailed terminal floor plans */
.map-stage{background:linear-gradient(160deg,#f7fafb,#eef3f3);border-color:#dae3e5}.map-stage #floor-map > svg,.map-stage #major-map > svg{min-height:370px;max-height:650px;touch-action:none;user-select:none}.map-stage svg .facility-room:hover>rect:nth-child(2){stroke:#b47b3f;stroke-width:3}.map-stage svg [data-facility]{cursor:pointer}.map-stage svg [data-facility]:focus{outline:none}.map-stage svg [data-facility]:focus>rect{stroke:#c78843;stroke-width:4}.map-stage svg .map-callout{pointer-events:none}.map-view-switch{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:18px;padding-top:18px;border-top:1px solid #e1e7e6}.map-view-switch button{min-height:40px;border:1px solid #cad6d8;background:#fff;padding:8px 16px;border-radius:5px;font-size:11px}.map-view-switch button[aria-pressed=true]{background:#e4eee8;border-color:#759485;color:#315845}.map-view-switch>span{font-size:10px;color:#81949a;margin-left:auto}.floor-map-legend{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin:20px 0;font-size:10px;color:#647d83}.floor-map-legend span{display:flex;align-items:center;gap:6px}.floor-map-legend i{width:11px;height:11px;border-radius:2px;display:inline-block;border:1px solid #bac7c5}.legend-shop{background:#e8dfbd}.legend-food{background:#e6c9b3}.legend-rest{background:#cbdcc9}.legend-service{background:#d0dde2}.legend-work{background:repeating-linear-gradient(135deg,#cbd0ca 0 3px,#969d92 3px 5px)}.facility-picker{border:1px solid #d9e3df;border-radius:6px;background:#f6f9f5;margin-top:18px;padding:13px 17px}.facility-picker summary{font-size:12px;cursor:pointer}.facility-picker>div{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}.facility-picker button{border:1px solid #d0dcd0;background:#fff;border-radius:4px;padding:8px 10px;font-size:10px;min-height:38px}.facility-picker b{display:inline-grid;place-items:center;background:#a18451;color:#fff;width:21px;height:21px;border-radius:50%;margin-right:7px;font-size:9px}.floor-toolbar{margin-top:18px}.map-stage:active{cursor:grabbing}@media(max-width:600px){.map-stage #floor-map > svg,.map-stage #major-map > svg{min-height:270px;max-height:450px}.map-view-switch{gap:6px}.map-view-switch button{font-size:10px;padding:7px 10px}.map-view-switch>span{font-size:9px;width:100%;margin:2px 0 0}.floor-map-legend{gap:10px;font-size:9px}.facility-picker{padding:12px}.facility-picker summary{font-size:11px}.facility-picker button{font-size:10px;min-height:40px}}

.access-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;margin:10px 0 14px}.access-legend span{padding:7px 10px;border-radius:5px;border-left:5px solid}.access-arrival{background:#e2f3fb;border-color:#197ba7!important}.access-departure{background:#eee6f7;border-color:#8a6aa9!important}.access-public{background:#eaf3e7;border-color:#7f9d77!important}.access-notes{border-left:3px solid #197ba7;padding:8px 14px;margin-top:16px;background:#f1f7fa;font-size:12px;line-height:1.8}.access-notes p{margin:4px 0}

.rotation-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 20px;font-size:12px}.rotation-toolbar label{display:flex;align-items:center;gap:12px}.rotation-toolbar input{width:180px;accent-color:#275566}.rotation-toolbar button{border:1px solid #ccd8da;border-radius:5px;background:white;color:#173e50;padding:9px 12px;min-height:42px}.rotation-toolbar output{min-width:34px}.rotation-toolbar span{color:#70828a}@media(max-width:600px){.rotation-toolbar{gap:7px}.rotation-toolbar input{width:110px}.rotation-toolbar span{flex-basis:100%}}

.drag-mode{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:10px 0 18px;font-size:12px}.drag-mode button{min-height:44px;padding:10px 18px;border:1px solid #c8d6d9;border-radius:6px;background:#fff;color:#214959}.drag-mode button[aria-pressed="true"]{background:#214959;color:white}.drag-mode span{color:#627c87}.rotation-toolbar input{min-height:36px}.rotation-toolbar button{min-width:44px}@media(max-width:600px){.drag-mode span{flex-basis:100%}}

/* 空港のすすめ — ticket search and editorial identity */
:root{--navy:#163b3b;--paper:#f5f4ee;--line:#c7d2cf}header{padding:24px 5%;background:#fafaf6}.brand-mark{display:block;flex-shrink:0;border-radius:13px}.brand-name{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:27px;letter-spacing:.11em;font-weight:600}.brand-name small{font-family:inherit;font-size:8px;letter-spacing:.22em;color:#7c8273}.intro{display:block;text-align:center;padding:60px 0 45px}.intro .eyebrow{color:#6c7c70;letter-spacing:.26em}.intro h1{font-family:'Yu Mincho','Hiragino Mincho ProN','Noto Serif JP',serif;font-size:clamp(52px,7.2vw,90px);font-weight:500;letter-spacing:.13em;line-height:1.35;margin:15px 0 13px;color:#163b3b}.title-no{font-size:.72em;margin:0 .05em}.title-dot{color:#aa9060}.hero-subtitle{font-size:12px;letter-spacing:.22em;color:#718078;margin:20px 0 0}.airport-selector{position:relative;display:block;isolation:isolate;background:transparent;color:#163b3b;border-radius:0;padding:0;margin:12px 0 55px;min-height:320px}.ticket-art{position:absolute;inset:0 0 0 0;z-index:-1;background:#fdfcf5;border:1px solid #aabbb5;border-radius:12px;box-shadow:0 15px 35px #26433b13;overflow:hidden;transform:rotate(-1.2deg)}.ticket-art:before{content:'';position:absolute;left:0;top:0;bottom:0;width:10px;background:#163b3b}.ticket-airline{background:#163b3b;color:#f1ead6;display:flex;justify-content:space-between;padding:15px 26px;width:78%;font-size:10px;letter-spacing:.13em}.ticket-airline b{font-weight:400}.ticket-route{display:flex;gap:30px;align-items:center;padding:14px 28px;color:#92a298;font-family:system-ui,sans-serif;font-weight:300;font-size:37px;letter-spacing:.05em;opacity:.6}.ticket-route small{display:block;font-size:7px;letter-spacing:.2em}.ticket-route i{font-size:25px;font-style:normal;color:#9e8a61}.ticket-meta{display:flex;gap:65px;padding:3px 28px;font-size:7px;letter-spacing:.15em;color:#83938b;opacity:.5}.ticket-meta b{display:block;font-size:10px;letter-spacing:.1em}.ticket-stub{position:absolute;right:0;top:0;bottom:0;width:22%;border-left:2px dashed #b3bfb6;display:flex;align-items:center;flex-direction:column;padding:24px 10px;gap:10px;background:#ecefe3;color:#658077;font-size:8px;letter-spacing:.12em}.ticket-stub:before,.ticket-stub:after{content:'';position:absolute;width:22px;height:22px;background:var(--paper);border:1px solid #aabbb5;border-radius:50%;left:-12px}.ticket-stub:before{top:-12px}.ticket-stub:after{bottom:-12px}.ticket-stub>b{font-family:Georgia,serif;font-size:58px;font-weight:400;line-height:1.1}.ticket-stub small{font-size:7px;text-align:center}.ticket-barcode{height:65px;width:75%;background:repeating-linear-gradient(90deg,#38554d 0 2px,transparent 2px 4px,#38554d 4px 5px,transparent 5px 8px);opacity:.65}.ticket-bottom{position:absolute;bottom:18px;left:28px;right:25%;font-size:7px;color:#829489;letter-spacing:.1em;display:flex;justify-content:space-between}.selector-content{padding:32px 28% 43px 34px}.selector-heading{position:relative;background:#fdfcf5ed;border-radius:5px;padding:4px 0 14px}.airport-selector .eyebrow{color:#59736a;font-size:9px}.airport-selector h2{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:clamp(15px,1.65vw,21px);font-weight:500;line-height:1.9;letter-spacing:.04em}.selector-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;background:#fdfcf5ed;border-radius:6px;padding-top:8px}.airport-selector label{color:#38574a;font-size:11px;font-weight:500}.airport-selector input,.airport-selector select{border:1.5px solid #879f92;background:#fffefa;box-shadow:0 2px 0 #163b3b08;min-height:48px}.map-stage{background:linear-gradient(145deg,#c8d9dc,#afc6cb);border:2px solid #6d9098;box-shadow:inset 0 0 55px #547b8610}.map-stage svg .facility-room>rect:nth-child(2){vector-effect:non-scaling-stroke;stroke-width:1.3px}.floor-map-legend i{border-color:#607a78}.access-legend span{border:1px solid}.access-arrival{border-color:#197ba7!important}.access-departure{border-color:#725091!important}.access-public{border-color:#537d4e!important}.footer-brand{font-family:'Yu Mincho',serif;font-size:22px}
@media(max-width:850px){.selector-content{padding-right:25%;padding-left:25px}.ticket-route{font-size:27px}.ticket-meta{gap:30px}.airport-selector h2{font-size:17px}.brand-name{font-size:23px}}
@media(max-width:600px){header{padding:18px}.brand-mark{width:43px;height:43px}.brand-name{font-size:22px;letter-spacing:.06em}.brand-name small{font-size:6px;letter-spacing:.15em}.intro{padding:42px 0 29px}.intro h1{font-size:clamp(43px,11.7vw,68px);letter-spacing:.06em;white-space:nowrap}.intro .eyebrow{font-size:8px}.hero-subtitle{font-size:10px;letter-spacing:.1em}.airport-selector{margin:8px 0 35px;min-height:430px}.selector-content{padding:65px 21px 40px}.ticket-airline{width:100%;padding:13px 19px;font-size:7px}.ticket-art{transform:rotate(-1deg)}.ticket-stub{display:none}.ticket-route{position:absolute;top:45px;left:0;font-size:21px;gap:15px;opacity:.3;padding:10px 20px}.ticket-meta{display:none}.selector-heading{background:#fdfcf5ed;padding:8px 0 14px}.airport-selector h2{font-size:15px;line-height:1.9}.airport-selector h2 br{display:none}.selector-fields{grid-template-columns:1fr;gap:14px}.airport-selector input,.airport-selector select{font-size:16px}.ticket-bottom{bottom:13px;left:20px;right:20px;font-size:5px}.airport-selector .eyebrow{font-size:8px}.local-badge{font-size:6px;padding:5px 7px}}

@media(min-width:601px){.selector-content{padding-top:58px}.ticket-route{padding-top:18px}.ticket-art{min-height:320px}}

/* Compact airport workspace */
header{gap:22px;padding:22px 4%}.brand-name{font-family:'BIZ UDPGothic','Yu Gothic',sans-serif;font-size:clamp(27px,3.6vw,43px);font-weight:900;letter-spacing:-.045em;line-height:1.12}.brand-name small{display:none}.brand-mark{width:58px;height:58px}.brand{gap:14px}header nav{gap:20px;font-size:12px}main{padding-top:25px}.airport-selector{margin:12px 0 25px}.local-badge{font-size:7px}.airport-heading h1{font-family:inherit;font-size:30px;font-weight:750;letter-spacing:0;line-height:1.4;margin:0 0 8px}.airport-heading p{max-width:740px}.workbench-title h2{font-size:20px;margin:0}.map-control-panel{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin:18px 0 13px;padding:14px;background:#f1f4f1;border:1px solid #bccdca;border-radius:8px}.map-control-panel .floor-toolbar{grid-column:1/-1;margin:0;padding-bottom:10px;border-bottom:1px solid #c6d2cf}.map-control-panel .map-view-switch{border:0;padding:0;margin:0;flex-wrap:nowrap}.map-control-panel .map-view-switch button{flex:1;padding:8px;font-size:11px}.map-control-panel .drag-mode{margin:0;justify-content:flex-end}.map-control-panel .drag-mode button{padding:8px 16px;font-size:11px;min-height:42px}.map-control-panel .rotation-toolbar{grid-column:1/-1;margin:0;display:flex;flex-wrap:nowrap;gap:8px}.map-control-panel .rotation-label{flex:1;min-width:0}.map-control-panel input[type=range]{width:100%;min-width:50px}.map-control-panel .rotation-toolbar button{white-space:nowrap;min-height:40px;padding:6px 12px}.control-hint{grid-column:1/-1;margin:0;font-size:10px;color:#637e7d}.map-control-panel .category-filters{grid-column:1/-1;gap:7px}.map-control-panel .category-filters button{padding:9px 8px;min-height:42px;font-size:11px}.category-filters button[aria-pressed=true]{background:#163e39;color:#fff;border-color:#163e39}.access-arrival{background:#b5d9ea}.access-departure{background:#d6c5eb}.access-public{background:#d6e5d0}.access-legend{font-size:10px;gap:8px;margin-bottom:12px}.access-legend span{padding:5px 9px}.map-stage #floor-map > svg,.map-stage #major-map > svg{min-height:430px;max-height:700px}.map-tools{gap:5px}.map-tools button{font-size:12px;padding:8px 11px;min-height:40px}.selected-facility{margin:14px 0}.selected-facility>p{padding:12px 16px;border:1px dashed #9aafaa;border-radius:7px;color:#657b76;font-size:12px}.facility-card{display:flex;align-items:center;gap:20px;border:1.5px solid #809d90;border-left:6px solid #5f7e64;border-radius:9px;padding:20px;background:#f5f7ee}.facility-card-mark{background:#e7e5ca;border:1px solid #9a9e7b;flex:0 0 70px;height:70px;border-radius:12px;display:grid;place-items:center;color:#576645;font-size:28px;font-weight:800}.facility-card-content{flex:1;min-width:0}.facility-card-content small{font-size:10px;color:#687c64}.facility-card h3{font-size:19px;margin:3px 0 8px;line-height:1.5}.facility-card-content p{font-size:11px;line-height:1.8;margin:7px 0 0;color:#627467}.facility-card .status-tag{font-size:9px}.facility-card-link{max-width:150px}.facility-card-link a{font-size:11px;border:1px solid #859e8a;background:#fffef7;border-radius:5px;padding:9px 12px;display:inline-block}.facility-card.is-food{background:#fbf1e9;border-color:#b78f72}.facility-card.is-food .facility-card-mark{background:#ead8c9;border-color:#b78f72}.facility-picker{padding:16px;background:#f7f8f3}.facility-picker h3{font-size:12px;margin:0 0 12px}.facility-buttons{display:flex;flex-wrap:wrap;gap:7px}.facility-picker button{min-height:42px;font-size:11px}.facility-picker details{margin-top:13px;border-top:1px solid #d1d9cf;padding-top:11px}.facility-picker details .facility-buttons{margin-top:12px}.map-source-details{margin:17px 0;font-size:11px}.map-source-details summary{cursor:pointer;color:#5f7571}.map-source-details .airport-alert{margin:10px 0 0}.data-footnote{font-size:10px;color:#6b7f78;margin:30px 0;padding-top:12px;border-top:1px solid #cbd4cb}.data-footnote p{margin:0}.data-footnote small{font-size:9px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.listing-section{padding:24px 28px;border:1px solid #b7c4a8;border-radius:12px;background-color:#edf0e0;background-image:radial-gradient(ellipse at 93% 20%,#aebd9233 0 55px,transparent 56px),repeating-linear-gradient(120deg,transparent 0 35px,#aabd8c12 36px 38px);margin:25px 0 32px;transition:background-color .2s}.listing-section.theme-food{background-color:#f4e6d8;border-color:#caab8d;background-image:radial-gradient(circle at 95% 40%,transparent 0 34px,#bf987533 35px 43px,transparent 44px),repeating-linear-gradient(0deg,transparent 0 35px,#c7a08318 36px 38px)}.listing-section.theme-all{background-color:#e4ece9;border-color:#a2b8ae}.listing-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.listing-heading h2{font-size:22px;margin:0}.listing-heading p:not(.eyebrow){font-size:11px;color:#637b63;margin:7px 0 0}.listing-heading .eyebrow{font-size:9px;margin-bottom:6px}.listing-types{display:flex;gap:5px}.listing-types button{min-height:42px;font-size:11px;padding:7px 13px;border:1px solid #879c88;background:#ffffffb8;border-radius:5px;white-space:nowrap}.listing-types button[aria-pressed=true]{background:#234c3f;color:#fff;border-color:#234c3f}.theme-food .listing-types button[aria-pressed=true]{background:#855c40;border-color:#855c40}.shop-toolbar input,.shop-toolbar select{border-color:#91a691;background:#fffef9;font-size:12px}.floor-shop-list{background:#ffffffb8;border:1px solid #a3b39c;border-radius:6px;margin:9px 0;overflow:hidden}.floor-shop-list summary{padding:11px 15px;cursor:pointer;font-size:12px}.floor-shop-list summary>span{font-size:15px;font-weight:800;margin-right:9px}.floor-shop-list summary small{margin-left:8px;color:#60755e}.floor-shop-list summary>b{float:right;font-weight:400;font-size:10px}.floor-empty{padding:12px 16px;font-size:11px;color:#6a7e69}.table-wrap{overflow-x:auto}.floor-shop-list table{width:100%;border-collapse:collapse;font-size:12px}.floor-shop-list th,.floor-shop-list td{padding:10px 14px;border-top:1px solid #c7d0c0;text-align:left}.floor-shop-list th{font-size:10px;font-weight:500;background:#e6eddc}.floor-shop-list td:first-child{width:60px}.floor-shop-list td:last-child{font-size:10px;white-space:nowrap;color:#61755f}.floor-shop-list td button{border:0;background:transparent;text-align:left;padding:6px 0;width:100%;min-height:40px;font-weight:600;text-decoration:underline;text-decoration-color:#a9ba9b;text-underline-offset:4px}.floor-shop-list td button span{font-size:9px;font-weight:400;color:#5c7859;display:inline-block;margin-left:9px}.airport-directory h1,.html-sitemap h1,.haneda-ready h1{font-family:inherit;font-size:32px;font-weight:800;letter-spacing:0}.directory-title p:not(.eyebrow){font-size:13px;color:#627b70}.directory-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;background:#e4ede6;padding:18px;border-radius:8px}.directory-controls input[type=search]{flex:1;min-width:180px}.directory-controls input[type=search],.directory-controls select{border:1px solid #94aa9a;background:#fff;padding:10px 13px;border-radius:5px;font-size:13px}.directory-controls label{font-size:11px}#directory-count{font-size:11px;color:#627b70;margin:20px 0}.airport-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.airport-card{overflow:hidden;border:1px solid #bccdc2;background:#fff;border-radius:10px}.airport-card>div:not(.map-pending){padding:20px}.airport-thumbnail{display:block;width:100%;height:165px;object-fit:cover;object-position:center;background:#b2cbd0}.map-pending{height:165px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#e7ece6;color:#7b8b7b;font-size:11px}.map-pending img{opacity:.3}.airport-card small{font-size:9px;color:#78917b}.airport-card h2{font-size:19px;line-height:1.6;margin:6px 0}.airport-card p{font-size:11px;color:#69806e}.card-open{display:inline-flex;align-items:center;min-height:44px;font-size:12px;font-weight:600;color:#28563e;text-decoration:underline;text-underline-offset:4px}.pending-label{font-size:11px;color:#899987}.directory-note{font-size:10px;color:#718172;margin:28px 0}.directory-note a{text-decoration:underline}.haneda-ready,.html-sitemap{padding:30px;background:#f1f4ed;border:1px solid #bbcbbd;border-radius:10px;margin:25px 0}.haneda-ready p{font-size:13px;max-width:700px}.haneda-ready>a{display:inline-block;margin:12px 0}.html-sitemap li{margin:12px 0;font-size:13px}.html-sitemap a{text-decoration:underline}
@media(max-width:950px){header{flex-wrap:wrap}header nav{display:flex;margin-left:auto;gap:16px}.local-badge{display:none}.airport-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.facility-card{gap:14px}.facility-card-link{max-width:130px}.brand-name{font-size:35px}}
@media(max-width:600px){header{padding:17px 18px;gap:12px}.brand-name{font-size:32px;letter-spacing:-.07em}.brand-mark{width:49px;height:49px}.brand{gap:10px}header nav{display:flex;width:100%;margin:0;gap:23px;font-size:11px;border-top:1px solid #dce4db;padding-top:11px}main{padding-top:13px}.selector-content{padding-top:55px}.airport-heading h1{font-size:25px}.workbench{padding:12px}.workbench-title h2{font-size:17px}.map-control-panel{padding:10px;gap:8px;margin-top:12px}.map-control-panel .floor-toolbar{gap:6px;align-items:center}.floor-toolbar>span{font-size:10px}.floor-tabs{gap:5px}.floor-tabs button{padding:5px 11px;min-height:40px}.map-control-panel .map-view-switch button{font-size:10px;padding:5px}.map-control-panel .drag-mode{gap:5px}.map-control-panel .drag-mode button{font-size:10px;padding:5px 9px}.map-control-panel .rotation-toolbar{flex-wrap:wrap;gap:5px}.map-control-panel .rotation-toolbar button{padding:5px 9px;font-size:10px;min-width:37px}.rotation-toolbar output{font-size:10px;min-width:29px}.map-control-panel .rotation-toolbar .rotation-label{min-width:50px;flex:1}.map-control-panel .category-filters{gap:4px;grid-template-columns:repeat(5,minmax(0,1fr))}.map-control-panel .category-filters button{padding:6px 1px;font-size:9px;min-height:42px;word-break:keep-all;white-space:normal}.access-legend{gap:5px;font-size:8px}.access-legend span{padding:4px 6px}.map-stage #floor-map > svg,.map-stage #major-map > svg{min-height:330px;max-height:430px}.map-tools{bottom:8px;right:7px;gap:4px}.map-tools button{font-size:10px;padding:5px 8px;min-width:30px;min-height:38px}.facility-card{padding:14px 12px;gap:11px;flex-wrap:wrap;align-items:flex-start}.facility-card-mark{flex-basis:43px;height:43px;border-radius:8px;font-size:20px}.facility-card h3{font-size:16px}.facility-card-content p{font-size:10px}.facility-card-content{flex:1;min-width:160px}.facility-card-link{max-width:none;margin-left:54px}.facility-card-link a{font-size:10px;min-height:40px}.facility-card .status-tag{font-size:8px}.facility-picker{padding:12px}.facility-buttons{gap:5px}.facility-picker button{font-size:10px;padding:6px 8px}.listing-section{padding:18px 13px;margin:22px 0}.listing-heading{align-items:flex-start;flex-direction:column;gap:12px}.listing-heading h2{font-size:20px}.listing-types{width:100%}.listing-types button{flex:1}.shop-toolbar{gap:8px}.shop-toolbar input{width:100%;flex-basis:100%;font-size:16px}.shop-toolbar select{font-size:12px;width:100%}.floor-shop-list summary{padding:10px;font-size:10px}.floor-shop-list summary>span{font-size:13px}.floor-shop-list summary>b{font-size:8px}.floor-shop-list th,.floor-shop-list td{padding:7px 9px}.floor-shop-list td:first-child{width:35px}.floor-shop-list td button{font-size:11px}.floor-shop-list td button span{display:block;margin:3px 0 0}.airport-grid{gap:12px}.airport-thumbnail,.map-pending{height:110px}.airport-card>div:not(.map-pending){padding:13px}.airport-card h2{font-size:15px}.airport-card p{font-size:10px}.card-open{font-size:11px}.directory-controls{padding:13px;gap:9px}.directory-controls label{width:100%}.airport-directory h1{font-size:27px}.haneda-ready,.html-sitemap{padding:20px}}

.map-stage>.map-watermark{position:absolute;left:16px;bottom:13px;font-size:12px;font-weight:800;letter-spacing:2px;color:#163b3b;opacity:.23;pointer-events:none}.access-departure{background:#d6c5eb}.access-arrival{background:#b5d9ea}.access-public{background:#d6e5d0}

.data-footnote{margin:0 0 28px}.facility-card-content{overflow-wrap:anywhere}.floor-shop-list td button:hover,.facility-picker button:hover{background:#e7eee0}.map-control-panel button:focus-visible{outline:3px solid #b48e46;outline-offset:2px}@media(max-width:600px){.facility-card-content{min-width:150px}.data-footnote{font-size:9px}.data-footnote small{font-size:8px}}

.floor-shop-list[open] summary>b{font-size:0}.floor-shop-list[open] summary>b:after{content:"一覧を閉じる";font-size:10px}@media(max-width:600px){.floor-shop-list[open] summary>b:after{font-size:8px}.map-control-panel .map-view-switch button{min-height:42px;white-space:nowrap}.map-watermark{max-width:105px}}

/* Map-local floor switching */
.map-floor-overlay{position:absolute;z-index:3;top:12px;left:12px;display:flex;gap:5px;padding:5px;border:1px solid #78949a;border-radius:9px;background:#edf4f3f5;box-shadow:0 3px 12px #173d4a24}.map-floor-overlay button{min-width:48px;min-height:44px;padding:7px 12px;border:1px solid #91a8ab;border-radius:5px;background:#fff;color:#284d56;font-size:13px;font-weight:700}.map-floor-overlay button[aria-pressed=true]{color:#fff;background:#174956;border-color:#174956}.map-floor-overlay button:hover{box-shadow:inset 0 0 0 1px #417584}.floor-switch-hint{font-size:10px;color:#6e8384}.facility-buttons button{background:#e7eee1;border:1px solid #9db196;color:#2f513b}.facility-buttons button:hover{background:#d9e8ce;border-color:#77956d}.facility-buttons button:focus-visible{outline:3px solid #b79149;outline-offset:2px}.facility-picker details{background:#e9edf7;border:1.5px solid #8e9fbb;border-radius:7px;padding:0;margin-top:14px;overflow:hidden}.facility-picker details summary{padding:13px 15px;font-size:12px;font-weight:700;color:#314b74;min-height:44px}.facility-picker details[open] summary{border-bottom:1px solid #b0bfd4;background:#dde5f2}.facility-picker details .facility-buttons{padding:13px;margin:0}.facility-picker details .facility-buttons button{background:#f1f4fb;border-color:#a9b7cc;color:#395171}#shops{margin-top:24px}.brand-mark{border-radius:12px}@media(max-width:600px){.map-floor-overlay{top:9px;left:9px;gap:4px;padding:4px}.map-floor-overlay button{min-width:45px;min-height:44px;padding:6px 11px;font-size:12px}.floor-switch-hint{font-size:9px}.facility-picker details summary{font-size:11px;padding:12px}.facility-picker details .facility-buttons{padding:10px}.facility-buttons button{background:#e7eee1}.map-control-panel .floor-toolbar{padding-bottom:7px}}

/* Direct map manipulation and compact bearing controls */
header{position:relative;isolation:isolate;background-color:#fafbf6;overflow:hidden}header:before{content:'';position:absolute;inset:-25px 0 -25px 17%;z-index:-1;background:url('/header-airport.svg') center 60%/cover no-repeat;opacity:.095;pointer-events:none}.map-display-row{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(28px,1fr) 34px auto;align-items:center;gap:12px;min-width:0}.map-display-row .map-view-switch{display:flex;margin:0;gap:5px;min-width:0}.map-display-row .map-view-switch button{min-height:40px;flex:none;font-size:11px;padding:7px 15px;white-space:nowrap}.map-display-row .rotation-label{min-width:0;display:flex;margin:0}.map-display-row .rotation-label input{display:block;width:100%;min-width:0;min-height:40px;margin:0;accent-color:#275566}.map-display-row output{font-size:11px;white-space:nowrap;text-align:center}.reset-bearing{min-height:40px;border:1px solid #93aaa4;background:#fff;border-radius:5px;padding:6px 12px;font-size:11px;white-space:nowrap}.reset-mobile{display:none}.map-top-controls{position:absolute;top:12px;left:12px;right:12px;z-index:3;display:flex;justify-content:space-between;align-items:flex-start;gap:8px;pointer-events:none}.map-top-controls>.map-floor-overlay{position:static;top:auto;left:auto;pointer-events:auto}.map-drag-overlay{display:flex;gap:5px;padding:5px;background:#edf4f3f5;border:1px solid #78949a;border-radius:9px;box-shadow:0 3px 12px #173d4a24;pointer-events:auto}.map-drag-overlay button{min-height:44px;min-width:59px;border:1px solid #91a8ab;border-radius:5px;background:#fff;color:#284d56;font-size:12px;font-weight:600;padding:7px 10px}.map-drag-overlay button[aria-pressed=true]{background:#174956;color:#fff;border-color:#174956}.map-stage #floor-map > svg,.map-stage #major-map > svg{touch-action:none;overscroll-behavior:contain}.map-control-panel .floor-toolbar{font-size:12px}
@media(max-width:600px){header:before{inset:0 -80px 0 12%;background-size:auto 150px;opacity:.11}.map-display-row{gap:5px;grid-template-columns:auto minmax(25px,1fr) 25px auto}.map-display-row .map-view-switch{gap:3px}.map-display-row .map-view-switch button{font-size:10px;padding:6px 7px;min-height:40px}.map-display-row output{font-size:9px}.reset-bearing{font-size:10px;padding:5px 7px;min-height:40px}.reset-mobile{display:inline}.reset-desktop{display:none}.map-top-controls{top:8px;left:8px;right:8px;gap:6px}.map-top-controls>.map-floor-overlay{gap:3px;padding:4px}.map-top-controls .map-floor-overlay button{min-width:36px;min-height:42px;padding:5px 9px;font-size:11px}.map-drag-overlay{gap:3px;padding:4px}.map-drag-overlay button{min-width:42px;min-height:42px;font-size:10px;padding:5px 7px}.control-hint{font-size:9px;line-height:1.6}}

.directory-region-title{grid-column:1/-1;font-size:20px;margin:24px 0 0;padding:12px 0 10px;border-bottom:2px solid #9aafa6;color:#163b3b}.directory-region-title:first-child{margin-top:0}

.map-compass{position:absolute;bottom:32px;left:12px;width:86px;pointer-events:none;z-index:2;text-align:center}.map-compass svg{display:block;width:86px!important;height:86px!important;min-height:0!important;max-height:none!important}.map-compass span{display:block;font-size:9px;color:#35555b;margin-top:2px}@media(max-width:600px){.map-compass{width:70px;left:7px;bottom:29px}.map-compass svg{width:70px!important;height:70px!important}.map-compass span{font-size:8px}}

/* Public editorial pages and generated header photograph */
[hidden]{display:none!important}
header::before{background-image:linear-gradient(90deg,#fafaf6e8 0%,#fafaf687 52%,#fafaf6bb 100%),url('/assets/airport-header-v1.webp')!important;background-size:cover!important;background-position:center 59%!important;opacity:1!important}header .brand,header nav{position:relative;z-index:1}header{min-height:116px}
.more-features>div{gap:20px}.more-features article{position:relative;overflow:hidden;padding:27px;border:1px solid #a8bab4;border-radius:12px;background:linear-gradient(120deg,#fffdf8ed,#eef3efed),url('/assets/airport-header-v1.webp') center/cover;box-shadow:0 5px 18px #1b484708;min-height:190px}.more-features article>span{display:inline-flex;align-items:center;justify-content:center;width:31px;height:31px;border-radius:50%;background:#dceae4;color:#244f47;font-weight:700}.more-features article h3{line-height:1.7;margin:13px 0}.more-features article p{line-height:1.9}.full-article-link a,.back-guide{display:inline-block;padding:13px 17px;border:1px solid #9aafa6;border-radius:7px;background:#e7efea;font-weight:700;font-size:13px}.footer-links,.policy-links{display:flex;flex-wrap:wrap;gap:14px 23px;justify-content:center;margin-bottom:28px}.footer-links a,.policy-links a{font-size:12px;color:#35584f;text-decoration:underline;text-underline-offset:4px}.document-page{max-width:900px;margin:35px auto 70px;line-height:2;padding:36px 44px;border:1px solid #c4d2cc;background:#fffefa;border-radius:12px}.document-page h1{font-size:clamp(26px,3vw,39px);line-height:1.6;margin:20px 0}.document-page h2{font-size:22px;margin:32px 0 13px}.document-page h3{font-size:18px;line-height:1.8}.document-page p,.document-page li{font-size:14px;line-height:2.15}.document-page a{color:#22647b;text-underline-offset:4px;overflow-wrap:anywhere}.document-page section{border-top:1px solid #d7e0db;margin-top:30px}.document-page section>article{padding:12px 0 25px;border-bottom:1px solid #dfe6e1}.document-lead{font-size:16px!important;color:#466359}.document-page .check-date{display:block;width:fit-content;font-size:11px}.document-page .policy-links{border-top:1px solid #c4d2cc;margin:38px 0 0;padding-top:25px;justify-content:flex-start}.contact-mail{font-size:clamp(18px,4vw,27px);font-weight:700}.article-jumps{display:flex;flex-wrap:wrap;gap:7px;margin:25px 0}.article-jumps a{padding:8px 12px;border-radius:6px;background:#e7eeea;font-size:12px}.nearby-diagram svg{width:100%;height:auto}.nearby-diagram p{font-size:11px}.document-page details{padding:15px;border:1px solid #c5d4cd;margin:10px 0;border-radius:8px}.document-page summary{cursor:pointer;font-weight:700}.major-intro,.major-map-note{font-size:12px;line-height:1.9;color:#4c666c}.major-terminal-controls,.major-floor-controls,.major-map-options,.major-filter-controls{display:flex;flex-wrap:wrap;gap:7px;margin:13px 0}.major-workbench button{border:1px solid #a4bcb9;background:#f3f7f4;border-radius:6px;color:#244c4d;padding:10px 13px;min-height:42px;cursor:pointer}.major-workbench button[aria-pressed=true]{background:#1b4c53;color:white;border-color:#1b4c53}.major-floor-controls button small{display:block;font-size:10px;margin-top:3px}.major-map-options{align-items:center}.major-map-options label{display:flex;align-items:center;gap:8px;flex:1;min-width:130px;font-size:12px}.major-map-options input{width:100%;min-width:50px}.major-diagram{position:relative;background:linear-gradient(140deg,#c8d9dc,#b0c8cd);border:2px solid #77979e;border-radius:8px;overflow:hidden}.major-diagram #major-map > svg{width:100%;display:block;min-height:270px;max-height:560px}.major-diagram [data-major-item]{cursor:pointer}.major-diagram [data-major-item]:focus polygon{stroke:#125d87;stroke-width:6}.major-item-detail{padding:20px 24px;border:1px solid #a7bdb0;border-radius:9px;background:#eff4e9;margin:18px 0}.major-item-detail span{font-size:11px;color:#5f7870}.major-item-detail h3{font-size:20px;margin:10px 0}.major-item-detail p{font-size:13px;line-height:1.9}.major-item-detail a{font-size:12px}.major-workbench>p:last-child{font-size:11px}.major-diagram .map-watermark{bottom:12px;left:15px}.major-diagram .map-tools{right:10px;bottom:10px}
@media(max-width:600px){header{min-height:95px}header::before{background-position:65% center!important}.more-features article{padding:22px;min-height:0}.document-page{padding:24px 18px;margin:20px 0 45px}.document-page p,.document-page li{font-size:13px}.document-page h2{font-size:20px}.major-terminal-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.major-terminal-controls button{padding:8px 3px;font-size:11px}.major-floor-controls button{padding:7px 10px;flex:1;min-width:64px}.major-filter-controls button{flex:1;padding:7px 4px;font-size:10px;white-space:nowrap}.major-map-options button{padding:7px;font-size:11px}.major-map-options label{font-size:10px;min-width:70px}.major-diagram #major-map > svg{min-height:270px}.major-item-detail{padding:16px}.footer-links{gap:13px 17px}.full-article-link a{font-size:12px}.nearby-diagram{overflow:auto}.nearby-diagram svg{min-width:540px}.major-workbench .workbench-title{flex-wrap:wrap;gap:8px}.major-workbench .workbench-title h2{font-size:19px}}

.document-page .check-date{max-width:100%;white-space:normal;overflow-wrap:anywhere}.article-grid:has(>.article-card:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:600px){.article-grid:has(>.article-card:nth-child(2):last-child){grid-template-columns:1fr}}

.major-map-options label{white-space:nowrap}.major-diagram #major-map > svg{min-height:220px}@media(max-width:600px){.major-diagram #major-map > svg{min-height:230px}}

.xml-sitemap-note{padding:20px 23px;border:1px solid #9ab5b1;background:#e9f1ef;border-radius:9px;margin:22px 0}.xml-sitemap-note h2{font-size:17px;margin:0 0 9px}.xml-sitemap-note p{font-size:12px}.xml-sitemap-note a{display:block;font-weight:700;overflow-wrap:anywhere;color:#1d6077}.xml-sitemap-note small{display:block;font-size:11px;margin-top:12px;color:#5a7470}

/* Typography: map labels intentionally retain their previous font stack. */
:root{--text-font:'Yu Mincho','Hiragino Mincho ProN','Noto Serif CJK JP','Shippori Mincho B1',serif;--map-control-font:'Noto Sans JP','Hiragino Sans','Yu Gothic',sans-serif;--title-font:'Shippori Mincho B1','Yu Mincho','Hiragino Mincho ProN',serif}body{font-family:var(--text-font);line-height:1.9}button,input,select,textarea{font-family:var(--text-font)}.brand-name,.footer-brand{font-family:var(--title-font);font-weight:700;letter-spacing:.025em}.brand-name{font-size:clamp(32px,3.7vw,46px);line-height:1.3}.airport-heading h1,.document-page h1,.airport-directory h1,.html-sitemap h1{font-family:var(--title-font);font-weight:700;letter-spacing:.025em}.airport-selector h2{font-family:var(--text-font);font-weight:500}.map-stage{font-family:var(--map-control-font)}.map-stage button{font-family:inherit}#floor-map,#floor-map *,#map-compass,#map-compass *,#major-map,#major-map *,.nearby-diagram svg,.nearby-diagram svg *{font-family:system-ui,-apple-system,'Yu Gothic',sans-serif}
.major-diagram{padding-top:245px}.major-overlay.map-top-controls{display:grid;grid-template-columns:1fr;gap:8px;padding:10px;background:#eef5f4f5;border:1px solid #89a4a7;border-radius:9px;box-shadow:0 4px 15px #173d4a1f;pointer-events:auto}.major-overlay .major-terminal-controls,.major-overlay .major-filter-controls,.major-overlay .major-map-options,.major-overlay .major-floor-controls{margin:0}.major-overlay .major-terminal-controls{display:flex;gap:6px}.major-overlay .major-terminal-controls button{padding:7px 16px;font-size:12px;min-height:40px}.major-overlay-navigation{display:flex;justify-content:space-between;gap:8px;align-items:center;min-width:0}.major-overlay .map-floor-overlay{position:static;display:flex;flex-wrap:wrap;padding:4px;box-shadow:none;min-width:0}.major-overlay .map-floor-overlay button{padding:6px 12px;min-width:46px;font-size:12px;min-height:42px}.major-overlay .map-drag-overlay{box-shadow:none;flex-shrink:0}.major-overlay .major-map-options{display:grid;grid-template-columns:auto minmax(30px,1fr) 34px auto;flex-wrap:nowrap;gap:8px}.major-overlay .map-view-switch{display:flex;gap:5px}.major-overlay .map-view-switch button{font-size:11px;padding:6px 13px;min-height:40px}.major-overlay .rotation-label{display:flex;min-width:0;margin:0}.major-overlay .rotation-label input{min-width:0;width:100%;min-height:40px}.major-overlay .major-filter-controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.major-overlay .major-filter-controls button{padding:6px 5px;font-size:11px;min-height:38px}.major-diagram #major-map > svg{display:block;width:100%;height:390px;min-height:300px;max-height:none;touch-action:none;overscroll-behavior:contain}.major-floor-caption{font-size:12px;font-weight:600;color:#335f65;margin:12px 0 0}.major-diagram .map-tools{z-index:4}.major-overlay button[aria-pressed=true]{background:#174956;color:#fff;border-color:#174956}
@media(max-width:600px){.brand-name{font-size:clamp(26px,8vw,33px);letter-spacing:0}.brand{gap:9px}.brand-mark{width:45px;height:45px}.major-diagram{padding-top:253px}.major-overlay.map-top-controls{left:7px;right:7px;top:7px;padding:7px;gap:6px}.major-overlay .major-terminal-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.major-overlay .major-terminal-controls button{padding:7px 2px;min-height:40px;font-size:10px}.major-overlay-navigation{gap:4px;align-items:flex-start}.major-overlay .map-floor-overlay{gap:3px;padding:3px;max-width:calc(100% - 103px)}.major-overlay .map-floor-overlay button{padding:5px 7px;min-width:30px;min-height:40px;font-size:11px}.major-overlay .map-drag-overlay{gap:3px;padding:3px}.major-overlay .map-drag-overlay button{min-width:40px;padding:5px 6px;font-size:10px;min-height:40px}.major-overlay .major-map-options{grid-template-columns:auto minmax(18px,1fr) 23px auto;gap:4px}.major-overlay .map-view-switch{gap:3px}.major-overlay .map-view-switch button{font-size:10px;padding:5px 6px;min-height:40px}.major-overlay .rotation-label input{margin:0}.major-overlay .major-map-options output{font-size:9px}.major-overlay .reset-bearing{font-size:10px;padding:5px 7px}.major-overlay .major-filter-controls button{font-size:9px;padding:6px 1px;white-space:normal;line-height:1.5;min-height:38px}.major-diagram #major-map > svg{height:285px;min-height:260px}.major-diagram .map-tools{gap:4px;bottom:8px;right:7px}.major-diagram .map-tools button{padding:5px 7px;font-size:10px;min-height:38px}.major-floor-caption{font-size:11px}}

/* Detailed major-airport maps share the Hiroshima renderer. */
.major-facility-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.major-facility-buttons button{background:#eaf1e5;border:1px solid #adc2a7;border-radius:7px;padding:10px 13px;color:#244c4a;text-align:left;min-height:44px;font-size:13px}.major-facility-buttons button:hover{background:#d7e7ce}#major-facility-picker{padding:16px 20px;background:#f6f8f3;border:1px solid #d3dfd3;border-radius:10px;margin:14px 0}#major-facility-picker h3{margin:0;font-size:15px}#major-facility-picker summary{display:inline-block;padding:10px 16px;background:#dbe7ec;border:1px solid #9db6c2;border-radius:6px;cursor:pointer;color:#244d60}.major-access-notes{padding-left:18px;font-size:12px;line-height:1.8;overflow-wrap:anywhere}.major-access-legend{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;font-size:12px}.major-access-legend span{padding:6px 9px;border:1px solid #aec6ad;background:#d6e5d0;border-radius:4px}.major-access-legend span:nth-child(2){background:#d6c5eb;border-color:#a88cbd}.major-access-legend span:nth-child(3){background:#b5d9ea;border-color:#79a8be}.major-filter-controls{grid-template-columns:repeat(6,minmax(0,1fr))}.major-map-note{font-size:12px;line-height:1.8}.major-item-detail{border:1px solid #aec3b5;background:#f0f5eb;border-radius:10px;padding:18px 22px}.major-item-detail h3{font-size:20px;margin:8px 0}.major-item-detail span{font-size:12px}.major-item-detail p{line-height:1.8}@media(max-width:600px){.major-filter-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.major-overlay.map-top-controls{gap:6px}.major-diagram{padding-top:285px}.major-item-detail{padding:16px}.major-facility-buttons button{flex:1 1 45%}}

.major-overlay .major-filter-controls{grid-template-columns:repeat(6,minmax(0,1fr))}@media(max-width:600px){.major-overlay .major-filter-controls{grid-template-columns:repeat(3,minmax(0,1fr))}}

@media(max-width:360px){.major-diagram{padding-top:315px}}

/* MAP-RULES v2: flat surfaces, shared legend and symbols for every airport. */
.unified-map-legend{margin:12px 0 16px;padding:12px 14px;border:1px solid #b3c7c4;background:#f7faf7;border-radius:7px;font-size:12px;color:#355351}.unified-access-legend,.unified-facility-legend{display:flex;flex-wrap:wrap;gap:9px 16px}.unified-access-legend{padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid #d2ddda}.unified-map-legend span{display:inline-flex;align-items:center;gap:6px}.unified-map-legend i{display:inline-block;width:15px;height:13px;border:1.5px solid #527076;border-radius:1px}.unified-map-legend .open-space-key{background:#edf3ef;border-style:dashed}.unified-map-legend p{font-size:11px;line-height:1.7;margin:10px 0 0;color:#5c716c}.map-stage svg .facility-room:hover>.facility-outline,.map-stage svg .facility-room:focus>.facility-outline{stroke:#ad7130;stroke-width:3.5}.map-stage svg .map-furniture{pointer-events:none}.map-stage svg .map-area-label{font-weight:650}.map-stage svg .facility-room{filter:none}.map-stage{background:#bfd2d6}@media(max-width:600px){.unified-map-legend{font-size:11px;padding:10px}.unified-access-legend,.unified-facility-legend{gap:8px 12px}}

.category-filters{grid-template-columns:repeat(6,minmax(0,1fr))}@media(max-width:600px){.category-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}

.map-control-panel .category-filters{grid-template-columns:repeat(6,minmax(0,1fr))}@media(max-width:600px){.map-control-panel .category-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}

.map-coverage-note{padding:10px 13px;border-left:3px solid #8b9f93;background:#f1f5ed;font-size:12px;line-height:1.75;color:#385450}.major-overlay-navigation{flex-wrap:wrap}.major-floor-controls{max-width:100%;flex-wrap:wrap}.major-overlay .major-floor-controls button{white-space:nowrap}@media(max-width:600px){.major-overlay-navigation{gap:5px}.major-overlay .major-floor-controls button{padding:7px 8px;font-size:11px}}
/* Keep controls inside the frame without covering the plan when floor labels wrap. */
.major-diagram{padding-top:0}.major-overlay.map-top-controls{position:relative;inset:auto;margin:12px}.major-overlay .major-floor-controls{max-width:100%;flex:0 1 auto}.major-overlay .major-floor-controls button{flex:0 0 auto}.major-overlay .major-terminal-controls button{white-space:nowrap}@media(max-width:600px){.major-diagram{padding-top:0}.major-overlay.map-top-controls{inset:auto;margin:7px}.major-overlay .major-terminal-controls button{font-size:9px}.major-overlay .major-floor-controls{max-width:100%}}
.facility-cluster{cursor:pointer}.facility-cluster:focus-visible>g>rect{stroke:#e7a44a;stroke-width:4}.facility-chooser{width:min(480px,calc(100vw - 24px));max-height:80vh;border:1px solid #799c9d;border-radius:14px;padding:24px;background:#f7faf6;color:#173e50;box-shadow:0 18px 70px #102f4a44}.facility-chooser::backdrop{background:#183e5066}.facility-chooser h2{font-size:21px;margin:0 0 8px}.facility-chooser p{font-size:12px;line-height:1.8}.facility-chooser-list{display:grid;gap:8px;margin:16px 0}.facility-chooser-list button{text-align:left;padding:12px 14px;border:1px solid #b4c9c4;border-radius:7px;background:#fff;font-size:14px;min-height:48px;line-height:1.6}.facility-chooser-list small{display:block;font-size:10px;color:#537477}.facility-chooser-close{width:100%;padding:10px;border:1px solid #214c55;border-radius:7px;background:#214c55;color:white}.map-stage svg text{font-synthesis:none;text-rendering:geometricPrecision;stroke-linejoin:round}.map-stage svg .map-area-label{font-weight:600}
.facility-cluster>path,.facility-cluster>circle{pointer-events:none}
/* Category directory shared by all airport maps. */
.facility-directory-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:16px 0 10px;border-bottom:2px solid #ccd9d6;padding-bottom:8px}.facility-directory-tabs button{border:1px solid #a9bcb5;border-radius:7px;background:#edf3ee;color:#365951;min-height:44px;padding:9px 5px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}.facility-directory-tabs button[aria-selected=true]{background:#194c55;color:#fff;border-color:#194c55;box-shadow:inset 0 -3px #bfa875}.facility-directory button:focus-visible,.facility-directory-panel:focus-visible{outline:3px solid #ba9352;outline-offset:3px}.facility-directory-hint{font-size:11px;line-height:1.8;color:#61776f;margin:8px 0 12px}.facility-directory-panel{max-height:580px;overflow:auto;scrollbar-gutter:stable;padding:2px 8px 6px 2px;overscroll-behavior:contain}.facility-directory-terminal{margin:0 0 20px}.facility-directory-terminal h4{font-size:15px;color:#234e53;background:#e3ece7;border-left:4px solid #426a63;padding:11px 13px;margin:0 0 12px}.facility-directory-floor{margin:0 0 18px}.facility-directory-floor h5{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font-size:14px;margin:10px 0;color:#36564f}.facility-directory-floor h5>span{font-size:11px;font-weight:400}.facility-directory-floor h5>small{font-size:10px;font-weight:400;color:#77857c;margin-left:auto}.facility-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.facility-directory-item{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:5px;border:1px solid #b6c9b4;border-radius:6px;padding:11px 12px;background:#f2f6ed;color:#284e47;text-align:left;cursor:pointer;min-height:68px;min-width:0;font:inherit;font-size:12px;line-height:1.55;overflow-wrap:anywhere}.facility-directory-item b{display:inline-block;color:#8a6935;min-width:21px;margin-right:5px}.facility-directory-item small{font-size:10px;color:#667f77;align-self:flex-end}.facility-directory-item:hover{background:#e3edda;border-color:#7a9d80}.facility-directory-item[aria-current=true]{border:2px solid #ad854c;background:#fff8e9;padding:10px 11px}.facility-directory-empty{padding:20px;background:#edf3f1;border:1px dashed #b7c6bf;font-size:12px;line-height:1.8}@media(max-width:700px){.facility-directory-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.facility-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.facility-directory-panel{max-height:500px;padding-right:4px}.facility-directory-floor h5>span{flex-basis:100%}.facility-directory-tabs button{font-size:11px}.facility-directory-item{font-size:11px;padding:10px 9px}.facility-directory-item[aria-current=true]{padding:9px 8px}}@media(max-width:360px){.facility-directory-grid{grid-template-columns:1fr}}

/* Map surface: floors, pan/rotate, compass and zoom only. */
.major-overlay.map-top-controls{position:absolute;inset:10px 10px auto;display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:0;margin:0;background:none;border:0;border-radius:0;box-shadow:none;pointer-events:none;z-index:3}
.major-overlay .map-floor-overlay,.major-overlay .map-drag-overlay{pointer-events:auto;background:#f5f9f6ed;border:1px solid #9bb4b5;border-radius:7px;max-width:none}
.major-overlay .map-floor-overlay{flex:0 1 auto;max-width:calc(100% - 150px)}
.major-overlay .map-drag-overlay{position:static;flex:0 0 auto}
.major-diagram .map-compass{bottom:12px;left:10px;width:70px}.major-diagram .map-compass svg{width:70px!important;height:70px!important}
.map-compass-unconfirmed{display:block;border:1px solid #a4bcb9;background:#f5f9f6e8;border-radius:6px;padding:7px 4px;font-size:10px;color:#526b6e}
.map-display-settings{margin:12px 0;padding:10px 14px;border:1px solid #c8d4cf;border-radius:7px;background:#fafcf8}.map-display-settings summary{cursor:pointer;font-size:12px;color:#385f61}.map-display-settings .major-filter-controls{margin-bottom:0}
.major-filter-controls{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.major-filter-controls [data-major-category="souvenir"]:not([aria-pressed="true"]){border-color:#a47738;background:#fff4db;color:#624717;font-weight:700}
.major-filter-status{margin:0 0 10px;color:#385f61;font-size:12px;line-height:1.6}
.major-filter-status a{text-decoration:underline;text-underline-offset:2px}
@media(max-width:600px){.major-filter-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.major-filter-controls button{min-height:40px}}
.major-diagram #major-map>svg{height:460px;min-height:390px}
@media(max-width:600px){.major-overlay.map-top-controls{inset:7px 7px auto;margin:0;gap:5px}.major-overlay .map-floor-overlay{max-width:calc(100% - 106px)}.major-overlay .map-floor-overlay button{min-width:34px;min-height:40px}.major-diagram .map-compass{width:55px;bottom:58px;left:8px}.major-diagram .map-compass svg{width:55px!important;height:55px!important}.major-diagram #major-map>svg{height:420px;min-height:360px}.major-diagram .map-tools{display:flex;max-width:calc(100% - 14px)}.major-diagram .map-tools button{min-height:40px}.major-terminal-controls button{font-size:10px}}

.map-floor-compact-label{display:none}
@media(max-width:600px){.major-overlay .major-floor-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;min-width:108px}.major-overlay .major-floor-controls button{min-width:0;padding:5px 3px;font-size:10px;white-space:nowrap}.map-floor-full-label{display:none}.map-floor-compact-label{display:inline}}
.major-floor-caption .major-boarding-link{margin-inline-start:8px;min-height:36px;padding:4px 10px;border:1px solid #a9bfbf;border-radius:6px;background:#f3f7f6;color:#244e57;font:inherit;cursor:pointer}
.airport-article-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:22px;padding:24px;border:1px solid #a4bcb5;border-radius:12px;background:#f4faf7;color:#173e40;text-decoration:none}
.airport-article-card:hover,.airport-article-card:focus-visible{background:#e6f1eb;border-color:#527a70}
.airport-article-card small,.airport-article-card strong,.airport-article-card span span{display:block}
.airport-article-card strong{font-size:clamp(18px,3vw,28px);line-height:1.45;margin:4px 0}
.airport-article-card b{font-size:14px;white-space:nowrap}
.airport-article-icon{display:grid;place-items:center;width:66px;height:66px;border-radius:50%;background:#214f51;color:#fff;font-size:36px;line-height:1}
.article-map-lead{margin:0 0 24px}
.article-map-lead a{position:relative;display:grid;overflow:hidden;border:1px solid #9ab1b2;border-radius:10px;background:#e2ebed;text-decoration:none}
.article-map-lead img{width:100%;height:clamp(170px,42vw,345px);object-fit:contain;display:block}
.article-map-lead span{position:absolute;inset:10px auto auto 10px;padding:5px 12px;border-radius:6px;background:#214f51;color:#fff;font-weight:700}
.article-map-lead figcaption{margin-top:6px;font-size:12px;color:#415f60}
.article-area-grid,.article-index-regions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.article-area-grid>section,.article-index-regions>section{padding:12px 18px;border:1px solid #cedbd5;border-radius:9px;background:#f8faf7}
.article-area-grid h3,.article-index-regions h2{margin:0 0 6px}
.article-place-list,.article-index-regions ul{padding:0;margin:0;list-style:none}
.article-place-list li,.article-index-regions li{padding:8px 0;border-top:1px solid #dbe5df}
.article-place-list li span{display:block;color:#415f60}
.airport-practical-guide dt{font-weight:700;margin-top:10px}
.airport-practical-guide dd{margin-inline-start:0}
@media(max-width:600px){
 header nav{gap:8px 16px;flex-wrap:wrap}
 .airport-article-card{grid-template-columns:auto minmax(0,1fr);gap:10px 14px;padding:16px}
 .airport-article-icon{width:44px;height:44px;font-size:25px}
 .airport-article-card b{grid-column:2}
 .article-area-grid,.article-index-regions{grid-template-columns:1fr}
}

.site-header{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 24px}
.site-header nav{justify-self:end;flex-wrap:wrap}
.header-airport-picker{grid-column:1/-1;justify-self:end;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:min(100%,32rem)}
.header-airport-picker label{min-width:0;display:grid;gap:3px;color:var(--ink);font-size:12px;font-weight:650}
.header-airport-picker input,.header-airport-picker select{box-sizing:border-box;width:100%;min-width:0;min-height:40px;padding:8px 10px;border:1px solid #91a69d;border-radius:6px;background:#fff;color:var(--ink);font:inherit;font-size:14px}
@media(min-width:1200px){.site-header{grid-template-columns:auto 1fr minmax(20rem,28rem)}.header-airport-picker{grid-column:auto}}
@media(max-width:700px){.site-header{grid-template-columns:minmax(0,1fr)}.site-header nav,.header-airport-picker{justify-self:stretch}}
.nearby-stop h4{margin:0 0 8px;font-size:1.06rem}

/* Shared button surfaces. Map artwork and SVG markers use their own palette. */
:is(#airport-content,#shop-directory-slot,.site-header) :is(
 button, summary, select, .card-open, .airport-article-card, .back-guide,
 .facility-official-link, .facility-card-link a, .contact-mail, .full-article-link a, .article-jumps a, .site-header nav a,
 .xml-sitemap-note a
){
 --button-light:#fffefa;
 --button-face:#e9e7df;
 --button-edge:#a5aaa0;
 --button-border:#b8beb3;
 --button-shadow:#283c3552;
 background:var(--button-gloss, linear-gradient(165deg,#ffffffa3 0%,#ffffff47 35%,transparent 56%)),
  linear-gradient(175deg,var(--button-light),var(--button-face));
 color:#203a36;
 border:1px solid var(--button-border);
 border-radius:12px;
 box-shadow:var(--button-inner-rim, inset 0 0 0 2px var(--button-light), inset 0 0 0 3px var(--button-border)), inset 0 1px 2px #fff, 0 2px 0 var(--button-edge), 0 4px 6px var(--button-shadow);
 cursor:pointer;
}
:is(#airport-content,#shop-directory-slot,.site-header) :is(
 button:is([aria-pressed="true"],[aria-selected="true"]), details[open]>summary,
 .facility-official-link, .facility-card-link a, .airport-article-card, .card-open, .full-article-link a, .back-guide
){
 --button-light:#e2fbf1;
 --button-face:#abdfce;
 --button-edge:#619482;
 --button-border:#78a999;
}
:is(#airport-content,#shop-directory-slot) .major-filter-controls [data-major-category="souvenir"]:not([aria-pressed="true"]){
 --button-light:#fff6df;
 --button-face:#ecd9a9;
 --button-edge:#aa9055;
 --button-border:#bca16a;
}
:is(#airport-content,#shop-directory-slot,.site-header) :is(
 button,summary,select,.card-open,.airport-article-card,.back-guide,
 .facility-official-link, .facility-card-link a, .contact-mail,.full-article-link a,.article-jumps a,.site-header nav a,.xml-sitemap-note a
):not(:disabled,[aria-disabled="true"]):focus-visible{
 outline:2px solid #206550;
 outline-offset:3px;
}
@media(hover:hover){
 :is(#airport-content,#shop-directory-slot,.site-header) :is(
  button,summary,select,.card-open,.airport-article-card,.back-guide,
  .facility-official-link, .facility-card-link a, .contact-mail,.full-article-link a,.article-jumps a,.site-header nav a,.xml-sitemap-note a
 ):not(:disabled,[aria-disabled="true"]):hover{
  border-color:#548777;
  filter:brightness(1.045);
 }
}
:is(#airport-content,#shop-directory-slot,.site-header) :is(
 button,summary,select,.card-open,.airport-article-card,.back-guide,
 .facility-official-link, .facility-card-link a, .contact-mail,.full-article-link a,.article-jumps a,.site-header nav a,.xml-sitemap-note a
):not(:disabled,[aria-disabled="true"]):active{
 translate:0 2px;
 box-shadow:var(--button-inner-rim, inset 0 0 0 2px var(--button-light), inset 0 0 0 3px var(--button-border)), inset 0 2px 4px #253f3435, 0 1px 1px var(--button-shadow);
}
:is(#airport-content,#shop-directory-slot,.site-header) :is(button,select):is(:disabled,[aria-disabled="true"]){
 --button-light:#eae9e4;
 --button-face:#d9d9d2;
 --button-border:#bfc1b9;
 color:#616962;
 box-shadow:var(--button-inner-rim, inset 0 0 0 2px var(--button-light), inset 0 0 0 3px var(--button-border)), inset 0 1px 1px #fff8, 0 1px 0 #afb3aa;
 cursor:default;
}
.site-header nav a{display:inline-flex;align-items:center;padding:7px 10px;line-height:1.35;text-decoration:none}
:is(#airport-content,#shop-directory-slot) :is(.map-display-settings,.map-source-details) > summary{
 width:fit-content;
 padding:6px 10px;
}
@media(max-width:520px){
 .site-header nav{gap:7px}
 .site-header nav a{padding:6px 7px}
}


/* Stronger text on the page while keeping the map's typography. */
:root{
 --ink:#102a32;
 --muted:#3d5355;
}
body{font-weight:600}
:where(.map-stage,.nearby-diagram svg){font-weight:400}
.eyebrow,
.directory-title p:not(.eyebrow), #directory-count, .airport-card small, .airport-card p,
.map-pending, .pending-label, .directory-note,
.document-lead, .article-map-lead figcaption, .article-place-list li span,
.major-intro, .major-map-note, .map-coverage-note, .major-floor-caption,
.major-item-detail span, .unified-map-legend p, .data-footnote, .control-hint,
.facility-directory-hint, .facility-directory-item small, .facility-directory-floor h5>small,
.facility-card-content small, .facility-card-content p, .selected-facility>p,
.listing-heading p:not(.eyebrow), .floor-empty, .floor-shop-list summary small,
.floor-shop-list td:last-child, .floor-shop-list td button span{
 color:var(--muted);
}
:where(header,main) input::placeholder{color:var(--muted);opacity:1}


.map-stage{
 --button-gloss:none;
 --button-inner-rim:inset 0 0 0 0 transparent;
}
.map-stage :is(.map-floor-overlay,.map-drag-overlay){
 background:transparent;
 border-color:transparent;
 box-shadow:none;
}

.map-angle-control{
 display:flex;
 align-items:center;
 gap:10px;
 margin:8px 0;
 font-size:13px;
}
.map-angle-control label{white-space:nowrap}
.map-angle-control input{flex:1;width:0;min-width:0;min-height:36px;margin:0;accent-color:#275566}
.map-angle-control output{min-width:4ch;text-align:right;font-variant-numeric:tabular-nums}
.map-stage .map-view-overlay{
 position:absolute;
 z-index:3;
 left:106px;
 bottom:40px;
 flex-wrap:nowrap;
 gap:4px;
 margin:0;
 padding:0;
 border:0;
}
.major-diagram .map-view-overlay{left:88px;bottom:28px}
.map-stage .map-view-overlay button{min-height:36px;padding:5px 10px;white-space:nowrap}
.facility-type-badge{display:inline-block;padding:2px 10px;border-radius:6px;background:#d5e7d9;color:#23483b;font-size:14px}
.major-item-detail .facility-position-note,.facility-card-content p{font-size:11px}
.major-item-detail .facility-official-link,.facility-card-link a{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 min-height:44px;
 margin-top:6px;
 padding:8px 15px;
 font-size:15px;
 font-weight:700;
}
.facility-card-link{max-width:none}
@media(max-width:600px){
 .map-stage .map-view-overlay{left:79px;bottom:60px}
 .major-diagram .map-view-overlay{left:68px;bottom:69px}
 .map-stage .map-view-overlay button{padding:5px 8px}
}

/* Reading cards: shared across existing and newer airport articles. */
.airport-longread>section,.airport-practical-guide>section{border:1px solid #bdcfc6;border-radius:14px;padding:clamp(16px,3vw,26px);margin:26px 0;background:#f3f7f3;min-width:0}
.airport-longread>section>h2,.airport-practical-guide>section>h2{margin:0 0 18px;padding-bottom:12px;border-bottom:2px solid #a6bdb1;line-height:1.6}
.airport-longread section>article,.airport-longread .nearby-stop,.airport-longread .article-area-grid>section{border:1px solid #ccd8d0;border-radius:10px;padding:20px;margin:14px 0;background:#fffefa;min-width:0}
.airport-longread section>article h3,.airport-longread section>article h4,.airport-longread .article-area-grid>section h3{margin:0 0 12px}
.airport-longread p{overflow-wrap:anywhere}.airport-longread .article-meta{display:block;width:fit-content;padding:6px 10px;border-radius:6px;background:#e9f0eb;line-height:1.8;font-size:12px}
.airport-longread section>section{border:0;padding:0;margin:20px 0}.airport-longread section a{display:inline-block;max-width:100%}.airport-longread .article-place-list{padding:0;list-style:none}.airport-longread .article-place-list li{padding:12px;border:1px solid #d5dfd7;border-radius:8px;margin:10px 0;background:white}
.road-map-canvas{height:420px;height:clamp(300px,55vh,460px);border:1px solid #8ba59c;border-radius:10px;isolation:isolate;background:#e3ece8;z-index:0;font-family:system-ui,sans-serif}
.road-map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;font-size:13px}.road-map-toolbar button,.road-map-places button{padding:10px 12px;border:1px solid #94b2a3;background:#e2eee7;border-radius:8px;color:#204d40;cursor:pointer;min-height:44px;font:inherit}
.road-map-places{padding:0;list-style:none;display:grid;gap:10px}.road-map-places li{border:1px solid #c7d8ce;border-radius:8px;padding:12px;background:#fff;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.road-map-places button{flex:1;text-align:left}.road-map-places a{font-size:12px}
.road-pin span{display:grid;place-items:center;width:30px;height:30px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#846437;color:white;border:2px solid white;box-shadow:0 1px 5px #0006;font:700 15px system-ui}.road-pin span{transform:none;border-radius:50%}.road-pin .airport-pin{background:#174e56}.nearby-road-map [data-map-status],.nearby-road-map .road-map-note{font-size:12px;line-height:1.8}
@media(max-width:600px){.airport-longread>section,.airport-practical-guide>section{padding:14px;margin:20px 0}.airport-longread section>article,.airport-longread .nearby-stop,.airport-longread .article-area-grid>section{padding:15px}.airport-longread{padding:20px 12px}.airport-longread p,.airport-longread li{font-size:14px;line-height:2}.road-map-toolbar{align-items:flex-start}.road-map-toolbar span{max-width:50%}.road-map-toolbar button{font-size:12px}.road-map-places li{display:grid}.road-map-canvas .leaflet-control-attribution{font-size:10px}}
