*{box-sizing:border-box}body{margin:0;background:#f5f3ee;color:#292d29;font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;line-height:1.75}a{color:#435e46;overflow-wrap:anywhere}button,input,textarea{font:inherit}button,.button{min-height:44px;border-radius:8px;cursor:pointer}button:disabled{cursor:default}button{border:1px solid #bac2b8;padding:10px 18px;background:white;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #1476a2;outline-offset:3px}.booking-shell{max-width:1060px;margin:auto;padding:32px 28px 60px}.skip{position:absolute;top:-80px}.skip:focus{top:0;background:white;padding:12px;z-index:5}.steps{list-style:none;display:flex;gap:6px;padding:0;margin:0 0 30px;counter-reset:step}.steps li{flex:1;border-bottom:3px solid #d6d8cf;padding:9px;text-align:center;color:#64685f}.steps li:before{counter-increment:step;content:counter(step) " ";font-weight:700}.steps [aria-current]{border-color:#586c4a;color:#34432f;font-weight:bold}.eyebrow{letter-spacing:.14em;color:#637457;font-size:.82rem;margin-bottom:6px}h1{font-family:serif;font-weight:600;font-size:2.1rem;line-height:1.4;margin:0 0 22px}h2{font-size:1.3rem;margin:0 0 20px}h3{font-size:1.08rem;margin:24px 0 12px}.intro{margin:0 0 28px}.panel{background:#fff;border:1px solid #dedfd6;border-radius:14px;padding:28px;margin:24px 0;box-shadow:0 3px 12px #232f2305}.courses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.course-card{display:flex;gap:10px;border:1px solid #c9cec4;border-top:5px solid var(--course);border-radius:10px;padding:20px 15px;cursor:pointer}.course-card:has(:checked){border:2px solid var(--course);border-top-width:5px;background:#f4f7f1}.course-card input{flex:none;width:20px;height:20px;accent-color:#526748;margin:4px 0}.course-card>span{min-width:0}.course-card span span{display:block}.course-title{display:block;font-size:1.03rem;line-height:1.55}.course-description{font-size:.9rem;margin-top:12px}.price{font-weight:bold;font-size:1.3rem;margin-top:16px}.course-days{margin-top:14px;font-size:.9rem}.course-apply{margin-top:16px}.js .course-apply{display:none}.month-nav{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:24px}.month-nav h3{margin:0}.legend,.hint{font-size:.88rem;color:#60665c}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekday{text-align:center;font-size:.9rem;padding:5px}.day{padding:8px 2px;min-width:0;min-height:76px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.5}.day>span{font-weight:650;font-size:1.12rem}.day small{font-size:.76rem}.day.available{background:#f0f5e9;border-color:#8b9f77}.day.selected{background:#465e37;color:white;border:2px solid #263d1b}.day.unavailable{background:#f2f2ef;color:#767970;border-color:#e0e2da}.day:hover:not(:disabled){box-shadow:0 0 0 2px #87987b}.selection-count{color:#3e5735}.selected-dates{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0}.selected-dates button{font-size:.9rem;padding:9px 12px}.customer-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{margin-bottom:20px;min-width:0}.field label{display:block;margin-bottom:7px;font-weight:600}.badge{font-weight:400;font-size:.75rem;padding:2px 6px;border:1px solid #d2d6cd;border-radius:4px;margin-left:5px;color:#626a5e}input:not([type=radio]):not([type=checkbox]),textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #a9b3a3;border-radius:7px;background:white}input[aria-invalid],textarea[aria-invalid]{border:2px solid #a12f24}textarea{resize:vertical}.field-error{color:#9b2d23;font-size:.9rem}.notice,.errors{padding:16px 20px;background:#f5edce;border-left:4px solid #a08432;border-radius:5px;margin:20px 0}.errors{background:#fff0ec;border-color:#ad483b}.errors a{color:#8a3027}.errors p{margin:0}.errors ul{margin-bottom:0}.consent{padding:18px;background:#f5f6f1;border-radius:8px}.consent label{display:flex;align-items:center;gap:10px;min-height:44px}.consent input{width:21px;height:21px;flex:none}.consent a{display:inline-block;margin-top:6px}.actions{display:flex;justify-content:center;gap:14px;margin-top:28px;flex-wrap:wrap}.primary,.back{border:0;padding:13px 25px;font-weight:650;text-decoration:none;text-align:center}.primary{background:var(--primary);color:var(--primary-text)}.back{background:var(--back);color:var(--back-text)}.primary:disabled{background:#d5d7cf;color:#62675d}.secondary{background:#fff;border-color:#bac3b3}.summary{display:grid;grid-template-columns:160px 1fr;margin:0}.summary dt,.summary dd{margin:0;padding:15px 12px;border-bottom:1px solid #e0e3d9;overflow-wrap:anywhere}.summary dt{font-weight:600}.summary ul{margin:0;padding-left:20px}.preserve{white-space:pre-wrap;overflow-wrap:anywhere}.completion-mark{width:55px;height:55px;border-radius:50%;background:#47613c;color:#fff;font-size:30px;text-align:center;margin:24px 0}.reservation-number{font-size:1.7rem;letter-spacing:.07em;font-weight:700;margin:0 0 22px;overflow-wrap:anywhere}footer{text-align:center;margin-top:35px;font-size:.9rem}footer p{margin:5px}#lookup-address{margin-top:9px}#postal-choices button{display:block;margin:6px 0;text-align:left}[hidden]{display:none!important}
@media(max-width:700px){.booking-shell{padding:18px 12px 40px}h1{font-size:1.65rem}.panel{padding:20px 14px;border-radius:10px}.courses,.customer-fields{grid-template-columns:1fr}.course-card{padding:16px;}.course-description{margin-top:6px}.course-days{margin-top:8px}.calendar{gap:3px}.day{min-height:66px;border-radius:5px}.day small{font-size:.6rem;white-space:nowrap}.month-nav button{padding:8px 10px;font-size:.85rem}.month-nav h3{font-size:1rem}.legend{font-size:.78rem}.summary{grid-template-columns:1fr}.summary dt{border:0;padding-bottom:0;color:#60665c;font-size:.88rem}.summary dd{padding-top:4px}.actions{flex-direction:column}.actions button{width:100%}.selected-dates{display:block}.selected-dates li{margin:6px 0}.steps{margin-bottom:22px}.field{margin-bottom:10px}.reservation-number{font-size:1.4rem}}

.preview-fields{border:0;margin:0;padding:0;min-width:0}

.embed-fallback{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 18px;border:1px solid #8b9f77;text-decoration:none;font-weight:600;max-width:100%}
