:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:#243b53;background:#f7f9fc;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;line-height:1.65}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.34;cursor:not-allowed}a{color:inherit}
.reserve-top{background:#fff;border-bottom:1px solid #e1e8ef;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:18px max(20px,calc((100vw - 960px)/2))}
.reserve-brand{font-weight:900;letter-spacing:.04em;text-decoration:none;font-size:22px;line-height:1.2;color:#243b53}.reserve-brand span{font-size:14px;margin-left:9px}.reserve-home{font-size:13px;font-weight:700;text-decoration:none;color:#557087}
.reserve-layout{max-width:920px;margin:0 auto;padding:48px 22px 80px}.reserve-heading{text-align:center}.reserve-kicker{font-size:11px;letter-spacing:.19em;font-weight:800;color:#7792a9}.reserve-heading h1{font-size:clamp(27px,6vw,38px);margin:12px 0 14px;font-weight:900}.reserve-heading p{font-size:15px;color:#60758a;line-height:1.9;margin:0}
.reserve-steps{display:flex;max-width:650px;margin:36px auto 25px;gap:8px}.reserve-steps span{flex:1;border-radius:8px;background:#e7edf3;text-align:center;padding:12px 3px;color:#8796a5;font-weight:700;font-size:12px}.reserve-steps span.current{background:#243b53;color:#fff}
.reserve-banner{padding:18px 22px;border:1px solid #ebca83;background:#fff8e7;border-radius:13px;margin:0 0 24px;color:#654d21}.reserve-banner p{margin:5px 0 0;font-size:13px}
.reserve-card{background:#fff;border:1px solid #e1e8f0;border-radius:17px;padding:30px 34px;margin-top:20px;box-shadow:0 12px 34px #243b530a}.reserve-card-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;border-bottom:1px solid #e7edf3;padding-bottom:23px;margin-bottom:24px}.reserve-card-head small{color:#6c879d;font-size:11px;letter-spacing:.13em;font-weight:900}.reserve-card-head h2{font-size:22px;margin:3px 0 0}.reserve-card-head p{font-size:12px;color:#7a8a97;margin:0}
.reserve-calendar{max-width:620px;margin:auto;border:1px solid #e5ebf1;border-radius:12px;padding:20px}.reserve-month{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.reserve-month h3{margin:0;font-size:18px}.reserve-month button{background:#eff3f7;border:0;color:#243b53;border-radius:9px;width:38px;height:38px;font-size:27px;line-height:1}.reserve-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.reserve-weekday{text-align:center;color:#75879a;font-size:12px;font-weight:700;padding:5px 0}.reserve-weekday.sun{color:#bd6c6a}.reserve-weekday.sat{color:#5383b5}.reserve-day{background:#fff;border:1px solid #e0e9f1;border-radius:8px;min-height:46px;color:#2a435a;font-weight:700}.reserve-day:hover:not(:disabled){border-color:#8caecb;background:#f5f9fd}.reserve-day.selected{background:#243b53;color:#fff;border-color:#243b53}.reserve-day.closed{background:#f2f4f6;color:#9ca8b4}.reserve-empty-day{min-height:46px}
.reserve-time-head{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:620px;margin:32px auto 0}.reserve-time-head h3{font-size:17px;margin:0}.reserve-time-head h3 span{font-size:13px;color:#71879a;font-weight:600;margin-left:6px}.reserve-time-head small{font-size:12px;color:#8293a0}.reserve-status{text-align:center;color:#7a8ea2;background:#f6f8fb;border-radius:9px;padding:16px;margin:16px auto 0;max-width:620px;font-size:14px}.reserve-time-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;max-width:620px;margin:18px auto 5px}.reserve-time{padding:12px 3px;border:1px solid #a5bfd4;border-radius:9px;background:#fafdff;color:#254e70;font-weight:800}.reserve-time:hover:not(:disabled){background:#e8eef5}.reserve-time:disabled{border-color:#e4e8eb;background:#f4f5f7;color:#a2adb6;opacity:1;text-decoration:line-through}
.reserve-selected{border:1px solid #dce8f1;border-radius:12px;background:#f5f8fc;padding:18px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:26px}.reserve-selected span{display:block;color:#75879a;font-size:12px;font-weight:700}.reserve-selected strong{font-size:17px}.reserve-selected button{background:white;border:1px solid #cbdbe8;border-radius:8px;padding:9px 14px;color:#315d7e;font-weight:800;font-size:12px}
#booking-form{display:grid;gap:19px}#booking-form>label{display:block;font-size:14px;color:#334f68;font-weight:800}#booking-form input,#booking-form textarea{display:block;width:100%;margin-top:6px;padding:12px 14px;min-height:49px;border:1px solid #c9d7e4;border-radius:9px;background:#fff;color:#243b53;font-size:16px;outline:none}#booking-form textarea{resize:vertical}#booking-form input:focus,#booking-form textarea:focus{border-color:#4277a1;box-shadow:0 0 0 3px #9dbfd844}#booking-form em{font-style:normal;font-size:11px;color:#a74747;background:#fff0f0;padding:2px 6px;border-radius:5px;margin-left:7px}.optional{font-size:11px;color:#8093a3;font-weight:500}
.reserve-hidden{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.reserve-important{background:#f5f7fa;border-radius:11px;padding:19px 20px;color:#516b82;font-size:13px}.reserve-important strong{font-size:14px;color:#243b53}.reserve-important ul{padding-left:19px;margin:9px 0 0}.reserve-important li{margin:5px 0}.reserve-error{background:#fff0f0;border:1px solid #efc4c4;color:#9c3535;padding:12px 14px;border-radius:8px;margin:0}.reserve-submit{display:block;text-align:center;padding:16px 22px;width:100%;border:0;border-radius:10px;background:#243b53;color:#fff;font-size:16px;font-weight:900;text-decoration:none}.reserve-submit:hover:not(:disabled){background:#365671}
.reserve-complete{text-align:center;padding:50px 35px}.reserve-complete>small{display:block;font-size:11px;letter-spacing:.14em;color:#58846d;font-weight:900;margin:18px 0 3px}.reserve-complete h2{font-size:25px;margin:0 0 8px}.reserve-complete>p{color:#617a8e}.reserve-success-icon{border-radius:50%;width:60px;height:60px;display:grid;place-items:center;background:#e3f2e8;color:#257246;font-size:32px;margin:auto}.reserve-receipt{display:grid;grid-template-columns:110px 1fr;text-align:left;align-items:center;gap:12px;margin:32px auto;max-width:520px;background:#f5f8fb;border:1px solid #e2e9ef;border-radius:10px;padding:20px}.reserve-receipt span{font-size:13px;color:#7a8ea0}.reserve-receipt strong{font-size:17px}.reserve-alert{font-weight:700;font-size:13px;color:#8d5831!important}.reserve-complete .reserve-submit{max-width:360px;margin:25px auto 0}
.reserve-note{text-align:center;margin:38px auto 0;color:#647b90;font-size:13px;line-height:2}.reserve-note strong{color:#243b53;font-size:14px}.reserve-note p{margin:8px 0}
@media(max-width:640px){.reserve-top{padding:14px 15px}.reserve-brand{font-size:19px}.reserve-brand span{display:block;font-size:12px;margin:5px 0 0}.reserve-home{font-size:11px}.reserve-layout{padding:34px 12px 50px}.reserve-steps{margin:28px auto 15px}.reserve-steps span{font-size:10px}.reserve-card{padding:19px 15px;border-radius:12px}.reserve-card-head{align-items:start;flex-direction:column;gap:5px;margin-bottom:19px}.reserve-card-head h2{font-size:20px}.reserve-calendar{padding:12px}.reserve-calendar-grid{gap:4px}.reserve-day,.reserve-empty-day{min-height:43px;border-radius:6px;font-size:13px}.reserve-time-head{align-items:start;flex-direction:column;gap:2px}.reserve-time-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.reserve-time{font-size:13px;padding:11px 2px}.reserve-selected{flex-direction:column;align-items:stretch}.reserve-selected button{align-self:start}.reserve-receipt{grid-template-columns:1fr;gap:4px}.reserve-receipt strong{margin-bottom:12px}}
.reserve-cancel-link{display:inline-block;margin:8px 0 0;color:#516e86;font-size:13px;text-decoration:underline;text-underline-offset:3px}

/* Device count comes before date selection so a whole uninterrupted visit fits. */
.reserve-heading p{font-size:clamp(19px,4.5vw,25px);font-weight:800;color:#243b53;line-height:1.6}
.reserve-quantity{max-width:620px;margin:0 auto 28px;padding:24px;border:1px solid #ccdae7;background:#f7fafd;border-radius:13px}
.reserve-quantity-heading strong{display:block;color:#243b53;font-size:18px;line-height:1.5}
.reserve-quantity-heading em{font-size:11px;font-weight:800;font-style:normal;background:#fff0f0;color:#a74747;border-radius:5px;padding:3px 7px;margin-left:5px;white-space:nowrap}
.reserve-quantity-heading p{margin:4px 0 17px;color:#617b91;font-size:13px}
.reserve-quantity-entry{display:flex;justify-content:center;align-items:center;gap:11px}
.reserve-quantity-entry button{width:46px;height:48px;background:#e8eef5;border:1px solid #c7d8e5;border-radius:10px;color:#243b53;font-size:28px;line-height:1;font-weight:600}
.reserve-quantity-entry button:hover{background:#dce7f1}
.reserve-quantity-entry input{width:145px;height:54px;border-radius:9px;border:2px solid #9fb8ce;background:#fff;color:#243b53;font-weight:900;font-size:24px;text-align:center;outline:none}
.reserve-quantity-entry input:focus{border-color:#416b91;box-shadow:0 0 0 3px #a7c4df66}
.reserve-quantity-entry input::placeholder{font-size:13px;font-weight:600;color:#869aac}
.reserve-quantity-entry input::-webkit-outer-spin-button,.reserve-quantity-entry input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.reserve-quantity-entry input[type=number]{-moz-appearance:textfield;appearance:textfield}
.reserve-quantity-entry span{font-size:19px;font-weight:800}
.reserve-quantity-shortcuts{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:7px;margin-top:15px}
.reserve-quantity-shortcuts span{font-size:11px;color:#71869a;font-weight:700;margin-right:3px}
.reserve-quantity-shortcuts button{border:1px solid #cad8e5;border-radius:999px;background:white;color:#526d84;font-size:12px;font-weight:800;padding:6px 12px}
.reserve-quantity-shortcuts button.selected{background:#243b53;border-color:#243b53;color:#fff}
.reserve-duration{margin:17px 0 0;padding:10px 12px;border-radius:7px;background:#e7eff7;color:#3e5d78;text-align:center;font-size:13px;font-weight:700}
@media(max-width:640px){.reserve-quantity{padding:18px 12px;margin-bottom:23px}.reserve-quantity-heading strong{font-size:17px}.reserve-quantity-entry input{width:120px}.reserve-quantity-entry{gap:8px}.reserve-quantity-entry button{width:43px}.reserve-quantity-shortcuts{gap:6px}.reserve-quantity-shortcuts button{padding:6px 10px}}
.reserve-products-note{display:block;margin-top:8px;color:#647b90;font-size:12px;font-weight:500;line-height:1.65}
