/* 길찾기·추천 전용 화면·프로그램 요약 카드. --isa-* 토큰만 쓴다(DESIGN.md). C-1 계획 토큰(--isa-warn·--isa-ok·--isa-radius-pill 등)은 디자인 패널 전용이라 여기서 쓰지 않는다(tests/form-accent-c12). 터치 목표 44px, 포커스 링은 style.css 공통 규칙. */
.route-finder, .programs-route, .forms-route-places { color:var(--isa-ink,#000); line-height:1.55; overflow-wrap:anywhere; }
.route-finder { max-width:1200px; margin:0 auto; padding:0 24px 96px; }
.route-finder h1 { font-family:var(--isa-font-display,serif); font-weight:500; font-size:2rem; letter-spacing:-.02em; color:var(--isa-ink,#000); margin:28px 0 8px; }
.route-finder h2, .programs-route h2, .forms-route-places h2 { font-size:1.125rem; color:var(--isa-ink,#000); margin:0 0 12px; }
.route-finder h3, .programs-route h3 { font-size:1rem; margin:24px 0 10px; color:var(--isa-ink,#000); }
.route-lead { max-width:46em; color:var(--isa-muted,#404040); margin:0 0 24px; }
.route-help, .route-place-meta, .route-place-address { font-size:.8125rem; color:var(--isa-muted,#404040); margin:4px 0 0; }
.route-note { padding:10px 14px; border-left:3px solid var(--isa-secondary,#4cccbe); background:var(--isa-surface-2,#f4f4f4); color:var(--isa-ink,#000); font-size:.9375rem; margin:12px 0; }
.route-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.route-locales { display:flex; gap:4px; }
.route-locales a { display:inline-flex; align-items:center; min-height:44px; padding:8px 10px; color:var(--isa-muted,#404040); text-decoration:none; font-size:.875rem; }
.route-locales a[aria-current=true] { color:var(--isa-ink,#000); font-weight:700; text-decoration:underline; text-underline-offset:4px; }
/* 폼 */
.route-form { background:var(--isa-surface,#fff); border:1px solid var(--isa-line,#d8e0e5); padding:20px; margin:0 0 28px; }
.route-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 24px; }
.route-field-wide { grid-column:1 / -1; }
.route-field label { display:block; font-weight:600; font-size:.9375rem; margin:0 0 6px; }
.route-field input, .route-field select { width:100%; min-height:46px; font:inherit; border:1px solid var(--isa-field-border,#0c5773); border-radius:var(--isa-radius-sm,8px); padding:10px 12px; background:var(--isa-surface,#fff); color:var(--isa-ink,#000); }
.route-checks { display:flex; flex-wrap:wrap; gap:8px 20px; align-items:end; }
.route-check { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-weight:500; margin:0; }
.route-check input { width:22px; height:22px; min-height:0; margin:0; }
.route-sorts { border:0; padding:0; margin:20px 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 16px; }
.route-sorts legend { font-weight:600; font-size:.9375rem; padding:0; margin-bottom:8px; }
.route-sort { display:grid; grid-template-columns:22px minmax(0,1fr); gap:2px 8px; align-items:center; min-height:44px; padding:6px 0; font-weight:500; margin:0; }
.route-sort input { width:22px; height:22px; min-height:0; margin:0; grid-row:1 / span 2; }
.route-sort small { grid-column:2; color:var(--isa-muted,#404040); font-size:.75rem; font-weight:400; }
.route-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:16px; }
.route-submit { min-height:48px; padding:12px 24px; border:0; border-radius:2px; background:var(--isa-primary,#0c5773); color:var(--isa-on-primary,#fff); font:inherit; font-weight:700; cursor:pointer; }
.route-submit:hover { text-decoration:underline; }
.route-reset { display:inline-flex; align-items:center; min-height:44px; padding:0 8px; color:var(--isa-muted,#404040); }
/* 결과 */
.route-results, .route-map, .route-guide-section, .route-cart { margin-top:32px; padding-top:20px; border-top:1px solid var(--isa-ink,#000); }
.route-options, .route-place-list, .route-cart-list, .route-choose ul { list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.route-option, .route-place, .route-cart-list li { background:var(--isa-surface,#fff); border:1px solid var(--isa-line,#d8e0e5); padding:16px; }
.route-option h4, .route-place h3 { margin:0 0 6px; font-size:1.0625rem; color:var(--isa-ink,#000); }
.route-option[data-kind=direct] { border-left:4px solid var(--isa-secondary,#4cccbe); }
.route-option[data-kind=stop] { border-left:4px solid var(--isa-line-strong,#0c5773); }
.route-option[data-kind=ground] { border-left:4px solid var(--isa-accent,#ffc600); }
.route-summary { display:flex; flex-wrap:wrap; gap:6px 16px; margin:0 0 8px; font-weight:600; font-size:.9375rem; color:var(--isa-ink,#000); }
.route-legs { list-style:none; padding:0; margin:0; display:grid; gap:4px; font-size:.9375rem; }
.route-legs li { display:flex; flex-wrap:wrap; gap:4px 8px; align-items:baseline; }
.route-legs li::before { content:'✈'; color:var(--isa-muted,#404040); width:1.2em; }
.route-legs li[data-kind=ground]::before { content:'⇢'; }
.route-legs small { color:var(--isa-muted,#404040); }
.route-inbound-title { margin:10px 0 4px; font-size:.8125rem; font-weight:600; color:var(--isa-muted,#404040); }
.route-warnings { list-style:none; padding:0; margin:10px 0 0; display:grid; gap:4px; }
.route-warnings li { padding:8px 12px; background:var(--isa-surface-2,#f4f4f4); color:var(--isa-ink,#000); border-left:3px solid var(--isa-accent,#ffc600); font-size:.875rem; }
.route-warnings-top { margin-bottom:12px; }
.route-option .route-actions { margin-top:12px; }
.route-buy { display:inline-flex; align-items:center; min-height:44px; padding:10px 18px; background:var(--isa-primary,#0c5773); color:var(--isa-on-primary,#fff); border-radius:2px; text-decoration:none; font-weight:700; }
.route-buy:hover { text-decoration:underline; color:var(--isa-on-primary,#fff); }
.route-cart-form { display:inline; margin:0; }
.route-cart-form button { min-height:44px; padding:10px 16px; }
.route-narrow { font-size:.875rem; font-weight:500; margin-left:8px; }
.route-choose ul li a { display:inline-flex; align-items:center; min-height:44px; }
.route-empty { color:var(--isa-muted,#404040); font-size:.9375rem; }
/* 지도 */
.route-map iframe { display:block; width:100%; height:420px; border:1px solid var(--isa-line,#d8e0e5); background:var(--isa-surface-2,#f4f4f4); }
/* 추천 전용 화면(/cloud/route/guide/) */
.route-filters { display:flex; flex-wrap:wrap; gap:6px; margin:12px 0; }
.route-filter { display:inline-flex; align-items:center; min-height:44px; padding:8px 16px; border:1px solid var(--isa-line-strong,#0c5773); border-radius:var(--isa-radius-sm,8px); color:var(--isa-ink,#000); text-decoration:none; font-weight:600; background:var(--isa-surface,#fff); cursor:pointer; font:inherit; }
.route-filter.is-active, .route-filter[aria-current=true], .route-filter[aria-current=page], .route-filter[aria-pressed=true] { background:var(--isa-primary,#0c5773); color:var(--isa-on-primary,#fff); }
.route-place-list { grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); }
.route-place-rating { margin:6px 0 0; font-weight:600; font-size:.9375rem; }
.route-place-rating::before { content:'★ '; color:var(--isa-accent,#ffc600); }
.route-place-local { margin:8px 0 0; padding:8px 10px; background:var(--isa-surface-2,#f4f4f4); font-size:.875rem; }
.route-place-local b { color:var(--isa-heading,#0c5773); margin-right:4px; }
.route-place a { display:inline-flex; align-items:center; min-height:44px; font-size:.875rem; }
/* 장바구니 */
.route-cart-list li { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; }
.route-cart-title { font-weight:600; }
.route-cart-list small { color:var(--isa-muted,#404040); }
/* 프로그램 상세·접수증 아래 "이 지역 한눈에" 요약 카드. 로딩 중에도 같은 최소 높이를 잡아 레이아웃이 튀지 않게 한다. */
.programs-route { margin-top:48px; max-width:42em; min-height:11rem; padding:16px; background:var(--isa-surface,#fff); border:1px solid var(--isa-line,#d8e0e5); }
.forms-route-places { margin-top:24px; padding:16px; background:var(--isa-surface,#fff); border:1px solid var(--isa-line,#d8e0e5); }
.route-summary-list { list-style:none; padding:0; margin:8px 0 0; display:grid; gap:6px; font-size:.9375rem; }
.route-summary-list li { padding:6px 0; border-bottom:1px solid var(--isa-line,#d8e0e5); }
.route-summary-list li:last-child { border-bottom:0; }
.route-skeleton { height:1.4em; margin:12px 0; background:var(--isa-surface-2,#f4f4f4); }
.programs-route .route-actions, .forms-route-places .route-actions { margin-top:14px; }
.route-more, .route-flight { text-decoration:none; }
.route-more:hover, .route-flight:hover { text-decoration:underline; }
.route-more { display:inline-flex; align-items:center; min-height:44px; padding:10px 18px; background:var(--isa-primary,#0c5773); color:var(--isa-on-primary,#fff); border-radius:2px; font-weight:700; }
.route-more:hover { color:var(--isa-on-primary,#fff); }
.route-guide-actions { margin:0 0 16px; }
.route-guide-link { margin:16px 0 0; }
.route-guide-link a, .route-guide-more { display:inline-flex; align-items:center; min-height:44px; font-weight:600; }
.route-guide-country h2 { margin:24px 0 8px; }
.route-city-list { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:8px; }
.route-card-link { display:inline-flex; align-items:center; min-height:44px; font-size:.875rem; }
@media (max-width:760px) {
 .route-finder { padding:0 16px 64px; }
 .route-grid, .route-sorts { grid-template-columns:minmax(0,1fr); }
 .programs-route { min-height:13rem; }
 .route-map iframe { height:300px; }
 .route-finder h1 { font-size:1.6rem; }
}
