[hidden]{display:none!important}
:root{font-size:18px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC","Noto Sans JP",sans-serif}
body{line-height:1.75}h1,h2,h3,h4{font-family:inherit}h4{font-size:1.2rem;line-height:1.55;margin:20px 0 12px}.tagline{font-size:1.45rem;color:var(--green);font-weight:800;margin-top:16px}.intro{max-width:900px;font-size:1.12rem}.page-title{margin-bottom:25px}.section-nav{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 30px}.section-nav a{background:white;border:1px solid var(--line);padding:10px 15px;text-decoration:none;border-radius:4px;font-weight:700}.section-nav a:hover{background:#e8efdf}
.quick-grid{margin-top:20px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.quick-item{border-top:3px solid #d9ee83;padding-top:15px}.quick-item:first-child{border-color:#bb302a}.quick-item h3{font-size:1.15rem;margin-bottom:10px;color:#175c84}.quick-item:first-child h3{color:#a32017}.quick-item p{font-size:1rem;line-height:1.8}.download-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:24px}.download-row .button{margin-top:0}.download-note{font-size:.9rem;color:var(--muted);margin-top:12px}.text-size{min-height:48px;background:white;color:var(--green);border:1px solid var(--green);border-radius:4px;padding:10px 16px;font-weight:700}
.layout{grid-template-columns:minmax(290px,355px) minmax(0,1fr);gap:38px}.return-panel{position:sticky;top:18px}.departure{padding:25px}.city-switch{display:flex;gap:8px;margin:18px 0 22px}.city-switch button{border:1px solid #6f9381;border-radius:4px;background:transparent;color:white;padding:9px 12px;font-weight:700;min-height:48px;flex:1}.city-switch button[aria-pressed=true]{background:#d9ee83;color:#123e32}.city-info h3{font-size:1.2rem;line-height:1.6}.clock-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:22px 0;border-bottom:1px dashed #708f7f;margin-bottom:20px}.clock-row span{font-size:.9rem;color:#dce8df}.clock-row strong{display:block;font-size:2.25rem;color:white;line-height:1.3;font-variant-numeric:tabular-nums}.clock-row span:first-child strong{color:#d9ee83}.departure-note{font-size:.95rem}.pickup-alert{font-size:1rem;font-weight:700}.schedule-card p{margin-top:13px;font-size:1rem}.expense-note{color:#175c84;font-weight:650}.service-note{border-top:1px solid var(--line);padding-top:12px}.package-note{font-size:.9rem;color:var(--muted);padding:20px 8px}.place-number{font-size:2rem;color:var(--green);font-weight:800;line-height:1.3}.place{grid-template-columns:44px minmax(0,1fr);gap:14px}.place-type{font-size:.9rem}.place-content>p:not(.place-type):not(.place-jp){font-size:1.1rem;line-height:1.8}.place-content h3{font-size:1.7rem}.place-photo{margin-top:18px;aspect-ratio:16/8}.place-photo:after{display:none}.insight{border-left:3px solid #77915a;padding:14px 18px;background:#edf2e5;margin-top:18px}.insight p,.callout p{font-size:1.03rem;line-height:1.8;margin-top:7px}.callout{padding:17px 19px;border-radius:4px;margin-top:15px}.callout.blue{background:#edf5fb;border-left:4px solid #2374a3;color:#124c72}.callout.red{background:#fff2ee;border-left:4px solid #c03225;color:#a32017}.callout strong{font-size:1.02rem}.return-summary{margin:44px 0 28px;padding:30px;background:#e8edcf;border-top:5px solid #c0cd6d;border-radius:4px}.return-summary>p{font-size:1.1rem;line-height:1.85;margin-top:20px}.return-summary li{padding:8px 0;font-weight:650}.essentials{margin-top:30px}.notice-section summary{font-size:1.08rem}.notice-section p{font-size:1.05rem}.share-block{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:30px 0}.share-block h3{margin-bottom:12px}.share-block>div{max-width:650px;min-width:0}.share-block a{overflow-wrap:anywhere;font-size:.85rem}.share-block img{background:white;border:1px solid var(--line);max-width:200px}.copy-status{min-height:1.5em;font-size:.9rem}.copy-link{margin-top:16px}.sources{font-size:.9rem}.sources p,.sources a{font-size:.85rem}.large-text{font-size:21px}.large-text .layout{grid-template-columns:minmax(320px,380px) minmax(0,1fr)}.large-text .return-panel{position:static}
@media(max-width:900px){.layout,.large-text .layout{grid-template-columns:1fr}.return-panel{position:static;display:grid;grid-template-columns:1fr 1fr;gap:18px}.return-panel .schedule-card{margin:0}.package-note{grid-column:1/-1}.quick-grid{grid-template-columns:1fr;gap:19px}.quick-item{padding-top:13px}.share-block{align-items:start}}
@media(max-width:650px){.header-inner{padding:20px;flex-wrap:wrap}.wordmark{font-size:2rem}.page{padding:28px 20px}.language-switch{grid-template-columns:repeat(3,1fr)}.language-switch button{font-size:.9rem}.return-panel{display:block}.schedule-card{margin-top:18px!important}.welcome-card{padding:22px 18px}.place{grid-template-columns:35px minmax(0,1fr);gap:9px}.place-number{font-size:1.75rem}.place-content h3{font-size:1.55rem}.callout,.insight{padding:15px}.return-summary{padding:24px 20px}.share-block{flex-direction:column}.share-block img{width:180px}.section-nav a{font-size:.88rem;padding:10px 11px}h1{font-size:2rem}.tagline{font-size:1.25rem}.clock-row strong{font-size:2.5rem}.large-text{font-size:20px}}
@media print{header,.section-nav,.download-row,.share-block,.sources,.text-size{display:none!important}.return-panel{position:static}.layout{display:block}.place-photo{display:none}.notice-section p{display:block!important}.page{padding:0}body{background:white}.place,.welcome-card,.return-summary{break-inside:avoid}.translation[hidden]{display:none!important}}

/* Explicit header colours keep labels readable in mobile in-app browsers. */
.masthead{background:#fff!important;color:#173229!important;border-bottom:1px solid #dce4df}.header-inner{align-items:center;gap:12px}.brand-logo{display:block;width:170px;height:85px;object-fit:contain;background:#fff}.wordmark{flex-shrink:0}.language-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#fff;border:1px solid #657f73;border-radius:12px;gap:5px;padding:5px}.language-switch button{color:#173229!important;-webkit-text-fill-color:#173229!important;background:#f0f4f1!important;font-size:16px!important;font-weight:700;min-height:46px;min-width:0;border-radius:8px;padding:8px 12px}.language-switch button[aria-pressed=true]{background:#123e32!important;color:#fff!important;-webkit-text-fill-color:#fff!important}.section-logo{width:100px;height:50px;object-fit:contain;background:#fff;margin-bottom:12px}.footer-top .brand-logo{width:140px;height:70px}.pickup-alert p+p{margin-top:12px}@media(max-width:650px){.header-inner{padding:8px 20px 16px;display:flex;flex-direction:column;align-items:flex-start}.brand-logo{width:160px;height:80px}.language-switch{width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}.language-switch button{padding:8px 3px}.footer-top{flex-wrap:wrap}}

/* Arrival and check-in: short by default, details only when requested. */
.pretrip{border:1px solid #b8c9b0;border-radius:14px;background:#eff5e6;margin:0 0 26px;overflow:hidden}.pretrip>summary{list-style:none;display:flex;gap:14px;align-items:center;cursor:pointer;padding:16px 22px;color:#173e2d}.pretrip>summary::-webkit-details-marker{display:none}.pretrip>summary strong{display:block;font-size:1.16rem}.pretrip>summary small{display:block;font-size:.84rem;color:#4f6355;margin-top:2px}.notice-icon{display:grid;place-items:center;font-size:1.6rem;width:45px;height:45px;background:#fff;border-radius:50%;flex-shrink:0}.disclosure-arrow{margin-left:auto;font-size:1.7rem;line-height:1}.pretrip[open] .disclosure-arrow{transform:rotate(180deg)}.pretrip-content{background:#fff;border-top:1px solid #d4dfcc;padding:24px;max-width:100%}.notice-language{display:grid!important;max-width:460px}.audio-controls{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.audio-controls button{border:1px solid #a7b9af;background:#f2f5f2;color:#173e2d;border-radius:8px;padding:10px 18px;min-height:46px;font-weight:700}.audio-controls .audio-play{background:#123e32;color:white;border-color:#123e32}.audio-status{font-size:.86rem;color:#5f7169;margin:10px 0 24px;min-height:1.5em}.notice-reading{max-width:840px}.notice-intro{line-height:1.8}.notice-chapter{border-top:1px solid #dce4df;margin-top:24px;padding-top:22px}.notice-chapter h3{font-size:1.18rem;line-height:1.6;color:#123e32}.notice-chapter p{margin-top:12px;line-height:1.85}.notice-signoff{white-space:pre-line;margin-top:24px;color:#4f6355}.arrival-hub{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:26px;margin:0 0 30px;align-items:start}.operator-card{padding:24px;background:white;border:1px solid var(--line);border-radius:12px}.operator-card h2{font-size:1.5rem;line-height:1.4;margin-top:9px}.operator-card>p{font-size:.96rem;color:#5f7169;margin:12px 0 18px;line-height:1.7}.operator-badge{font-size:.77rem;font-weight:700;color:#a32420;letter-spacing:.03em}.poster-button{display:block;position:relative;border:0;background:#fff;padding:0;width:100%;border-radius:10px;overflow:hidden;cursor:zoom-in}.poster-button img{width:100%;height:auto;object-fit:contain}.zoom-hint{display:block;font-size:.8rem;color:#52695b;background:#f3f6f3;text-align:center;padding:7px 12px}.arrival-hub .departure{border-radius:12px;padding:27px;min-width:0}.city-switch button{background:#edf0ee!important;border:1px solid #d0d8d2!important;color:#4d5d54!important;-webkit-text-fill-color:#4d5d54!important;min-height:54px;padding:10px 8px;border-radius:8px;font-size:1rem;line-height:1.4}.city-switch button:hover{background:#fff!important}.city-switch button[aria-pressed=true]{background:#d9ee83!important;color:#123e32!important;-webkit-text-fill-color:#123e32!important;border-color:#d9ee83!important;box-shadow:0 0 0 2px #d9ee8340}.city-placeholder{color:#d5e1d8;font-size:.96rem;border:1px dashed #81988b;padding:22px 15px;border-radius:7px;text-align:center}.early-note{font-weight:700;color:#d9ee83;font-size:.98rem;margin:0 0 14px}.departure-note{font-size:.88rem}.clock-row{margin-bottom:15px}.clock-row strong{font-size:2.4rem}.pickup-alert{font-size:.93rem;font-weight:500}.checkin-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px;margin-bottom:25px}.checkin-heading h2{font-size:1.55rem;line-height:1.4}.checkin-heading p{color:#5f7169;font-size:.94rem;margin:10px 0 22px}.checkin-card .poster-button{max-width:880px;margin:auto}.quick-details{margin:0 0 35px;border-bottom:1px solid var(--line)}.quick-details>summary{padding:17px 4px;cursor:pointer;font-weight:700}.quick-details .welcome-card{border:0;padding:18px 4px;margin:0}.quick-details .welcome-card h2{font-size:1.3rem}.layout .schedule-card{margin-top:0}.image-dialog{width:min(96vw,1200px);max-width:96vw;max-height:94dvh;border:0;border-radius:12px;background:white;padding:0;overflow:hidden;box-shadow:0 20px 90px #0005}.image-dialog::backdrop{background:#10251ccc}.image-dialog-bar{padding:10px 14px;display:flex;justify-content:flex-end;border-bottom:1px solid #dce4df}.image-dialog-bar button{background:#123e32;color:#fff;border:0;border-radius:7px;min-height:44px;padding:8px 22px;font-weight:700}.image-dialog-scroll{max-height:calc(94dvh - 66px);overflow:auto;overscroll-behavior:contain;padding:12px}.image-dialog-scroll img{width:100%;min-width:950px;max-width:none;height:auto}.dialog-open{overflow:hidden}
@media(max-width:760px){.arrival-hub{grid-template-columns:1fr;gap:18px}.operator-card{padding:20px}.operator-card .poster-button{max-width:440px;margin:auto}.arrival-hub .departure{padding:23px}.checkin-card{padding:20px 14px}.checkin-heading{padding:0 4px}.checkin-heading h2{font-size:1.35rem}.pretrip>summary{padding:14px 16px;gap:10px}.pretrip-content{padding:20px 16px}.pretrip>summary strong{font-size:1.05rem}.pretrip>summary small{font-size:.78rem}.notice-icon{width:38px;height:38px}.notice-language{width:100%}.tagline{font-size:1.05rem}.operator-card h2{font-size:1.3rem}.audio-controls button{padding:10px 14px}.clock-row strong{font-size:2.3rem}}
@media(max-width:360px){.clock-row strong{font-size:2.05rem}.city-switch{gap:6px}.city-switch button{font-size:.9rem}.arrival-hub .departure{padding:20px}}
@media print{.pretrip,.poster-button,.audio-controls,.quick-details,.image-dialog{display:none!important}.arrival-hub{display:block}.operator-card{padding:0;border:0;margin-bottom:20px}.checkin-card{display:none}.city-switch{display:none}.city-info[hidden]{display:block!important}.city-placeholder{display:none}.notice-chapter{break-inside:avoid}}

/* Keep every arrival label legible even in mobile / in-app browser colour overrides. */
.departure,.arrival-hub .departure{background:#123e32!important;color:#fff!important}
.departure .ticket-label,.departure .early-note{color:#d9ee83!important;-webkit-text-fill-color:#d9ee83!important}
.departure .city-info h3{color:#fff!important;-webkit-text-fill-color:#fff!important}
.departure .clock-row span{color:#e5eee8!important;-webkit-text-fill-color:#e5eee8!important}
.departure .clock-row strong{color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:1!important}
.departure .clock-row span:first-child strong{color:#d9ee83!important;-webkit-text-fill-color:#d9ee83!important}
.departure .departure-note,.departure .city-placeholder{color:#e5eee8!important;-webkit-text-fill-color:#e5eee8!important}
.departure .pickup-alert,.departure .pickup-alert p{color:#9c251c!important;-webkit-text-fill-color:#9c251c!important}

/* Departure details are supplied separately for this route. */
.clock-row strong{font-size:clamp(1.05rem,3.5vw,1.6rem);white-space:normal;line-height:1.4;}
