:root{--ink:#171514;--paper:#f3f0ea;--gold:#a88659;--line:rgba(23,21,20,.17);--muted:#6e6963;--ok:#287a52}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans JP",sans-serif;font-size:16px;font-weight:300;line-height:1.8;letter-spacing:.04em}a{color:inherit;text-decoration:none}.booking-header{height:90px;padding:0 clamp(22px,5vw,70px);background:#171514;color:#fff;display:flex;align-items:center;justify-content:space-between}.booking-brand{display:flex;align-items:center;gap:13px}.booking-brand>span{display:grid;place-items:center;width:44px;height:44px;border:1px solid #aaa;border-radius:50%;font:500 12px "Cormorant Garamond",serif}.booking-brand b{font:500 25px "Cormorant Garamond",serif}.booking-brand small{display:block;font:400 9px "Noto Sans JP",sans-serif;letter-spacing:.25em;color:#aaa}.close-link{font-size:36px;font-weight:200;line-height:1}.booking-intro{max-width:1040px;margin:auto;padding:85px 28px 65px}.eyebrow,.form-number{font:500 12px "Cormorant Garamond",serif;letter-spacing:.26em;color:var(--gold)}h1{font:400 clamp(48px,7vw,76px) "Noto Serif JP",serif;letter-spacing:.1em;margin:8px 0 18px}.booking-intro>p:last-of-type{color:var(--muted)}.booking-facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.booking-facts span{padding:7px 14px;border:1px solid var(--line);font-size:13px}.booking-panel{max-width:1040px;margin:0 auto 100px;background:#fff;padding:clamp(28px,6vw,72px);box-shadow:0 25px 70px rgba(41,33,25,.09)}.steps{list-style:none;margin:0 0 65px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}.steps li{padding:0 8px 17px;color:#999;font-size:13px;text-align:center}.steps li span{display:inline-grid;place-items:center;margin-right:7px;width:24px;height:24px;border:1px solid #bbb;border-radius:50%;font-size:11px}.steps li.active{color:var(--ink);border-bottom:2px solid var(--gold)}.steps li.active span{background:var(--ink);color:#fff;border-color:var(--ink)}.form-section{max-width:680px;margin:auto}.hidden{display:none!important}.form-number{margin:0}.form-section h2,.complete h2{font:400 clamp(30px,4vw,43px) "Noto Serif JP",serif;letter-spacing:.08em;margin:5px 0 40px}.form-section label{display:block;margin:0 0 25px;font-size:14px;font-weight:400}input,select,textarea{width:100%;margin-top:8px;padding:14px 12px;border:1px solid #cfc9c1;border-radius:0;background:#fff;color:var(--ink);font:400 16px "Noto Sans JP",sans-serif}input:focus,select:focus,textarea:focus{outline:2px solid rgba(168,134,89,.35);border-color:var(--gold)}fieldset{border:0;padding:0;margin:0}legend{font-size:14px;font-weight:400;margin-bottom:10px}.time-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.time-slot{min-height:55px;border:1px solid #cfc9c1;background:#fff;font:400 15px "Noto Sans JP",sans-serif}.time-slot:not(:disabled):hover,.time-slot.selected{background:var(--ink);color:#fff;border-color:var(--ink)}.time-slot:disabled{color:#aaa;background:#f5f3ef}.time-slot small{display:block;font-size:11px}.slot-guide,.slot-loading{grid-column:1/-1;color:var(--muted);font-size:14px}.next-button,.submit-button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:58px;margin-top:38px;padding:12px 22px;border:0;background:var(--ink);color:#fff;font:500 15px "Noto Sans JP",sans-serif}.next-button span{font-size:20px}.form-actions{display:grid;grid-template-columns:1fr 2fr;gap:12px;margin-top:38px}.form-actions .next-button,.form-actions .submit-button{margin:0}.back-button{border:1px solid #cfc9c1;background:#fff;font:400 14px "Noto Sans JP",sans-serif}.consent{display:flex!important;align-items:flex-start;gap:10px}.consent input{width:20px;height:20px;margin:4px 0 0}.policy{padding:16px;background:#f5f2ec;color:var(--muted);font-size:13px}.summary{border-top:1px solid var(--line)}.summary dl{margin:0}.summary div{display:grid;grid-template-columns:150px 1fr;padding:17px 0;border-bottom:1px solid var(--line)}.summary dt{font-size:12px;color:var(--gold);letter-spacing:.12em}.summary dd{margin:0;font-size:15px}.error{color:#a22b2b;font-size:14px}.complete{text-align:center;padding:25px 0}.complete-mark{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 25px;border-radius:50%;background:var(--ok);color:#fff;font-size:31px}.booking-number{margin:28px auto;padding:15px;border:1px solid var(--line);max-width:320px;font-weight:500}.complete>a{display:inline-block;margin-top:15px;border-bottom:1px solid}footer{display:flex;justify-content:space-between;padding:40px max(24px,calc((100vw - 990px)/2));background:#171514;color:#fff;font-size:13px}footer p{margin:0}footer a{text-decoration:underline;text-underline-offset:4px}footer small{color:#999}
@media(max-width:640px){.booking-header{height:76px;padding:0 18px}.booking-brand b{font-size:21px}.booking-intro{padding:58px 23px 43px}.booking-panel{margin:0;background:#fff;padding:34px 22px 65px;box-shadow:none}.steps{margin-bottom:45px}.steps li{font-size:0;padding:0 2px 13px}.steps li span{font-size:11px;margin:0}.form-section h2{font-size:29px;margin-bottom:30px}.time-slots{grid-template-columns:repeat(2,1fr)}.form-actions{grid-template-columns:1fr 1.7fr}.summary div{grid-template-columns:105px 1fr}footer{flex-direction:column;gap:8px;padding:35px 23px}}

/* Luxury silver palette */
:root{--paper:#c9cdd0;--gold:#827665;--muted:#4f5559;--line:rgba(23,26,28,.22)}
body{background:linear-gradient(135deg,#eef0f1,#bfc4c8 45%,#e3e5e6);background-attachment:fixed}
.booking-header,footer{background:linear-gradient(135deg,#202326,#080a0b)}
.booking-intro{background:rgba(232,234,235,.38)}
.booking-panel{background:linear-gradient(145deg,#f0f1f2,#cdd1d4);box-shadow:0 25px 70px rgba(23,27,30,.18);border:1px solid rgba(255,255,255,.55)}
input,select,textarea,.time-slot,.back-button{background:rgba(245,246,246,.82);border-color:#9da3a7}
.policy{background:rgba(174,180,184,.3)}
.next-button,.submit-button{background:linear-gradient(135deg,#292d30,#0e1011)}
@media(max-width:640px){.booking-panel{background:linear-gradient(145deg,#eceeef,#c7cbce)}}

.date-help{display:block;margin-top:7px;color:var(--muted);font-size:13px;font-weight:300}

.cancellation-policy{margin:32px 0 18px;padding:24px;border:1px solid rgba(70,75,79,.3);background:linear-gradient(145deg,rgba(255,255,255,.48),rgba(175,181,185,.25))}
.cancellation-policy h3{margin:0 0 10px;font:500 21px "Noto Serif JP",serif;letter-spacing:.08em}
.cancellation-policy>p{margin:0 0 15px;color:var(--muted);font-size:13px}
.cancellation-policy dl{margin:0;border-top:1px solid var(--line)}
.cancellation-policy dl div{display:grid;grid-template-columns:145px 1fr;gap:15px;padding:11px 0;border-bottom:1px solid var(--line)}
.cancellation-policy dt{font-size:13px;font-weight:500}
.cancellation-policy dd{margin:0;font-size:13px}
.cancellation-policy .policy-note{margin:15px 0 0;font-size:12px;line-height:1.8}
.policy-consent{margin-top:18px!important;padding:16px;border:1px solid rgba(23,26,28,.24);background:rgba(255,255,255,.34);font-size:13px!important}
@media(max-width:640px){.cancellation-policy{padding:19px}.cancellation-policy dl div{grid-template-columns:1fr;gap:2px}}


/* Course choice guide */
.course-choices{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:-12px 0 30px}
.course-choices article{padding:20px;border:1px solid rgba(70,75,79,.28);background:rgba(255,255,255,.34)}
.course-choices span{color:var(--gold);font-size:10px;font-weight:500;letter-spacing:.14em}
.course-choices h3{margin:5px 0 3px;font:500 21px "Noto Serif JP",serif;letter-spacing:.09em}
.course-choices b{font:500 23px "Cormorant Garamond","Noto Serif JP",serif}
.course-choices b small{font:300 10px "Noto Sans JP",sans-serif}
.course-choices p{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.7}
.complete-access{max-width:480px;margin:20px auto;padding:14px;border:1px solid var(--line);font-size:13px}
@media(max-width:640px){.course-choices{grid-template-columns:1fr}.course-choices article{padding:17px}}
/* Warm reservation palette */
:root{--ink:#241d19;--paper:#efe5d8;--gold:#96704a;--line:rgba(61,45,34,.2);--muted:#665c54}
body{background:linear-gradient(145deg,#fbf8f2,#eadfD1 52%,#f4ede4);background-attachment:fixed}
.booking-header,footer{background:linear-gradient(135deg,#30251f,#15110f)}
.booking-intro{background:rgba(250,246,239,.58)}
.booking-panel{background:linear-gradient(145deg,#fffaf3,#eadfD1);box-shadow:0 25px 70px rgba(75,52,36,.14);border-color:rgba(255,255,255,.72)}
.course-choices article,.policy-consent{background:rgba(255,252,247,.58);border-color:rgba(83,61,45,.25)}
input,select,textarea,.time-slot,.back-button{background:#fffaf4;border-color:#bba995;color:#241d19}
.policy,.cancellation-policy{background:linear-gradient(145deg,rgba(255,252,247,.7),rgba(224,207,188,.38));border-color:rgba(83,61,45,.25)}
.next-button,.submit-button{background:linear-gradient(135deg,#352820,#171210);color:#fff}
.time-slot:not(:disabled):hover,.time-slot.selected{background:#33271f;color:#fff;border-color:#33271f}
@media(max-width:640px){.booking-panel{background:linear-gradient(145deg,#fffaf3,#eadfd1)}}
