:root{--ink:#183b3f;--deep:#123236;--cream:#f5f0e6;--paper:#fbf8f1;--coral:#ec684d;--gold:#e3b74d;--mint:#b9d7c8;--line:rgba(24,59,63,.16);--shadow:0 24px 60px rgba(21,46,48,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans","Noto Sans KR",sans-serif;letter-spacing:-.02em}a{color:inherit}button{font:inherit}img{max-width:100%}.topbar{height:76px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;background:rgba(251,248,241,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;font-weight:800;text-decoration:none;letter-spacing:.03em}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--coral);color:#fff}.topbar nav{display:flex;gap:30px}.topbar nav a{text-decoration:none;font-weight:600;font-size:14px}.mini-button{border:1px solid var(--ink);background:transparent;padding:10px 16px;border-radius:999px;cursor:pointer;font-weight:700}.hero{min-height:690px;display:grid;grid-template-columns:48% 52%;position:relative;background:var(--cream)}.hero-photo{background:linear-gradient(90deg,rgba(10,35,38,.04),rgba(10,35,38,.18)),url('https://blog.japanwondertravel.com/wp-content/uploads/2023/05/49252189018_d3618a2301_k-1200x800.jpg') center/cover}.hero-copy{padding:90px 8vw 50px 7vw;display:flex;flex-direction:column;justify-content:center}.eyebrow{font-size:12px;letter-spacing:.18em;font-weight:800;margin:0 0 16px;text-transform:uppercase}.eyebrow.light{color:var(--mint)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(49px,5.8vw,86px);line-height:.97;letter-spacing:-.075em;margin-bottom:28px}h1 em,h2 em{font-style:normal;color:var(--coral)}.hero-desc{font-size:16px;line-height:1.75;max-width:560px;color:rgba(24,59,63,.76)}.trip-switch{display:flex;gap:10px;margin:18px 0 30px}.trip-switch button{min-width:150px;border:1px solid var(--line);border-radius:14px;background:transparent;padding:13px 20px;text-align:left;font-size:19px;font-weight:800;cursor:pointer;color:var(--ink)}.trip-switch button span{display:block;font-size:10px;letter-spacing:.1em;font-weight:700;opacity:.6;margin-bottom:3px}.trip-switch button.active{background:var(--ink);color:#fff}.hero-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;border-top:1px solid var(--line);padding-top:22px}.hero-facts small{font-size:9px;letter-spacing:.13em;display:block;opacity:.55;margin-bottom:5px}.hero-facts strong{font-size:12px}.hero-badge{position:absolute;left:48%;top:80px;transform:translateX(-50%) rotate(-8deg);width:112px;height:112px;border-radius:50%;background:var(--coral);color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;border:7px solid var(--paper);box-shadow:var(--shadow)}.hero-badge span,.hero-badge small{font-size:9px;letter-spacing:.17em}.hero-badge b{font-size:28px}.strip{display:grid;grid-template-columns:2.2fr repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.intro>div{padding:38px 3vw;border-right:1px solid var(--line)}.intro>div:last-child{border:0}.intro h2{font-size:25px;margin:0}.metric span,.metric small{display:block}.metric span{font-size:11px;font-weight:700;opacity:.55;margin-bottom:10px}.metric strong{font-size:22px}.metric small{font-size:10px;margin-top:4px;opacity:.55}.metric.accent{background:var(--gold)}.schedule-section{padding:110px 7vw}.section-heading{max-width:610px;margin-bottom:56px}.section-heading h2{font-size:clamp(42px,5vw,68px);line-height:1.04;letter-spacing:-.065em;margin-bottom:20px}.section-heading>p:last-child{line-height:1.7;color:rgba(24,59,63,.65)}.section-heading.horizontal{max-width:none;display:flex;justify-content:space-between;align-items:end}.section-heading.horizontal>p{max-width:480px}.day-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:0}.day-tabs button{border:0;border-bottom:4px solid transparent;background:transparent;padding:18px 24px;cursor:pointer;color:var(--ink);opacity:.45;font-weight:800}.day-tabs button.active{border-color:var(--coral);opacity:1}.timeline{display:flex;flex-direction:column}.timeline-item{display:grid;grid-template-columns:100px 1fr 160px;gap:24px;padding:30px 20px;border-bottom:1px solid var(--line);cursor:pointer;transition:.25s}.timeline-item:hover,.timeline-item.open{background:var(--cream);padding-left:30px}.time{font-size:22px;font-weight:800}.event-main{display:grid;grid-template-columns:90px 1fr;gap:20px}.event-thumb{height:76px;border-radius:8px;background-size:cover;background-position:center}.event-main h3{font-size:21px;margin:4px 0 6px}.event-main p{font-size:13px;opacity:.63;margin:0;line-height:1.6}.event-cost{text-align:right}.event-cost b{font-size:16px;display:block}.event-cost small{opacity:.55}.event-detail{grid-column:2/4;margin-left:110px;max-height:0;overflow:hidden;opacity:0;transition:.35s;line-height:1.65;font-size:13px;color:rgba(24,59,63,.72)}.timeline-item.open .event-detail{max-height:120px;opacity:1;padding-top:8px}.usj-feature{display:grid;grid-template-columns:1.05fr .95fr;min-height:760px;background:var(--deep);color:#fff}.usj-photo{background:url('https://c04.castel.jp/400x400/0/usj-main-gate-j97810.jpg') center/cover;min-height:600px}.usj-content{padding:90px 7vw}.usj-content h2,.route-copy h2{font-size:clamp(52px,6vw,82px);line-height:.97;letter-spacing:-.07em}.usj-content>p{line-height:1.75;color:rgba(255,255,255,.67)}.usj-grid{display:grid;grid-template-columns:1fr 1fr;margin:38px 0;border-top:1px solid rgba(255,255,255,.15);border-left:1px solid rgba(255,255,255,.15)}.usj-grid>div{padding:20px;border-right:1px solid rgba(255,255,255,.15);border-bottom:1px solid rgba(255,255,255,.15);display:grid;grid-template-columns:26px 1fr}.usj-grid b{color:var(--coral);font-size:10px}.usj-grid span{font-size:22px;font-weight:800}.usj-grid small{grid-column:2;font-size:11px;opacity:.6}.callout{display:flex;gap:18px;background:rgba(255,255,255,.08);padding:20px;border-radius:10px;font-size:12px;line-height:1.6;margin-bottom:24px}.callout strong{white-space:nowrap;color:var(--gold)}.text-link{font-size:13px;font-weight:700;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:5px}.recommend-section{padding:110px 7vw}.recommend-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.recommend-card{min-height:420px;padding:34px;display:flex;flex-direction:column;justify-content:space-between;border-radius:18px;color:white;position:relative;overflow:hidden}.hotel-card.primary{background:linear-gradient(135deg,rgba(18,50,54,.8),rgba(18,50,54,.96)),url('https://a.travel-assets.com/findyours-php/viewfinder/images/res70/492000/492031-universal-studios-japan.jpg') center/cover}.hotel-card.secondary{background:var(--coral)}.card-number{font-size:80px;font-weight:800;opacity:.13;position:absolute;right:25px;top:5px}.card-copy{margin-top:auto;position:relative}.tag{display:inline-block;padding:6px 9px;border-radius:999px;background:var(--mint);color:var(--ink);font-size:9px;letter-spacing:.11em;font-weight:800}.tag.coral{background:var(--coral);color:white}.tag.gold{background:var(--gold)}.tag.mint{background:var(--mint)}.card-copy h3,.food-copy h3{font-size:28px;margin:14px 0 12px}.card-copy p,.card-copy li{font-size:12px;line-height:1.7;opacity:.8}.card-copy ul{padding-left:18px}.card-copy a{font-size:12px;font-weight:700}.food-card{min-height:260px;background:var(--cream);border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex}.food-card.wide{grid-column:1/3}.food-photo{width:45%;flex:none}.food-photo.dotonbori{background:url('https://image.kkday.com/v2/image/get/s1.kkday.com/product_23849/20250730082242_z3Rjv/jpg') center/cover}.food-copy{padding:30px;display:flex;flex-direction:column;justify-content:center}.food-copy p{font-size:13px;line-height:1.7;opacity:.67}.price-row{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:15px;font-size:12px}.food-card.dark{background:var(--deep);color:white}.route-section{display:grid;grid-template-columns:.8fr 1.2fr;background:var(--ink);color:white;min-height:800px}.route-copy{padding:90px 5vw}.route-copy>p{color:rgba(255,255,255,.65);line-height:1.7}.transport-pills{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 38px}.transport-pills span{border:1px solid rgba(255,255,255,.25);padding:8px 12px;border-radius:999px;font-size:11px}.route-item{display:grid;grid-template-columns:31px 1fr auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.14);font-size:12px}.route-index{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:var(--coral);font-size:10px}.route-item small{opacity:.55}.map-panel{margin:45px 4vw 45px 0;background:var(--paper);color:var(--ink);border-radius:18px;overflow:hidden;display:flex;flex-direction:column}.map-topline,.map-footer{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;font-size:11px;font-weight:700}.live-dot{width:7px;height:7px;background:#5cb779;display:inline-block;border-radius:50%;margin-right:8px}.map-topline button{border:1px solid var(--line);border-radius:999px;padding:7px 12px;background:transparent;color:var(--ink);cursor:pointer;font-size:10px}.map-panel iframe{width:100%;height:100%;min-height:620px;border:0;filter:saturate(.7)}.map-footer a{color:var(--coral);text-decoration:none}.budget-section{padding:110px 7vw}.currency-toggle{display:flex;background:var(--cream);padding:5px;border-radius:999px}.currency-toggle button{border:0;background:transparent;padding:9px 18px;border-radius:999px;color:var(--ink);cursor:pointer;font-size:12px;font-weight:800}.currency-toggle button.active{background:var(--ink);color:white}.budget-layout{display:grid;grid-template-columns:1.4fr .6fr;gap:60px}.budget-row{display:grid;grid-template-columns:120px 1fr 110px;align-items:center;gap:18px;padding:17px 0;border-bottom:1px solid var(--line);font-size:13px}.bar-track{height:12px;background:var(--cream);border-radius:999px;overflow:hidden}.bar-fill{height:100%;background:var(--coral);border-radius:999px;transition:width .5s}.budget-row:nth-child(2) .bar-fill{background:var(--gold)}.budget-row:nth-child(3) .bar-fill{background:var(--mint)}.budget-row strong{text-align:right}.budget-total{background:var(--gold);border-radius:18px;padding:35px;display:flex;flex-direction:column;justify-content:center}.budget-total>span{font-size:10px;letter-spacing:.15em;font-weight:800}.budget-total>strong{font-size:44px;letter-spacing:-.06em;margin:12px 0}.budget-total p{font-size:12px}.optional{border-top:1px solid rgba(24,59,63,.2);border-bottom:1px solid rgba(24,59,63,.2);padding:15px 0;margin:15px 0;display:flex;justify-content:space-between;font-size:11px}.budget-total small{font-size:10px;line-height:1.6;opacity:.65}.checklist-section{background:var(--coral);color:white;padding:80px 7vw;display:grid;grid-template-columns:.7fr 1.3fr;gap:60px}.checklist-section h2{font-size:54px;line-height:1.05;letter-spacing:-.06em}.checklist{display:grid;grid-template-columns:1fr 1fr}.checklist label{padding:20px 8px;border-bottom:1px solid rgba(255,255,255,.25);display:flex;gap:12px;align-items:center;font-size:13px;cursor:pointer}.checklist input{appearance:none;width:22px;height:22px;border:1px solid rgba(255,255,255,.6);border-radius:50%;flex:none}.checklist input:checked{background:var(--gold);box-shadow:inset 0 0 0 5px var(--coral)}.sources{padding:45px 7vw;background:var(--cream)}.sources>div{display:flex;gap:24px;flex-wrap:wrap}.sources a{font-size:12px;font-weight:700}.sources>p:last-child{font-size:10px;opacity:.55;margin:20px 0 0}footer{padding:35px 4vw;background:var(--deep);color:#fff;display:flex;justify-content:space-between;align-items:center}footer span{font-weight:800}footer p,footer a{font-size:11px;opacity:.6}
@media(max-width:900px){.topbar nav{display:none}.hero{grid-template-columns:1fr;min-height:auto}.hero-photo{height:48vh;min-height:390px}.hero-copy{padding:60px 7vw}.hero-badge{left:auto;right:5vw;top:42vh;width:90px;height:90px}.hero-facts{grid-template-columns:1fr}.strip{grid-template-columns:1fr 1fr}.intro>div:first-child{grid-column:1/3}.schedule-section,.recommend-section,.budget-section{padding:80px 5vw}.timeline-item{grid-template-columns:75px 1fr}.event-cost{grid-column:2;text-align:left}.event-detail{grid-column:2;margin-left:0}.usj-feature,.route-section{grid-template-columns:1fr}.usj-photo{min-height:450px}.section-heading.horizontal{display:block}.recommend-grid{grid-template-columns:1fr}.food-card.wide{grid-column:auto}.map-panel{margin:0 5vw 55px}.budget-layout{grid-template-columns:1fr}.checklist-section{grid-template-columns:1fr}.route-copy{padding:75px 7vw}}
@media(max-width:560px){h1{font-size:48px}.topbar{height:64px}.mini-button{font-size:10px}.trip-switch button{min-width:0;flex:1}.hero-facts{display:none}.strip{grid-template-columns:1fr}.intro>div:first-child{grid-column:auto}.intro>div{border-right:0;border-bottom:1px solid var(--line)}.day-tabs{overflow:auto}.day-tabs button{white-space:nowrap}.timeline-item{grid-template-columns:55px 1fr;padding:23px 4px;gap:10px}.time{font-size:16px}.event-main{grid-template-columns:1fr}.event-thumb{height:145px}.event-cost,.event-detail{grid-column:2}.usj-content{padding:70px 7vw}.usj-grid{grid-template-columns:1fr}.recommend-card{min-height:370px}.food-card,.food-card.wide{display:block}.food-photo{width:100%;height:220px}.route-copy h2{font-size:50px}.map-panel iframe{min-height:480px}.map-footer{align-items:flex-start;gap:8px;flex-direction:column}.budget-row{grid-template-columns:85px 1fr}.budget-row strong{grid-column:2}.checklist{grid-template-columns:1fr}footer{gap:15px;align-items:flex-start;flex-direction:column}}
@media print{.topbar,.trip-switch,.mini-button,.map-topline button{display:none!important}.hero{min-height:560px}.schedule-section,.recommend-section,.budget-section{padding:50px 4vw}.route-section,.usj-feature{break-inside:avoid}.timeline-item{break-inside:avoid}body{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
.route-map{position:relative;flex:1;min-height:620px;background:#e8eee8;overflow:hidden}.route-map svg{width:100%;height:100%;min-height:620px;display:block}.map-water{fill:#c9e2e1}.map-land{fill:#edf0e8}.map-grid{stroke:#173b3f;stroke-width:1;opacity:.08}.map-route-shadow{fill:none;stroke:#fff;stroke-width:10;stroke-linecap:round;stroke-linejoin:round}.map-route{fill:none;stroke:var(--coral);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:10 8}.map-stop circle{fill:var(--deep);stroke:#fff;stroke-width:3}.map-stop text.number{fill:#fff;font-size:11px;font-weight:800;text-anchor:middle;dominant-baseline:central}.map-stop text.label{fill:var(--deep);font-size:11px;font-weight:800;paint-order:stroke;stroke:#edf0e8;stroke-width:5px;stroke-linejoin:round}.map-stop text.day{fill:#607779;font-size:8px;font-weight:700;letter-spacing:.08em;paint-order:stroke;stroke:#edf0e8;stroke-width:4px}.map-stop.day2 circle{fill:var(--gold)}.map-stop.day3 circle{fill:#4d9981}.map-stop.day4 circle{fill:#775c9e}.map-legend{position:absolute;left:18px;bottom:18px;display:flex;gap:12px;flex-wrap:wrap;background:rgba(251,248,241,.9);padding:10px 12px;border-radius:10px;font-size:9px;font-weight:800;box-shadow:0 8px 25px rgba(24,59,63,.12)}.map-legend span{display:flex;align-items:center;gap:5px}.map-legend i{width:8px;height:8px;border-radius:50%;background:var(--coral)}.map-legend span:nth-child(2) i{background:var(--gold)}.map-legend span:nth-child(3) i{background:#4d9981}.map-legend span:nth-child(4) i{background:#775c9e}
@media(max-width:560px){.route-map,.route-map svg{min-height:480px}}
.route-item a{color:inherit;text-decoration:none;text-align:right;white-space:nowrap}.route-item a:hover{color:var(--gold)}.route-item span b{font-size:8px;letter-spacing:.08em;color:var(--mint)}
.trip-label{display:inline-flex;flex-direction:column;align-items:flex-start;margin:14px 0 30px;padding:13px 20px;background:var(--ink);color:#fff;border-radius:14px}.trip-label span{font-size:9px;letter-spacing:.15em;color:var(--mint);font-weight:800}.trip-label strong{font-size:18px;margin-top:3px}.move-card{margin:0 20px 0 120px;padding:16px 20px;display:grid;grid-template-columns:34px 1.25fr 1fr auto auto;gap:16px;align-items:center;background:#e7efe9;border-left:3px solid var(--mint);font-size:11px}.move-icon{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff}.move-card span{display:block;font-size:8px;letter-spacing:.12em;font-weight:800;color:#5b7d75}.move-card strong,.move-card small{display:block}.move-card b{font-size:13px}.move-card em{font-style:normal;font-weight:800;color:var(--coral);white-space:nowrap}.move-card a{text-decoration:none;font-weight:800;white-space:nowrap}.luggage-section{padding:110px 7vw;background:var(--cream)}.luggage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.luggage-grid article{background:var(--paper);padding:30px;border-radius:16px;border:1px solid var(--line)}.luggage-grid article>span{font-size:9px;letter-spacing:.12em;font-weight:800;color:var(--coral)}.luggage-grid h3{font-size:23px;margin:14px 0 10px}.luggage-grid p{font-size:12px;line-height:1.75;color:rgba(24,59,63,.67)}.luggage-grid b{font-size:11px}.luggage-grid i,[data-yen-range]{font-style:normal}.hotel-luggage-note{margin-top:16px;background:var(--ink);color:white;padding:22px 26px;border-radius:14px;display:flex;gap:22px;font-size:12px;line-height:1.6}.hotel-luggage-note strong{color:var(--gold);white-space:nowrap}.exchange-field{background:var(--cream);padding:17px 20px;border-radius:14px;min-width:250px}.exchange-field>span,.exchange-field small{display:block;font-size:9px;font-weight:800;letter-spacing:.1em}.exchange-field>div{display:flex;align-items:center;gap:8px;margin:7px 0}.exchange-field input{width:95px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);padding:9px 10px;font-size:18px;font-weight:800}.exchange-field small{opacity:.5;letter-spacing:0;font-weight:500}.zoomable{cursor:zoom-in;position:relative}.zoomable:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.image-modal{width:min(92vw,1100px);max-height:92vh;padding:0;border:0;border-radius:18px;background:#0f2629;color:#fff;box-shadow:0 30px 100px rgba(0,0,0,.45)}.image-modal::backdrop{background:rgba(7,22,24,.84);backdrop-filter:blur(6px)}.image-modal img{display:block;width:100%;max-height:80vh;object-fit:contain;background:#0b1f22}.image-modal p{margin:0;padding:16px 24px;font-size:13px}.image-modal button{position:absolute;right:14px;top:14px;z-index:2;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:var(--ink);font-size:28px;line-height:1;cursor:pointer}.map-topline>span{font-size:9px;letter-spacing:.08em;color:rgba(24,59,63,.55)}
@media(max-width:900px){.luggage-section{padding:80px 5vw}.luggage-grid{grid-template-columns:1fr}.move-card{margin-left:99px;grid-template-columns:30px 1fr auto}.move-card>div:nth-child(3){grid-column:2}.move-card em{grid-column:3;grid-row:1}.move-card a{grid-column:3;grid-row:2}.exchange-field{margin-top:24px;display:inline-block}.hotel-luggage-note{flex-direction:column;gap:7px}}
@media(max-width:560px){.move-card{margin:0 0 0 65px;padding:14px;grid-template-columns:27px 1fr}.move-card>div:nth-child(3),.move-card em,.move-card a{grid-column:2;grid-row:auto}.luggage-section{padding:70px 5vw}.hotel-luggage-note{padding:20px}.image-modal{width:96vw}.trip-label{margin-bottom:18px}}
.trip-title{font-size:clamp(36px,5vw,72px);line-height:1.03;letter-spacing:-.065em}.trip-title span{display:block;white-space:nowrap}.trip-title span+span{margin-top:5px}
.usj-options,.restaurant-section{padding:110px 7vw}.usj-options{background:#edf0e8}.option-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.option-card{min-height:260px;padding:27px;border:1px solid var(--line);border-radius:16px;background:var(--paper);display:flex;flex-direction:column}.option-card.recommended{background:var(--deep);color:#fff;border-color:var(--deep)}.option-card.event{background:#f2dfd2}.option-kicker{font-size:9px;letter-spacing:.11em;font-weight:800;color:var(--coral)}.option-card.recommended .option-kicker{color:var(--gold)}.option-card h3{font-size:23px;line-height:1.28;margin:15px 0 10px}.option-card p{font-size:12px;line-height:1.7;opacity:.68;flex:1}.option-card strong{font-size:22px;margin-top:14px}.option-card small{font-size:9px;opacity:.55;margin-top:3px}.option-note{margin-top:15px;padding:21px 25px;border-radius:14px;background:var(--gold);display:flex;gap:18px;font-size:12px;line-height:1.65}.option-note strong{white-space:nowrap}.restaurant-section{background:var(--paper)}.restaurant-table-wrap,.budget-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:16px}.restaurant-table,.budget-table{width:100%;border-collapse:collapse;min-width:800px}.restaurant-table th,.budget-table th{text-align:left;padding:14px 16px;background:var(--ink);color:#fff;font-size:10px;letter-spacing:.08em}.restaurant-table td,.budget-table td{padding:16px;border-bottom:1px solid var(--line);font-size:12px;line-height:1.55;vertical-align:middle}.restaurant-table tr:last-child td,.budget-table tr:last-child td{border-bottom:0}.restaurant-table img{width:118px;height:78px;border-radius:9px;object-fit:cover;display:block}.restaurant-table td:nth-child(2) b,.restaurant-table td:nth-child(2) span{display:block}.restaurant-table td:nth-child(2) b{font-size:10px;color:var(--coral);margin-bottom:5px}.restaurant-table td:nth-child(2) span{font-weight:800;font-size:14px}.restaurant-table td:nth-child(4) strong{white-space:nowrap;font-size:14px}.budget-help{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:12px;font-size:12px}.budget-help span{opacity:.6}.budget-table{min-width:720px}.budget-table th:first-child,.budget-table td:first-child{text-align:center;width:58px}.budget-table td:nth-child(2) small,.budget-table td:nth-child(2) b,.budget-table td:nth-child(2) em{display:block}.budget-table td:nth-child(2) small{font-size:8px;letter-spacing:.1em;color:var(--coral);font-weight:800}.budget-table td:nth-child(2) b{font-size:13px;margin:3px 0}.budget-table td:nth-child(2) em{font-size:9px;font-style:normal;opacity:.5}.budget-table td:nth-child(3){color:rgba(24,59,63,.65)}.budget-table td:last-child{text-align:right;white-space:nowrap}.budget-table tr{transition:.2s}.budget-table tr.is-off{opacity:.36;background:var(--cream)}.budget-check{appearance:none;width:22px;height:22px;border:2px solid var(--ink);border-radius:6px;cursor:pointer;display:inline-grid;place-items:center}.budget-check:checked{background:var(--coral);border-color:var(--coral)}.budget-check:checked:after{content:'✓';color:#fff;font-weight:800;font-size:14px}.budget-total{position:sticky;top:100px;height:max-content;min-height:360px}.budget-total>strong{font-size:clamp(33px,3.2vw,48px)}
@media(max-width:900px){.usj-options,.restaurant-section{padding:80px 5vw}.option-grid{grid-template-columns:1fr 1fr}.budget-total{position:static}}
@media(max-width:560px){.trip-title{font-size:clamp(32px,9.4vw,42px)}.option-grid{grid-template-columns:1fr}.option-note{flex-direction:column;gap:5px}.restaurant-table-wrap,.budget-table-wrap{margin-right:-2vw}.restaurant-table img{width:96px}.budget-help{align-items:flex-start;flex-direction:column}.usj-options,.restaurant-section{padding:70px 5vw}}
.schedule-legend{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}.schedule-legend span,.event-type{padding:7px 10px;border-radius:999px;font-size:10px;font-weight:800}.type-transit{background:#dbe9f4;color:#24597b}.type-food{background:#f7ddcc;color:#9b452b}.type-sight{background:#dfe9d5;color:#45662e}.type-usj{background:#f7d6d0;color:#a13d2d}.type-luggage{background:#e7ddf2;color:#64458a}.type-stay{background:#d6e9e6;color:#205f59}.day-block{margin-bottom:72px}.day-block:last-child{margin-bottom:0}.day-header{display:flex;align-items:center;gap:22px;padding:24px 20px;background:var(--ink);color:#fff;border-radius:16px 16px 0 0}.day-header>span{width:76px;height:76px;display:grid;place-items:center;border-radius:50%;background:var(--coral);font-size:12px;font-weight:800;letter-spacing:.08em}.day-header b{font-size:10px;letter-spacing:.1em;color:var(--mint)}.day-header h3{font-size:27px;margin:5px 0 0}.time-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:9px}.event-type{display:inline-flex;align-items:center;gap:5px}.event-type i{font-style:normal;font-size:13px}.timeline-item{border-left:5px solid transparent}.timeline-item.event-transit{border-left-color:#75a8ca}.timeline-item.event-food{border-left-color:#e89b6c}.timeline-item.event-sight{border-left-color:#90b16e}.timeline-item.event-usj{border-left-color:var(--coral)}.timeline-item.event-luggage{border-left-color:#9a79ba}.timeline-item.event-stay{border-left-color:#5b9e95}.event-cost b{color:var(--coral)}.locker-detail-grid{grid-template-columns:1fr}.locker-detail-grid article{display:grid;grid-template-columns:1fr 1fr;column-gap:34px}.locker-detail-grid article>span,.locker-detail-grid article>h3,.locker-detail-grid .locker-capacity,.locker-detail-grid .locker-backup{grid-column:1/3}.locker-detail-grid ol{font-size:12px;line-height:1.8;margin:0;padding-left:20px;color:rgba(24,59,63,.72)}.locker-location b{display:block;color:var(--coral);font-size:10px;letter-spacing:.08em;margin-bottom:7px}.locker-capacity{display:grid;grid-template-columns:110px 1fr auto;gap:12px;align-items:center;margin-top:22px;padding:16px 18px;background:#e7efe9;border-radius:10px;font-size:11px}.locker-capacity strong{color:var(--coral)}.locker-capacity i{font-style:normal}.locker-backup{margin:13px 0 0!important;padding:14px 17px;background:var(--cream);border-radius:10px}.locker-backup strong{color:var(--coral)}.route-section{grid-template-columns:1fr}.route-copy{padding:90px 5vw 36px}.route-copy h2{max-width:650px}.route-copy>p{max-width:850px}.route-table-wrap{overflow-x:auto;border:1px solid rgba(255,255,255,.16);border-radius:14px}.route-table{width:100%;min-width:880px;border-collapse:collapse}.route-table th{padding:13px 14px;text-align:left;background:rgba(255,255,255,.08);font-size:9px;letter-spacing:.1em;color:var(--mint)}.route-table td{padding:15px 14px;border-top:1px solid rgba(255,255,255,.12);font-size:11px;vertical-align:middle}.route-table td:nth-child(2) small,.route-table td:nth-child(2) b,.route-table td:last-child b,.route-table td:last-child small{display:block}.route-table td:nth-child(2) small{font-size:8px;color:var(--gold);margin-bottom:3px}.route-table td:last-child a{text-decoration:none}.route-table td:last-child small{opacity:.55;margin-top:3px}.mode-chip{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:999px;font-weight:800;white-space:nowrap}.mode-train{background:#dbe9f4;color:#24597b}.mode-walk{background:#dfe9d5;color:#45662e}.mode-taxi{background:#f7ddcc;color:#9b452b}.map-panel{margin:0 5vw 70px;min-height:700px}.route-map{min-height:620px;z-index:1}.route-map .leaflet-control-attribution{font-size:8px}.map-number-wrap{background:transparent;border:0}.map-number{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--coral);color:#fff;border:3px solid #fff;box-shadow:0 3px 12px rgba(0,0,0,.28);font-size:11px;font-weight:800}.map-number.day-2{background:var(--gold);color:var(--ink)}.map-number.day-3{background:#4d9981}.map-fallback{height:620px;display:grid;place-items:center;align-content:center;gap:8px}.map-fallback span{font-size:11px;opacity:.55}
@media(max-width:900px){.route-copy{padding:75px 5vw 30px}.locker-detail-grid article{grid-template-columns:1fr}.locker-detail-grid article>span,.locker-detail-grid article>h3,.locker-detail-grid .locker-capacity,.locker-detail-grid .locker-backup{grid-column:auto}.map-panel{min-height:620px}}
@media(max-width:560px){.day-header{padding:18px 14px;gap:14px}.day-header>span{width:58px;height:58px}.day-header h3{font-size:20px}.time-wrap{gap:6px}.event-type{font-size:8px;padding:5px 7px}.locker-capacity{grid-template-columns:1fr}.route-table-wrap{margin-right:-2vw}.map-panel{margin:0 3vw 50px}.route-map{min-height:520px}}
.route-map .leaflet-overlay-pane svg{width:auto!important;height:auto!important;min-height:0!important}.route-map .leaflet-tile{max-width:none!important;max-height:none!important}
.route-map>iframe{width:100%;height:100%;min-height:620px;border:0;filter:saturate(.72) contrast(.94)}.actual-map-overlay{position:absolute;inset:0;pointer-events:none;z-index:400}.actual-map-overlay svg{position:absolute;inset:0;width:100%!important;height:100%!important;min-height:0!important}.actual-route-shadow,.actual-route-line{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.actual-route-shadow{stroke:#fff;stroke-width:9;opacity:.9}.actual-route-line{stroke:var(--coral);stroke-width:4;stroke-dasharray:9 8}.actual-map-marker{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:5px}.actual-map-marker b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--coral);color:#fff;border:3px solid #fff;box-shadow:0 3px 12px rgba(0,0,0,.3);font-size:11px}.actual-map-marker.day-2 b{background:var(--gold);color:var(--ink)}.actual-map-marker.day-3 b{background:#4d9981}.actual-map-marker em{font-style:normal;font-size:9px;font-weight:800;padding:4px 6px;border-radius:5px;background:rgba(251,248,241,.92);white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.14)}
@media(max-width:560px){.route-map>iframe{min-height:520px}.actual-map-marker em{display:none}.actual-map-marker b{width:26px;height:26px}}

/* Door-to-airport, Rapi:t, USJ course gallery, and day-specific map cards */
.home-airport-section,.usj-course-section{padding:110px 7vw;background:var(--paper)}
.home-airport-section{background:#e8efeb}
.airport-plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.airport-plan-card{padding:32px;border-radius:18px;background:var(--paper);border:1px solid var(--line)}
.airport-plan-card.return{background:var(--deep);color:#fff;border-color:var(--deep)}
.airport-plan-card>span{font-size:9px;letter-spacing:.13em;font-weight:800;color:var(--coral)}
.airport-plan-card.return>span{color:var(--gold)}
.airport-plan-card h3{font-size:26px;margin:12px 0 23px}
.airport-step{display:grid;grid-template-columns:62px 1fr;gap:15px;padding:15px 0;border-top:1px solid var(--line)}
.airport-plan-card.return .airport-step{border-color:rgba(255,255,255,.15)}
.airport-step>b{font-size:18px;color:var(--coral)}
.airport-plan-card.return .airport-step>b{color:var(--gold)}
.airport-step p{margin:0}.airport-step strong,.airport-step small{display:block}.airport-step strong{font-size:13px}.airport-step small{font-size:10px;line-height:1.6;margin-top:3px;opacity:.62}
.airport-card-foot{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:18px;padding:15px 17px;border-radius:10px;background:var(--cream);font-size:10px}
.airport-card-foot strong{font-size:14px;color:var(--coral)}
.airport-plan-card.return .airport-card-foot{background:rgba(255,255,255,.09)}
.airport-plan-card.return .airport-card-foot strong{color:var(--gold)}
.airport-reserve-note{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;margin-top:16px;padding:21px 24px;background:var(--gold);border-radius:14px;font-size:11px;line-height:1.6}
.airport-reserve-note strong{white-space:nowrap}.airport-reserve-note a{text-decoration:none;font-weight:800;white-space:nowrap}
.rapit-guide{padding:85px 7vw;background:#182f57;color:#fff;display:grid;grid-template-columns:.65fr 1.35fr;gap:55px;position:relative;overflow:hidden}
.rapit-guide:after{content:'Rapi:t';position:absolute;right:-25px;bottom:-90px;font-size:190px;font-weight:800;letter-spacing:-.08em;color:rgba(255,255,255,.035);pointer-events:none}
.rapit-name>span{font-size:9px;letter-spacing:.15em;color:#94d0e3;font-weight:800}.rapit-name h2{font-size:50px;line-height:1.04;letter-spacing:-.06em;margin:15px 0 18px}.rapit-name p{font-size:12px;line-height:1.8;opacity:.7}
.rapit-facts{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(255,255,255,.2);border-left:1px solid rgba(255,255,255,.2)}
.rapit-facts article{padding:25px;border-right:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2)}
.rapit-facts b{font-size:10px;color:#94d0e3}.rapit-facts h3{font-size:18px;margin:10px 0 8px}.rapit-facts p{font-size:10px;line-height:1.7;opacity:.65}
.rapit-link{grid-column:2;color:#fff;font-size:11px;font-weight:800;text-decoration:none;justify-self:start;z-index:1}
.usj-course-section{background:#f4eee7}
.course-gallery-note{max-width:720px;margin:0 0 22px;font-size:11px;line-height:1.7;opacity:.64}
.course-hours-bar{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:-8px 0 18px;padding:16px 20px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.course-hours-bar>div{display:flex;align-items:baseline;gap:10px}
.course-hours-bar span{font-size:10px;letter-spacing:.1em;font-weight:800;color:var(--coral)}
.course-hours-bar strong{font-size:28px;line-height:1;letter-spacing:.02em}
.course-hours-bar p{margin:0;font-size:11px;line-height:1.55;opacity:.62}
.course-hours-bar a{color:var(--coral);font-weight:800;text-decoration:none;border-bottom:1px solid currentColor}
.usj-course-map-wrap{position:relative;margin:0 0 22px;border:1px solid var(--line);border-radius:17px;overflow:hidden;background:var(--paper);box-shadow:0 12px 34px rgba(24,59,63,.07)}
.usj-course-map-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;background:var(--deep);color:#fff;font-size:10px;letter-spacing:.08em;font-weight:800}
.usj-course-map-head a{color:var(--gold);text-decoration:none;border-bottom:1px solid currentColor}
.usj-course-map.leaflet-map{height:min(86vh,920px);min-height:780px}
.usj-course-map-wrap .map-stop-strip{pointer-events:auto}
.usj-course-map-stops b{background:var(--gold);color:var(--ink)}
.usj-course-map-stops b.is-entry{background:var(--coral);color:#fff}
.usj-course-map-stops b.is-exit{background:var(--deep);color:#fff}
.map-number.is-gate{width:auto;min-width:30px;padding:0 8px;border-radius:9px;font-size:10px}
.map-number.is-entry{background:var(--coral);color:#fff}
.map-number.is-exit{background:var(--deep);color:#fff}
.usj-course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.usj-course-card{min-width:0;background:var(--paper);border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:0 10px 26px rgba(24,59,63,.06)}
.course-slider{position:relative;height:240px;overflow:hidden;background:#132d30;touch-action:pan-y}
.course-slides,.course-slide{width:100%;height:100%}.course-slide{display:none;padding:0;border:0;background:transparent;cursor:zoom-in}.course-slide.is-active{display:block}.course-slide img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.course-slide:hover img{transform:scale(1.025)}
.course-slider-arrow{position:absolute;z-index:3;top:50%;width:40px;height:40px;padding:0;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:rgba(9,32,35,.68);color:#fff;font:32px/35px Georgia,serif;cursor:pointer;transform:translateY(-50%);backdrop-filter:blur(5px)}.course-slider-arrow:hover,.course-slider-arrow:focus-visible{background:var(--coral);outline:2px solid #fff;outline-offset:2px}.course-slider-arrow.prev{left:10px}.course-slider-arrow.next{right:10px}
.course-slider-bottom{position:absolute;z-index:3;right:10px;bottom:10px;left:10px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.course-slider-dots{display:flex;gap:6px;padding:7px 9px;border-radius:20px;background:rgba(9,32,35,.66);pointer-events:auto}.course-slider-dots button{width:8px;height:8px;padding:0;border:1px solid #fff;border-radius:50%;background:transparent;cursor:pointer}.course-slider-dots button.is-active{background:var(--gold);border-color:var(--gold)}.usj-course-card .course-slider-count{padding:6px 9px;border-radius:20px;background:rgba(9,32,35,.7);color:#fff;font-size:9px;letter-spacing:.06em;pointer-events:none}
.course-card-copy{padding:23px}.usj-course-card span{font-size:9px;letter-spacing:.11em;color:var(--coral);font-weight:800}.usj-course-card h3{font-size:20px;margin:10px 0 8px}.usj-course-card p{font-size:11px;line-height:1.65;opacity:.68}.course-card-copy small{display:block;margin:14px 0;padding:11px 12px;border-radius:8px;background:var(--cream);font-size:9px;line-height:1.65;color:var(--deep)}.course-card-copy a{display:inline-block;color:var(--coral);font-size:10px;font-weight:800;text-decoration:none;border-bottom:1px solid currentColor}
.mode-taxi{background:#f0d7e8;color:#783a66}
.day-map-grid{padding:0 5vw 80px;display:grid;gap:22px}
.day-map-card{background:var(--paper);border-radius:18px;overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.15)}
.day-map-title{padding:20px 24px;border-bottom:1px solid var(--line)}.day-map-title h3{font-size:22px;margin:0 0 5px}.day-map-title p{font-size:9px;opacity:.55;margin:0}
.day-map-frames{display:grid;grid-template-columns:1fr;min-height:520px}.day-map-frames.is-split{grid-template-columns:1fr 1.35fr}
.day-map-frame{position:relative;min-height:520px;overflow:hidden;border-right:1px solid rgba(24,59,63,.15)}.day-map-frame:last-child{border-right:0}
.day-map-frame>iframe{width:100%;height:100%;min-height:520px;border:0;filter:saturate(.75) contrast(.95)}
.leaflet-map{width:100%;height:520px;background:#dfe7df}.leaflet-map .leaflet-tile-pane{filter:none}.leaflet-map .leaflet-tile{max-width:none!important;max-height:none!important}.leaflet-map .leaflet-control-attribution{font-size:8px}.map-load-error{height:520px;display:grid;place-items:center;text-align:center;font-size:11px;line-height:1.7;color:rgba(24,59,63,.6)}
/* Leaflet's CDN stylesheet can be blocked in embedded browsers. Keep the map's
   positioning and layer order local so tiles, routes and markers never drift. */
.leaflet-container{overflow:hidden;outline:0;touch-action:pan-x pan-y;background:#ddd}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box{position:absolute;left:0;top:0}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{user-select:none;-webkit-user-drag:none}.leaflet-tile{visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-animated{transform-origin:0 0}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{position:relative;z-index:800;pointer-events:auto;float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-control-zoom a{display:block;width:30px;height:30px;background:#fff;color:#183b3f;text-align:center;text-decoration:none;font:700 18px/30px sans-serif;border-bottom:1px solid #ccc}.leaflet-control-zoom a:first-child{border-radius:4px 4px 0 0}.leaflet-control-zoom a:last-child{border:0;border-radius:0 0 4px 4px}.leaflet-control-attribution{padding:2px 6px;background:rgba(255,255,255,.82)}.leaflet-control-attribution a{text-decoration:none}.leaflet-tooltip{position:absolute;padding:6px 8px;background:#fff;border:1px solid rgba(0,0,0,.2);border-radius:4px;color:#183b3f;white-space:nowrap;font-size:11px;box-shadow:0 2px 8px rgba(0,0,0,.16)}
.map-frame-label{position:absolute;left:16px;top:15px;z-index:450;padding:8px 11px;background:rgba(251,248,241,.92);border-radius:7px;font-size:9px;letter-spacing:.08em;font-weight:800;box-shadow:0 3px 14px rgba(0,0,0,.12)}
.day-map-card .map-footer>div{display:flex;gap:14px;flex-wrap:wrap}.day-map-card .map-footer a{text-decoration:none;font-weight:800}
.day-map-card:nth-child(2) .actual-route-line{stroke:var(--gold)}.day-map-card:nth-child(3) .actual-route-line{stroke:#4d9981}
@media(max-width:900px){.home-airport-section,.usj-course-section{padding:80px 5vw}.airport-plan-grid{grid-template-columns:1fr}.rapit-guide{grid-template-columns:1fr;padding:75px 7vw}.rapit-link{grid-column:1}.usj-course-grid{grid-template-columns:1fr 1fr}.day-map-frames.is-split{grid-template-columns:1fr}.day-map-frame{border-right:0;border-bottom:1px solid rgba(24,59,63,.15)}}
@media(max-width:560px){.home-airport-section,.usj-course-section{padding:70px 5vw}.airport-plan-card{padding:23px}.airport-step{grid-template-columns:52px 1fr}.airport-card-foot,.airport-reserve-note{align-items:flex-start;flex-direction:column}.airport-reserve-note{display:flex}.rapit-name h2{font-size:42px}.rapit-facts{grid-template-columns:1fr}.usj-course-grid{grid-template-columns:1fr}.course-slider{height:220px}.course-slider-arrow{width:42px;height:42px}.day-map-grid{padding:0 3vw 55px}.day-map-title h3{font-size:18px}.day-map-frame,.day-map-frame>iframe{min-height:430px}.day-map-card .actual-map-marker em{display:none}}

/* Global exchange rate, check-in guide, verified links, and travel safety */
.top-rate-bar{position:relative;z-index:18;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:22px;padding:15px 4vw;background:var(--gold);border-bottom:1px solid rgba(24,59,63,.18);box-shadow:0 8px 22px rgba(24,59,63,.08)}
.top-rate-bar>div strong,.top-rate-bar>div span{display:block}.top-rate-bar>div strong{font-size:14px}.top-rate-bar>div span,.top-rate-bar>small{font-size:10px;opacity:.68}.top-rate-bar .exchange-field{display:flex;align-items:center;gap:7px;min-width:0;margin:0;padding:7px 10px;background:rgba(255,255,255,.7);border:1px solid rgba(24,59,63,.12)}.top-rate-bar .exchange-field>span{display:inline;font-size:12px;letter-spacing:0}.top-rate-bar .exchange-field input{width:82px;padding:7px 9px;font-size:16px}.top-rate-bar .exchange-field b{font-size:12px}
.air-checkin-section{display:grid;grid-template-columns:1.05fr .95fr;min-height:650px;background:var(--deep);color:#fff}.air-checkin-photo{min-height:560px;background-size:cover;background-position:center}.air-checkin-copy{padding:78px 7vw 70px 6vw}.air-checkin-copy h2{font-size:clamp(42px,5vw,68px);line-height:1.02;letter-spacing:-.065em;margin-bottom:28px}.checkin-route{display:grid;grid-template-columns:105px 1fr;gap:16px;padding:14px 0;border-top:1px solid rgba(255,255,255,.16);font-size:12px;line-height:1.6}.checkin-route b{color:var(--gold)}.checkin-route span{opacity:.76}.checkin-warning{margin:22px 0 18px;padding:16px 18px;border-radius:10px;background:rgba(236,104,77,.18);font-size:11px;line-height:1.7}.checkin-warning strong{color:#ff9f88;margin-right:8px}.inline-links{display:flex;gap:9px;flex-wrap:wrap}.inline-links a,.event-source-link{display:inline-flex;align-items:center;text-decoration:none;font-size:10px;font-weight:800;border-bottom:1px solid currentColor;padding-bottom:3px}.inline-links a{color:var(--mint)}
.event-source-link{margin-top:8px;color:var(--coral)}.event-detail i[data-yen]{font-style:normal;font-weight:800;color:var(--coral)}
.usj-hours-card{margin:25px 0 8px;padding:19px 21px;border:1px solid rgba(255,255,255,.2);border-left:4px solid var(--gold);border-radius:10px;background:rgba(255,255,255,.07)}.usj-hours-card>span,.usj-hours-card>strong{display:block}.usj-hours-card>span{font-size:9px;letter-spacing:.12em;color:var(--mint);font-weight:800}.usj-hours-card>strong{font-size:24px;color:var(--gold);margin:5px 0 8px}.usj-hours-card p{font-size:11px;line-height:1.65;color:rgba(255,255,255,.7);margin-bottom:10px}.usj-hours-card a{font-size:10px;font-weight:800;color:#fff;text-decoration:none;border-bottom:1px solid currentColor}
.map-stop-strip{position:absolute;left:12px;right:12px;bottom:12px;z-index:800;display:flex;align-items:center;gap:6px;overflow-x:auto;padding:9px 11px;border-radius:9px;background:rgba(251,248,241,.94);box-shadow:0 5px 18px rgba(0,0,0,.16);font-size:8px;font-weight:800;white-space:nowrap;pointer-events:none}.map-stop-strip span{display:flex;align-items:center;gap:5px}.map-stop-strip b{width:19px;height:19px;display:grid;place-items:center;border-radius:50%;background:var(--coral);color:#fff}.map-stop-strip i{font-style:normal;opacity:.35}.day-map-card:nth-child(2) .map-stop-strip b{background:var(--gold);color:var(--ink)}.day-map-card:nth-child(3) .map-stop-strip b{background:#4d9981}
.travel-safety-section{padding:110px 7vw;background:#edf0e8}.safety-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.safety-grid article{padding:30px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.safety-grid article.warning{background:#f5e2da;border-color:rgba(236,104,77,.28)}.safety-grid article>span{font-size:9px;letter-spacing:.11em;font-weight:800;color:var(--coral)}.safety-grid h3{font-size:22px;margin:13px 0}.safety-grid ul{padding-left:18px;margin:0 0 20px;font-size:11px;line-height:1.9;color:rgba(24,59,63,.72)}.safety-grid a,.safety-notes a{font-size:10px;font-weight:800;text-decoration:none;border-bottom:1px solid currentColor}.safety-notes{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;margin-top:16px;padding:21px 24px;border-radius:13px;background:var(--ink);color:#fff;font-size:11px;line-height:1.65}.safety-notes strong{color:var(--gold);white-space:nowrap}.safety-notes span{opacity:.75}.safety-notes a{color:var(--mint);white-space:nowrap}.budget-total>strong{overflow-wrap:anywhere}
@media(max-width:900px){.top-rate-bar{grid-template-columns:1fr auto}.top-rate-bar>small{grid-column:1/3}.air-checkin-section{grid-template-columns:1fr}.air-checkin-photo{min-height:460px}.air-checkin-copy{padding:65px 7vw}.travel-safety-section{padding:80px 5vw}.safety-grid{grid-template-columns:1fr}.safety-notes{grid-template-columns:1fr}.safety-notes a{justify-self:start}}
@media(max-width:560px){.top-rate-bar{grid-template-columns:1fr;gap:9px;padding:12px 5vw}.top-rate-bar>small{grid-column:auto}.top-rate-bar .exchange-field{justify-self:start}.air-checkin-photo{min-height:320px}.air-checkin-copy{padding:55px 7vw}.checkin-route{grid-template-columns:82px 1fr}.travel-safety-section{padding:70px 5vw}.safety-grid article{padding:24px}.safety-notes{padding:20px}.map-stop-strip{left:8px;right:8px;bottom:8px}.leaflet-map{height:430px}.budget-total>strong{font-size:30px}}

/* Sticky currency controls */
.topbar{gap:26px}.topbar-tools{display:flex;align-items:center;gap:10px}.nav-rate{display:flex;align-items:center;gap:5px;padding:6px 9px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:10px;white-space:nowrap}.nav-rate>span{font-size:8px;letter-spacing:.08em;font-weight:800;color:var(--coral)}.nav-rate input{width:55px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font-weight:800;padding:4px 2px;text-align:center}.nav-rate em{font-style:normal}.currency-switch{display:flex;align-items:center;gap:7px;cursor:pointer;font-size:10px;white-space:nowrap}.currency-switch input{position:absolute;opacity:0;pointer-events:none}.switch-track{width:38px;height:22px;padding:3px;border-radius:999px;background:#cbd2cd;transition:.2s}.switch-track:after{content:'';display:block;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.18);transition:.2s}.currency-switch input:checked+.switch-track{background:var(--coral)}.currency-switch input:checked+.switch-track:after{transform:translateX(16px)}.currency-switch input:focus-visible+.switch-track{outline:3px solid var(--gold);outline-offset:2px}

/* Parking, airport process, train and roaming guides */
.airport-parking-section,.airport-process-section,.train-guide-section,.roaming-section{padding:110px 7vw}.airport-parking-section{background:#f2eadb}.parking-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.parking-card{padding:29px;border:1px solid var(--line);border-radius:17px;background:var(--paper)}.parking-card.recommended{background:var(--deep);color:#fff}.parking-card.valet{background:#e7efe9}.parking-card>span,.process-grid article>span,.train-route-grid article>span,.roaming-grid article>span{font-size:9px;letter-spacing:.11em;font-weight:800;color:var(--coral)}.parking-card.recommended>span{color:var(--gold)}.parking-card h3{font-size:24px;margin:12px 0 7px}.parking-card>strong{display:block;font-size:20px;color:var(--coral);margin-bottom:14px}.parking-card.recommended>strong{color:var(--gold)}.parking-card p,.parking-card li{font-size:11px;line-height:1.75;opacity:.72}.parking-card ol{padding-left:18px}.parking-card a,.process-grid a,.train-route-grid a{font-size:10px;font-weight:800;text-decoration:none;border-bottom:1px solid currentColor}.parking-summary{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;margin-top:15px;padding:20px 23px;border-radius:13px;background:var(--gold);font-size:11px;line-height:1.65}.parking-summary strong,.parking-summary b{white-space:nowrap}.parking-summary b{color:var(--coral)}
.airport-process-section{background:#e8efeb}.process-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.process-grid article{padding:29px;border-radius:17px;background:var(--paper);border:1px solid var(--line)}.process-grid h3{font-size:25px;margin:12px 0 18px}.process-grid ol{padding-left:20px;margin:0}.process-grid li{padding:7px 0;font-size:11px;line-height:1.65}.process-grid li b{color:var(--coral)}.process-tip{margin:18px 0;padding:14px 16px;border-radius:9px;background:var(--cream);font-size:10px;line-height:1.7}.process-tip strong{color:var(--coral);margin-right:7px}
.train-guide-section{background:var(--paper)}.train-basics{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);margin-bottom:18px}.train-basics article{padding:23px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.train-basics b{color:var(--coral)}.train-basics h3{font-size:17px;margin:9px 0}.train-basics p,.train-route-grid p,.train-route-grid li{font-size:10px;line-height:1.7;opacity:.7}.train-route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.train-route-grid article{padding:26px;border:1px solid var(--line);border-radius:15px;background:var(--cream)}.train-route-grid h3{font-size:21px;margin:11px 0}.train-route-grid ol{padding-left:18px}.train-route-grid>article>strong{display:block;color:var(--coral);font-size:18px;margin-top:15px}.train-route-grid>article>small{font-size:9px;opacity:.55}.train-alt{padding:12px 14px;border-radius:8px;background:#fff}.train-alt b{display:block;color:var(--coral);margin-bottom:3px}
.roaming-section{background:#e7efe9}.roaming-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.roaming-grid article{padding:27px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.roaming-grid article.recommended{background:var(--deep);color:#fff}.roaming-grid article.recommended>span{color:var(--gold)}.roaming-grid h3{font-size:21px;margin:12px 0}.roaming-grid p,.roaming-grid li{font-size:10px;line-height:1.75;opacity:.7}.roaming-grid ul{padding-left:17px}.roaming-links{display:flex;gap:10px;flex-wrap:wrap}.roaming-links a{font-size:10px;font-weight:800;text-decoration:none;border-bottom:1px solid currentColor}.roaming-check{display:flex;gap:18px;margin-top:15px;padding:20px 23px;border-radius:12px;background:var(--gold);font-size:11px;line-height:1.65}.roaming-check strong{white-space:nowrap;color:var(--coral)}
.day-map-card{color:var(--ink)}.day-map-card .day-map-title h3{color:var(--ink)}.day-map-card .day-map-title p{color:rgba(24,59,63,.75);opacity:1}
@media(max-width:1050px){.topbar nav{display:none}.train-basics,.roaming-grid{grid-template-columns:1fr 1fr}.train-route-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.airport-parking-section,.airport-process-section,.train-guide-section,.roaming-section{padding:80px 5vw}.parking-grid{grid-template-columns:1fr}.process-grid{grid-template-columns:1fr}.parking-summary{grid-template-columns:1fr}.parking-summary b{white-space:normal}.topbar{padding:0 3vw}.brand>span:last-child{display:none}}
@media(max-width:560px){.topbar{gap:8px}.topbar-tools{gap:6px;margin-left:auto}.nav-rate>span,.nav-rate em,.currency-switch b{display:none}.nav-rate{padding:5px 7px}.nav-rate input{width:46px}.train-basics,.train-route-grid,.roaming-grid{grid-template-columns:1fr}.airport-parking-section,.airport-process-section,.train-guide-section,.roaming-section{padding:70px 5vw}.parking-card,.process-grid article,.train-route-grid article,.roaming-grid article{padding:23px}.parking-summary,.roaming-check{display:flex;flex-direction:column;gap:6px}.roaming-check strong{white-space:normal}}

/* Mobile-first finishing layer: keep every planning tool readable without horizontal page overflow. */
@media(max-width:700px){
  html{scroll-padding-top:68px}
  body{overflow-x:hidden}
  .topbar{height:64px;min-height:64px;padding:0 12px;gap:7px}
  .brand{gap:0;flex:none}
  .brand-mark{width:30px;height:30px;font-size:12px}
  .topbar-tools{min-width:0;gap:5px;margin-left:auto}
  .nav-rate{min-width:0;padding:5px 6px}
  .nav-rate input{width:44px;font-size:12px}
  .currency-switch{gap:4px}
  .mini-button{padding:8px 9px;white-space:nowrap}

  .hero-photo{height:34vh;min-height:260px}
  .hero-copy{padding:42px 18px 46px}
  .trip-title{font-size:clamp(34px,11.2vw,45px);line-height:1.04;letter-spacing:-.06em}
  .trip-title span{white-space:normal}
  .trip-label{width:100%;margin-top:4px;padding:12px 15px}
  .hero-badge{top:calc(34vh - 39px);right:16px;width:78px;height:78px;border-width:5px}
  .hero-badge b{font-size:22px}
  .hero-desc{font-size:14px;line-height:1.7}
  .strip .intro>div{padding:26px 18px}

  .schedule-section,.recommend-section,.budget-section,.luggage-section,.usj-options,.restaurant-section,
  .home-airport-section,.usj-course-section,.airport-parking-section,.airport-process-section,
  .train-guide-section,.roaming-section,.travel-safety-section{padding:64px 16px}
  .section-heading{margin-bottom:34px}
  .section-heading h2{font-size:clamp(35px,10vw,46px);line-height:1.08}
  .section-heading.horizontal>p{font-size:13px}
  .schedule-legend{gap:6px;margin-bottom:20px}
  .schedule-legend span{font-size:9px;padding:6px 8px}
  .day-block{margin-bottom:52px}
  .day-header{padding:16px 12px;gap:11px;border-radius:13px 13px 0 0}
  .day-header>span{width:52px;height:52px;font-size:10px;flex:none}
  .day-header h3{font-size:18px;line-height:1.28}
  .timeline-item{grid-template-columns:50px minmax(0,1fr);padding:20px 7px 20px 5px;gap:9px}
  .timeline-item:hover,.timeline-item.open{padding-left:8px}
  .event-main{min-width:0;gap:12px}
  .event-main h3{font-size:18px;line-height:1.35;overflow-wrap:anywhere}
  .event-main p{font-size:12px}
  .event-thumb{height:148px}
  .event-cost b{font-size:14px}
  .event-detail{font-size:12px;overflow-wrap:anywhere}
  .timeline-item.open .event-detail{max-height:900px}
  .move-card{margin:0;padding:12px 11px;grid-template-columns:28px minmax(0,1fr);gap:5px 9px;border-left-width:4px}
  .move-card>div:nth-child(3),.move-card em,.move-card a{grid-column:2;grid-row:auto}
  .move-card strong,.move-card small{overflow-wrap:anywhere}
  .move-card a{justify-self:start}

  .usj-photo{min-height:320px}
  .usj-content,.route-copy,.rapit-guide,.air-checkin-copy{padding:58px 18px}
  .usj-content h2,.route-copy h2,.rapit-name h2{font-size:clamp(40px,12vw,52px)}
  .usj-grid span{font-size:19px}
  .callout,.option-note{flex-direction:column;gap:6px}
  .callout strong,.option-note strong{white-space:normal}
  .recommend-card{min-height:340px;padding:24px}
  .card-copy h3,.food-copy h3{font-size:23px}
  .food-photo{height:200px}
  .food-copy{padding:23px 20px}
  .price-row{align-items:flex-start;flex-direction:column;gap:4px}
  .option-card{min-height:230px;padding:23px}

  .locker-detail-grid article{display:block;padding:24px 20px}
  .locker-detail-grid article>*{margin-top:14px}
  .locker-detail-grid article>span{display:inline-block;margin-top:0}
  .locker-location+.locker-location{margin-top:22px}
  .locker-capacity{grid-template-columns:1fr;gap:6px;padding:14px;margin-top:20px}
  .hotel-luggage-note{padding:18px;overflow-wrap:anywhere}

  .route-copy{padding-bottom:28px}
  .route-table-wrap{margin-right:0;overflow:visible;border:0}
  .route-table{display:block;width:100%;min-width:0}
  .route-table thead{display:none}
  .route-table tbody{display:grid;gap:10px}
  .route-table tr{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:7px 9px;padding:14px 12px;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:rgba(255,255,255,.05)}
  .route-table td{padding:0;border:0;min-width:0}
  .route-table td:nth-child(1){grid-column:1;grid-row:1/3}
  .route-table td:nth-child(2){grid-column:2;grid-row:1}
  .route-table td:nth-child(3){grid-column:3;grid-row:1/3;align-self:start}
  .route-table td:nth-child(4){grid-column:2;grid-row:2;color:var(--mint)}
  .route-table td:nth-child(5){grid-column:2;grid-row:3;color:rgba(255,255,255,.7)}
  .route-table td:nth-child(6){grid-column:2/4;grid-row:4;padding-top:4px}
  .route-table td:nth-child(2) b,.route-table td:last-child b{overflow-wrap:anywhere}
  .mode-chip{padding:6px 8px;font-size:10px}

  .restaurant-table-wrap,.budget-table-wrap{margin-right:0;overflow:visible;border:0;border-radius:0}
  .restaurant-table,.budget-table{display:block;width:100%;min-width:0}
  .restaurant-table thead,.budget-table thead{display:none}
  .restaurant-table tbody,.budget-table tbody{display:grid;gap:11px}
  .restaurant-table tr{display:grid;grid-template-columns:92px minmax(0,1fr);gap:5px 12px;padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--paper)}
  .restaurant-table td{padding:0;border:0;min-width:0}
  .restaurant-table td:first-child{grid-column:1;grid-row:1/5}
  .restaurant-table td:not(:first-child){grid-column:2}
  .restaurant-table img{width:92px;height:92px;border-radius:10px}
  .restaurant-table td:nth-child(2) span{font-size:13px;overflow-wrap:anywhere}
  .restaurant-table td:nth-child(3){font-size:11px;color:rgba(24,59,63,.65)}
  .restaurant-table td:nth-child(4) strong{font-size:13px}

  .budget-layout{gap:24px}
  .budget-help{gap:5px;margin-bottom:15px}
  .budget-table tr{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:4px 9px;padding:13px 11px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
  .budget-table td{padding:0;border:0;min-width:0}
  .budget-table td:first-child{grid-column:1;grid-row:1/3;width:auto;text-align:left}
  .budget-table td:nth-child(2){grid-column:2;grid-row:1/3}
  .budget-table td:nth-child(3){grid-column:2;grid-row:3;font-size:10px}
  .budget-table td:last-child{grid-column:3;grid-row:1/4;align-self:center;font-size:12px}
  .budget-table td:nth-child(2) b,.budget-table td:nth-child(2) em{overflow-wrap:anywhere}
  .budget-check{width:21px;height:21px}
  .budget-total{min-height:0;padding:26px 22px}
  .budget-total>strong{font-size:30px;overflow-wrap:anywhere}

  .map-panel{margin:0 12px 46px;min-height:0}
  .day-map-grid{padding:0 12px 48px}
  .day-map-card{border-radius:14px}
  .map-topline,.map-footer{padding:14px 13px;gap:8px}
  .map-topline{align-items:flex-start;flex-direction:column}
  .day-map-title{padding:17px 14px}
  .day-map-title h3{font-size:17px;line-height:1.35}
  .day-map-title p{font-size:11px;line-height:1.6}
  .day-map-frame,.day-map-frame>iframe{min-height:360px}
  .leaflet-map{height:360px}
  .usj-course-map.leaflet-map{height:360px}
  .map-stop-strip{overflow-x:auto;white-space:nowrap;justify-content:flex-start;padding:7px 9px;pointer-events:auto;touch-action:pan-x;-webkit-overflow-scrolling:touch}
  .map-stop-strip::-webkit-scrollbar{height:3px}
  .map-footer>div{display:flex;flex-wrap:wrap;gap:7px}
  .route-map,.route-map>iframe{min-height:420px}

  .airport-step{grid-template-columns:44px minmax(0,1fr)}
  .airport-plan-card,.parking-card,.process-grid article,.train-route-grid article,.roaming-grid article,.safety-grid article{padding:21px 18px}
  .checkin-route{grid-template-columns:70px minmax(0,1fr)}
  .checklist-section{padding:58px 16px;gap:30px}
  .checklist-section h2{font-size:43px}
  .sources{padding:38px 16px}
  footer{padding:30px 16px}
}

@media(max-width:370px){
  .topbar{padding:0 8px}
  .brand-mark{width:28px;height:28px}
  .mini-button{padding:7px;font-size:9px}
  .nav-rate{padding:4px}
  .nav-rate input{width:38px}
  .switch-track{width:34px}
  .currency-switch input:checked+.switch-track:after{transform:translateX(12px)}
  .trip-title{font-size:33px}
  .route-table tr{grid-template-columns:30px minmax(0,1fr)}
  .route-table td:nth-child(3){grid-column:2;grid-row:2;justify-self:start}
  .route-table td:nth-child(4){grid-row:3}
  .route-table td:nth-child(5){grid-row:4}
  .route-table td:nth-child(6){grid-column:2;grid-row:5}
  .restaurant-table tr{grid-template-columns:78px minmax(0,1fr)}
  .restaurant-table img{width:78px;height:78px}
  .budget-table tr{grid-template-columns:26px minmax(0,1fr)}
  .budget-table td:last-child{grid-column:2;grid-row:4;justify-self:start;margin-top:5px}
}
.hotel-card.primary{background:linear-gradient(135deg,rgba(18,50,54,.42),rgba(18,50,54,.88)),url('assets/hotel-universal-port-building.png') center/cover}
.hotel-card.secondary{background:linear-gradient(135deg,rgba(46,37,47,.48),rgba(109,49,38,.88)),url('assets/hotel-il-cuore-namba-building.png') center/cover}
.hotel-photo-zoom{position:absolute;top:28px;left:30px;z-index:2;border:1px solid rgba(255,255,255,.65);border-radius:999px;background:rgba(18,50,54,.74);color:#fff;padding:9px 13px;font-size:11px;font-weight:800;cursor:pointer;backdrop-filter:blur(8px)}
.hotel-photo-zoom-alt{top:72px}
.hotel-photo-zoom:hover{background:rgba(225,103,76,.92)}
.map-number.day-4{background:#587ab2}
.mode-car{background:#f7ddcc;color:#9b452b}

/* USJ quick navigation and attraction comparison table */
html{scroll-padding-top:82px}
.topbar nav{gap:24px}
.usj-nav-quick{display:none;align-items:center;gap:5px;padding:8px 11px;border-radius:999px;background:var(--coral);color:#fff;text-decoration:none;font-size:11px;font-weight:800;white-space:nowrap}
.usj-course-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:17px;background:var(--paper);box-shadow:0 12px 34px rgba(24,59,63,.07);-webkit-overflow-scrolling:touch}
.usj-course-table{width:100%;min-width:1180px;border-collapse:collapse;table-layout:fixed}
.usj-course-table th{padding:12px 12px;background:var(--deep);color:#fff;text-align:left;font-size:10px;letter-spacing:.08em}
.usj-course-table th:nth-child(1){width:150px}.usj-course-table th:nth-child(2){width:300px}.usj-course-table th:nth-child(3){width:128px}.usj-course-table th:nth-child(4){width:128px}.usj-course-table th:nth-child(5){width:120px}.usj-course-table th:nth-child(6){width:170px}.usj-course-table th:nth-child(7){width:150px}
.usj-course-table td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:11px;line-height:1.5}.usj-course-table tbody tr:last-child td{border-bottom:0}.usj-course-table tbody tr:nth-child(even){background:rgba(245,240,230,.55)}.usj-course-table td>strong{display:block;font-size:12px}.course-photo-cell{padding:8px!important}
.usj-course-table .course-slider{height:86px;border-radius:8px}.usj-course-table .course-slider-arrow{width:26px;height:26px;font:21px/22px Georgia,serif}.usj-course-table .course-slider-arrow.prev{left:5px}.usj-course-table .course-slider-arrow.next{right:5px}.usj-course-table .course-slider-count{padding:4px 7px;border-radius:20px;background:rgba(9,32,35,.7);color:#fff;font-size:8px;letter-spacing:.06em;pointer-events:none}.usj-course-table .course-slider-dots{padding:5px 7px;gap:4px}.usj-course-table .course-slider-dots button{width:6px;height:6px}.usj-course-table .course-slider-bottom{right:7px;bottom:6px;left:7px}
.course-name-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:5px}.course-name-cell h3{font-size:16px;line-height:1.25;margin:0}.course-name-cell p{margin:0;font-size:10px;line-height:1.5;opacity:.68}.course-name-cell a{color:var(--coral);font-size:9px;font-weight:800;text-decoration:none;border-bottom:1px solid currentColor;white-space:nowrap}
.course-entry-time strong{font-size:13px;letter-spacing:.01em;white-space:nowrap}
.express-table-badge{display:inline-flex;justify-content:center;align-items:center;width:108px;min-width:108px;box-sizing:border-box;padding:6px 0;border-radius:8px;background:#e8ece9;font-size:9px;font-weight:800;text-align:center;white-space:nowrap}.express-table-badge.is-express{background:var(--gold);color:var(--deep)}.express-table-badge.is-entry{background:var(--deep);color:#fff}.express-table-badge.is-show{background:#4d9981;color:#fff}
@media(max-width:1050px){.usj-nav-quick{display:inline-flex}}
@media(max-width:560px){html{scroll-padding-top:70px}.usj-nav-quick{padding:7px 9px}.usj-nav-quick span{display:none}.usj-course-table{min-width:1080px}.usj-course-table th:nth-child(1){width:136px}.usj-course-table th:nth-child(2){width:270px}.course-hours-bar{padding:14px 16px;gap:14px}.course-hours-bar strong{font-size:24px}.usj-course-table .course-slider{height:78px}}

/* ===== 휴대폰 가독성·터치 보정 (가로 700px 이하) =====
   - 글자는 모두 16px 이상 (바닥값은 !important: 위쪽 구간별 작은 글자 규칙을 한 번에 덮음)
   - 누르는 것(버튼·링크·체크박스·입력칸)은 44px 이상
   새 요소를 추가할 때 이 구간의 규칙과 충돌하지 않게 16px·44px 이상으로 만들 것 */
@media(max-width:700px){
  /* 글자 바닥값 16px */
  a.event-source-link,a.rapit-link,a.text-link.light,
  article.airport-plan-card.outbound span,article.airport-plan-card.return span,
  article.option-card p,article.option-card small,article.option-card.event p,article.option-card.event small,
  article.option-card.recommended p,article.option-card.recommended small,
  article.parking-card a,article.parking-card li,article.parking-card p,article.parking-card span,
  article.parking-card.recommended a,article.parking-card.recommended li,article.parking-card.recommended p,article.parking-card.recommended span,
  article.parking-card.valet a,article.parking-card.valet li,article.parking-card.valet p,article.parking-card.valet span,
  article.recommended li,article.recommended p,article.recommended span,
  article.usj-course-card p,article.usj-course-card span,
  article.warning a,article.warning li,article.warning span,
  div.airport-card-foot span,div.airport-card-foot strong,
  div.airport-reserve-note a,div.airport-reserve-note span,div.airport-reserve-note strong,
  div.airport-step small,div.airport-step strong,
  div.budget-help span,div.budget-help strong,
  div.budget-total p,div.budget-total small,div.budget-total span,
  div.callout span,div.callout strong,
  div.card-copy a,div.card-copy b,div.card-copy li,div.card-copy p,
  div.checkin-route b,div.checkin-route span,div.checklist span,div.day-map-title p,
  div.event-cost b,div.event-cost small,div.event-detail,div.event-detail i,div.event-main p,
  div.food-copy p,div.hero-badge small,div.hero-badge span,
  div.hotel-luggage-note i,div.hotel-luggage-note span,div.hotel-luggage-note strong,
  div.inline-links a,
  div.locker-capacity b,div.locker-capacity i,div.locker-capacity span,div.locker-capacity strong,
  div.luggage-grid.locker-detail-grid li,div.luggage-grid.locker-detail-grid p,div.luggage-grid.locker-detail-grid span,
  div.map-footer a,div.map-footer span,
  div.map-stop-strip b,div.map-stop-strip i,div.map-stop-strip span,
  div.map-topline div,div.map-topline span,
  div.metric small,div.metric span,div.metric.accent small,div.metric.accent span,
  div.move-card a,div.move-card b,div.move-card em,div.move-card small,div.move-card span,div.move-card strong,div.move-icon,
  div.option-note span,div.option-note strong,div.optional b,div.optional span,
  div.parking-summary b,div.parking-summary span,div.parking-summary strong,
  div.price-row b,div.price-row i,div.price-row span,
  div.process-grid a,div.process-grid b,div.process-grid li,div.process-grid span,
  div.rapit-facts b,div.rapit-facts i,div.rapit-facts p,div.rapit-name p,div.rapit-name span,
  div.roaming-check span,div.roaming-check strong,
  div.roaming-grid li,div.roaming-grid p,div.roaming-grid span,div.roaming-links a,
  div.safety-grid a,div.safety-grid li,div.safety-grid span,
  div.safety-notes a,div.safety-notes span,div.safety-notes strong,
  div.section-heading.horizontal b,div.section-heading.horizontal p,
  div.train-basics p,
  div.train-route-grid a,div.train-route-grid li,div.train-route-grid small,div.train-route-grid span,
  div.transport-pills span,div.trip-label span,
  div.usj-grid b,div.usj-grid small,
  div.usj-hours-card a,div.usj-hours-card b,div.usj-hours-card p,div.usj-hours-card span,
  footer>p,footer>a,
  header.day-header b,header.day-header span,
  label.nav-rate b,label.nav-rate input,
  p.checkin-warning,p.checkin-warning strong,p.eyebrow,p.eyebrow.light,p.hero-desc,
  p.locker-backup,p.locker-backup b,p.locker-backup strong,p.locker-location,p.locker-location b,
  p.process-tip,p.process-tip strong,p.train-alt,p.train-alt b,
  section.sources a,section.sources p,
  span.brand-mark,
  span.event-type,span.event-type i,
  span.map-frame-label,span.mode-chip,span.option-kicker,span.route-index,span.tag,
  .schedule-legend span,
  table.budget-table b,table.budget-table em,table.budget-table small,table.budget-table strong,table.budget-table td,
  table.restaurant-table b,table.restaurant-table span,table.restaurant-table strong,table.restaurant-table td,
  table.route-table b,table.route-table small,table.route-table td,
  tr.is-off b,tr.is-off em,tr.is-off small,tr.is-off strong,tr.is-off td{font-size:16px!important}

  #modalCaption{font-size:16px!important}
  /* 글자가 커진 만큼 자리 확보 */
  .timeline-item{grid-template-columns:78px minmax(0,1fr)}
  .event-type{white-space:nowrap}
  .hero-badge{top:calc(max(34vh,260px) - 80px);width:104px;height:104px;border-width:4px}
  .hero-badge span,.hero-badge small{letter-spacing:.02em;line-height:1.1}
  .hero-badge b{font-size:24px;line-height:1.1}
  .nav-rate{padding:0 8px}

  /* 누르는 곳 44px 이상 */
  .brand{min-width:44px;min-height:44px;justify-content:center}
  .nav-rate{min-height:44px}
  .nav-rate input{width:64px;height:44px}
  .currency-switch{min-height:44px;min-width:44px}
  a.event-source-link,a.rapit-link,a.text-link,
  article.parking-card a,article.warning a,article.usj-course-card a,
  div.airport-reserve-note a,div.card-copy a,div.inline-links a,div.map-footer a,div.move-card a,div.process-grid a,
  div.roaming-links a,div.safety-grid a,div.safety-notes a,div.train-route-grid a,div.usj-hours-card a,
  section.sources a,footer>a,.travel-safety-section a,.safety-notes a,.parking-card a,.checkin-route a,.train-alt a,.locker-location a,
  .map-topline button,.day-tabs button,.mini-button,.trip-switch button,.currency-toggle button,.modal-close,#modalClose{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
  .sources>div{gap:0 22px}
  /* 예산 체크박스: 겉보기는 그대로 22px, 눌리는 영역만 44px */
  .budget-check{margin:0;width:44px;height:44px;border:11px solid transparent;border-radius:17px;background-clip:padding-box;box-shadow:inset 0 0 0 2px var(--ink)}
  .budget-check:checked{border-color:transparent;background-clip:padding-box;box-shadow:inset 0 0 0 2px var(--coral)}
  .budget-table tr{grid-template-columns:44px minmax(0,1fr) auto}
  /* 지도 확대·축소 버튼 */
  .leaflet-touch .leaflet-bar a{width:44px;height:44px;line-height:44px}
  /* 확대·축소 버튼은 오른쪽 위로(왼쪽 위 지도 이름표와 겹침 방지), 정류장 띠는 저작권 표시 위로 */
  .leaflet-top.leaflet-left{left:auto;right:0}
  .leaflet-left .leaflet-control{float:right;margin-left:0;margin-right:10px}
  .map-stop-strip{bottom:30px}
  /* 지도 저작권 표시(OpenStreetMap 필수 표기)는 8px → 12px. 16px로 키우면 지도를 가려서 예외로 둠 */
  .leaflet-map .leaflet-control-attribution,.route-map .leaflet-control-attribution{font-size:12px}
}
@media(max-width:370px){.budget-table tr{grid-template-columns:44px minmax(0,1fr)}}
