.public-booking{--brand:#23483d;--ink:#243c34;--line:#dddeda;--soft:#f2f4ef;background:#faf9f6;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif}.public-booking .reservation-header{padding:23px max(24px,calc((100% - 1060px)/2));display:flex;justify-content:space-between;align-items:center;gap:22px;background:#fff}.reservation-brand{text-decoration:none;display:grid;gap:3px}.reservation-brand small{font-size:10px;letter-spacing:.18em;color:#8c7950}.reservation-brand strong{font-family:serif;font-size:29px;letter-spacing:.1em}.phone-link{text-decoration:none;font-size:11px;display:grid;text-align:right;color:#5b685e}.phone-link span{font-size:20px;font-weight:700;letter-spacing:.04em}.public-booking main{max-width:1080px;margin:32px auto;padding:0 22px}.booking-intro{position:relative;margin:32px 0 27px}.booking-intro h1{font-size:30px;letter-spacing:.04em}.booking-intro p:not(.eyebrow){margin:9px 0 15px;color:#68726b;font-size:14px}.eyebrow,.complete-kicker{letter-spacing:.16em;font-size:11px;color:#9b8551}.no-account{display:inline-block;font-size:12px;padding:4px 11px;border:1px solid #d7ddd6;border-radius:4px;background:white}.public-booking #message:not(:empty){padding:17px;border:1px solid #e4d9bb;border-radius:7px;background:#fff9e9;color:#6a5424;margin:15px 0}.public-booking #message.error{background:#fff1ef;border-color:#e9b6b0;color:#a53225}.public-booking .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;list-style:none;padding:0;margin:24px 0;color:#819086;counter-reset:booking-step}.steps li{counter-increment:booking-step;padding:12px 8px;font-size:13px;background:#eaf0e9;text-align:center;border-bottom:3px solid transparent}.steps li:before{content:counter(booking-step);display:inline-grid;place-items:center;width:21px;height:21px;border:1px solid currentColor;border-radius:50%;margin-right:7px;font-size:11px}.steps li.active{background:#23483d;color:#fff;border-bottom-color:#b49a5e}.public-booking section{border:1px solid var(--line);padding:28px;border-radius:8px;margin:22px 0;background:#fff}.public-booking .search-panel,.public-booking .reservation-guide{padding:0;overflow:hidden}.public-booking .section-band{font-size:18px;background:#e9efea;border-bottom:1px solid #d8e1d8;margin:0;padding:17px 24px;color:#24463a}.search-row{margin:25px 28px 0;background:#f4f5f2;padding:22px;display:grid;grid-template-columns:1.15fr 1fr;gap:25px;align-items:start}.search-label{display:flex;align-items:center;gap:13px}.search-label>span,.date-heading>span{width:29px;height:29px;display:inline-grid;place-items:center;flex-shrink:0;border-radius:50%;background:#23483d;color:white;font-size:14px;font-weight:700}.public-booking .search-label label{font-size:16px;font-weight:650;margin:2px 0}.public-booking select{font-size:16px;min-height:48px;background:#fff;padding:10px 13px}.party-select>select{font-weight:700}.children-label{font-size:12px;color:#647167;display:grid;grid-template-columns:1fr 100px;align-items:center;gap:12px;margin:14px 0 5px}.public-booking .children-label select{min-height:40px;font-size:14px}.party-select small{font-size:11px;color:#728074}.step-arrow{text-align:center;color:#c7b783;font-size:27px;line-height:1;margin:10px 0 -14px}.date-heading{display:flex;align-items:center;gap:13px;background:#f4f5f2;padding:18px 22px;margin:25px 28px 0}.date-heading h3{font-size:16px;margin:0}.month-controls{display:flex;align-items:center;justify-content:space-between;padding:20px 28px 9px;gap:10px}.month-controls button{border:0;padding:5px 0;color:#3c766b;background:transparent;font-size:13px;min-height:40px}.month-controls p{font-size:12px;color:#7a837c;margin:0;text-align:center}.public-booking .calendar-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;padding:0 28px}.calendar-month{min-width:0}.calendar-month h3{text-align:center;font-size:17px;font-weight:650;margin:6px 0 13px}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{border:1px solid #d8dcd5;border-bottom:0;background:#eeeada;text-align:center;font-size:12px;color:#6d6f61}.calendar-weekdays span{padding:5px 0}.calendar-days{border-top:1px solid #d8dcd5;border-left:1px solid #d8dcd5}.calendar-cell{min-height:75px;border-right:1px solid #d8dcd5;border-bottom:1px solid #d8dcd5;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff}.public-booking .calendar-days button{width:100%;min-width:0;min-height:75px;padding:7px 1px 5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;border-radius:0;background:transparent;font-size:16px;line-height:1.25;color:#505e55;touch-action:manipulation}.calendar-days .day-state{font-size:14px;color:#3d8ca3;line-height:1.2}.calendar-days .state-phone .day-state{font-size:11px;color:#8b7a55}.calendar-days .state-closed .day-state{font-size:12px;color:#8b8d87}.calendar-cell.empty,.calendar-days .state-past,.calendar-days .state-outside{background:#f6f6f3}.calendar-days .state-past .day-state,.calendar-days .state-outside .day-state{color:#b3b7b0}.calendar-days .saturday .day-number,.calendar-weekdays .saturday{color:#3996b4}.calendar-days .sunday .day-number,.calendar-weekdays .sunday{color:#bc5146}.public-booking .calendar-days button:disabled{opacity:1;cursor:default}.calendar-days button:disabled .day-number{color:#a4aba3}.calendar-days .today .day-number{border-bottom:2px solid #9e8950}.public-booking .calendar-days button[aria-pressed=true]{background:#23483d;color:white;outline:3px solid #bdab72;outline-offset:-3px}.calendar-days button[aria-pressed=true] .day-number,.calendar-days button[aria-pressed=true] .day-state{color:white}.public-booking #retry-calendar{margin:15px 28px}.calendar-legend{display:flex;flex-wrap:wrap;gap:10px 20px;margin:21px 28px 0;font-size:11px;color:#6c756c}.calendar-legend b{margin-right:5px}.available-mark{color:#3d8ca3;font-size:17px}.calendar-note{font-size:12px;color:#7b8278;margin:9px 28px 20px;line-height:1.8}.public-booking .selection-summary{margin:0 28px 16px;padding:17px 20px;font-size:15px;font-weight:650;background:#f5f2e6;border:1px solid #e8dfc0}.search-next{padding:0 28px 26px;text-align:right}.public-booking .primary{background:#23483d;border-color:#23483d;min-height:50px;font-weight:650;padding:12px 24px;touch-action:manipulation}.public-booking button:focus-visible,.public-booking a:focus-visible,.public-booking input:focus-visible,.public-booking select:focus-visible{outline:3px solid #b49a5e;outline-offset:3px}.guide-columns{display:grid;grid-template-columns:1fr 1fr;gap:25px;padding:27px}.guide-columns article{padding:0;min-width:0}.guide-type{display:block;background:#23483d;color:white;padding:9px 15px;font-size:14px;font-weight:700}.phone-guide .guide-type{background:#827152}.guide-columns h3{font-size:16px;margin:20px 0 15px}.guide-columns p{font-size:13px;color:#6c756d;line-height:1.9}.guide-columns ol{padding-left:23px}.guide-columns li{padding-left:4px;margin:18px 0;font-size:14px}.guide-columns li p{margin:7px 0}.guide-phone{font-size:26px;font-weight:700;text-decoration:none}.public-booking footer{padding:30px 18px;background:#fff;border-top:1px solid #e3e4df}.public-booking footer strong{font-size:17px;color:#365345}.public-booking footer p{font-size:11px;margin:8px 0 14px}.public-booking footer a{font-size:12px}.public-booking [data-step="1"],.public-booking [data-step="2"],.public-booking [data-step="3"],.public-booking [data-step="4"]{max-width:780px;margin:25px auto}.public-booking .course{padding:20px 10px;cursor:pointer;border-bottom:1px solid #e0e4dd}.public-booking .course input{accent-color:#23483d}.public-booking .check input{accent-color:#23483d}.public-booking .actions{justify-content:space-between;margin-top:26px}.public-booking #contact label{font-size:14px;margin:20px 0}.public-booking #contact input,.public-booking #contact textarea{margin-top:7px;font-size:16px}.review-notice{padding:12px;background:#fff8e9;font-size:14px}.public-booking #cancel-area{border-top:1px solid #e0e3dc;margin-top:28px;padding-top:20px}.calendar-loading{padding:35px 10px;text-align:center;font-size:14px;color:#6a766b}.public-booking .calendar-pair[aria-busy=true]{opacity:.65;pointer-events:none}@media(max-width:700px){.public-booking .reservation-header{padding:19px 18px;gap:14px}.reservation-brand strong{font-size:25px}.reservation-brand small{font-size:8px}.phone-link{font-size:10px}.phone-link span{font-size:16px}.public-booking main{padding:0 13px;margin:25px auto}.booking-intro{margin:23px 4px}.booking-intro h1{font-size:24px}.public-booking .steps{gap:3px}.steps li{font-size:10px;padding:10px 2px}.steps li:before{margin-right:3px;width:16px;height:16px;font-size:9px}.public-booking .section-band{font-size:17px;padding:15px 18px}.search-row{margin:18px 15px 0;padding:17px;grid-template-columns:1fr;gap:13px}.search-label>span,.date-heading>span{width:26px;height:26px;font-size:12px}.public-booking .search-label label,.date-heading h3{font-size:14px}.step-arrow{font-size:23px;margin:7px 0 -9px}.date-heading{margin:19px 15px 0;padding:16px}.month-controls{padding:12px 16px 5px}.month-controls p{font-size:10px}.public-booking .calendar-pair{grid-template-columns:1fr;gap:18px;padding:0 15px}.calendar-cell,.public-booking .calendar-days button{min-height:62px}.calendar-month h3{font-size:16px;margin:9px 0}.calendar-legend{margin:20px 16px 0;gap:7px 13px;font-size:10px}.calendar-note{margin:12px 16px 17px}.public-booking .selection-summary{margin:0 15px 13px;font-size:14px}.search-next{padding:0 15px 21px}.search-next .primary{width:100%}.guide-columns{grid-template-columns:1fr;padding:20px;gap:22px}.public-booking section{padding:20px 17px}.public-booking .actions{gap:10px}.public-booking .actions button{flex:1;min-width:100px}.public-booking dl div{grid-template-columns:75px 1fr;font-size:14px}}

/* Alternative booking route, shared by all public booking steps. */
.public-booking .hotpepper-reservation{padding:18px 20px;margin:20px 0 24px;background:#fff4f3;border:1px solid #edc9c6;border-radius:12px;text-align:center}
.public-booking .hotpepper-reservation p{margin:0 0 10px}
.public-booking .hotpepper-reservation a{display:inline-block;box-sizing:border-box;max-width:100%;padding:14px 20px;border-radius:8px;background:#c72d3b;color:#fff;text-decoration:none;font-weight:700;line-height:1.6}
.public-booking .hotpepper-reservation a:hover{background:#a91f2c}
.public-booking .hotpepper-reservation a:focus-visible{outline:3px solid #204b3d;outline-offset:4px}
.public-booking .hotpepper-reservation small{display:block;margin-top:10px;color:#6b5959}
@media(max-width:600px){.public-booking .hotpepper-reservation{padding:16px 12px}.public-booking .hotpepper-reservation a{width:100%;padding:14px 10px;font-size:16px}}

/* Available date/time selectors share the calendar's party-specific results. */
.public-booking .date-select,.public-booking .time-select{min-width:0}
.public-booking .date-select select,.public-booking .time-select select{box-sizing:border-box;width:100%;min-width:0;max-width:100%;font-size:16px;min-height:50px}
.public-booking .date-select small,.public-booking .time-select small{display:block;margin-top:9px;font-size:12px;line-height:1.8;color:#647267}
.public-booking .date-heading h3{margin:0}

.public-booking .course-preorder-note{margin:20px 0 24px;padding:20px;background:#fff8e8;border:1px solid #dfc58b;border-left:5px solid #ad8438;border-radius:8px;color:#354637}
.public-booking .course-preorder-note h3{margin:0 0 12px;font-size:18px}
.public-booking .course-preorder-note p{margin:10px 0;line-height:1.9;font-size:15px}
.public-booking .course-preorder-note p:last-child{margin-bottom:0}
@media(max-width:600px){.public-booking .course-preorder-note{padding:16px}.public-booking .course-preorder-note h3{font-size:17px}}

/* Shared menu course information, including read-only details below the party minimum. */
.course-details{align-items:flex-start;min-width:0}.course-body{display:block;min-width:0;width:100%;overflow-wrap:anywhere}.course-body p{margin:10px 0}.course-body img{display:block;width:100%;max-width:420px;max-height:260px;object-fit:cover;border-radius:10px;margin:14px 0}.course-description{white-space:pre-wrap;line-height:1.8}.course-condition{font-weight:bold}.course-details:has(input:disabled){background:#f6f5f0}.course-details input{flex-shrink:0}

/* Course selection and disclosure are separate controls. */
.public-booking .course-details{display:block;cursor:default}.public-booking .course-choice{display:flex;align-items:flex-start;gap:12px;margin:0;cursor:pointer}.course-content{margin:12px 0 0 30px}.course-content summary{padding:12px 0;color:#23483d;font-weight:bold;cursor:pointer}.course-content img{display:block;width:100%;max-width:420px;max-height:260px;object-fit:cover;border-radius:10px;margin:14px 0}.course-content .course-description{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}
