:root{--ink:#173e42;--deep:#123439;--cream:#f5f2e9;--paper:#fffdf8;--gold:#b68a48;--muted:#62736f;--line:#d5ded7;--sans:'Meiryo','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;--serif:'Yu Mincho','Hiragino Mincho ProN',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:var(--paper);font:15px/1.95 var(--sans)}h1,h2,h3,p,figure,dl,dd{margin:0}img{display:block;max-width:100%}a{color:inherit;text-underline-offset:5px}button,input,select,textarea{font:inherit}button,summary{cursor:pointer}[hidden]{display:none!important}.wrap{width:min(1160px,calc(100% - 88px));margin:auto}.section{padding-block:100px}.eyebrow{font-size:11px;letter-spacing:.18em;color:var(--gold);font-weight:700;margin-bottom:18px}h1,h2{font-family:var(--serif);font-weight:500;letter-spacing:.045em}h1{font-size:clamp(37px,5.1vw,72px);line-height:1.5}h2{font-size:clamp(28px,3.2vw,43px);line-height:1.6}h3{font-size:18px;line-height:1.7}.lead{font-size:17px;line-height:2.1}.small{font-size:12px;color:var(--muted);line-height:1.85}.button{display:inline-flex;gap:30px;justify-content:center;align-items:center;padding:15px 24px;text-decoration:none;background:var(--ink);color:white;border:1px solid var(--ink);font-size:13px;font-weight:700}.button.light{background:var(--paper);color:var(--ink)}.button.outline{background:transparent;color:var(--ink)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #d0912f;outline-offset:4px}.skip{position:absolute;left:15px;top:-70px;padding:12px;background:white;z-index:99}.skip:focus{top:15px}.header{background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:23px 0}.brand{text-decoration:none;font:20px/1.4 var(--serif)}.brand small{display:block;font:8px/1.8 var(--sans);letter-spacing:.2em;margin-top:5px}.header nav{display:flex;gap:25px;font-size:12px}.header nav a{text-decoration:none}.header .button{padding:10px 17px}.intro{padding:65px 0 50px;display:grid;grid-template-columns:1.5fr 1fr;gap:60px;align-items:end}.intro .lead{margin:18px 0 22px}.holiday{display:inline-block;padding:7px 14px;background:#e8eee7;font-size:13px;margin-top:20px}.intro aside{border-left:1px solid var(--line);padding-left:35px}.intro aside p{margin-bottom:18px}.trip-chips{display:flex;gap:9px;flex-wrap:wrap}.trip-chips span{font-size:12px;border:1px solid var(--line);padding:5px 12px}.hero-photo{background:var(--deep)}.hero-photo img{width:100%;height:auto}.hero-photo a{display:block}.hero-photo figcaption{color:#dae8df;font-size:11px;padding:12px 4%;display:flex;justify-content:space-between;gap:24px}.fare-strip{background:var(--ink);color:white;padding:37px 0}.fare-grid{display:grid;grid-template-columns:1.2fr 1fr auto;gap:35px;align-items:center}.fare-grid .small{color:#d0dfd9}.fare-value{font:32px/1.6 var(--serif);display:block}.fare-grid .small-title{font-size:12px;color:#d2bd90}.fare-grid strong{display:block}.fare-grid .button{border-color:#9caeaa}.pending-note{background:#eee9db;color:#58665d;font-size:12px;padding:14px;text-align:center}.split{display:grid;grid-template-columns:1fr 1fr;gap:70px}.split h2{margin-bottom:20px}.editorial-text p+p{margin-top:18px}.heritage-note{font-size:12px;border-top:1px solid var(--line);margin-top:23px;padding-top:20px;color:var(--muted)}.plan-line{display:grid;grid-template-columns:repeat(4,1fr);margin-top:45px;border:1px solid var(--line)}.plan-line div{padding:25px;border-right:1px solid var(--line)}.plan-line div:last-child{border:0}.plan-line span{display:block;color:var(--gold);font-size:12px;letter-spacing:.12em}.plan-line strong{font-size:14px}.plan-line small{display:block;color:var(--muted);font-size:11px}.light-section{background:var(--cream)}.section-head{margin-bottom:45px}.day{display:grid;grid-template-columns:95px 1fr;gap:30px;padding:35px 0;border-top:1px solid var(--line)}.day-number{font:47px/1.1 var(--serif);color:var(--gold)}.day-number small{font:10px/2 var(--sans);display:block;letter-spacing:.2em}.route{font-size:11px;letter-spacing:.08em;color:var(--muted);margin-bottom:8px}.day h3{margin-bottom:16px}.day p+p{margin-top:12px}.metrics{background:#e6e9df;border-left:3px solid var(--gold);padding:15px 19px;margin-top:20px;font-size:12px}.day-foot{display:flex;flex-wrap:wrap;gap:15px 30px;font-size:11px;color:var(--muted);margin-top:17px}.timing{list-style:none;padding:0;margin:18px 0}.timing li{display:grid;grid-template-columns:70px 1fr;gap:15px;margin:10px 0}.timing b{font-size:12px;color:var(--gold)}.free-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:35px}.free-card{padding:28px 0;border-top:2px solid var(--gold)}.free-card span{font:28px/1.5 var(--serif);color:var(--gold)}.free-card p{font-size:13px;margin-top:12px}.free-note{margin-top:25px;padding:20px;border:1px solid var(--line);font-size:12px}.reasons{display:grid;grid-template-columns:1fr 1fr;gap:0 55px;list-style:none;padding:0;margin:35px 0 0;counter-reset:reason}.reasons li{counter-increment:reason;display:grid;grid-template-columns:35px 1fr;gap:15px;padding:24px 0;border-top:1px solid var(--line)}.reasons li:before{content:counter(reason,decimal-leading-zero);font:24px/1.5 var(--serif);color:var(--gold)}.reasons p{font-size:13px;margin-top:6px}.hotel-panel{background:var(--ink);color:white;padding:40px;display:grid;grid-template-columns:1.4fr 1fr;gap:45px}.hotel-panel .eyebrow{color:#d4b882}.hotel-panel h3{font:35px/1.5 var(--serif);margin-bottom:18px}.hotel-panel .small{color:#d7e3de}.hotel-price{border-left:1px solid #657f7a;padding-left:35px;align-self:center}.hotel-price strong{font:37px/1.6 var(--serif);display:block}.hotel-price span{font-size:13px}.flex-band{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);margin-top:30px}.flex-band div{padding:22px;border-right:1px solid var(--line)}.flex-band div:last-child{border:0}.flex-band strong{display:block}.flex-band small{font-size:11px;color:var(--muted)}.welcome{margin-top:30px}.welcome img{width:100%;height:auto}.photo-caption{font-size:11px;color:var(--muted);padding:13px 0}.vehicles{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:28px}.vehicles img{width:100%;height:auto}.vehicles figcaption{padding:15px 0;font-size:13px}.vehicles small{display:block;font-size:11px;color:var(--muted)}.support-info{border-left:3px solid var(--gold);padding-left:22px;margin-top:25px;font-size:13px}.conditions{display:grid;grid-template-columns:1fr 1fr;gap:0 45px;margin-top:30px}.conditions>div{border-bottom:1px solid var(--line);display:grid;grid-template-columns:100px 1fr;gap:20px;padding:19px 0;font-size:13px}.conditions dt{color:var(--muted)}.faq-layout{display:grid;grid-template-columns:1fr 1.8fr;gap:70px}.faq details{border-top:1px solid var(--line);padding:20px 0}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:20px}.faq summary:after{content:'＋';color:var(--gold)}.faq details[open] summary:after{content:'−'}.faq p{font-size:13px;padding-top:18px}.contact{background:var(--cream)}.contacts{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:30px 0 20px}.contact-link{padding:28px;background:var(--ink);color:white;text-decoration:none;overflow-wrap:anywhere}.contact-link:nth-child(2){background:#e2e8df;color:var(--ink)}.contact-link span{display:block;font-size:12px}.contact-link strong{display:block;font-size:clamp(18px,2.4vw,27px)}.telephone{margin:20px 0 45px;text-align:center}.telephone a{font-size:23px;font-weight:bold;white-space:nowrap}fieldset{margin:0 0 25px;border:1px solid var(--line);padding:28px}legend{font-size:18px;font-weight:700;padding:0 10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.form-grid label{display:flex;flex-direction:column;font-size:13px;font-weight:700;gap:7px}.form-grid input,.form-grid select,.form-grid textarea{width:100%;min-width:0;padding:13px 12px;color:var(--ink);background:var(--paper);border:1px solid #b7c5be;border-radius:0;font-size:14px}.form-grid small{font-size:11px;font-weight:400;color:var(--muted)}.form-grid .full{grid-column:1/-1}.quote{background:var(--ink);color:white;padding:30px;margin-bottom:30px;display:grid;grid-template-columns:1fr 1fr;gap:35px}.quote dl>div{display:flex;justify-content:space-between;gap:20px;padding:8px 0;font-size:13px}.quote dd{white-space:nowrap}.quote .small{color:#d5e2dc}.quote output{font:30px/1.8 var(--serif)}.quote-result{border-left:1px solid #59746d;padding-left:28px}.quote>p{grid-column:1/-1}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:25px;margin:25px 0}.legal-links{display:flex;gap:13px 25px;flex-wrap:wrap;font-size:12px;margin-top:24px}.mail-preview{padding:30px;background:white;border:1px solid var(--line);margin-top:30px}.mail-preview textarea{width:100%;font:13px/1.8 var(--sans);padding:15px;margin:15px 0}.mail-buttons{display:flex;flex-wrap:wrap;gap:15px}.company-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px;margin:30px 0}.company-grid p{font-size:12px;margin:14px 0}.company-grid h3{font-size:17px}.company-role{color:var(--gold)}.sources{margin-top:30px;border-top:1px solid var(--line);padding-top:20px;font-size:12px;color:var(--muted)}.sources p{margin-top:15px}.footer{padding:35px 0;background:var(--deep);color:#e1e7df}.footer .wrap{display:flex;justify-content:space-between;gap:30px;font-size:11px}.footer img{width:155px;background:white;padding:8px;margin-bottom:15px}
@media(max-width:900px){.wrap{width:calc(100% - 48px)}.header nav{display:none}.intro{gap:30px;grid-template-columns:1.5fr 1fr}.intro aside{padding-left:20px}.fare-grid{grid-template-columns:1fr 1fr}.fare-grid>.button{grid-column:1/-1}.split{gap:35px}.section{padding-block:70px}.faq-layout{grid-template-columns:1fr;gap:30px}.hotel-panel{gap:25px;padding:30px}.conditions{grid-template-columns:1fr}.reasons{gap:0 30px}}
@media(max-width:620px){.wrap{width:calc(100% - 36px)}body{font-size:14px}.header-inner{padding:17px 0}.brand{font-size:16px}.header .button{font-size:11px;padding:8px 12px}.intro{padding:35px 0;grid-template-columns:1fr;gap:25px}.intro aside{border:0;padding:0}.intro .lead{font-size:15px}.hero-photo figcaption{display:block;padding:12px 18px}.hero-photo figcaption span{display:block}.fare-grid{grid-template-columns:1fr;gap:22px}.fare-value{font-size:29px}.section{padding-block:55px}.split,.reasons,.free-grid,.hotel-panel,.company-grid,.contacts,.quote{grid-template-columns:1fr}.plan-line{grid-template-columns:1fr 1fr;margin-top:25px}.plan-line div{padding:18px}.plan-line div:nth-child(2){border-right:0}.plan-line div:nth-child(-n+2){border-bottom:1px solid var(--line)}.day{grid-template-columns:45px 1fr;gap:15px;padding:28px 0}.day-number{font-size:33px}.day h3{font-size:18px}.timing li{grid-template-columns:40px 1fr;gap:10px}.free-grid{gap:0}.reasons{gap:0}.hotel-price,.quote-result{padding-left:0;border-left:0;border-top:1px solid #718680;padding-top:20px}.flex-band{grid-template-columns:1fr}.flex-band div{border-right:0;border-bottom:1px solid var(--line)}.vehicles{gap:12px}.vehicles figcaption{font-size:12px}.conditions>div{grid-template-columns:85px 1fr;gap:14px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}fieldset{padding:20px 16px}.form-actions{flex-direction:column;align-items:stretch}.quote{padding:24px;gap:20px}.quote>p{grid-column:auto}.contact-link{padding:23px}.footer .wrap{flex-direction:column}.company-grid{gap:25px}.telephone a{display:block;font-size:24px}h1{font-size:39px}}
.small-note{font-size:12px;color:var(--muted);line-height:1.85}.official-documents-heading{font-size:16px;margin-top:25px}.company-role{color:var(--gold)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.header,.form-actions,.mail-preview{display:none}.section{padding-block:28px}.hero-photo{break-inside:avoid}.day{break-inside:avoid}body{font-size:11px}.wrap{width:94%}}

/* Airline fares and basic hotel selection */
.airline-fare{margin:10px 0 16px;font-size:clamp(16px,2vw,22px)}.airline-fare strong{white-space:nowrap}.hotel-list{margin:22px 0;padding-left:1.3em;line-height:1.8}.hotel-list li+li{margin-top:8px}

/* Hotel upgrade rates */
.hotel-upgrades{margin-top:44px;padding-top:32px;border-top:1px solid var(--line)}.hotel-upgrades h3{font:27px/1.6 var(--serif);margin-bottom:16px}.hotel-upgrades>p{margin-bottom:18px}.hotel-table-scroll{overflow-x:auto;margin:24px 0}.hotel-rates{border-collapse:collapse;width:100%;font-size:13px;text-align:left}.hotel-rates caption{text-align:left;font-weight:bold;padding:0 0 14px}.hotel-rates th,.hotel-rates td{padding:18px 16px;border-bottom:1px solid var(--line)}.hotel-rates thead{background:var(--ink);color:white}.hotel-rates td{white-space:nowrap;font-weight:bold}.hotel-rates tbody th{font-weight:500}.hotel-rates small{display:block;font-size:11px;color:var(--muted)}.hotel-rates tbody tr:nth-child(even){background:var(--cream)}.hotel-upgrades>.button{margin-top:8px}@media(max-width:620px){.hotel-rates{min-width:570px}.hotel-rates th,.hotel-rates td{padding:14px 12px}}

/* Distinct seven-seat and sixteen-seat vehicle illustrations */
.vehicles figcaption{display:flex;gap:15px;align-items:center}.seat-badge{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:62px;min-height:52px;background:var(--ink);color:white;font-size:21px;font-weight:700}.vehicles figure:nth-child(2) .seat-badge{background:#9a7137}.hotel-form-guide{margin:0 0 28px;padding:23px 26px;background:#e2e8df;border-left:4px solid var(--gold)}.hotel-form-guide strong{font-size:17px}.hotel-form-guide p{margin-top:8px;font-size:13px}@media(max-width:620px){.vehicles figcaption{align-items:flex-start;flex-direction:column;gap:10px}.hotel-form-guide{padding:20px}.seat-badge{min-height:44px;font-size:19px}}

/* Optional checkout until 18:00 */
.late-checkout-rates{border-top:1px solid var(--line);padding-top:15px}.late-checkout-rates summary{font-weight:700;font-size:13px}.late-checkout-rates>p{margin-top:12px}.late-checkout-rates .hotel-table-scroll{margin:16px 0 0}.late-checkout-rates .hotel-rates{min-width:0}.late-checkout-rates .hotel-rates td{white-space:nowrap}#late-checkout-label{line-height:1.6}

/* Prices immediately below the hotel selector */
.selected-hotel-price{min-width:0;padding:26px;background:var(--paper);border:1px solid #bdcfc3;border-top:4px solid var(--gold)}
.selected-hotel-kicker{font-size:12px;color:var(--muted);letter-spacing:.08em;margin-bottom:5px}
.selected-hotel-price h3{font-size:19px;overflow-wrap:anywhere}
.selected-hotel-main{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 22px;margin:20px 0 10px}
.selected-hotel-main span{font-size:12px;color:var(--muted)}
.selected-hotel-main p{font-size:14px;font-weight:700}
.selected-hotel-main>strong{font:700 clamp(27px,3.4vw,40px)/1.4 var(--serif);font-variant-numeric:tabular-nums}
.selected-hotel-fees{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0}
.selected-hotel-fees>div{background:var(--cream);padding:16px}
.selected-hotel-fees dt{font-size:12px;line-height:1.7;min-height:3.4em}
.selected-hotel-fees dd:not(.small){font-size:20px;font-weight:700;margin:8px 0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.selected-hotel-group{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 20px;border-top:1px solid var(--line);padding-top:19px;margin-bottom:8px}
.selected-hotel-group p{font-size:13px;font-weight:700}
.selected-hotel-group output{font:700 clamp(24px,3vw,33px)/1.5 var(--serif);font-variant-numeric:tabular-nums}
.selected-hotel-availability{margin-top:12px}
@media(max-width:620px){.selected-hotel-price{padding:19px 16px}.selected-hotel-fees{grid-template-columns:1fr;gap:9px}.selected-hotel-fees>div{padding:14px}.selected-hotel-fees dt{min-height:0}.selected-hotel-fees dd.small br{display:none}.selected-hotel-fees dd:not(.small){margin:4px 0}.selected-hotel-price h3{font-size:17px}}

/* Required fields and the outgoing email explanation */
.form-grid .field-label{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px}
.required-badge{display:inline-block;color:#b42318;font-size:12px;font-weight:700;line-height:1.6;white-space:nowrap}
.required-guide{font-size:12px;margin:0 0 20px}
.required-guide .required-badge{margin-right:6px}
.mail-content-note{padding:16px 18px;margin:0 0 14px;background:var(--paper);border-left:3px solid var(--gold)}

/* Customer copy address in the outgoing email preview */
.mail-copy-recipient{padding:12px 15px;margin:12px 0;background:#e8eee7;border-left:3px solid var(--gold);font-size:14px;font-weight:700;overflow-wrap:anywhere}

/* Orange-gold reply time notice beside the form actions */
.reply-time-notice{color:#a85b12;background:#fff7e8;border:1px solid #d6a14c;border-left:4px solid #ce8f29;padding:20px 24px;margin-top:24px;font-size:15px;line-height:1.9}
.reply-time-notice strong{display:block;font-size:17px;font-weight:700}
.reply-time-notice p{margin-top:5px;font-weight:700}
@media(max-width:620px){.reply-time-notice{padding:17px 18px;font-size:14px}.reply-time-notice strong{font-size:16px}}

/* Location and features immediately after each late checkout price */
.late-checkout-rates .hotel-rate-heading{background:var(--cream)}
.late-checkout-rates .hotel-rate-heading th,.late-checkout-rates .hotel-rate-heading td{font-weight:700;border-bottom:0;padding-bottom:10px}
.late-checkout-rates .hotel-location-row{background:var(--paper)}
.late-checkout-rates .hotel-location-row>td{white-space:normal;font-weight:400;padding:8px 16px 22px}
.hotel-location-details{font-size:13px;line-height:1.9;overflow-wrap:anywhere}
.hotel-location-details p+p{margin-top:10px}
.hotel-location-details p>strong{display:block;color:var(--ink);font-size:12px;margin-bottom:3px}
.hotel-location-details a{display:inline-block;color:var(--ink);font-size:12px;margin-top:12px;text-decoration:underline}
.selected-hotel-profile{background:var(--cream);padding:19px 20px;margin:0 0 20px}
.selected-hotel-profile h4{font-size:14px;margin:0 0 13px}
.hotel-profile-footnote{margin-top:16px}
@media(max-width:620px){.selected-hotel-profile{padding:16px}.late-checkout-rates .hotel-location-row>td{padding:8px 12px 20px}.late-checkout-rates .hotel-rate-heading th{overflow-wrap:anywhere}}

/* Room-specific bathtub information */
.hotel-location-details .hotel-bathtub{margin-top:12px;padding:12px 14px;background:#f2f6f4;border-left:3px solid var(--ink)}
.bathroom-sources{display:flex;flex-wrap:wrap;gap:4px 16px}
.hotel-location-details .bathroom-sources a{margin-top:7px}
.hotel-location-details .hotel-bathroom-note{margin-top:12px}

/* Fare calculation and hotel comparison */
.fare-calculation{padding:20px 24px;background:var(--cream);border-left:3px solid var(--gold);margin:20px 0}.fare-calculation h4{margin:0 0 10px}.fare-calculation p{font-size:13px;line-height:1.9}.fare-calculation p+p{margin-top:12px}.hotel-fare-matrix{min-width:1000px}.hotel-fare-matrix th:first-child{min-width:230px}.hotel-fare-matrix thead th{font-size:12px;line-height:1.7}.hotel-fare-matrix tbody td:nth-child(2),.hotel-fare-matrix tbody td:nth-child(3){font-size:16px;color:var(--ink)}#solo-row{border-left:3px solid var(--gold);padding-left:12px}#solo-label{line-height:1.6}#selected-hotel-single{font-size:17px}

/* Late checkout rates follow the room occupancy */
#selected-hotel-late{white-space:pre-line;font-size:16px;line-height:1.8}.hotel-fare-matrix td:last-child small{white-space:nowrap}.late-checkout-rates .hotel-rate-heading td small{font-weight:400}.late-checkout-rates .hotel-rates td{font-size:12px}
