@import url('/airport-comparison.css');

/* Compact city preview beside a larger, named geographic map. */
.destination-map-section{margin-bottom:28px}
.destination-map-section .area-disclosure-body{padding:0;background:#102747;border-radius:0 0 18px 18px;overflow:hidden}
.destination-map-experience{padding:clamp(18px,3vw,36px);color:#f6f9ff}
.destination-map-heading{margin-bottom:28px;text-align:center}
.destination-map-heading .eyebrow{color:#ff859c;margin:0 0 10px;font-size:.8rem;letter-spacing:.15em}
.destination-map-heading h3{color:#fff;font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.9rem,3vw,2.85rem);font-weight:700;line-height:1.15;margin:0 0 12px;letter-spacing:-.02em}
.destination-map-intro{color:#c1d1e6;margin:0;font-size:1.0625rem;font-weight:600}
.destination-map-intro .map-intro-line{display:block}
.map-mobile-break{display:none}
.destination-map-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,7fr);gap:24px;align-items:stretch}
.destination-map-story{position:relative;isolation:isolate;overflow:hidden;border-radius:20px;min-height:440px;background:#193b60}
.destination-map-story>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.destination-map-story::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#06152b08 10%,#06152bd9 68%,#06152bf5);z-index:-1;pointer-events:none}
.destination-map-story-copy{padding:28px 22px;min-height:440px;display:flex;flex-direction:column;justify-content:flex-end;text-align:center}
.destination-map-story-region{color:#fff;font-size:.9375rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em;margin:0 0 14px}
.destination-map-story h4{color:#fff;font-family:Georgia,'Times New Roman',serif;font-weight:700;font-size:clamp(2rem,3.4vw,3rem);line-height:1.12;letter-spacing:-.03em;margin:0;overflow-wrap:anywhere}
.destination-map-korean{color:#dbe7f8;margin:8px 0 20px;font-size:1rem;font-weight:700}
.destination-map-story [data-map-description]{color:#edf3fc;font-size:1.0625rem;font-weight:600;line-height:1.5;margin:20px 0 26px}
.destination-map-story .destination-map-korean+[data-map-description]{margin-top:0}
.destination-map-visit{display:block;padding:14px 16px;min-height:48px;background:#fff;border:1px solid #fff;border-radius:10px;text-decoration:none;color:#143052;font-size:1rem;font-weight:800;text-align:center;line-height:1.5}
.destination-map-visit:hover{background:#edf3ff;color:#143052}
.destination-map-panel{min-width:0;container-type:inline-size;background:#e9f0f8;border-radius:22px;overflow:hidden;color:#17365e}
.destination-map-panel-heading{display:flex;flex-direction:column;align-items:center;gap:4px;padding:22px 26px 0;font-size:1rem;font-weight:800;letter-spacing:.08em;text-align:center}
.destination-map-panel-heading span:last-child{letter-spacing:0;font-size:.9375rem;font-weight:700;color:#4c6683}
.destination-map-canvas{position:relative;width:100%;max-width:720px;aspect-ratio:640 / 620;margin:4px auto 0;isolation:isolate}
.destination-map-geography{position:absolute;inset:0;z-index:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.destination-map-land{fill:#cfdded;stroke:#97b0cd;stroke-width:.8;stroke-linejoin:round}
.destination-map-boundaries{fill:none;stroke:#597fa5;stroke-width:1.35;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.9}
/* Keep unvisited administrative areas visually quiet: their detailed coastlines
   can otherwise reintroduce the small-island clutter removed from the base map. */
.destination-map-city-area,.destination-map-province-area{fill:transparent;stroke:transparent;stroke-width:.7;stroke-linejoin:round;vector-effect:non-scaling-stroke;fill-rule:evenodd;cursor:pointer;pointer-events:all;transition:fill .18s,stroke .18s}
/* Province geometry is visual-only: a city path and pin remain the visit controls. */
.destination-map-province-area{pointer-events:none;cursor:default}
.destination-map-city-area.is-selected{fill:#bcd5f5;stroke:#356da8}
.destination-map-city-area.is-visited,.destination-map-province-area.is-visited{fill:#c62748;stroke:#a71535}
.destination-map-leader{fill:none;stroke:#829fbd;stroke-width:1;vector-effect:non-scaling-stroke}
.destination-map-dot{fill:#1a60cd;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
.destination-map-ring{fill:none;stroke:#cb294a;stroke-width:1.5;opacity:0;vector-effect:non-scaling-stroke}
[data-map-point].is-visited .destination-map-ring{opacity:1;stroke:#cb294a;stroke-width:2}
[data-map-point].is-selected .destination-map-ring{opacity:.55}
[data-map-point].is-selected .destination-map-dot{fill:#cb294a}
[data-map-point].is-selected .destination-map-leader{stroke:#cb294a}
.destination-map-flag-pole,.destination-map-flag-cloth{display:none;pointer-events:none;vector-effect:non-scaling-stroke}
.destination-map-flag-pole{fill:none;stroke:#8d1230;stroke-width:1.8}
.destination-map-flag-cloth{fill:#fff;stroke:#8d1230;stroke-width:1.2}
[data-map-point].is-visited .destination-map-flag-pole,[data-map-point].is-visited .destination-map-flag-cloth{display:block}
.destination-map-labels{list-style:none;margin:0;padding:0}
/* Keep cards outside the visible peninsula; their map-facing edge is used as the
   leader endpoint by destination-map.js, so a line never disappears below a card. */
.destination-map-labels>li{position:absolute;z-index:1;top:var(--map-y);width:clamp(140px,22%,158px);transform:translateY(-50%);margin:0}
.destination-map-labels>li[data-map-label-side="left"]{left:8px}
.destination-map-labels>li[data-map-label-side="right"]{right:8px}
.destination-map-label-card{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:3px;align-items:stretch}
.destination-map-link{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;min-height:44px;padding:4px;border:1px solid transparent;border-radius:8px;background:#fff;color:#17365e;text-decoration:none;line-height:1.2;font:inherit;text-align:center;cursor:pointer}
.destination-map-link img{display:block;width:30px;height:30px;flex:none;object-fit:cover;border-radius:5px}
.destination-map-link strong{flex:1;min-width:0;font-size:.75rem;font-weight:800;text-align:center;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.destination-map-link.is-selected{background:#195bd7;color:#fff;border-color:#195bd7}
.destination-map-link.is-preview{border-color:#195bd7}
.destination-map-check,.destination-map-story-check{display:inline-flex;align-items:center;justify-content:center;border:2px solid #c6d6e8;border-radius:8px;background:#fff;color:#17365e;font:inherit;font-weight:800;cursor:pointer}
.destination-map-check{min-width:44px;min-height:44px;padding:4px;font-size:1.125rem}
.destination-map-check.is-visited{background:#cb294a;color:#fff;border-color:#cb294a}
@media(min-width:760px){
 .destination-map-labels>li[data-map-label-side="left"] .destination-map-label-card{grid-template-columns:44px minmax(0,1fr)}
 .destination-map-labels>li[data-map-label-side="left"] .destination-map-link{grid-column:2;grid-row:1}
 .destination-map-labels>li[data-map-label-side="left"] .destination-map-check{grid-column:1;grid-row:1}
}
.destination-map-story-check{position:absolute;z-index:2;top:14px;right:14px;gap:7px;min-height:44px;max-width:calc(100% - 28px);padding:8px 11px;border-color:#fff;color:#143052;font-size:.8125rem;line-height:1.25;text-align:left}
.destination-map-story-check>span:first-child{font-size:1.2rem;line-height:1}.destination-map-story-check.is-visited{background:#cb294a;border-color:#cb294a;color:#fff}
.destination-map-link:focus-visible,.destination-map-visit:focus-visible,.destination-map-check:focus-visible,.destination-map-story-check:focus-visible,.destination-map-share:focus-visible,.destination-map-download:focus-visible,.destination-map-copy:focus-visible,.destination-map-reset:focus-visible,.destination-map-brand:focus-visible,.destination-map-pin:focus-visible{outline:3px solid #ff859c;outline-offset:3px}
.destination-map-pin{cursor:pointer}
.destination-map-selection{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;padding:6px 18px 24px;margin:0;color:#17365e;font-size:1.125rem;font-weight:800}
.destination-map-selection .destination-map-brand{display:inline-flex;align-items:center;gap:10px;color:#1d5bc4;font-size:1.25rem;font-weight:800;letter-spacing:-.05em;line-height:1;text-decoration:none}.destination-map-selection .destination-map-brand:hover{color:#1d5bc4;text-decoration:none}.destination-map-selection .destination-map-brand-icon{display:grid;place-items:center;width:42px;height:42px;border:2px solid #1d5bc4;border-bottom:5px solid #cb294a;border-radius:12px;background:#1d5bc4;color:#fff;font-size:1.125rem;letter-spacing:0}
.destination-map-progress{display:flex;align-items:center;justify-content:center;gap:14px;padding:4px 18px 0;color:#17365e}
.destination-map-progress p{display:flex;align-items:baseline;flex-wrap:wrap;justify-content:center;gap:7px;margin:0;font-size:.875rem;font-weight:700}.destination-map-progress strong{font-size:1.25rem;color:#c62748}.destination-map-progress span{color:#48617c}
.destination-map-reset{min-height:44px;padding:7px 10px;border:1px solid #8ca5c1;border-radius:8px;background:#fff;color:#17365e;font:inherit;font-size:.8125rem;font-weight:800;cursor:pointer}.destination-map-reset:disabled{opacity:.62;cursor:not-allowed}
.destination-map-share-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px 18px 0}
.destination-map-share,.destination-map-download,.destination-map-copy{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 7px;border:1px solid #8ca5c1;border-radius:8px;background:#fff;color:#17365e;font:inherit;font-size:.75rem;font-weight:800;line-height:1.25;text-align:center;cursor:pointer}
.destination-map-share{border-color:#195bd7;background:#195bd7;color:#fff}.destination-map-share:hover{background:#124caf;border-color:#124caf}.destination-map-download:hover,.destination-map-copy:hover{border-color:#195bd7;background:#f5f8fd}.destination-map-share:disabled,.destination-map-download:disabled,.destination-map-copy:disabled{opacity:.58;cursor:not-allowed}.destination-map-share:disabled:hover{background:#195bd7;border-color:#195bd7}.destination-map-download:disabled:hover,.destination-map-copy:disabled:hover{border-color:#8ca5c1;background:#fff}
.destination-map-share-hint{min-height:2.8em;padding:0 18px;margin:8px 0 0;color:#48617c;font-size:.75rem;font-weight:650;line-height:1.4;text-align:center}
.destination-map-note{font-size:.8125rem;color:#c1d1e6;margin:26px 0 16px;line-height:1.6;text-align:center}
.destination-map-note a{color:inherit;white-space:nowrap}
.destination-map-boundary-source{margin:28px 0 16px;padding:0 14px;border:1px solid #476382;border-radius:10px;background:#193656;color:#e6effb;font-size:.8125rem;line-height:1.65}.destination-map-boundary-source summary{min-height:44px;align-content:center;cursor:pointer;font-weight:800;color:#e6effb}.destination-map-boundary-source p{margin:0 0 12px}.destination-map-boundary-source a{color:#fff}
.destination-map-experience .photo-credit-panel{background:#193656;border-color:#476382;color:#e6effb;margin:0}
.destination-map-experience .photo-credit-panel summary,.destination-map-experience .photo-credit-panel a,.destination-map-experience .photo-credit-title{color:#e6effb}
.destination-map-experience .photo-credit-content,.destination-map-experience .photo-credit-list li{background:#fff;color:#17365e}
.destination-map-experience .photo-credit-content a{color:#1454b8}
.destination-map-experience .photo-credit-count{color:#d2e1f4}
.destination-map-section .area-collapse-button{display:block;margin:0 auto 22px;background:#fff;color:#143052}
@container(max-width:600px){
 .destination-map-link img{width:32px;height:32px}
 .destination-map-link strong{font-size:1rem}
}
@media(min-width:1100px){
 .destination-map-story{display:flex;align-self:stretch}
 .destination-map-story-copy{box-sizing:border-box;flex:1}
 .destination-map-panel{align-self:stretch}
}
@media(max-width:1099px){
 .destination-map-layout{grid-template-columns:minmax(0,1fr);gap:18px}
 .destination-map-story,.destination-map-story-copy{min-height:260px}
 .destination-map-story-copy{padding:24px;max-width:540px;margin-inline:auto}
 .destination-map-story h4{font-size:2.25rem}
 .destination-map-story-region{display:none}
 .destination-map-story [data-map-description]{margin:12px 0 18px}
 .destination-map-korean{margin:6px 0 12px}
 .destination-map-visit{width:fit-content;min-width:210px;margin-inline:auto}
}
@media(max-width:759px){
 .destination-map-experience{padding:16px 10px}
 .destination-map-heading{padding:4px 8px;margin-bottom:20px}
 .destination-map-selection .destination-map-brand{font-size:1.0625rem}.destination-map-selection .destination-map-brand-icon{width:36px;height:36px;border-radius:10px;font-size:.9375rem}
 .destination-map-heading h3{font-size:1.85rem}
 .destination-map-intro{font-size:1rem}
 .destination-map-story,.destination-map-story-copy{min-height:248px}
 .destination-map-story-copy{padding:22px 18px}
 .destination-map-story h4{font-size:2rem}
 .destination-map-visit{width:100%;min-width:0}
 .destination-map-panel-heading{padding:18px 12px 0;font-size:1rem;letter-spacing:.03em}
 .destination-map-canvas{aspect-ratio:auto;display:flex;flex-direction:column;gap:12px;padding:0 12px 16px}
 .destination-map-geography{position:relative;inset:auto;left:auto;top:auto;width:100%;height:auto;aspect-ratio:640 / 620;transform:none}
 .destination-map-leader{display:none}
 .destination-map-labels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .destination-map-labels>li{position:static;transform:none;width:auto}
 .destination-map-link{height:100%;min-height:60px;gap:6px;padding:6px;border-radius:8px}
 .destination-map-label-card{grid-template-columns:minmax(0,1fr) 44px;gap:4px}
 .destination-map-check{min-width:44px;min-height:60px;border-radius:8px}
 .destination-map-link img{width:28px;height:28px}
 .destination-map-link strong{font-size:.875rem;line-height:1.3}
 .destination-map-story-check{top:10px;right:10px;min-height:44px;font-size:.75rem}
 .destination-map-boundary-source{margin-top:20px}
 .destination-map-progress{align-items:center;flex-direction:column;gap:8px;padding:2px 12px 0}.destination-map-progress p{font-size:.8125rem}.destination-map-reset{width:100%;max-width:260px}
 .destination-map-share-actions{grid-template-columns:1fr;padding-inline:12px}.destination-map-share,.destination-map-download,.destination-map-copy{width:100%;font-size:.8125rem}.destination-map-share-hint{padding-inline:12px}
 .destination-map-selection{padding-bottom:20px;font-size:1.0625rem}
 .destination-map-note{padding:0 8px}
}
@media(max-width:380px){
 .destination-map-link{flex-direction:column;gap:4px}
 .destination-map-link strong{flex:none;font-size:.9375rem}
}
@media(prefers-reduced-motion:no-preference){.destination-map-link,.destination-map-check,.destination-map-story-check{transition:background-color .15s,border-color .15s,color .15s}}

.destination-map-pin{pointer-events:all}
.destination-map-hit{fill:none;stroke:transparent;stroke-width:44px;vector-effect:non-scaling-stroke;pointer-events:stroke}
.destination-map-pin:hover .destination-map-dot,.destination-map-pin:focus-visible .destination-map-dot{fill:#cb294a}
/* Narrow two-column cards keep the whole city name on its own line beside the
   44px flag action, instead of splitting English names character by character. */
@media(max-width:480px){
 .destination-map-link{flex-direction:column;gap:2px;min-height:68px}
 .destination-map-link img{width:24px;height:24px}
 .destination-map-link strong{flex:none;width:100%;font-size:.875rem;white-space:nowrap}
 .destination-map-check{min-height:68px}
}
@media(max-width:359px){
 .destination-map-labels{grid-template-columns:1fr}
 .destination-map-link{flex-direction:row;min-height:60px;gap:6px}
 .destination-map-link img{width:28px;height:28px}
 .destination-map-link strong{width:auto;font-size:.9375rem}
 .destination-map-check{min-height:60px}
}
