@font-face { font-family: NanumSquare; src: url('../fonts/NanumSquareR.woff') format('woff'); font-weight: 400; font-display: swap; }
@font-face { font-family: NanumSquare; src: url('../fonts/NanumSquareB.woff') format('woff'); font-weight: 700; font-display: swap; }
@font-face { font-family: NanumSquare; src: url('../fonts/NanumSquareEB.woff') format('woff'); font-weight: 800; font-display: swap; }

:root {
  --orange: #f36b21; --orange-dark: #d94f0b; --navy: #071b2c; --ink: #0b1726; --white: #f8f8f8; --muted: #7e8791;
  --r-site-header-x: 0%; --r-site-header-y: 0%; --r-site-header-w: 100%; --r-site-header-h: 7.03%;
  --r-hero-airport-photo-x: 0%; --r-hero-airport-photo-y: 7.03%; --r-hero-airport-photo-w: 60.09%; --r-hero-airport-photo-h: 54.49%;
  --r-hero-heading-x: 4.56%; --r-hero-heading-y: 15.82%; --r-hero-heading-w: 35.16%; --r-hero-heading-h: 12.30%;
  --r-hero-kicker-x: 4.56%; --r-hero-kicker-y: 12.30%; --r-hero-kicker-w: 22.14%; --r-hero-kicker-h: 2.34%;
  --r-hero-subcopy-x: 4.56%; --r-hero-subcopy-y: 29.49%; --r-hero-subcopy-w: 32.55%; --r-hero-subcopy-h: 2.93%;
  --r-route-search-x: 4.56%; --r-route-search-y: 34.28%; --r-route-search-w: 48.96%; --r-route-search-h: 7.32%;
  --r-popular-destinations-x: 4.56%; --r-popular-destinations-y: 43.07%; --r-popular-destinations-w: 45.57%; --r-popular-destinations-h: 3.32%;
  --r-departure-board-x: 60.03%; --r-departure-board-y: 10.16%; --r-departure-board-w: 38.02%; --r-departure-board-h: 35.64%;
  --r-departure-board-title-x: 62.57%; --r-departure-board-title-y: 15.82%; --r-departure-board-title-w: 26.69%; --r-departure-board-title-h: 4.49%;
  --r-departure-board-rows-x: 60.61%; --r-departure-board-rows-y: 22.95%; --r-departure-board-rows-w: 35.81%; --r-departure-board-rows-h: 21.19%;
  --r-hero-trust-strip-x: 60.03%; --r-hero-trust-strip-y: 46.88%; --r-hero-trust-strip-w: 38.02%; --r-hero-trust-strip-h: 11.91%;
  --r-recommendation-heading-x: 4.56%; --r-recommendation-heading-y: 63.77%; --r-recommendation-heading-w: 36.46%; --r-recommendation-heading-h: 6.84%;
  --r-osaka-photo-x: 4.69%; --r-osaka-photo-y: 72.46%; --r-osaka-photo-w: 29.17%; --r-osaka-photo-h: 20.02%;
  --r-danang-photo-x: 35.55%; --r-danang-photo-y: 72.46%; --r-danang-photo-w: 28.97%; --r-danang-photo-h: 20.02%;
  --r-zhangjiajie-photo-x: 66.21%; --r-zhangjiajie-photo-y: 72.46%; --r-zhangjiajie-photo-w: 29.17%; --r-zhangjiajie-photo-h: 20.02%;
  --r-osaka-card-copy-x: 5.66%; --r-osaka-card-copy-y: 92.48%; --r-osaka-card-copy-w: 26.56%; --r-osaka-card-copy-h: 5.2%;
  --r-danang-card-copy-x: 36.59%; --r-danang-card-copy-y: 92.48%; --r-danang-card-copy-w: 26.30%; --r-danang-card-copy-h: 5.2%;
  --r-zhangjiajie-card-copy-x: 67.19%; --r-zhangjiajie-card-copy-y: 92.48%; --r-zhangjiajie-card-copy-w: 26.63%; --r-zhangjiajie-card-copy-h: 5.2%;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--white); font-family: NanumSquare, sans-serif; }
body, button, input, select { font: inherit; }
a { color: inherit; text-decoration: none; }
button, select, input { cursor: pointer; }
::selection { color: #fff; background: var(--orange); }
:focus-visible { outline: 3px solid #ff9d63; outline-offset: 3px; }
.skip-link { position: fixed; z-index: 100; top: 10px; left: 10px; padding: 12px 16px; color: #fff; background: var(--navy); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.comp-frame { position: relative; width: 100%; min-width: 1180px; aspect-ratio: 1536 / 1024; overflow: hidden; background: var(--white); }
.plate { position: absolute; display: block; width: 100%; height: 100%; object-fit: cover; }

.r-site-header { position: absolute; left: var(--r-site-header-x); top: var(--r-site-header-y); width: var(--r-site-header-w); height: var(--r-site-header-h); }
.r-hero-airport-photo { left: var(--r-hero-airport-photo-x); top: var(--r-hero-airport-photo-y); width: var(--r-hero-airport-photo-w); height: var(--r-hero-airport-photo-h); }
.r-hero-heading { position: absolute; left: var(--r-hero-heading-x); top: var(--r-hero-heading-y); width: var(--r-hero-heading-w); height: var(--r-hero-heading-h); }
.r-hero-kicker { position: absolute; left: var(--r-hero-kicker-x); top: var(--r-hero-kicker-y); width: var(--r-hero-kicker-w); height: var(--r-hero-kicker-h); }
.r-hero-subcopy { position: absolute; left: var(--r-hero-subcopy-x); top: var(--r-hero-subcopy-y); width: var(--r-hero-subcopy-w); height: var(--r-hero-subcopy-h); }
.r-route-search { position: absolute; left: var(--r-route-search-x); top: var(--r-route-search-y); width: var(--r-route-search-w); height: var(--r-route-search-h); }
.r-popular-destinations { position: absolute; left: var(--r-popular-destinations-x); top: var(--r-popular-destinations-y); width: var(--r-popular-destinations-w); height: var(--r-popular-destinations-h); }
.r-departure-board { position: absolute; left: var(--r-departure-board-x); top: var(--r-departure-board-y); width: var(--r-departure-board-w); height: var(--r-departure-board-h); }
.r-hero-trust-strip { position: absolute; left: var(--r-hero-trust-strip-x); top: var(--r-hero-trust-strip-y); width: var(--r-hero-trust-strip-w); height: var(--r-hero-trust-strip-h); }
.r-recommendation-heading { position: absolute; left: var(--r-recommendation-heading-x); top: var(--r-recommendation-heading-y); width: var(--r-recommendation-heading-w); height: var(--r-recommendation-heading-h); }
.r-osaka-photo { left: var(--r-osaka-photo-x); top: var(--r-osaka-photo-y); width: var(--r-osaka-photo-w); height: var(--r-osaka-photo-h); }
.r-danang-photo { left: var(--r-danang-photo-x); top: var(--r-danang-photo-y); width: var(--r-danang-photo-w); height: var(--r-danang-photo-h); }
.r-zhangjiajie-photo { left: var(--r-zhangjiajie-photo-x); top: var(--r-zhangjiajie-photo-y); width: var(--r-zhangjiajie-photo-w); height: var(--r-zhangjiajie-photo-h); }
.r-osaka-card-copy { position: absolute; left: var(--r-osaka-card-copy-x); top: var(--r-osaka-card-copy-y); width: var(--r-osaka-card-copy-w); height: var(--r-osaka-card-copy-h); }
.r-danang-card-copy { position: absolute; left: var(--r-danang-card-copy-x); top: var(--r-danang-card-copy-y); width: var(--r-danang-card-copy-w); height: var(--r-danang-card-copy-h); }
.r-zhangjiajie-card-copy { position: absolute; left: var(--r-zhangjiajie-card-copy-x); top: var(--r-zhangjiajie-card-copy-y); width: var(--r-zhangjiajie-card-copy-w); height: var(--r-zhangjiajie-card-copy-h); }

.site-header { z-index: 20; display: flex; align-items: center; padding: 0 4.56%; background: #fff; }
.brand { display: flex; align-items: center; gap: 16px; min-width: 360px; }
.brand img { width: clamp(120px, 8.55vw, 131px); height: auto; }
.brand span { display: grid; gap: 4px; }
.brand strong { font-size: clamp(12px, 1vw, 15px); white-space: nowrap; }
.brand small { color: #59616a; font-size: clamp(9px, .72vw, 11px); }
.site-header nav { display: flex; align-items: center; justify-content: center; gap: clamp(22px, 2.4vw, 38px); flex: 1; font-weight: 700; font-size: clamp(12px, .94vw, 15px); }
.site-header nav a { position: relative; padding: 24px 0; white-space: nowrap; }
.site-header nav a::after { position: absolute; right: 0; bottom: 17px; left: 0; height: 2px; background: var(--orange); content: ''; transform: scaleX(0); transform-origin: left; transition: transform .2s ease-out; }
.site-header nav a:hover::after, .site-header nav a:focus-visible::after { transform: scaleX(1); }
.header-tools { display: flex; align-items: center; gap: 17px; margin-left: 36px; }
.phone { display: flex; align-items: center; gap: 9px; color: var(--orange); }
.phone svg { width: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.phone span { display: grid; gap: 2px; }
.phone strong { font-size: clamp(12px, 1vw, 16px); }
.phone small { color: #4e555c; font-size: 9px; }
.icon-button { display: grid; width: 38px; height: 44px; padding: 10px; border: 0; color: var(--ink); background: transparent; place-items: center; }
.icon-button svg { width: 21px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 1.8; }

.hero { position: absolute; inset: 0; color: #fff; }
.hero::before { position: absolute; z-index: 0; left: 0; top: 7.03%; width: 100%; height: 54.49%; background: var(--navy); content: ''; }
.hero-shade { position: absolute; z-index: 1; left: 0; top: 7.03%; width: 60.09%; height: 54.49%; background: rgba(2, 14, 24, .54); }
.hero .r-hero-airport-photo { z-index: 1; }
.hero-kicker { z-index: 2; margin: 0; color: #fff; font-size: clamp(10px, .91vw, 14px); font-weight: 400; letter-spacing: .01em; line-height: 1.35; }
.hero-heading { z-index: 2; margin: 0; color: #fff; font-family: NanumSquare, sans-serif; font-size: clamp(40px, 3.6vw, 55px); font-weight: 800; letter-spacing: -.035em; line-height: 1.12; }
.hero-heading strong { color: var(--orange); font-weight: inherit; }
.hero-second-line { white-space: nowrap; }
.hero-subcopy { z-index: 2; margin: 0; color: #edf1f5; font-size: clamp(13px, 1.14vw, 18px); line-height: 1.55; white-space: nowrap; }

.route-search { z-index: 3; display: grid; grid-template-columns: 1.32fr 1.14fr 1fr 1fr; overflow: hidden; border-radius: 5px; background: #fff; box-shadow: 0 14px 30px rgba(0, 0, 0, .22); }
.route-search label { display: grid; align-content: center; gap: 6px; min-width: 0; padding: 0 20px; border-right: 1px solid #e2e5e8; color: var(--ink); }
.route-search label span { font-size: clamp(9px, .76vw, 12px); font-weight: 800; }
.route-search select, .route-search input { width: 100%; min-width: 0; height: 27px; padding: 0 22px 0 0; border: 0; color: #68717c; background: transparent; font-size: clamp(10px, .88vw, 14px); outline: 0; }
.route-search input::-webkit-calendar-picker-indicator { filter: invert(43%) sepia(97%) saturate(2100%) hue-rotate(350deg); }
.route-search button { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 8px; border: 0; border-radius: 3px; color: #fff; background: var(--orange); font-size: clamp(10px, .8vw, 13px); font-weight: 800; white-space: nowrap; transition: background .2s ease-out, transform .2s ease-out; }
.route-search button:hover { background: var(--orange-dark); transform: translateY(-1px); }
.route-search button svg { width: 22px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 2; }
.popular { z-index: 3; display: flex; align-items: center; gap: 4px; color: #fff; background: rgba(126,73,42,.28); font-size: 10px; white-space: nowrap; }
.popular > span { margin-right: 12px; font-size: 11px; font-weight: 700; }
.popular a { padding: 5px 13px; border: 1px solid rgba(255,255,255,.52); border-radius: 999px; background: rgba(7, 27, 44, .4); transition: background .2s ease-out, border-color .2s ease-out; }
.popular a:hover { border-color: var(--orange); background: rgba(243,107,33,.86); }

.departure-board { z-index: 4; overflow: hidden; border: 1px solid #22364b; color: #f4f7fa; background: rgba(4, 17, 29, .94); box-shadow: 0 14px 32px rgba(0, 0, 0, .34); }
.js .departure-board { transition: clip-path .72s cubic-bezier(.16,1,.3,1), box-shadow .25s ease-out; }
.js:not(.is-ready) .departure-board { clip-path: inset(0 100% 0 0); }
.js.is-ready .departure-board { clip-path: inset(0); }
.board-title { display: flex; align-items: center; gap: 13px; height: 31%; padding: 10% 5% 3%; border-bottom: 1px solid #2d4052; }
.board-title svg { width: 30px; fill: var(--orange); }
.board-title strong { font-size: clamp(24px, 2.02vw, 31px); letter-spacing: -.03em; }
.board-title span { margin-left: 10px; font-size: clamp(13px, 1.14vw, 17.5px); font-weight: 700; letter-spacing: .03em; white-space: nowrap; }
.board-columns, .flight-row { display: grid; grid-template-columns: .75fr 1fr .95fr .86fr 1.55fr; align-items: center; }
.board-columns { height: 11%; padding: 0 4%; border-bottom: 1px solid #293b4c; color: #b6c0c9; font-size: clamp(8px, .72vw, 11px); }
.board-rows { position: static; height: 58%; }
.flight-row { height: 25%; padding: 0 4%; border-bottom: 1px solid #293b4c; color: #d8dee5; font-size: clamp(9px, .82vw, 13px); transition: background .18s ease-out; }
.departure-board.has-active .flight-row:not(.is-active) { opacity: .58; }
.flight-row.is-active { background: #152a3d; box-shadow: inset 3px 0 var(--orange); }
.flight-row:last-child { border-bottom: 0; }
.flight-row:hover, .flight-row:focus-visible { background: #152a3d; }
.flight-row strong { color: #fff; font-size: clamp(12px, 1.05vw, 16px); }
.flight-row b { justify-self: start; padding: 7px 9px; border-radius: 3px; color: #fff; background: var(--orange); font-size: clamp(8px, .7vw, 11px); white-space: nowrap; }
.flight-row em { overflow: hidden; color: #d0d6dc; font-size: clamp(8px, .72vw, 11px); font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.trust-strip { z-index: 4; display: grid; grid-template-columns: repeat(4, 1fr); background-color: rgba(5,18,29,.6); background-image: url('../plates/trust-strip-photo.png'); background-position: center; background-size: cover; background-blend-mode: multiply; }
.trust-strip > div { display: flex; align-items: center; justify-content: center; gap: 10px; border-right: 1px solid rgba(255,255,255,.13); color: #fff; font-size: clamp(9px, .76vw, 12px); line-height: 1.55; }
.trust-strip > div:last-child { border-right: 0; }
.trust-strip svg { width: 26px; fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }

.recommendations { position: absolute; inset: 0; color: var(--ink); }
.recommendation-heading { z-index: 2; }
.recommendation-heading h2 { margin: 0 0 6px; font-size: clamp(20px, 1.8vw, 28px); letter-spacing: -.035em; line-height: 1.15; }
.recommendation-heading p { margin: 0; color: #7a838c; font-size: clamp(9px, .76vw, 12px); }
.view-all { position: absolute; z-index: 2; right: 4.7%; top: 68.8%; color: var(--orange); font-size: clamp(9px, .78vw, 12px); font-weight: 700; }
.trip-card > a { position: absolute; inset: 0; }
.trip-card .plate { filter: saturate(.92); transition: filter .25s ease-out, transform .35s cubic-bezier(.2,.8,.2,1); }
.trip-card > a:hover .plate { filter: saturate(1.07); transform: scale(1.018); }
.osaka-card > a { left: var(--r-osaka-photo-x); top: var(--r-osaka-photo-y); width: var(--r-osaka-photo-w); height: var(--r-osaka-photo-h); overflow: hidden; }
.danang-card > a { left: var(--r-danang-photo-x); top: var(--r-danang-photo-y); width: var(--r-danang-photo-w); height: var(--r-danang-photo-h); overflow: hidden; }
.zhangjiajie-card > a { left: var(--r-zhangjiajie-photo-x); top: var(--r-zhangjiajie-photo-y); width: var(--r-zhangjiajie-photo-w); height: var(--r-zhangjiajie-photo-h); overflow: hidden; }
.trip-card > a .plate { inset: 0; width: 100%; height: 100%; }
.trip-card > a::after { position: absolute; inset: 42% 0 0; background: rgba(5, 15, 24, .48); content: ''; }
.status, .country { position: absolute; z-index: 2; top: 12px; padding: 7px 10px; color: #fff; font-size: clamp(8px, .72vw, 11px); font-weight: 800; }
.status { left: 14px; background: var(--orange); }
.status.available { background: #ef741f; }
.country { right: 14px; background: rgba(7,27,44,.62); }
.photo-copy { position: absolute; z-index: 2; right: 18px; bottom: 17px; left: 18px; color: #fff; }
.photo-copy h3 { margin: 0 0 6px; font-size: clamp(19px, 1.75vw, 27px); letter-spacing: -.03em; }
.photo-copy p { overflow: hidden; margin: 0; font-size: clamp(9px, .76vw, 12px); text-overflow: ellipsis; white-space: nowrap; }
.card-meta { z-index: 3; display: grid; grid-template-columns: 1.5fr 1fr auto; align-items: center; color: #253241; background: #fff; font-size: clamp(8px, .72vw, 11px); }
.card-meta span:nth-child(2) { text-align: center; }
.card-meta strong { color: var(--orange); font-size: clamp(14px, 1.35vw, 21px); text-align: right; }
.data-note { position: absolute; right: 4.7%; bottom: 1.2%; margin: 0; color: #6c7680; font-size: 10px; }

.below-fold { background: #fff; }
.schedule-section, .airport-guide { padding: 110px max(5vw, calc((100vw - 1392px) / 2)); }
.section-intro, .guide-heading { display: grid; grid-template-columns: 1.1fr 1fr; align-items: end; gap: 12px 60px; margin-bottom: 44px; }
.section-intro h2, .guide-heading h2 { margin: 0; font-size: clamp(32px, 3vw, 48px); letter-spacing: -.04em; line-height: 1.18; }
.section-intro > span, .guide-heading > span { max-width: 55ch; color: #63707d; font-size: 15px; line-height: 1.8; }
.schedule-list { border-top: 2px solid var(--ink); }
.schedule-list > a { display: grid; grid-template-columns: 150px 1.35fr .65fr .65fr .7fr; align-items: center; min-height: 126px; border-bottom: 1px solid #ccd3d9; transition: color .2s ease-out, background .2s ease-out; }
.schedule-list > a:hover { color: var(--orange); background: #fff7f1; }
.schedule-list time { display: flex; align-items: center; gap: 16px; font-variant-numeric: tabular-nums; }
.schedule-list time b { font-size: 48px; letter-spacing: -.06em; }
.schedule-list time span { color: #697580; font-size: 12px; }
.schedule-list div { display: grid; gap: 7px; }
.schedule-list div span { color: #697580; font-size: 12px; letter-spacing: .12em; }
.schedule-list div strong { font-size: 25px; }
.schedule-list > a > p { margin: 0; color: #51606d; }
.schedule-list em { justify-self: start; padding: 8px 11px; color: #fff; background: var(--orange); font-size: 12px; font-style: normal; font-weight: 700; }
.schedule-list > a > strong { justify-self: end; color: var(--orange); font-size: 21px; font-variant-numeric: tabular-nums; }
.sample-note { margin: 14px 0 0; color: #7b858e; font-size: 11px; text-align: right; }

.airport-guide { color: #fff; background: var(--navy); }
.guide-heading > span { color: #b3bec8; }
.guide-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #34485b; border-bottom: 1px solid #34485b; }
.guide-grid a { position: relative; display: flex; align-items: center; min-height: 190px; padding: 34px; border-right: 1px solid #34485b; transition: background .2s ease-out; }
.guide-grid a:last-child { border-right: 0; }
.guide-grid a:hover { background: #102a40; }
.guide-grid svg { width: 45px; margin-right: 24px; fill: none; stroke: var(--orange); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; }
.guide-grid span { display: grid; gap: 9px; }
.guide-grid b { font-size: 20px; }
.guide-grid small { color: #aeb9c3; font-size: 13px; }

.consultation { display: grid; grid-template-columns: 1.25fr 1fr auto; align-items: center; gap: 50px; padding: 82px max(5vw, calc((100vw - 1392px) / 2)); color: var(--ink); background: #f3eee8; }
.consultation h2 { margin: 0; font-size: clamp(27px, 2.45vw, 39px); letter-spacing: -.04em; line-height: 1.3; }
.consultation p { margin: 0; color: #5e6872; font-size: 15px; line-height: 1.8; }
.consultation > a { display: flex; align-items: center; gap: 12px; padding: 18px 24px; color: #fff; background: var(--orange); font-size: 18px; font-weight: 800; white-space: nowrap; transition: background .2s ease-out, transform .2s ease-out; }
.consultation > a:hover { background: var(--orange-dark); transform: translateY(-2px); }
.consultation > a svg { width: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; }

.site-footer { display: grid; grid-template-columns: 1fr auto; gap: 34px 60px; padding: 60px max(5vw, calc((100vw - 1392px) / 2)); color: #9eabb6; background: #06131f; font-size: 12px; }
.site-footer > div { display: flex; align-items: center; gap: 22px; }
.site-footer img { width: 145px; }
.site-footer nav { display: flex; align-items: center; gap: 24px; color: #d8dfe5; }
.site-footer > p { grid-column: 1 / -1; margin: 0; padding-top: 26px; border-top: 1px solid #263746; }
.site-notice { position: fixed; z-index: 90; right: 24px; bottom: 24px; display: flex; align-items: flex-start; width: min(440px, calc(100vw - 32px)); padding: 20px 22px; color: #fff; background: var(--navy); box-shadow: 0 16px 38px rgba(7,27,44,.28); }
.site-notice strong { display: block; margin-bottom: 6px; font-size: 17px; }
.site-notice p { margin: 0; color: #c8d4dc; line-height: 1.55; }
.site-notice a { display: inline-block; margin-top: 10px; color: var(--orange); font-weight: 800; }
.site-notice button { width: 42px; height: 42px; margin: -10px -12px 0 10px; border: 0; color: #fff; background: transparent; font-size: 26px; cursor: pointer; }

@media (max-width: 1100px) {
  .comp-frame { min-width: 0; aspect-ratio: auto; overflow: visible; }
  .site-header { position: relative; left: auto; top: auto; width: 100%; height: 72px; padding: 0 24px; }
  .brand { min-width: 0; }
  .brand span { display: none; }
  .site-header nav { position: absolute; z-index: 50; top: 72px; right: 0; left: 0; display: none; padding: 20px 24px; color: #fff; background: var(--navy); }
  .site-header nav.is-open { display: grid; grid-template-columns: repeat(2, 1fr); }
  .site-header nav a { padding: 13px 0; }
  .header-tools { margin-left: auto; }
  .phone span { display: none; }

  .hero { position: relative; inset: auto; display: grid; gap: 22px; min-height: 0; padding: 78px 24px 30px; background: var(--navy); }
  .hero::before, .hero-shade { inset: 0; width: 100%; height: 100%; }
  .hero .r-hero-airport-photo { inset: 0; width: 100%; height: 100%; opacity: .82; }
  .hero-kicker, .hero-heading, .hero-subcopy, .route-search, .popular, .departure-board, .trust-strip { position: relative; inset: auto; width: 100%; height: auto; }
  .hero-kicker { font-size: 12px; }
  .hero-heading { max-width: 720px; font-size: clamp(44px, 7vw, 64px); }
  .hero-subcopy { font-size: 15px; white-space: normal; }
  .route-search { grid-template-columns: 1fr 1fr; min-height: 150px; margin-top: 10px; }
  .route-search label { min-height: 70px; }
  .route-search button { min-height: 54px; }
  .popular { flex-wrap: wrap; padding: 8px 0; background: transparent; }
  .popular > span { width: 100%; }
  .departure-board { min-height: 365px; margin-top: 20px; }
  .board-title { height: 105px; padding: 38px 5% 16px; }
  .board-columns { height: 40px; }
  .board-rows { height: 220px; }
  .trust-strip { min-height: 115px; }

  .recommendations { position: relative; inset: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 22px; padding: 70px 24px; background: #fff; }
  .recommendation-heading { position: static; grid-column: 1 / -1; width: auto; height: auto; }
  .recommendation-heading h2 { font-size: 30px; }
  .view-all { position: static; grid-column: 1 / -1; grid-row: 2; justify-self: end; }
  .trip-card { position: relative; display: grid; min-width: 0; }
  .trip-card > a, .osaka-card > a, .danang-card > a, .zhangjiajie-card > a { position: relative; inset: auto; display: block; width: 100%; height: 230px; }
  .card-meta, .r-osaka-card-copy, .r-danang-card-copy, .r-zhangjiajie-card-copy { position: relative; inset: auto; width: 100%; height: 68px; padding: 0 14px; }
  .card-meta { grid-template-columns: 1.35fr 1fr auto; }
  .data-note { position: static; grid-column: 1 / -1; justify-self: end; }

  .schedule-section, .airport-guide { padding: 80px 24px; }
  .section-intro, .guide-heading { grid-template-columns: 1fr; }
  .schedule-list > a { grid-template-columns: 120px 1.2fr .7fr .7fr; padding: 14px 0; }
  .schedule-list > a > strong { display: none; }
  .guide-grid { grid-template-columns: 1fr; }
  .guide-grid a { min-height: 140px; border-right: 0; border-bottom: 1px solid #34485b; }
  .guide-grid a:last-child { border-bottom: 0; }
  .consultation { grid-template-columns: 1fr; padding: 70px 24px; }
  .consultation > a { justify-self: start; }
  .site-footer { grid-template-columns: 1fr; padding: 52px 24px; }
  .site-footer nav { flex-wrap: wrap; }
  .site-notice { right: 16px; bottom: 16px; }
}

@media (max-width: 640px) {
  .site-header { height: 64px; padding: 0 16px; }
  .brand img { width: 112px; }
  .icon-button { width: 34px; }
  .phone { display: none; }
  .site-header nav { top: 64px; }
  .hero { padding: 52px 16px 24px; }
  .hero-heading { font-size: 39px; line-height: 1.16; }
  .hero-second-line { display: inline-block; font-size: 33px; letter-spacing: -.05em; }
  .hero-subcopy { font-size: 14px; line-height: 1.7; }
  .route-search { grid-template-columns: 1fr; min-height: 0; }
  .route-search label { min-height: 68px; border-right: 0; border-bottom: 1px solid #e2e5e8; }
  .route-search button { min-height: 56px; }
  .popular a { padding: 6px 10px; }
  .departure-board { min-height: 398px; }
  .board-title { height: 95px; padding: 34px 16px 14px; }
  .board-title span { overflow: hidden; font-size: 13px; text-overflow: ellipsis; }
  .board-columns, .flight-row { grid-template-columns: .8fr 1fr 1fr .9fr; }
  .board-columns span:last-child, .flight-row em { display: none; }
  .board-columns { padding: 0 12px; }
  .flight-row { padding: 0 12px; }
  .flight-row b { padding: 6px; font-size: 9px; }
  .board-rows { height: 260px; }
  .trust-strip { grid-template-columns: repeat(2, 1fr); min-height: 210px; }
  .trust-strip > div { min-height: 105px; border-bottom: 1px solid rgba(255,255,255,.13); }

  .recommendations { grid-template-columns: 1fr; padding: 58px 16px; }
  .recommendation-heading h2 { font-size: 27px; }
  .trip-card > a, .osaka-card > a, .danang-card > a, .zhangjiajie-card > a { height: 220px; }
  .photo-copy h3 { font-size: 24px; }
  .card-meta { grid-template-columns: 1fr auto; gap: 8px; }
  .card-meta span:nth-child(2) { display: none; }
  .card-meta strong { font-size: 17px; }
  .data-note { justify-self: start; line-height: 1.5; }

  .schedule-section, .airport-guide { padding: 64px 16px; }
  .section-intro h2, .guide-heading h2 { font-size: 31px; }
  .schedule-list > a { grid-template-columns: 72px 1fr auto; min-height: 104px; gap: 10px; }
  .schedule-list time { display: grid; gap: 2px; }
  .schedule-list time b { font-size: 34px; }
  .schedule-list > a > p { display: none; }
  .schedule-list em { padding: 7px; font-size: 10px; }
  .sample-note { text-align: left; line-height: 1.5; }
  .guide-grid a { padding: 26px 20px; }
  .guide-grid small { line-height: 1.5; }
  .consultation { gap: 28px; padding: 58px 16px; }
  .consultation h2 { font-size: 29px; }
  .consultation > a { width: 100%; justify-content: center; }
  .site-footer { padding: 45px 16px; }
  .site-footer > div { display: grid; }
  .site-footer nav { gap: 14px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Shared inner-page system */
.inner-page { background: #f5f6f7; }
.inner-page, .inner-page button, .inner-page input, .inner-page select { font-family: Arial, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif; }
.inner-header { position: sticky; z-index: 60; top: 0; min-height: 74px; box-shadow: 0 8px 26px rgba(7, 27, 44, .08); }
.catalog-page, .product-page, .booking-page, .payment-page { width: min(1320px, calc(100% - 48px)); margin: 0 auto; }
.catalog-intro { display: flex; align-items: end; justify-content: space-between; gap: 40px; padding: 78px 0 38px; border-bottom: 2px solid var(--ink); }
.catalog-intro h1, .product-summary h1, .booking-form h1, .payment-panel h1 { margin: 0; font-size: clamp(34px, 4vw, 58px); letter-spacing: -.04em; line-height: 1.14; }
.catalog-intro p { margin: 14px 0 0; color: #5b6874; font-size: 16px; }
.catalog-intro > strong { color: var(--orange); font-size: 52px; font-variant-numeric: tabular-nums; }
.catalog-intro > strong small { display: block; margin-top: 4px; color: #64717c; font-size: 11px; text-align: right; }
.catalog-filter { display: grid; grid-template-columns: 1.5fr 1fr auto auto; align-items: end; gap: 14px; padding: 26px; margin: 30px 0 20px; color: #fff; background: var(--navy); }
.catalog-filter label { display: grid; gap: 8px; }
.catalog-filter label > span { color: #c6d0d8; font-size: 11px; font-weight: 700; }
.catalog-filter input { width: 100%; min-height: 48px; padding: 0 14px; border: 1px solid #405264; border-radius: 4px; color: var(--ink); background: #fff; }
.catalog-filter .check-filter { display: flex; min-height: 48px; align-items: center; gap: 8px; padding: 0 8px; white-space: nowrap; }
.catalog-filter .check-filter input { width: 18px; min-height: auto; accent-color: var(--orange); }
.catalog-filter .check-filter span { color: #fff; font-size: 13px; }
.catalog-filter button { min-height: 48px; padding: 0 24px; border: 0; border-radius: 4px; color: #fff; background: var(--orange); font-weight: 800; }
.region-nav { display: flex; gap: 8px; overflow-x: auto; padding: 0 0 26px; scrollbar-width: thin; }
.region-nav a { display: flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 15px; border: 1px solid #cbd2d8; border-radius: 999px; background: #fff; white-space: nowrap; }
.region-nav a.is-active { border-color: var(--navy); color: #fff; background: var(--navy); }
.region-nav small { color: var(--orange); font-size: 10px; }
.catalog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px 22px; padding: 18px 0 100px; }
.catalog-card { min-width: 0; background: #fff; box-shadow: 0 16px 34px rgba(7, 27, 44, .09); }
.catalog-photo { position: relative; display: block; height: 250px; overflow: hidden; background: #dfe5e9; }
.catalog-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s cubic-bezier(.16,1,.3,1); }
.catalog-card:hover .catalog-photo img { transform: scale(1.035); }
.product-status { position: absolute; top: 14px; left: 14px; padding: 8px 10px; color: #fff; background: var(--orange); font-size: 11px; font-weight: 800; }
.product-status.closed { background: #5c6873; }
.catalog-copy { padding: 24px; }
.catalog-copy > p, .product-summary > p { margin: 0 0 10px; color: var(--orange); font-size: 12px; font-weight: 800; }
.catalog-copy h2 { min-height: 58px; margin: 0; font-size: 20px; letter-spacing: -.025em; line-height: 1.45; }
.catalog-copy dl, .product-summary dl, .booking-summary dl, .payment-panel dl { display: grid; gap: 9px; margin: 22px 0; }
.catalog-copy dl div, .product-summary dl div, .booking-summary dl div, .payment-panel dl div { display: flex; justify-content: space-between; gap: 18px; }
.catalog-copy dt, .product-summary dt, .booking-summary dt, .payment-panel dt { color: #75808b; font-size: 12px; }
.catalog-copy dd, .product-summary dd, .booking-summary dd, .payment-panel dd { margin: 0; font-size: 13px; font-weight: 700; text-align: right; }
.catalog-price { display: flex; align-items: end; justify-content: space-between; gap: 12px; padding-top: 18px; border-top: 1px solid #e0e4e7; }
.catalog-price span { color: #6b7782; font-size: 11px; }
.catalog-price strong { color: var(--orange); font-size: 21px; }
.empty-state { display: grid; justify-items: center; gap: 15px; padding: 90px 24px; text-align: center; }
.empty-state h1, .empty-state h2 { margin: 0; font-size: 34px; }
.empty-state p { margin: 0; color: #65717c; line-height: 1.7; }
.empty-state a { padding: 14px 20px; color: #fff; background: var(--orange); font-weight: 700; }
.page-empty { min-height: 55vh; align-content: center; }

.breadcrumbs { display: flex; gap: 9px; padding: 28px 0 20px; color: #68747f; font-size: 12px; }
.breadcrumbs b { color: var(--ink); }
.product-hero { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr); min-height: 600px; margin-bottom: 70px; background: #fff; box-shadow: 0 18px 45px rgba(7, 27, 44, .1); }
.product-visual { position: relative; min-height: 520px; overflow: hidden; background: var(--navy); }
.product-visual img { width: 100%; height: 100%; object-fit: cover; }
.product-summary { display: flex; flex-direction: column; justify-content: center; padding: 58px; border-top: 6px solid var(--navy); }
.product-summary h1 { font-size: clamp(30px, 3vw, 47px); }
.product-summary dl { padding: 22px 0; border-top: 1px solid #dfe3e6; border-bottom: 1px solid #dfe3e6; }
.summary-price { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin: 4px 0 28px; }
.summary-price span { color: #67747e; font-size: 12px; }
.summary-price strong { color: var(--orange); font-size: 27px; }
.primary-action, .secondary-action { display: flex; align-items: center; justify-content: center; min-height: 56px; padding: 0 24px; border: 0; color: #fff; background: var(--orange); font-weight: 800; }
.primary-action:hover { background: var(--orange-dark); }
.primary-action.is-disabled { background: #65717c; }
.secondary-action { color: var(--navy); background: #e7ecef; }
.departure-selector { padding: 0 0 80px; }
.departure-selector > header, .product-content article > h2 { margin-bottom: 26px; }
.departure-selector h2, .product-content article > h2 { margin: 0; font-size: 34px; letter-spacing: -.04em; }
.departure-selector header p { margin: 8px 0 0; color: #68747e; }
.departure-table { border-top: 2px solid var(--ink); background: #fff; }
.departure-line { display: grid; grid-template-columns: 1.2fr .8fr .75fr .9fr 110px; align-items: center; gap: 15px; min-height: 84px; padding: 12px 20px; border-bottom: 1px solid #dce2e6; }
.departure-line time { font-size: 17px; font-weight: 800; font-variant-numeric: tabular-nums; }
.departure-line b { justify-self: start; padding: 7px 9px; color: #fff; background: var(--orange); font-size: 11px; }
.departure-line.closed b { background: #67737d; }
.departure-line > strong { color: var(--orange); font-size: 18px; text-align: right; }
.departure-line > a, .closed-label { display: grid; min-height: 42px; align-items: center; justify-content: center; color: #fff; background: var(--navy); font-size: 12px; font-weight: 800; }
.closed-label { color: #75808a; background: #edf0f2; }
.product-content { padding-bottom: 110px; }
.product-content > nav { position: sticky; z-index: 30; top: 74px; display: flex; gap: 0; border: 1px solid #d9dfe3; background: #fff; }
.product-content > nav a { flex: 1; padding: 18px; border-right: 1px solid #d9dfe3; font-weight: 700; text-align: center; }
.product-content > nav a:last-child { border-right: 0; }
.product-content article { padding: 72px max(24px, 6%); margin-top: 20px; background: #fff; }
.legacy-content, .terms-content { max-width: 100%; overflow: hidden; color: #24313e; line-height: 1.8; }
.legacy-content img { max-width: 100% !important; height: auto !important; }
.legacy-content table { max-width: 100% !important; }
.terms-content { max-height: 520px; overflow-y: auto; padding: 24px; background: #f4f6f7; }
.detail-item-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.detail-item-grid > section { padding: 24px; border: 1px solid #dde3e7; background: #f8f9fa; }
.detail-item-grid h3, .hotel-grid h3 { margin: 0 0 14px; font-size: 20px; }
.detail-item-grid section > div, .hotel-grid section > div > div { color: #33414d; line-height: 1.75; }
.detail-item-grid p { margin: 0 0 10px; }
.itinerary-days { display: grid; gap: 20px; }
.itinerary-day { display: grid; grid-template-columns: 100px 1fr; border-top: 2px solid var(--ink); background: #f7f8f9; }
.itinerary-day > h3 { display: flex; align-items: baseline; justify-content: center; gap: 5px; padding: 28px 14px; margin: 0; color: #fff; background: var(--navy); font-size: 14px; }
.itinerary-day > h3 b { color: var(--orange); font-size: 30px; }
.itinerary-events { padding: 18px 26px; }
.itinerary-event { position: relative; padding: 14px 0 18px 20px; border-left: 1px solid #cdd5da; }
.itinerary-event::before { position: absolute; top: 20px; left: -5px; width: 9px; height: 9px; border-radius: 50%; background: var(--orange); content: ''; }
.itinerary-event h4 { margin: 0 0 8px; font-size: 17px; }
.itinerary-event > div { color: #4c5964; line-height: 1.7; }
.itinerary-images { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 14px; }
.itinerary-images img { width: 100%; height: 150px; object-fit: cover; }
.day-notes { grid-column: 2; display: grid; gap: 8px; padding: 18px 26px; margin: 0; border-top: 1px solid #dbe1e5; }
.day-notes div { display: grid; grid-template-columns: 70px 1fr; gap: 10px; }
.day-notes dt { color: var(--orange); font-weight: 800; }
.day-notes dd { margin: 0; color: #4c5964; }
.hotel-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.hotel-grid section { overflow: hidden; border: 1px solid #dde3e7; }
.hotel-grid img { width: 100%; height: 240px; object-fit: cover; }
.hotel-grid section > div { padding: 24px; }
.hotel-grid p { margin: 0 0 7px; color: var(--orange); font-size: 12px; font-weight: 800; }
.hotel-grid address { margin: 0 0 14px; color: #75808a; font-size: 12px; font-style: normal; }

.booking-steps { display: grid; grid-template-columns: repeat(3, 1fr); max-width: 760px; padding: 58px 0 42px; margin: 0 auto; list-style: none; }
.booking-steps li { position: relative; display: grid; justify-items: center; gap: 8px; color: #8a949d; font-size: 12px; }
.booking-steps li::before { position: absolute; z-index: -1; top: 18px; right: 50%; width: 100%; height: 1px; background: #ccd3d8; content: ''; }
.booking-steps li:first-child::before { display: none; }
.booking-steps b { display: grid; width: 38px; height: 38px; border-radius: 50%; color: #697680; background: #e3e8eb; place-items: center; }
.booking-steps .is-current { color: var(--ink); font-weight: 800; }
.booking-steps .is-current b { color: #fff; background: var(--orange); }
.booking-layout { display: grid; grid-template-columns: minmax(0, 1fr) 390px; align-items: start; gap: 28px; padding-bottom: 100px; }
.booking-form, .booking-summary, .payment-panel { background: #fff; box-shadow: 0 16px 38px rgba(7, 27, 44, .08); }
.booking-form { display: grid; gap: 0; padding: 46px; border-top: 6px solid var(--navy); }
.booking-form section { padding: 36px 0; border-bottom: 1px solid #dde2e5; }
.booking-form section:first-child { padding-top: 0; }
.booking-form h1 { font-size: 37px; }
.booking-form h2 { margin: 0 0 22px; font-size: 25px; }
.booking-form section > h1, .booking-form section > h2 { display: flex; min-height: 58px; align-items: center; padding: 15px 20px; color: #fff; background: var(--navy); letter-spacing: -.025em; }
.booking-form section > h1 { margin: 0; font-size: 28px; }
.booking-form section > h2 { display: flex; align-items: center; margin-bottom: 24px; font-size: 21px; }
.booking-form section > h1::before, .booking-form section > h2::before { width: 8px; height: 8px; margin-right: 12px; background: var(--orange); content: ''; transform: rotate(45deg); }
.form-grid, .traveler-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-top: 28px; }
.traveler-grid { grid-template-columns: repeat(3, 1fr); margin-top: 0; }
.booking-form label { display: grid; gap: 9px; }
.booking-form label > span { font-size: 12px; font-weight: 800; }
.booking-form label small { color: #76828c; font-weight: 400; }
.booking-form input { min-height: 52px; padding: 0 14px; border: 1px solid #cbd3d9; border-radius: 3px; background: #fff; }
.agreement-section details { margin-bottom: 16px; border: 1px solid #d8dee2; }
.agreement-section summary { padding: 16px; cursor: pointer; font-weight: 800; }
.agreement-section details > div { max-height: 270px; overflow-y: auto; padding: 18px; border-top: 1px solid #d8dee2; color: #495762; background: #f7f8f9; font-size: 13px; line-height: 1.7; }
.booking-form .agreement-check { display: flex; align-items: center; gap: 10px; min-height: 44px; }
.booking-form .agreement-check input { width: 19px; min-height: auto; accent-color: var(--orange); }
.booking-summary { position: sticky; top: 98px; overflow: hidden; padding-bottom: 28px; }
.booking-summary img { width: 100%; height: 220px; object-fit: cover; }
.booking-summary > p, .booking-summary > h2, .booking-summary > dl, .booking-summary > strong { margin-right: 26px; margin-left: 26px; }
.booking-summary > p { margin-top: 24px; margin-bottom: 8px; color: var(--orange); font-size: 11px; font-weight: 800; }
.booking-summary > h2 { margin-top: 0; font-size: 19px; line-height: 1.45; }
.booking-summary > strong { display: block; padding-top: 18px; border-top: 1px solid #dfe4e7; color: var(--orange); font-size: 20px; text-align: right; }
.payment-page { min-height: 72vh; }
.payment-panel { max-width: 850px; padding: 54px; margin: 0 auto 100px; }
.payment-panel > div:first-child { padding-bottom: 30px; border-bottom: 2px solid var(--ink); }
.payment-panel > div:first-child p { margin: 0 0 10px; color: var(--orange); font-size: 12px; font-weight: 800; }
.payment-panel > div:first-child span { display: block; margin-top: 14px; color: #63717c; line-height: 1.7; }
.payment-panel dl { padding: 24px 0; }
.payment-panel dl div { padding: 10px 0; }
.payment-summary .payment-total { align-items: center; padding-top: 22px; margin-top: 10px; border-top: 1px solid #ccd3d8; }
.payment-summary .payment-total dt { color: var(--ink); font-weight: 800; }
.payment-summary .payment-total dd { color: var(--orange-dark); font-size: 24px; font-variant-numeric: tabular-nums; }
.payment-form fieldset { padding: 0; margin: 0 0 18px; border: 0; }
.payment-form legend { margin-bottom: 12px; font-size: 16px; font-weight: 800; }
.payment-method { display: flex; align-items: center; min-height: 76px; padding: 16px 18px; border: 1px solid #cbd3d9; background: #fff; cursor: pointer; }
.payment-method:has(input:checked) { border-color: var(--orange); background: #fff8f3; }
.payment-method input { width: 20px; height: 20px; margin: 0 14px 0 0; accent-color: var(--orange); }
.payment-method span { display: grid; gap: 5px; }
.payment-method b { color: var(--ink); font-size: 15px; }
.payment-method small { color: #5f6c76; line-height: 1.5; }
.payment-bank { padding: 22px; margin-bottom: 20px; background: #f1f4f6; }
.payment-bank dl { padding: 0; margin: 0 0 18px; }
.payment-bank dd small { display: block; margin-top: 3px; color: #6d7881; font-weight: 400; }
.payment-bank dd strong { color: var(--orange-dark); font-size: 19px; font-variant-numeric: tabular-nums; }
.payment-bank label { display: grid; gap: 8px; color: var(--ink); font-size: 12px; font-weight: 800; }
.payment-bank input { min-height: 50px; padding: 0 14px; border: 1px solid #aeb8c0; border-radius: 4px; color: var(--ink); background: #fff; font: inherit; }
.payment-form > .primary-action { width: min(100%, 420px); margin-inline: auto; }
.payment-error { padding: 14px 16px; margin: 20px 0 0; border: 1px solid #bb2d1f; color: #8f1e14; background: #fff3f1; font-size: 13px; line-height: 1.6; }
.payment-note { margin: 13px 0 0; color: #707c86; font-size: 11px; text-align: center; }
.payment-panel .secondary-action { margin-top: 10px; }

@media (max-width: 1100px) {
  .inner-header { position: sticky; height: 72px; }
  .catalog-grid { grid-template-columns: repeat(2, 1fr); }
  .product-hero { grid-template-columns: 1fr; }
  .product-summary { padding: 40px; }
  .booking-layout { grid-template-columns: 1fr; }
  .booking-summary { position: static; display: grid; grid-template-columns: 260px 1fr; align-items: center; }
  .booking-summary img { grid-row: 1 / 6; height: 100%; }
}

@media (max-width: 700px) {
  .catalog-page, .product-page, .booking-page, .payment-page { width: min(100% - 28px, 1320px); }
  .catalog-intro { align-items: start; padding: 48px 0 28px; }
  .catalog-intro h1 { font-size: 36px; }
  .catalog-intro > strong { font-size: 38px; }
  .catalog-filter { grid-template-columns: 1fr; padding: 18px; }
  .catalog-grid { grid-template-columns: 1fr; }
  .catalog-photo { height: 235px; }
  .product-hero { min-height: 0; margin-bottom: 52px; }
  .product-visual { min-height: 340px; }
  .product-summary { padding: 28px 22px; }
  .product-summary h1 { font-size: 31px; }
  .departure-line { grid-template-columns: 1fr auto; gap: 9px; padding: 16px; }
  .departure-line time { font-size: 16px; }
  .departure-line > strong { text-align: left; }
  .departure-line > a, .closed-label { grid-column: 2; grid-row: 1 / 3; min-width: 76px; }
  .departure-line > span:not(.closed-label), .departure-line > b { display: none; }
  .product-content > nav { top: 64px; overflow-x: auto; }
  .product-content > nav a { min-width: 110px; padding: 15px 10px; }
  .product-content article { padding: 44px 18px; }
  .detail-item-grid, .hotel-grid { grid-template-columns: 1fr; }
  .detail-item-grid > section { padding: 20px; }
  .itinerary-day { grid-template-columns: 62px 1fr; }
  .itinerary-day > h3 { align-items: center; flex-direction: column; }
  .itinerary-events { padding: 12px 14px; }
  .itinerary-images { grid-template-columns: 1fr; }
  .itinerary-images img { height: 190px; }
  .day-notes { padding: 14px; }
  .day-notes div { grid-template-columns: 50px 1fr; }
  .booking-steps { padding: 36px 0 30px; }
  .booking-layout { padding-bottom: 65px; }
  .booking-form { padding: 28px 20px; }
  .booking-form section > h1, .booking-form section > h2 { margin-right: -20px; margin-left: -20px; }
  .form-grid, .traveler-grid { grid-template-columns: 1fr; }
  .booking-summary { display: block; }
  .booking-summary img { height: 220px; }
  .payment-panel { padding: 32px 20px; margin-bottom: 65px; }
  .payment-panel h1 { font-size: 30px; }
  .payment-summary > div, .payment-bank dl div { display: grid; grid-template-columns: 76px minmax(0, 1fr); align-items: start; }
  .payment-summary dd, .payment-bank dd { overflow-wrap: anywhere; }
  .payment-summary .payment-total { align-items: center; }
}
