/* Regions: a departures board and a route map from Seoul; region pages reuse the open-now board. */
.regions-hero{padding:clamp(30px,4vw,60px) 0 clamp(30px,3vw,50px)}
.regions-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:clamp(24px,4vw,70px);align-items:center}
.regions-title{font-size:clamp(48px,6.3vw,108px);line-height:.88;max-width:none;overflow-wrap:normal;word-break:normal}
.regions-title em{font-family:var(--body);font-style:normal;text-transform:none;color:var(--orange);letter-spacing:-.02em}
.regions-head .lede{max-width:52ch}

.route-map{width:100%;height:auto;color:var(--ink);background:var(--paper);border:1.5px solid var(--ink);border-radius:8px}
.rm-line{stroke:var(--orange);stroke-width:3;stroke-linecap:round}
.rm-line.rm-soon{stroke:#a69f92;stroke-dasharray:6 7}
.rm-origin circle{fill:var(--ink)}
.rm-origin .rm-core{fill:var(--orange)}
.rm-origin text{font-family:var(--display);font-size:26px;fill:var(--ink);letter-spacing:.04em}
.rm-stop circle{fill:var(--paper);stroke:var(--ink);stroke-width:3}
.route-map text{paint-order:stroke;stroke:var(--paper);stroke-width:6px;stroke-linejoin:round}
.rm-stop text{font-family:var(--display);font-size:19px;fill:var(--ink);letter-spacing:.04em}
.rm-stop:hover circle,.rm-stop:focus-visible circle{fill:var(--orange)}
.rm-stop.rm-soon circle{stroke:#a69f92}
.rm-stop.rm-soon text{fill:#8f877a}

.dep-section{padding:0 0 clamp(40px,4vw,70px)}
.dep-board{background:#141312;color:var(--chalk);border-radius:10px;padding:clamp(16px,2vw,26px) clamp(14px,2vw,28px);box-shadow:0 30px 60px -30px rgba(20,19,18,.55)}
.dep-top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid rgba(243,240,232,.14)}
.dep-note{margin:0;font-size:12px;color:#a8a093}
.dep-head,.dep-row{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.4fr) 140px;gap:clamp(10px,1.4vw,20px);align-items:center}
.dep-head{padding:12px 12px 8px;font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#8f877a}
.dep-rows{list-style:none;margin:0;padding:0}
.dep-row{min-height:58px;padding:8px 12px;margin-top:6px;border-radius:4px;background:linear-gradient(180deg,#201f1d 0 50%,#1b1a18 50% 100%);font-family:var(--display);text-transform:uppercase;letter-spacing:.05em}
.dep-time{color:#f5c04a;font-size:clamp(17px,1.5vw,22px)}
.dep-dest{color:var(--chalk);font-size:clamp(20px,1.8vw,27px);text-decoration:none}
.dep-dest:hover{color:var(--orange)}
.dep-ko{font-family:var(--body);font-size:13px;color:#a8a093;text-transform:none;letter-spacing:0}
.dep-from,.dep-train{font-size:clamp(13px,1.1vw,16px);color:#cfc7b8}
.dep-status{justify-self:start;padding:6px 10px 5px;border-radius:3px;background:var(--orange);color:#141312;font-size:14px}
.dep-soon .dep-time,.dep-soon .dep-dest,.dep-soon .dep-from,.dep-soon .dep-train{color:#7d766b}
.dep-soon .dep-status{background:none;border:1.5px solid rgba(243,240,232,.2);color:#7d766b}

.dep-cards{padding:clamp(40px,4vw,70px) 0 clamp(60px,6vw,100px);background:var(--paper);border-top:1px solid var(--ink)}
.dep-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.dep-card{display:flex;flex-direction:column;background:var(--chalk);border:1.5px solid var(--ink);border-radius:8px;overflow:hidden;color:var(--ink);text-decoration:none;transition:transform .25s ease,box-shadow .25s ease}
.dep-card:hover{transform:translateY(-5px);box-shadow:0 22px 34px -20px rgba(25,24,23,.5)}
.dep-card-photo{display:block;aspect-ratio:4/3;overflow:hidden}
.dep-card-photo img{width:100%;height:100%;object-fit:cover;display:block}
.dep-card-body{display:flex;flex-direction:column;gap:8px;padding:18px}
.dep-card-body small{font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.dep-card-body strong{font-family:var(--display);font-weight:400;font-size:34px;line-height:1;text-transform:uppercase}
.dep-card-body span{font-size:14px;line-height:1.6;color:#575149}
.dep-card-body em{font-style:normal;font-size:12px;font-weight:600;color:#a93618}

/* Region page */
.region-hero .breadcrumbs{margin-bottom:clamp(18px,2.4vw,32px)}
.open-now[data-phase=night] .breadcrumbs,.open-now[data-phase=night] .breadcrumbs a{color:var(--chalk)}
.region-name{font-size:clamp(56px,10vw,170px);overflow-wrap:normal;word-break:normal}
.region-hero .ticket-ko{color:var(--on-muted);margin:6px 0 0}
.region-photo{margin-top:clamp(30px,4vw,56px)}
.region-grid{padding-top:clamp(20px,3vw,40px)}
.region-unesco{display:inline-block;padding:6px 12px;border:1.5px solid var(--ink);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.region-sites{list-style:none;padding:0;margin:20px 0}
.region-sites>li{padding:20px 0;border-top:1px solid var(--line)}
.region-sites h3{font-family:var(--display);font-weight:400;font-size:28px;text-transform:uppercase;margin:0 0 6px}
.region-sites h3 .ticket-ko{display:inline;font-family:var(--body);font-size:14px;text-transform:none;margin-left:6px}
.region-hours{font-weight:600}
.region-fee{color:#575149;font-size:15px}
.region-sites .ticket-status[data-state=open]{background:var(--orange);border-color:var(--orange)}
.region-day{list-style:none;padding:0;margin:20px 0;border-left:2px solid var(--ink)}
.region-day li{display:grid;grid-template-columns:80px minmax(0,1fr);gap:16px;padding:0 0 22px 20px;position:relative}
.region-day li::before{content:'';position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--orange)}
.region-day-time{font-family:var(--display);font-size:24px;line-height:1}
.region-day p{margin:4px 0 0;font-size:15px;color:#575149}

@media(max-width:1100px){.dep-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.regions-head{grid-template-columns:1fr}
  .dep-head{display:none}
  .dep-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"dest status" "time time" "from train";gap:4px 12px;padding:12px}
  .dep-dest{grid-area:dest}.dep-status{grid-area:status;justify-self:end}.dep-time{grid-area:time}.dep-from{grid-area:from}.dep-train{grid-area:train}}
@media(max-width:560px){.dep-card-grid{grid-template-columns:1fr}.dep-row{grid-template-areas:"dest status" "time time" "from from" "train train"}}
@media(prefers-reduced-motion:reduce){.dep-card:hover{transform:none}}
.region-nature{margin-top:18px;padding:14px 16px;border-left:3px solid var(--ink);font-size:15px}
.rm-line.rm-flight{stroke-dasharray:1 9;stroke-linecap:round;stroke-width:3}
.region-sites .ticket-ko{white-space:nowrap}
