@font-face{font-family:"Walone";src:url("assets/fonts/Walone-Thin.ttf") format("truetype");font-style:normal;font-weight:300;font-display:swap;unicode-range:U+1000-109F,U+AA60-AA7F,U+A9E0-A9FF}
@font-face{font-family:"Walone";src:url("assets/fonts/Walone-Regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap;unicode-range:U+1000-109F,U+AA60-AA7F,U+A9E0-A9FF}
@font-face{font-family:"Walone";src:url("assets/fonts/Walone-Bold.ttf") format("truetype");font-style:normal;font-weight:700;font-display:swap;unicode-range:U+1000-109F,U+AA60-AA7F,U+A9E0-A9FF}
:root{--navy:#180d4b;--navy-2:#1058c5;--ink:#180d4b;--accent:#37b3f0;--pale-blue:#dff5ff;--paper:#e9f8ff;--muted:#59657a;--line:#dce3e9;--royal:#1058c5;--cyan:#37b3f0;--cream:#f0ece4;--yellow:#ffc44f;--coral:#ff4f4f;font-family:"Walone","Bricolage Grotesque","Noto Sans Myanmar","Myanmar Text",sans-serif}
body{background:#e9f8ff}
.topbar{background:var(--cyan);color:var(--ink)}
.topbar{transition:transform .24s ease}
.topbar.nav-hidden{transform:translateY(-100%)}
.topbar:has(:focus-visible),.menu-open .topbar{transform:translateY(0)}
.desktop-nav a{color:var(--ink)}
.desktop-nav a[aria-current="page"]{color:var(--royal);text-decoration:underline;text-decoration-color:var(--royal);text-underline-offset:6px;text-decoration-thickness:2px}
.mobile-menu a[aria-current="page"]{color:var(--cyan);background:#37b3f021;border-left:3px solid var(--cyan)}
.menu-toggle{color:var(--ink);border-color:#180d4b55;background:#ffffff88}
.menu-open .menu-toggle{color:#fff;border-color:#ffffff88}
.eyebrow,.kicker,.group-heading>span{color:var(--royal)}
.pulse{background:var(--coral);box-shadow:0 0 0 5px #ff4f4f22}
.hero .hero-accent,.hero h1 span{color:var(--royal)}
.hero p,.page-intro p{color:#515b6f}
.primary-cta,.page-cta{background:var(--cyan);color:var(--ink);box-shadow:0 12px 24px #37b3f03b}
.primary-cta:hover,.page-cta:hover{background:#6bcaf4}
.ticket-art{background:linear-gradient(135deg,#1058c5,#180d4b)}
.flight-path,.boarding-caption{color:#ffc44f}
.stamp{border-color:var(--coral);color:var(--coral)}
.check-area{background:#f7f3ec}
.section-intro h2,.group-heading h3,.check-card h4,.step-head h4{color:var(--ink)}
.progress-track{background:#dcecf4}
.progress-track div{background:var(--cyan)}
.tab-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:min(100%,540px);padding:4px;border:1px solid #b4dff1;border-radius:999px;background:#fff;box-shadow:0 5px 16px #213b6410;margin-bottom:22px}
.tab{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:48px;padding:8px 10px;border:0;border-radius:999px;background:transparent;color:#536780;font-size:12px;line-height:1.45;white-space:nowrap;cursor:pointer}
.tab strong{display:inline;margin:0;font-size:14px;line-height:1.45}
.tab.active{border-color:transparent;background:var(--cyan);color:var(--ink);box-shadow:0 2px 8px #37b3f03b}
.tab:focus-visible,.next-section:focus-visible,a:focus-visible,button:focus-visible{outline-color:var(--coral)}
.card-icon{background:#dcf3fd;color:var(--royal)}
.check-card,.airport-step,.route-map,.service-card,.contact-card{border-color:#d7e3e8}
.check-row input,.step-check input{border-color:#93abc5}
.check-row input:checked,.step-check input:checked{background:var(--cyan);border-color:var(--cyan)}
.check-row input:checked:after,.step-check input:checked:after{color:var(--ink)}
summary,details a,.text-link,.step-map-link{color:var(--royal)}
.next-section{background:#e0f3fb;color:#154a88}
.airport-step.is-target{border-color:var(--coral);box-shadow:0 0 0 2px #ff4f4f3d}
.step-no{background:var(--cyan);color:var(--ink)}
.step-no,.floor-chip,.map-stop b{font-family:"Walone","Bricolage Grotesque","Noto Sans Myanmar",sans-serif}
.floor-chip{color:#5c6aa2}
.step-check{background:#e8f5fc;color:#194d87}
.schematic-badge{background:#fff0c6;color:#765018}
.embedded-map{background:#dff5ff;border-color:#9fd6ee}
.embedded-map iframe{background:#dff5ff}
.bottom-actions p{color:#2c3959}
.bottom-actions button{color:var(--royal)}

/* Reading guide: one purpose and one country visible at a time. */
.guide-selector{background:linear-gradient(180deg,#fff 0%,#f2faff 100%);border:1px solid #b4dff1;border-radius:16px;padding:12px;margin-bottom:12px;box-shadow:0 8px 20px #213b6410;display:grid;gap:12px}
.selector-label{display:block;color:var(--ink);font-size:15px;font-weight:800;margin:0 0 5px}
.choice-picker{border:2px solid #9bdaf6;border-radius:16px;background:#e7f7ff;padding:0;margin:0;overflow:hidden;transition:border-color .18s,box-shadow .18s}
.choice-picker[open]{border-color:var(--royal);box-shadow:0 8px 24px #1058c51d}
.choice-picker summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:7px 14px;cursor:pointer}
.choice-picker summary::-webkit-details-marker{display:none}
.choice-picker summary:focus-visible{outline:3px solid var(--royal);outline-offset:-5px}
.choice-picker summary strong{color:var(--ink);font-size:18px;line-height:1.45}
.choice-picker[data-picker="country"] summary strong::before,.choice-picker[data-picker="country"] .choice-options button span:nth-child(2)::before{content:"";display:inline-block;width:24px;height:16px;margin-right:6px;border:1px solid #180d4b1e;border-radius:2px;background-size:cover;background-position:center;vertical-align:-2px;box-shadow:0 1px 2px #0d12391c}
.choice-picker[data-picker="country"] [data-country="thailand"]::before,.choice-picker[data-picker="country"] button[data-value="thailand"] span:nth-child(2)::before{background-image:url("assets/flags/thailand.svg")}
.choice-picker[data-picker="country"] [data-country="malaysia"]::before,.choice-picker[data-picker="country"] button[data-value="malaysia"] span:nth-child(2)::before{background-image:url("assets/flags/malaysia.svg")}
.choice-picker[data-picker="country"] [data-country="singapore"]::before,.choice-picker[data-picker="country"] button[data-value="singapore"] span:nth-child(2)::before{background-image:url("assets/flags/singapore.svg")}
.choice-chevron{flex:none;width:12px;height:12px;border-right:2px solid var(--royal);border-bottom:2px solid var(--royal);transform:rotate(45deg);transition:transform .18s}
.choice-picker[open] .choice-chevron{transform:rotate(225deg)}
.choice-options{display:grid;gap:7px;padding:9px;background:#fff;border-top:1px solid #b4dff1}
.choice-options button{display:grid;grid-template-columns:35px minmax(0,1fr) 25px;align-items:center;gap:12px;width:100%;min-height:58px;padding:9px 12px;border:1px solid transparent;border-radius:11px;background:#fff;color:var(--ink);font:700 17px/1.55 "Walone","Noto Sans Myanmar",sans-serif;text-align:left;cursor:pointer}
.choice-options button:hover,.choice-options button:focus-visible{background:#eef9ff;border-color:#9bdaf6;outline:none}
.choice-options button[aria-pressed="true"]{background:#dff5ff;border-color:#37b3f0}
.choice-option-number{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#e4f2fb;color:var(--royal);font:800 12px/1 system-ui,sans-serif}
.choice-options button[aria-pressed="true"] .choice-option-number{background:var(--cyan);color:var(--ink)}
.choice-check{color:var(--royal);font:800 18px/1 system-ui,sans-serif;opacity:0}
.choice-options button[aria-pressed="true"] .choice-check{opacity:1}
.select-field select[hidden]{display:none!important}
@media(max-width:600px){
  .guide-selector{position:relative;z-index:2;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:8px;padding:10px}
  .selector-label{min-height:23px;margin-bottom:4px;font-size:14px;line-height:1.55}
  .choice-picker{overflow:visible;border-radius:12px}
  .choice-picker[open]{position:relative;z-index:3}
  .choice-picker summary{min-height:48px;padding:4px 8px;gap:7px}
  .choice-picker summary strong{font-size:17px;line-height:1.45}
  .choice-picker[data-picker="country"] summary strong::before{width:22px;height:15px;margin-right:5px}
  .choice-chevron{width:10px;height:10px}
  .choice-options{position:absolute;top:calc(100% + 6px);left:0;width:min(240px,calc(100vw - 40px));border:1px solid #9bdaf6;border-radius:12px;box-shadow:0 10px 24px #0d12392b}
  .choice-picker[data-picker="country"] .choice-options{right:0;left:auto}
}
.guide-note,.guide-footnote{color:#536477;font-size:14px;line-height:1.8;margin:0 0 15px}
.travel-guide{background:#fff;border:1px solid #d7e3e8;border-radius:20px;padding:23px 20px;box-shadow:0 8px 22px #213b640b}
.travel-guide[hidden]{display:none}
.guide-kicker{display:block;color:var(--royal);font-size:11px;letter-spacing:.9px;font-weight:800;margin-bottom:5px}
.travel-guide h3{font-size:clamp(23px,5vw,30px);line-height:1.5;margin:0 0 18px;color:var(--ink)}
.guide-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:14px}
.guide-facts div{background:#e8f7fd;border-radius:12px;padding:13px;display:grid;gap:6px}
.guide-facts strong{color:#0b4c9d;font-size:14px}
.guide-facts span{color:#24415d;font-size:14px;line-height:1.7}
.read-list{list-style:none;margin:0;padding:0}
.read-list li{position:relative;padding:13px 0 13px 21px;border-top:1px solid #e1edf2;color:#304359;font-size:15px;line-height:1.9}
.read-list li:before{content:"";position:absolute;left:0;top:25px;width:7px;height:7px;background:#37b3f0;border-radius:50%}
.read-list strong{color:#0b3679}
.guide-links{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}
.guide-links a{display:inline-flex;align-items:center;min-height:42px;background:#dff5ff;border-radius:10px;padding:10px 13px;color:#0b4c9d;text-decoration:none;font-size:13px;font-weight:800}
.guide-links a:hover{background:#f7f3ec}
.guide-footnote{margin:13px 0 0}
.previous-reading{margin-top:28px}
.previous-reading .group-heading{margin-bottom:16px}
.previous-reading .check-card>p{font-size:14px}
.read-row{position:relative;padding:12px 0 12px 21px;border-top:1px solid #dff5ff;color:#304359;font-size:14px;line-height:1.85}
.read-row:before{content:"";position:absolute;top:25px;left:0;width:7px;height:7px;border-radius:50%;background:#37b3f0}
.previous-reading [hidden]{display:none!important}
@media(max-width:420px){.guide-facts{grid-template-columns:1fr}}
.footer{background:#dff5ff;color:var(--ink)}
.footer .wrap{display:grid;gap:24px;align-items:start}
.footer-actions{display:grid;grid-template-columns:1fr;gap:10px;width:100%;max-width:560px}
.footer-actions a{min-height:52px;display:grid;place-items:center;font-size:14px;line-height:1.55}
@media(min-width:700px){.footer-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
.footer-actions a{background:var(--cyan);color:var(--ink);border-color:var(--cyan)}
.footer-actions a:first-child{color:var(--ink);border-color:var(--royal)}
.menu-open .menu-toggle,.mobile-menu{background:var(--navy)}
.menu-caption{color:var(--yellow)}
.mobile-menu a:hover,.mobile-menu a:focus-visible,.desktop-nav a:hover,.desktop-nav a:focus-visible{color:var(--cream)}
.service-card .service-number{background:#dff5ff;color:var(--royal)}
.price-card{background:var(--cyan);color:var(--ink)}
.price-card strong{color:var(--ink)}
.price-card small,.price-card p{color:var(--ink)}
.service-note{background:#e2f4fb;border-color:#b9ddeb;color:#254768}
.contact-card .contact-link{background:#e0f3fb;color:var(--royal)}
.contact-card .contact-link:hover{background:#c2e8f9}
.online-note{background:#fff0cd;color:#554525}
@media(prefers-reduced-motion:reduce){.topbar{transition:none}}
.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}
.airport-active-card{max-width:562px;min-height:440px;margin:-1px auto 0;padding:20px 18px 18px;display:flex;flex-direction:column;border:1px solid #9fd6ee;border-radius:0 0 16px 16px;background:#fffdf8;color:var(--ink);overflow-anchor:none}
.embedded-map:has(+ .airport-active-card){border-radius:16px 16px 0 0}
@media(min-width:1050px){.airport-map-layout .embedded-map:has(+ .airport-active-card){border-radius:16px}}
.airport-active-card-top{display:flex;align-items:center;gap:14px}
.airport-active-number{display:grid;place-items:center;flex:none;width:58px;height:58px;border-radius:14px;background:var(--cyan);color:var(--ink);font-size:25px;font-weight:700;line-height:1}
.airport-active-card-top>div{display:grid;gap:2px}
.airport-active-progress{font-size:15px;font-weight:700;color:var(--royal)}
.airport-active-floor{font-size:13px;line-height:1.5;color:#536780}
.airport-progress-track{display:flex;gap:5px;width:100%;margin:18px 0 19px}
.airport-progress-segment{height:7px;flex:1;border-radius:99px;background:#dceaf1}
.airport-progress-segment.is-done{background:var(--cyan)}
.airport-progress-segment.is-current{background:var(--royal)}
.airport-active-card h3{margin:0 0 11px;font-size:clamp(24px,6.1vw,29px);line-height:1.5;color:var(--ink);text-wrap:pretty}
.airport-active-primary{min-height:7.8em;margin:0 0 18px;color:#263d54;font-size:18px;line-height:1.95}
.airport-active-support[hidden]{display:none}
.airport-active-support{margin:14px 0 4px}
.airport-active-support .departure-card-note{margin:9px 0 0;color:#536780;font-size:14px;line-height:1.75}
.airport-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}
.airport-card-actions button{min-height:56px;padding:10px 12px;border:2px solid var(--cyan);border-radius:12px;background:#e9f8ff;color:var(--ink);font:700 17px/1.5 "Walone","Noto Sans Myanmar",sans-serif;cursor:pointer}
.airport-card-actions button:last-child{background:var(--cyan)}
.airport-card-actions button:hover:not(:disabled),.airport-card-actions button:focus-visible:not(:disabled){background:var(--cream);border-color:var(--royal);outline:2px solid var(--royal);outline-offset:2px}
.airport-card-actions button:disabled{opacity:.45;cursor:default}
@media(max-width:380px){.airport-active-card{padding:17px 14px;min-height:470px}.airport-active-primary{font-size:17px}.airport-card-actions button{font-size:15px;padding-inline:7px}}
.mobile-menu{padding:20px 20px 28px;gap:0;overflow-y:auto}
.menu-head{display:flex;align-items:center;justify-content:space-between;min-height:44px;margin-bottom:18px}
.menu-head .menu-caption{margin:0 0 0 9px}
.menu-close{display:grid;place-items:center;width:42px;height:42px;flex:none;border:1px solid #37b3f080;border-radius:11px;background:#ffffff12;color:#fff;font-family:Arial,sans-serif;font-size:29px;line-height:1;cursor:pointer}
.menu-close:hover,.menu-close:focus-visible{background:#37b3f027;color:var(--cyan)}
.menu-open .menu-toggle{visibility:hidden}
.mobile-menu a{border-bottom:1px solid #b6d9ee4d;border-radius:0;padding:15px 12px}
.mobile-menu a[aria-current="page"],.mobile-menu a[aria-current="page"]:hover,.mobile-menu a[aria-current="page"]:focus-visible{color:var(--cyan);background:#37b3f021;border-left:3px solid var(--cyan);padding-left:9px}
.desktop-nav a[aria-current="page"]:hover,.desktop-nav a[aria-current="page"]:focus-visible{color:var(--royal)}

/* Mobile-first reading scale: fixed, readable type without a separate size control. */
body{font-size:16px}
.check-card h3{font-size:21px;line-height:1.55;margin:0 0 7px;color:var(--ink)}
.map-title-row h3{font-size:21px;line-height:1.55;margin:4px 0 6px;color:var(--ink)}
.service-card h2{font-size:21px;line-height:1.6}
.group-heading h3{font-size:26px}
.mobile-menu a{font-size:16px}
@media(max-width:699px){
  .airport-codes{font-size:clamp(26px,7.5vw,32px);letter-spacing:-1px;gap:10px;white-space:nowrap}
  .airport-codes span{white-space:nowrap}
  .hero p,.section-intro p,.group-heading p,.guide-note,.guide-footnote,.guide-facts span,.read-list li,.check-card>p,.previous-reading .check-card>p,.read-row,.map-help,.map-caution,.page-intro p,.service-card p,.price-card p,.service-note,.service-note p,.contact-card p,.online-note,.policy-card p,.policy-card li{font-size:16px;line-height:1.85}
  .guide-facts strong,.text-link,.guide-links a{font-size:15px}
  .section-intro h2{font-size:32px;line-height:1.5}
  .travel-guide h3{font-size:26px}
  .service-note strong,.online-note strong{font-size:17px}
  .price-card small{font-size:13px}
}
