:root {
  --ink:#182d28; --muted:#59685f; --subtle:#748178; --paper:#fbfcf9; --white:#ffffff;
  --surface:#f1f4ed; --surface-active:#eaf1e1; --sand:#f4efdf;
  --line:#dce4d8; --line-strong:#bdcbbb; --lime:#d3ef89; --forest:#244d3b; --forest-hover:#193c2d;
  --focus:#487b37; --error:#983a32; --photo-shade:#182d28b8; --photo-shade-faint:#182d2814; --white-glass:#fffffff5;
  --shadow-quiet:0 1px 2px #182d2805,0 4px 12px #182d2808,0 14px 32px #182d280a;
  --shadow-popover:0 4px 12px #182d280a,0 16px 40px #182d2812;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px; --space-6:24px;
  --space-8:32px; --space-10:40px; --space-12:48px; --space-16:64px; --space-20:80px;
  --content-max:1240px; --gutter:40px; --copy-max:65ch; --control-height:48px; --touch-target:44px;
  --hero-media-height:560px; --planner-field-min:240px; --detail-photo-height:400px;
  --radius-sm:8px; --radius:12px; --radius-lg:20px; --radius-round:50%;
  --text-display:clamp(34px,4.2vw,56px); --text-title:clamp(32px,4vw,48px); --text-section:clamp(26px,2.5vw,32px);
  --text-panel:24px; --text-card:20px; --text-lg:16px; --text-body:15px; --text-sm:14px; --text-caption:12px;
  --text-brand:26px; --text-number:36px; --duration-micro:150ms; --duration-standard:220ms; --ease:cubic-bezier(.2,.7,.2,1);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:var(--space-20); }
body { margin:0; color:var(--ink); background:var(--paper); font-family:'DM Sans','Noto Sans KR','Noto Sans SC','Noto Sans JP',sans-serif; font-size:var(--text-body); line-height:1.75; }
html[lang=ja] body { font-family:'DM Sans','Noto Sans JP',sans-serif; }
html[lang=zh-CN] body { font-family:'DM Sans','Noto Sans SC',sans-serif; }
html[lang=ko] p { word-break:keep-all; overflow-wrap:break-word; }
html[lang=ko] h1,html[lang=ko] h2,html[lang=ko] h3 { word-break:keep-all; }
html[lang=ja] p, html[lang=zh-CN] p { word-break:normal; line-break:strict; }
a { color:inherit; text-decoration:none; }
p { text-wrap:pretty; }
h1,h2,h3 { text-wrap:balance; overflow-wrap:break-word; }
html[lang=ja] p,html[lang=ja] .faq-list summary { text-wrap:balance; }
html[lang=ja] h2,html[lang=ja] h3,html[lang=ja] .category-tile span { word-break:keep-all; }
html[lang=ja] .category-tile span { max-inline-size:100%; overflow-wrap:break-word; }
html[lang=ja] .home-themes .section-head>div { min-inline-size:0; }
button,input,select { font:inherit; }
button,a,input,select,summary { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; color:inherit; }
button:disabled,[aria-disabled=true] { cursor:default; opacity:.55; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
button:active:not(:disabled),.btn:active { transform:scale(.98); }
img { display:block; max-width:100%; object-fit:cover; }
svg { width:var(--space-5); height:var(--space-5); fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
[hidden] { display:none!important; }
.wrap { width:min(var(--content-max),calc(100% - var(--gutter) * 2)); margin-inline:auto; }
.skip { position:fixed; top:-100%; left:var(--space-4); z-index:40; background:var(--ink); color:var(--white); padding:var(--space-3) var(--space-4); border-radius:var(--radius-sm); }
.skip:focus { top:var(--space-4); }

.header { min-height:88px; display:flex; align-items:center; gap:var(--space-8); position:relative; z-index:20; background:var(--paper); }
.logo { display:inline-flex; align-items:center; gap:var(--space-3); min-height:var(--touch-target); font-size:var(--text-brand); letter-spacing:-.045em; font-weight:800; white-space:nowrap; }
.logo .logo-mark { width:var(--space-10); height:var(--space-10); background:transparent; border-radius:var(--radius); flex-shrink:0; object-fit:contain; }
.brand-wordmark { font-weight:800; line-height:1.1; }
.brand-letter-d { color:var(--forest); }
.nav { display:flex; align-items:center; gap:var(--space-8); font-size:var(--text-sm); font-weight:600; }
.nav a { min-height:var(--touch-target); min-inline-size:var(--touch-target); display:flex; align-items:center; position:relative; }
.nav a:hover,.nav a[aria-current=page] { color:var(--forest); text-decoration:underline; text-underline-offset:var(--space-2); }
.header-right { margin-left:auto; display:flex; align-items:center; gap:var(--space-6); }
.saved-link { min-height:var(--touch-target); min-width:var(--touch-target); display:flex; gap:var(--space-2); align-items:center; font-size:var(--text-sm); }
.saved-link:hover { color:var(--forest); }
.saved-link small { font-size:var(--text-caption); font-variant-numeric:tabular-nums; }
.languages { position:relative; }
.languages summary { list-style:none; display:flex; align-items:center; gap:var(--space-2); min-height:var(--touch-target); cursor:pointer; font-size:var(--text-sm); font-weight:600; }
.languages summary::-webkit-details-marker { display:none; }
.languages summary>svg:last-child { width:var(--space-4); }
.language-menu { position:absolute; right:0; top:calc(100% + var(--space-2)); min-width:180px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:var(--space-2); box-shadow:var(--shadow-popover); z-index:30; }
.language-menu a { display:flex; align-items:center; min-height:var(--touch-target); padding:var(--space-2) var(--space-3); border-radius:var(--radius-sm); }
.language-menu a:hover,.language-menu a.active { background:var(--surface-active); color:var(--forest); }
body:has(.languages[open]) .languages { z-index:30; }

.btn { display:inline-flex; justify-content:center; align-items:center; gap:var(--space-3); min-height:var(--control-height); border:1px solid var(--forest); border-radius:var(--radius-sm); padding:var(--space-3) var(--space-5); background:var(--forest); color:var(--white); font-size:var(--text-sm); font-weight:700; line-height:1.6; text-align:center; transition:transform var(--duration-micro) var(--ease),opacity var(--duration-micro) var(--ease); }
.btn:hover { background:var(--forest-hover); border-color:var(--forest-hover); }
.btn.lime { background:var(--forest); color:var(--white); }
.btn.outline { background:var(--white); border-color:var(--line-strong); color:var(--ink); }
.btn.outline:hover { background:var(--surface-active); border-color:var(--forest); }
.btn svg,.text-link svg { width:var(--space-4); height:var(--space-4); }
.text-link { display:inline-flex; align-items:center; gap:var(--space-2); min-height:var(--touch-target); font-size:var(--text-sm); font-weight:600; color:var(--forest); }
.text-link:hover { text-decoration:underline; text-underline-offset:var(--space-1); }
.eyebrow,.kicker { font-size:var(--text-caption); letter-spacing:.12em; text-transform:uppercase; font-weight:600; color:var(--forest); line-height:1.6; }
.eyebrow { display:flex; align-items:center; gap:var(--space-2); }
.dot { width:var(--space-2); height:var(--space-2); background:var(--forest); border-radius:var(--radius-round); }

.home-hero { width:min(var(--content-max),calc(100% - var(--gutter) * 2)); margin:var(--space-6) auto 0; position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); align-items:stretch; gap:var(--space-12); background:var(--paper); }
.home-hero-content { min-width:0; padding:var(--space-4) 0; }
.home-hero-content h1 { color:var(--ink); font-size:var(--text-display); line-height:1.2; letter-spacing:-.045em; font-weight:700; margin:var(--space-5) 0; }
html:not([lang=en]) .home-hero-content h1 { letter-spacing:-.035em; }
.home-hero-content>p { max-width:48ch; font-size:var(--text-lg); color:var(--muted); line-height:1.8; margin:0 0 var(--space-6); }
.booking-planner { padding:var(--space-6); border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--white); box-shadow:var(--shadow-quiet); }
.planner-head { display:flex; align-items:baseline; justify-content:space-between; gap:var(--space-3); margin-bottom:var(--space-5); }
.planner-head h2 { margin:0; font-size:var(--text-card); line-height:1.4; letter-spacing:-.02em; }
.planner-head small { font-size:var(--text-caption); color:var(--muted); }
.planner-form { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--planner-field-min)),1fr)); gap:var(--space-3); }
.planner-field { display:flex; flex-direction:column; gap:var(--space-2); min-width:0; }
.planner-field>span { font-size:var(--text-sm); font-weight:600; }
.planner-field select { width:100%; min-width:0; min-height:var(--control-height); border:1px solid var(--line-strong); border-radius:var(--radius-sm); background:var(--paper); color:var(--ink); padding:var(--space-3); font-size:var(--text-lg); }
.planner-cta { grid-column:1/-1; width:100%; margin-top:var(--space-1); justify-content:space-between; font-size:var(--text-lg); }
.planner-note,.planner-status,.booking-disclosure { margin:var(--space-3) 0 0; color:var(--muted); font-size:var(--text-sm); line-height:1.7; }
.planner-note a,.booking-disclosure a { color:var(--forest); text-decoration:underline; text-underline-offset:var(--space-1); }
.planner-proof { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-3) var(--space-5); margin-top:var(--space-4); padding-top:var(--space-4); border-top:1px solid var(--line); font-size:var(--text-sm); color:var(--muted); }
.planner-proof svg { width:var(--space-4); height:var(--space-4); color:var(--forest); }
.home-hero-media { min-width:0; min-height:var(--hero-media-height); position:relative; }
.home-hero-slide { position:absolute; inset:0 0 var(--space-16); display:grid; grid-template-rows:minmax(0,1fr) auto; min-width:0; }
.home-hero-slide>img { width:100%; height:100%; min-height:0; border-radius:var(--radius-lg); object-position:center 52%; }
.hero-destination { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--space-4); padding:var(--space-4) 0 0; color:var(--ink); background:var(--paper); }
.hero-destination>a:first-child { display:grid; min-width:0; }
.hero-destination span { color:var(--muted); font-size:var(--text-caption); }
.hero-destination strong { font-size:var(--text-panel); line-height:1.3; letter-spacing:-.02em; margin:var(--space-1) 0; }
.hero-destination small { display:flex; align-items:center; gap:var(--space-2); color:var(--forest); font-size:var(--text-sm); }
.hero-destination a:hover small { text-decoration:underline; text-underline-offset:var(--space-1); }
.hero-destination .hero-attribution { max-width:160px; font-size:var(--text-caption); color:var(--muted); text-align:right; overflow-wrap:anywhere; padding-top:var(--space-1); }
.hero-controls { position:absolute; bottom:0; left:0; right:0; display:flex; align-items:center; gap:var(--space-2); color:var(--ink); }
.hero-controls>button { display:grid; place-items:center; min-width:var(--touch-target); min-height:var(--touch-target); padding:var(--space-2); background:var(--white); border:1px solid var(--line); border-radius:var(--radius-round); color:var(--ink); transition:transform var(--duration-micro) var(--ease); }
.hero-controls>button:hover { background:var(--surface-active); border-color:var(--line-strong); }
.hero-controls>button[data-hero-pause] { border:0; background:transparent; border-radius:var(--radius-sm); font-size:var(--text-caption); padding-inline:var(--space-3); }
.hero-controls>button[data-hero-prev] svg { transform:rotate(90deg); }
.hero-controls>button[data-hero-next] svg { transform:rotate(-90deg); }
.hero-dots { display:flex; align-items:center; justify-content:center; flex:1; gap:0; }
.hero-dots button { position:relative; display:grid; place-items:center; width:var(--touch-target); height:var(--touch-target); min-width:var(--touch-target); padding:0; border:0; background:transparent; border-radius:var(--radius-sm); }
.hero-dots button::after { content:''; width:var(--space-2); height:var(--space-2); border-radius:var(--radius-round); background:var(--line-strong); }
.hero-dots button[aria-pressed=true]::after { width:var(--space-6); border-radius:var(--radius-sm); background:var(--forest); }
.hero-explore-link { display:inline-flex; align-items:center; gap:var(--space-3); min-height:var(--touch-target); color:var(--forest); font-size:var(--text-sm); font-weight:600; margin-top:var(--space-4); }
.hero-explore-link:hover { text-decoration:underline; text-underline-offset:var(--space-1); }
.hero-suggestions { display:flex; flex-wrap:wrap; gap:var(--space-2) var(--space-4); margin-top:var(--space-2); font-size:var(--text-sm); color:var(--muted); }
.hero-suggestions a { display:flex; align-items:center; min-height:var(--touch-target); }
.hero-suggestions a:hover { color:var(--forest); text-decoration:underline; text-underline-offset:var(--space-1); }
.search-form { display:flex; align-items:center; gap:var(--space-3); padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4); border:1px solid var(--line-strong); background:var(--white); border-radius:var(--radius); color:var(--ink); width:100%; }
.search-form input { border:0; min-width:0; flex:1; background:transparent; padding:var(--space-2) 0; font-size:var(--text-lg); }
.hero-search { margin-top:var(--space-6); }
.hero-search>label { display:block; font-size:var(--text-sm); font-weight:600; margin-bottom:var(--space-2); }
.hero-search .search-form { background:var(--paper); border-color:var(--line); }
.hero-search .search-form button { display:inline-flex; align-items:center; justify-content:center; gap:var(--space-2); min-width:var(--touch-target); min-height:var(--touch-target); border:0; border-radius:var(--radius-sm); background:transparent; padding:var(--space-2); color:var(--forest); font-size:var(--text-sm); font-weight:600; }
.hero-search .search-form button:hover { text-decoration:underline; text-underline-offset:var(--space-1); }
.hero-search .search-form button svg { width:var(--space-4); height:var(--space-4); }
.home-hero:not(:has(.home-hero-media)) { min-height:var(--hero-media-height); }
.home-hero>.home-hero-slide,.home-hero>.hero-controls { left:calc(48% + var(--space-6)); }

.trustline { display:flex; justify-content:space-between; align-items:center; gap:var(--space-6); padding:var(--space-6) 0; border-bottom:1px solid var(--line); font-size:var(--text-sm); color:var(--muted); }
.trust-facts { display:flex; flex-wrap:wrap; gap:var(--space-3) var(--space-6); }
.trust-facts span { display:flex; align-items:center; gap:var(--space-2); }
.trust-facts svg { width:var(--space-4); height:var(--space-4); color:var(--forest); }
.partners { display:flex; flex-wrap:wrap; gap:var(--space-4); align-items:center; }
.partners strong { font-size:var(--text-card); letter-spacing:-.02em; color:var(--forest); }
.section { padding:var(--space-16) 0 0; }
.section:last-child { padding-bottom:var(--space-16); }
.section-head { display:flex; justify-content:space-between; align-items:flex-end; gap:var(--space-6); margin-bottom:var(--space-6); }
.section-head h2 { font-size:var(--text-section); letter-spacing:-.03em; line-height:1.35; margin:var(--space-2) 0; }
.section-head p { margin:0; color:var(--muted); font-size:var(--text-sm); max-width:var(--copy-max); }
.section-head>.text-link { flex-shrink:0; }
.priority-city-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:var(--space-4); }
.priority-city-card { display:block; min-width:0; border-radius:var(--radius); }
.priority-city-card>img { width:100%; height:auto; aspect-ratio:4/3; border-radius:var(--radius); transition:transform var(--duration-standard) var(--ease); }
.priority-city-copy { padding-top:var(--space-3); }
.priority-city-copy small { font-size:var(--text-caption); color:var(--muted); }
.priority-city-copy h3 { font-size:var(--text-card); line-height:1.35; margin:var(--space-1) 0; letter-spacing:-.02em; }
.priority-city-copy p,.priority-city-copy span { font-size:var(--text-sm); color:var(--muted); margin:var(--space-1) 0 0; }
.priority-city-copy span { display:flex; align-items:center; justify-content:space-between; gap:var(--space-2); color:var(--forest); }
.priority-city-card:hover>img { transform:scale(1.025); }
.priority-city-card:hover h3 { text-decoration:underline; text-underline-offset:var(--space-1); }
.priority-method { margin:var(--space-5) 0 0; font-size:var(--text-sm); color:var(--muted); }
.priority-method a { display:inline-flex; align-items:center; min-height:var(--touch-target); color:var(--forest); text-decoration:underline; text-underline-offset:var(--space-1); }
.dest-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--space-8) var(--space-6); }
.destination-card { display:block; min-width:0; border-radius:var(--radius); }
.destination-card img { width:100%; aspect-ratio:4/3; height:auto; border-radius:var(--radius); transition:transform var(--duration-standard) var(--ease); }
.destination-card:hover img { transform:scale(1.025); }
.city-label { display:block; margin-top:var(--space-3); color:var(--muted); font-size:var(--text-caption); letter-spacing:.04em; }
.dest-copy { position:relative; color:var(--ink); }
.dest-copy small { font-size:var(--text-caption); color:var(--muted); }
.dest-copy h3 { font-size:var(--text-card); letter-spacing:-.02em; line-height:1.35; margin:var(--space-1) var(--space-6) var(--space-1) 0; }
.dest-copy p { font-size:var(--text-sm); margin:0; color:var(--muted); }
.dest-copy svg { position:absolute; right:0; top:var(--space-8); width:var(--space-4); height:var(--space-4); color:var(--forest); }
.destination-card:hover h3 { text-decoration:underline; text-underline-offset:var(--space-1); }

.category-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:var(--space-3); border-block:1px solid var(--line); padding:var(--space-3) 0; }
.category-tile { display:flex; align-items:center; justify-content:center; gap:var(--space-2); min-height:var(--touch-target); padding:var(--space-2); font-size:var(--text-sm); font-weight:600; border-radius:var(--radius-sm); }
.category-tile svg { width:var(--space-5); height:var(--space-5); color:var(--forest); }
.category-tile:hover { background:var(--surface-active); }
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-10) var(--space-6); }
.product { min-width:0; position:relative; display:flex; flex-direction:column; }
.product-media { height:auto; aspect-ratio:3/2; position:relative; }
.product-media img { width:100%; height:100%; transition:transform var(--duration-standard) var(--ease); }
.product-media>a { position:absolute; inset:0; display:block; height:100%; overflow:hidden; border-radius:var(--radius); }
.product-media>a:hover img { transform:scale(1.025); }
.provider-pill { position:absolute; bottom:var(--space-3); left:var(--space-3); background:var(--white); border-radius:var(--radius-sm); font-size:var(--text-caption); padding:var(--space-1) var(--space-2); color:var(--forest); font-weight:600; }
.heart { position:absolute; top:var(--space-3); right:var(--space-3); border:1px solid var(--line); border-radius:var(--radius-round); width:var(--touch-target); height:var(--touch-target); display:grid; place-items:center; background:var(--white-glass); color:var(--ink); z-index:2; transition:transform var(--duration-micro) var(--ease); }
.heart:hover { background:var(--white); color:var(--forest); }
.heart[aria-pressed=true] { color:var(--forest); }
.heart[aria-pressed=true] svg { fill:var(--forest); }
.product-body { padding:var(--space-4) 0 0; display:flex; flex-direction:column; flex:1; }
.product-meta { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2); font-size:var(--text-caption); color:var(--muted); margin-bottom:var(--space-2); }
.product-meta span+span::before { content:'·'; margin-right:var(--space-2); }
.product h3 { font-size:var(--text-card); letter-spacing:-.02em; line-height:1.45; margin:0 0 var(--space-2); }
.product h3 a:hover { text-decoration:underline; text-underline-offset:var(--space-1); }
.product p { font-size:var(--text-sm); color:var(--muted); margin:0 0 var(--space-4); line-height:1.75; }
.product-bottom { margin-top:auto; padding-top:var(--space-3); border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--space-2) var(--space-3); }
.product-bottom small { font-size:var(--text-sm); color:var(--muted); }
.product-bottom a { min-height:var(--touch-target); font-size:var(--text-sm); font-weight:600; color:var(--forest); display:flex; align-items:center; gap:var(--space-2); }
.product-bottom a:hover { text-decoration:underline; text-underline-offset:var(--space-1); }
.product-bottom svg { width:var(--space-4); height:var(--space-4); }
.product-booking { width:100%; margin-top:var(--space-3); }
.product-image-note.caption { margin:var(--space-2) 0; font-size:var(--text-sm); }
.home-product-grid { margin-top:var(--space-6); }

.filters { border-block:1px solid var(--line); padding:var(--space-4) 0; display:flex; gap:var(--space-3); flex-wrap:wrap; margin:var(--space-4) 0 var(--space-6); }
.filter-search { display:flex; align-items:center; gap:var(--space-3); flex:1; min-width:200px; padding:0 var(--space-3); border:1px solid var(--line-strong); background:var(--white); border-radius:var(--radius-sm); }
.filter-search input { width:100%; min-height:var(--control-height); padding:var(--space-3) 0; border:0; background:transparent; min-width:0; font-size:var(--text-lg); color:var(--ink); }
.filters select { min-width:0; min-height:var(--control-height); border:1px solid var(--line-strong); border-radius:var(--radius-sm); background:var(--white); padding:var(--space-3); max-width:260px; color:var(--ink); font-size:var(--text-lg); }
.clear-btn { min-height:var(--touch-target); min-width:var(--touch-target); border:0; background:transparent; font-size:var(--text-sm); color:var(--muted); padding:var(--space-2) var(--space-3); border-radius:var(--radius-sm); }
.clear-btn:hover { background:var(--surface-active); color:var(--forest); }
.result-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--space-3); font-size:var(--text-sm); color:var(--muted); margin:var(--space-5) 0; }
.result-row b,.discovery-result strong { color:var(--ink); font-variant-numeric:tabular-nums; }
.empty { padding:var(--space-12) var(--space-6); background:var(--surface); text-align:center; border-radius:var(--radius); margin:var(--space-6) 0; color:var(--muted); font-size:var(--text-sm); }
.discovery-controls { margin-bottom:var(--space-6); }
.region-tabs { display:flex; gap:var(--space-4); overflow-x:auto; overscroll-behavior-x:contain; padding:var(--space-1) 0 var(--space-4); }
.region-tabs button { flex-shrink:0; white-space:nowrap; min-height:var(--touch-target); min-inline-size:var(--touch-target); padding:var(--space-2) var(--space-1); border:0; border-bottom:2px solid transparent; border-radius:0; background:transparent; font-weight:600; font-size:var(--text-sm); color:var(--muted); }
.region-tabs button:hover { color:var(--forest); }
.region-tabs button[aria-pressed=true] { border-bottom-color:var(--forest); color:var(--forest); }
.discovery-inputs { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-3); padding:var(--space-4) 0; border-block:1px solid var(--line); }
.discovery-search { display:flex; align-items:center; gap:var(--space-3); min-width:200px; flex:1; padding:0 var(--space-3); background:var(--white); border:1px solid var(--line-strong); border-radius:var(--radius-sm); }
.discovery-search input { min-width:0; width:100%; min-height:var(--control-height); border:0; padding:var(--space-3) 0; background:transparent; color:var(--ink); font-size:var(--text-lg); }
.discovery-inputs select { min-width:0; min-height:var(--control-height); border:1px solid var(--line-strong); background:var(--white); border-radius:var(--radius-sm); padding:var(--space-3); color:var(--ink); max-width:260px; font-size:var(--text-lg); }
.discovery-result { margin-top:var(--space-4); font-size:var(--text-sm); color:var(--muted); }
#discover { scroll-margin-top:var(--space-6); }
.discovery-panel { border-block:1px solid var(--line); margin-top:var(--space-12); }
.discovery-panel>summary { cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:var(--space-4); padding:var(--space-5) 0; min-height:var(--touch-target); font-size:var(--text-lg); font-weight:600; list-style:none; }
.discovery-panel>summary::-webkit-details-marker { display:none; }
.discovery-panel[open]>summary svg { transform:rotate(180deg); }
.discovery-panel .section { padding-top:var(--space-6); padding-bottom:var(--space-8); }

.theme-photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-6); }
.theme-photo-card { min-width:0; color:var(--ink); }
.theme-photo-card>img { width:100%; aspect-ratio:4/3; height:auto; border-radius:var(--radius); transition:transform var(--duration-standard) var(--ease); }
.theme-photo-card>div { position:relative; padding:var(--space-4) var(--space-6) 0 0; }
.theme-photo-card h3 { font-size:var(--text-card); margin:0 0 var(--space-1); letter-spacing:-.02em; }
.theme-photo-card p { margin:0; font-size:var(--text-sm); color:var(--muted); line-height:1.7; }
.theme-photo-card svg { position:absolute; top:var(--space-5); right:0; width:var(--space-4); height:var(--space-4); color:var(--forest); }
.theme-photo-card:hover>img { transform:scale(1.025); }
.theme-photo-card:hover h3 { text-decoration:underline; text-underline-offset:var(--space-1); }
.travel-story-grid,.airport-guide-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--space-6); }
.travel-story,.airport-guide { display:block; min-width:0; }
.travel-story>img,.airport-guide>img { width:100%; aspect-ratio:4/3; height:auto; border-radius:var(--radius); }
.travel-story>div,.airport-guide>div { padding-top:var(--space-4); }
.travel-story small,.airport-guide small { font-size:var(--text-caption); color:var(--muted); }
.travel-story h3 { font-size:var(--text-panel); margin:var(--space-1) 0 var(--space-2); letter-spacing:-.02em; }
.travel-story p { font-size:var(--text-sm); line-height:1.8; color:var(--muted); margin:0 0 var(--space-3); }
.travel-story span,.airport-guide span { display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); font-size:var(--text-sm); color:var(--forest); font-weight:600; }
.travel-story:hover h3,.airport-guide:hover h3 { text-decoration:underline; text-underline-offset:var(--space-1); }
.europe-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-6); }
.europe-grid .travel-story>img { aspect-ratio:16/9; }
.europe-grid .travel-story h3 { font-size:var(--text-section); }
.airport-guide h3 { font-size:var(--text-lg); margin:var(--space-1) 0 var(--space-4); line-height:1.6; }
.korea-photo-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-6); }
.korea-photo-links>a { display:grid; grid-template-columns:100px minmax(0,1fr); border-bottom:1px solid var(--line); padding-bottom:var(--space-4); }
.korea-photo-links img { width:100px; height:var(--space-20); border-radius:var(--radius-sm); }
.korea-photo-links span { display:flex; justify-content:space-between; align-items:center; gap:var(--space-2); padding-left:var(--space-4); font-weight:600; font-size:var(--text-lg); }
.korea-extra { padding-bottom:var(--space-6); }
.home-themes { padding-top:var(--space-12); }
.guide-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-6); }
.guide-card { padding:var(--space-6); background:var(--surface); border-radius:var(--radius); }
.guide-card .guide-number { font-family:Georgia,serif; color:var(--forest); font-size:var(--text-number); line-height:1.2; }
.guide-card h3 { font-size:var(--text-card); line-height:1.45; margin:var(--space-4) 0 var(--space-2); letter-spacing:-.02em; }
.guide-card p { color:var(--muted); font-size:var(--text-sm); }
.guide-card a { display:flex; align-items:center; gap:var(--space-3); min-height:var(--touch-target); font-size:var(--text-sm); font-weight:600; }
.guide-card a:hover { color:var(--forest); text-decoration:underline; text-underline-offset:var(--space-1); }
.guide-card svg { width:var(--space-4); height:var(--space-4); }

.breadcrumbs { display:flex; align-items:center; gap:var(--space-3); flex-wrap:wrap; font-size:var(--text-sm); color:var(--muted); padding:var(--space-4) 0; }
.breadcrumbs a { min-height:var(--touch-target); display:inline-flex; align-items:center; }
.breadcrumbs a:hover { color:var(--forest); text-decoration:underline; }
.breadcrumbs span { color:var(--subtle); }
.page-heading { padding:var(--space-4) 0 var(--space-6); }
.page-heading h1 { font-size:var(--text-title); letter-spacing:-.035em; line-height:1.25; margin:var(--space-3) 0; }
.heading-chunk { display:inline-block; inline-size:max-content; max-inline-size:100%; white-space:normal; overflow-wrap:anywhere; vertical-align:baseline; }
.page-heading p { color:var(--muted); max-width:var(--copy-max); margin:0; font-size:var(--text-lg); }
.dest-banner { height:360px; position:relative; overflow:hidden; border-radius:var(--radius-lg); background:var(--forest); }
.dest-banner img { width:100%; height:100%; object-position:center 52%; }
.dest-banner::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,var(--photo-shade),var(--photo-shade-faint)); }
.dest-banner-copy { position:absolute; z-index:1; left:var(--space-10); right:var(--space-10); bottom:var(--space-8); color:var(--white); max-width:var(--copy-max); }
.dest-banner-copy .kicker,.dest-banner-copy .eyebrow { color:var(--white); }
.dest-banner-copy .dot { background:var(--lime); }
.dest-banner-copy h1 { font-size:var(--text-title); line-height:1.25; margin:var(--space-2) 0; letter-spacing:-.035em; }
.dest-banner-copy p { font-size:var(--text-lg); margin:0; }
.detail-layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr); gap:var(--space-10); align-items:start; margin-top:var(--space-3); padding-bottom:var(--space-3); }
.detail-layout>.booking-box,.detail-layout>.destination-booking { grid-column:2; grid-row:1; }
.detail-layout>.detail-main,.detail-layout>.destination-main { grid-column:1; grid-row:1; }
.detail-main,.destination-main { min-width:0; }
.detail-photo { border-radius:var(--radius); width:100%; height:var(--detail-photo-height); }
.caption { font-size:var(--text-sm); color:var(--muted); margin:var(--space-2) 0; }
.detail-main h2 { font-size:var(--text-panel); line-height:1.4; margin:var(--space-8) 0 var(--space-3); letter-spacing:-.02em; }
.detail-main p { font-size:var(--text-body); color:var(--muted); max-width:var(--copy-max); }
.answer-box { padding:var(--space-6); background:var(--surface); border-radius:var(--radius); border-left:3px solid var(--forest); }
.answer-box h2 { margin:0 0 var(--space-3); font-size:var(--text-card); }
.answer-box p { margin:0; }
.check-items { display:flex; flex-wrap:wrap; gap:var(--space-2); margin:var(--space-4) 0; }
.check-items span { border:1px solid var(--line); padding:var(--space-2) var(--space-3); border-radius:var(--radius-sm); font-size:var(--text-sm); background:var(--white); }
.booking-box { background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-quiet); padding:var(--space-6); position:sticky; top:var(--space-20); min-width:0; }
.booking-box h2 { font-size:var(--text-panel); line-height:1.4; margin:var(--space-2) 0 var(--space-3); letter-spacing:-.02em; }
.booking-box p { font-size:var(--text-sm); color:var(--muted); }
.booking-box .btn { width:100%; margin-top:var(--space-3); justify-content:space-between; }
.booking-box .klook-btn,.booking-box .trip-btn,.klook-btn,.trip-btn { background:var(--forest); color:var(--white); border-color:var(--forest); }
.booking-box .klook-btn:hover,.booking-box .trip-btn:hover,.klook-btn:hover,.trip-btn:hover { background:var(--forest-hover); border-color:var(--forest-hover); }
.booking-box small { display:block; font-size:var(--text-sm); color:var(--muted); line-height:1.75; margin-top:var(--space-4); }
.booking-type { font-size:var(--text-caption); color:var(--forest); font-weight:600; }
.booking-box .detail-save { justify-content:flex-start; }
.detail-save[aria-pressed=true] { background:var(--surface-active); color:var(--forest); border-color:var(--forest); }
.detail-save[aria-pressed=true] svg { fill:var(--forest); }
.detail-nav { position:sticky; top:0; z-index:10; display:flex; gap:var(--space-1); overflow-x:auto; overscroll-behavior-x:contain; background:var(--paper); border-bottom:1px solid var(--line); padding:var(--space-2) 0; margin:var(--space-6) 0; scrollbar-width:thin; }
.detail-nav a { display:flex; align-items:center; min-height:var(--touch-target); white-space:nowrap; padding:var(--space-2) var(--space-4); border-radius:var(--radius-sm); font-size:var(--text-sm); font-weight:600; flex-shrink:0; }
.detail-nav a:hover { background:var(--surface-active); color:var(--forest); }
.detail-section { padding:var(--space-8) 0; border-bottom:1px solid var(--line); scroll-margin-top:var(--space-20); }
.detail-section h2 { margin:var(--space-2) 0 var(--space-3); font-size:var(--text-panel); letter-spacing:-.02em; }
.detail-section h3 { font-size:var(--text-lg); line-height:1.5; margin:0 0 var(--space-2); letter-spacing:-.01em; }
.detail-section p { line-height:1.8; margin:0 0 var(--space-4); }
.overview-panel { padding-top:0; }
.detail-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:var(--space-6) 0 0; gap:var(--space-3); }
.detail-facts>div { padding:var(--space-4); background:var(--surface); border-radius:var(--radius-sm); }
.detail-facts dt { font-size:var(--text-sm); color:var(--muted); margin-bottom:var(--space-1); }
.detail-facts dd { margin:0; font-size:var(--text-body); font-weight:600; line-height:1.6; }
.location-panel,.transport-panel { background:var(--surface); border-radius:var(--radius); padding:var(--space-6); margin-top:var(--space-6); }
.local-name { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-3); padding:var(--space-4) 0; margin:var(--space-2) 0 var(--space-4); border-block:1px solid var(--line-strong); }
.local-name small { display:block; width:100%; font-size:var(--text-sm); color:var(--muted); }
.local-name strong { font-size:var(--text-lg); overflow-wrap:anywhere; flex:1; min-width:160px; }
.detail-actions { display:flex; flex-wrap:wrap; gap:var(--space-3); align-items:center; }
.area-cards { display:grid; gap:var(--space-3); }
.area-card { display:flex; align-items:flex-start; gap:var(--space-4); padding:var(--space-5) 0; border-bottom:1px solid var(--line); }
.area-number { font-size:var(--text-panel); line-height:1.5; font-weight:600; color:var(--forest); flex-shrink:0; font-variant-numeric:tabular-nums; }
.area-card p { margin:0 0 var(--space-2)!important; font-size:var(--text-sm); }
.hub-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-4); }
.hub-card,.neighbourhood-card { min-width:0; padding:var(--space-5); background:var(--white); border:1px solid var(--line); border-radius:var(--radius); }
.hub-card small { display:inline-block; font-size:var(--text-caption); color:var(--forest); margin-bottom:var(--space-3); }
.hub-actions { display:flex; flex-direction:column; gap:var(--space-2); }
.hub-actions a { display:flex; align-items:center; justify-content:space-between; min-height:var(--touch-target); gap:var(--space-2); font-size:var(--text-sm); font-weight:600; color:var(--forest); }
.hub-actions a:hover { text-decoration:underline; text-underline-offset:var(--space-1); }
.hub-actions svg { width:var(--space-4); height:var(--space-4); }
.detail-main .detail-note { font-size:var(--text-sm); margin:var(--space-4) 0 0; line-height:1.8; color:var(--muted); }
.journey-steps { display:grid; gap:var(--space-5); }
.journey-step { display:flex; gap:var(--space-4); align-items:flex-start; }
.journey-step>span { display:grid; place-items:center; width:var(--space-10); height:var(--space-10); border-radius:var(--radius-round); background:var(--surface-active); color:var(--forest); font-size:var(--text-sm); font-weight:600; flex-shrink:0; font-variant-numeric:tabular-nums; }
.journey-step p { font-size:var(--text-sm); margin:0 0 var(--space-2); }
.flavour-box { border-radius:var(--radius); padding:var(--space-6); background:var(--sand); margin:var(--space-5) 0 var(--space-4); }
.flavour-box>span { color:var(--muted); font-size:var(--text-sm); }
.flavour-box h3 { font-size:var(--text-card); margin:var(--space-1) 0 var(--space-3); }
.neighbourhood-card .detail-actions { margin-top:var(--space-3); }
.neighbourhood-card p { font-size:var(--text-sm); margin-bottom:var(--space-3); }
.route-form { display:grid; gap:var(--space-2); margin-top:var(--space-5); }
.route-form label { font-weight:600; font-size:var(--text-sm); margin-top:var(--space-1); }
.route-form input,.route-form select { width:100%; min-width:0; min-height:var(--control-height); border:1px solid var(--line-strong); padding:var(--space-3); border-radius:var(--radius-sm); background:var(--white); color:var(--ink); font-size:var(--text-lg); }
.route-form .detail-actions { margin-top:var(--space-3); }
.route-error { font-size:var(--text-sm)!important; color:var(--error)!important; margin:0!important; }
.travel-situation { border-bottom:1px solid var(--line); padding:var(--space-4) 0; }
.travel-situation summary { display:flex; align-items:center; min-height:var(--touch-target); font-size:var(--text-sm); font-weight:600; cursor:pointer; }
.travel-situation p { font-size:var(--text-sm); margin:var(--space-3) 0 0; line-height:1.85; }
.detail-source { display:flex; gap:var(--space-3); flex-wrap:wrap; justify-content:space-between; align-items:center; margin:var(--space-6) 0; color:var(--muted); font-size:var(--text-sm); }
.detail-source a { display:flex; gap:var(--space-2); align-items:center; min-height:var(--touch-target); text-decoration:underline; text-underline-offset:var(--space-1); overflow-wrap:anywhere; }
.detail-source svg { width:var(--space-4); height:var(--space-4); }
.detail-main #overview { scroll-margin-top:var(--space-20); }

.faq-list { border-top:1px solid var(--line); margin-top:var(--space-5); }
.faq-list details { padding:var(--space-4) 0; border-bottom:1px solid var(--line); }
.faq-list summary { min-height:var(--touch-target); cursor:pointer; font-size:var(--text-body); font-weight:600; line-height:1.7; }
.faq-list details p { font-size:var(--text-sm); max-width:var(--copy-max); color:var(--muted); }
.article { max-width:870px; }
.article h2 { font-size:var(--text-panel); letter-spacing:-.02em; margin:var(--space-8) 0 var(--space-3); }
.article p,.article li { font-size:var(--text-body); color:var(--muted); line-height:1.9; max-width:var(--copy-max); }
.article ul { padding-left:var(--space-6); }
.article a { color:var(--forest); text-decoration:underline; text-underline-offset:var(--space-1); overflow-wrap:anywhere; }
.research-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-6); margin-top:var(--space-6); }
.source-card { border-top:1px solid var(--line); padding:var(--space-6) 0; }
.source-card h2 { font-size:var(--text-card); margin:0 0 var(--space-2); }
.source-card small { font-size:var(--text-caption); color:var(--muted); }
.source-card p { font-size:var(--text-sm); color:var(--muted); }
.source-card a { display:inline-flex; align-items:center; min-height:var(--touch-target); font-size:var(--text-sm); text-decoration:underline; text-underline-offset:var(--space-1); overflow-wrap:anywhere; }
.meta-line { display:flex; gap:var(--space-4); flex-wrap:wrap; font-size:var(--text-sm); color:var(--muted); margin:var(--space-5) 0; }
.policy-box { background:var(--surface); border-radius:var(--radius); padding:var(--space-6); margin:var(--space-6) 0; }
.policy-box p { margin:var(--space-1) 0; }
.back-btn { margin-top:var(--space-6); }
.footer { margin-top:var(--space-16); border-top:1px solid var(--line); padding:var(--space-10) 0 var(--space-6); background:var(--surface); }
.footer-top { display:flex; justify-content:space-between; gap:var(--space-8); align-items:flex-start; }
.footer p { font-size:var(--text-sm); color:var(--muted); max-width:560px; }
.footer-links { display:flex; gap:var(--space-3) var(--space-5); flex-wrap:wrap; font-size:var(--text-sm); color:var(--muted); justify-content:flex-end; }
.footer-links a { display:inline-flex; align-items:center; min-height:var(--touch-target); }
.footer-links a:hover { color:var(--forest); text-decoration:underline; text-underline-offset:var(--space-1); }
.footer-bottom { margin-top:var(--space-6); padding-top:var(--space-5); border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:var(--space-3); font-size:var(--text-caption); color:var(--muted); }
.notification { position:fixed; bottom:var(--space-6); left:50%; transform:translateX(-50%); padding:var(--space-3) var(--space-5); background:var(--ink); color:var(--white); border-radius:var(--radius); z-index:30; font-size:var(--text-sm); width:max-content; max-width:calc(100vw - var(--space-10)); box-shadow:var(--shadow-popover); }

.hero { width:min(var(--content-max),calc(100% - var(--gutter) * 2)); margin-inline:auto; position:relative; padding:var(--space-10); background:var(--surface); border-radius:var(--radius-lg); }
.hero-img { width:100%; max-height:var(--detail-photo-height); border-radius:var(--radius); }
.hero-content { position:relative; padding-top:var(--space-6); max-width:var(--copy-max); }
.hero h1 { font-size:var(--text-display); line-height:1.2; letter-spacing:-.035em; }
.hero p { color:var(--muted); font-size:var(--text-lg); }
.photo-credit { font-size:var(--text-caption); color:var(--muted); }
.feature-band { margin-top:var(--space-16); padding:var(--space-10); background:var(--surface); color:var(--ink); border-radius:var(--radius-lg); display:flex; align-items:center; justify-content:space-between; gap:var(--space-8); }
.feature-band h2 { font-size:var(--text-section); line-height:1.4; margin:var(--space-2) 0; }
.feature-band p { color:var(--muted); font-size:var(--text-sm); max-width:var(--copy-max); }
.dest-intro { display:grid; grid-template-columns:1.7fr 1fr; gap:var(--space-10); margin-top:var(--space-8); }
.dest-intro h2 { font-size:var(--text-panel); margin:0 0 var(--space-3); }
.dest-intro p { color:var(--muted); font-size:var(--text-body); }
.area-tags { display:flex; gap:var(--space-2); flex-wrap:wrap; }
.area-tags span { padding:var(--space-1) var(--space-3); border:1px solid var(--line); border-radius:var(--radius-sm); font-size:var(--text-sm); }
.info-box { padding:var(--space-6); background:var(--surface); border-radius:var(--radius); }
.info-box p { font-size:var(--text-sm); }

@media (max-width:1100px) {
  :root { --gutter:24px; }
  .header { gap:var(--space-6); }
  .nav { gap:var(--space-5); }
  .header-right { gap:var(--space-4); }
  .saved-link span { display:none; }
  .home-hero { gap:var(--space-8); }
  .dest-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .priority-city-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-6); }
  .category-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .travel-story-grid,.airport-guide-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-hero-slide { bottom:calc(var(--touch-target) * 2 + var(--space-4)); }
  .hero-controls { flex-wrap:wrap; }
  .hero-controls>button[data-hero-pause] { flex-basis:100%; padding-inline:var(--space-1); }
}
@media (max-width:900px) {
  .home-hero { grid-template-columns:minmax(0,1fr); gap:var(--space-6); margin-top:var(--space-4); }
  .home-hero-content { max-width:680px; padding:var(--space-3) 0 0; }
  .home-hero-content h1 { max-width:18ch; }
  .home-hero-content>p { max-width:var(--copy-max); }
  .home-hero-media { min-height:var(--hero-media-height); }
  .home-hero-slide>img { object-position:center 48%; }
  .home-hero:not(:has(.home-hero-media)) { padding-bottom:calc(var(--hero-media-height) + var(--space-6)); }
  .home-hero>.home-hero-slide { top:auto; height:calc(var(--hero-media-height) - var(--touch-target) * 2 - var(--space-4)); left:0; }
  .home-hero>.hero-controls { left:0; }
  .trustline { align-items:flex-start; flex-direction:column; gap:var(--space-4); }
  .detail-layout { grid-template-columns:minmax(0,1fr); gap:var(--space-6); }
  .detail-layout>.booking-box,.detail-layout>.destination-booking { grid-column:1; grid-row:1; }
  .detail-layout>.detail-main,.detail-layout>.destination-main { grid-column:1; grid-row:2; }
  .booking-box { position:static; }
  .detail-layout>aside { top:auto; }
  .detail-photo { height:auto; aspect-ratio:16/9; }
  .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-top { flex-direction:column; gap:var(--space-6); }
  .footer-links { justify-content:flex-start; }
}
@media (max-width:640px) {
  :root { --gutter:20px; --text-brand:22px; --hero-media-height:460px; }
  .header { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0 var(--space-3); padding-top:var(--space-3); min-height:0; }
  .logo { gap:var(--space-2); }
  .logo .logo-mark { width:var(--space-8); height:var(--space-8); border-radius:var(--radius-sm); }
  .header-right { gap:var(--space-3); margin-left:0; }
  .languages summary { gap:var(--space-1); font-size:var(--text-sm); }
  .languages summary>svg { width:var(--space-4); height:var(--space-4); }
  .saved-link { gap:var(--space-1); }
  .saved-link svg { width:var(--space-5); }
  .nav { grid-column:1/-1; grid-row:2; display:flex; width:100%; justify-content:space-between; gap:var(--space-3); min-height:var(--touch-target); margin-top:var(--space-1); border-bottom:1px solid var(--line); font-size:var(--text-sm); }
  .nav a { flex:1; justify-content:flex-start; white-space:nowrap; }
  .nav a:last-child { justify-content:flex-end; }
  .nav a:nth-child(2) { justify-content:center; }
  .home-hero-content h1 { margin:var(--space-4) 0; }
  .home-hero-content>p { margin-bottom:var(--space-5); }
  .booking-planner { padding:var(--space-5); }
  .planner-head { flex-wrap:wrap; margin-bottom:var(--space-4); gap:var(--space-1); }
  .planner-form { grid-template-columns:minmax(0,1fr); }
  .planner-field select { padding-inline:var(--space-2); }
  .planner-proof { gap:var(--space-2) var(--space-3); }
  .hero-dots { flex:1; justify-content:space-between; }
  .hero-controls>button[data-hero-pause] { margin:0; flex-basis:100%; min-height:var(--touch-target); }
  .hero-destination .hero-attribution { max-width:130px; }
  .trustline { padding-block:var(--space-5); }
  .trust-facts { gap:var(--space-2) var(--space-4); }
  .partners { gap:var(--space-3); }
  .section { padding-top:var(--space-10); }
  .section:last-child { padding-bottom:var(--space-10); }
  .section-head { gap:var(--space-3); align-items:flex-start; flex-wrap:wrap; margin-bottom:var(--space-5); }
  .section-head>.text-link { margin-top:calc(var(--space-2) * -1); }
  .priority-city-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-6) var(--space-4); }
  .dest-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-6) var(--space-4); }
  .priority-city-copy h3,.dest-copy h3 { font-size:var(--text-lg); }
  .category-grid { gap:var(--space-2); }
  .category-tile { flex-direction:column; gap:var(--space-1); padding:var(--space-2) var(--space-1); }
  .product-grid { grid-template-columns:minmax(0,1fr); gap:var(--space-8); }
  .product-media { height:auto; aspect-ratio:3/2; }
  .filters { gap:var(--space-3); }
  .filter-search { flex-basis:100%; min-width:0; }
  .filters select { flex:1 1 100%; width:100%; max-width:none; }
  .discovery-search { flex-basis:100%; min-width:0; }
  .discovery-inputs select { flex:1; max-width:none; }
  .theme-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-6) var(--space-4); }
  .theme-photo-card h3 { font-size:var(--text-lg); }
  .theme-photo-card>div { padding-top:var(--space-3); }
  .europe-grid,.guide-grid,.research-list { grid-template-columns:minmax(0,1fr); }
  .travel-story-grid,.airport-guide-grid { gap:var(--space-6) var(--space-4); }
  .travel-story h3 { font-size:var(--text-card); }
  .korea-photo-links { grid-template-columns:minmax(0,1fr); gap:var(--space-4); }
  .home-themes { padding-top:var(--space-10); }
  .breadcrumbs { padding-block:var(--space-3); }
  .page-heading { padding-top:var(--space-2); }
  .dest-banner { height:320px; }
  .dest-banner-copy { left:var(--space-6); right:var(--space-6); bottom:var(--space-6); }
  .booking-box { padding:var(--space-5); }
  .booking-box h2 { font-size:var(--text-card); }
  .detail-nav { margin-block:var(--space-4); gap:0; padding-block:var(--space-1); }
  .detail-nav a { padding-inline:var(--space-3); }
  .detail-section { padding-block:var(--space-6); }
  .location-panel,.transport-panel { padding:var(--space-5); margin-top:var(--space-6); }
  .hub-grid { grid-template-columns:minmax(0,1fr); }
  .hub-card,.neighbourhood-card { padding:var(--space-4); }
  .transport-panel .detail-actions>.btn { width:100%; justify-content:center; }
  .detail-source { flex-direction:column; align-items:flex-start; margin-block:var(--space-5); }
  .footer { margin-top:var(--space-10); padding-top:var(--space-8); }
  .footer-links { gap:var(--space-2) var(--space-4); }
  .footer-bottom { margin-top:var(--space-5); padding-top:var(--space-4); }
  .feature-band { padding:var(--space-6); flex-direction:column; align-items:flex-start; gap:var(--space-3); margin-top:var(--space-10); }
  .dest-intro { grid-template-columns:minmax(0,1fr); gap:var(--space-5); }
}
@media (max-width:360px) {
  :root { --gutter:16px; }
  .header-right { gap:var(--space-2); }
  .nav { gap:var(--space-2); }
  .home-hero-content h1 { font-size:var(--space-8); }
  .booking-planner { padding:var(--space-4); }
  .planner-form { grid-template-columns:minmax(0,1fr); }
  .hero-controls { justify-content:space-between; }
  .hero-controls>button[data-hero-next] { margin-left:auto; }
  .hero-dots { order:3; flex-basis:100%; justify-content:center; }
  .hero-controls>button[data-hero-pause] { order:4; }
  .home-hero-slide { bottom:calc(var(--touch-target) * 3 + var(--space-6)); }
  .home-hero>.home-hero-slide { height:calc(var(--hero-media-height) - var(--touch-target) * 3 - var(--space-6)); }
  .hero-destination .hero-attribution { max-width:110px; }
  .dest-grid,.detail-facts { grid-template-columns:minmax(0,1fr); }
  .search-form { flex-wrap:wrap; }
  .search-form .btn { width:100%; }
  .local-name strong { min-width:100%; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
  button:active:not(:disabled),.btn:active { transform:none; }
  .destination-card:hover img,.priority-city-card:hover>img,.product-media>a:hover img,.theme-photo-card:hover>img { transform:none; }
}

.footer-settings{appearance:none;border:0;background:transparent;color:inherit;padding:0;font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.footer-settings:focus-visible{outline:3px solid #d59b38;outline-offset:3px}
