:root{--navy:#223a54;--blue:#eef7fb;--blue-strong:#397b98;--rose:#b8557c;--ink:#2e3440;--muted:#707783;--line:#dce4e8;--number-font:"Avenir Next","Helvetica Neue",Arial,sans-serif;font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:#f4f7f9;font-size:16px;line-height:1.7}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(145deg,#eef7fb,#faf7fb 55%,#f7edf3)}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #b8557c;outline-offset:3px}.site-header{height:68px;display:grid;grid-template-columns:48px 1fr 48px;align-items:center;padding:0 14px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.back{font-size:2rem;text-decoration:none;text-align:center;color:var(--navy)}.brand{text-align:center;text-decoration:none;font:1.3rem Georgia,serif;letter-spacing:.05em;color:var(--navy)}.brand small{display:block;font-family:inherit;font-size:.62rem;letter-spacing:.18em;margin-top:-5px}.header-spacer{width:48px}
main{width:min(100%,720px);min-height:calc(100vh - 68px);margin:auto;background:#fff;padding:28px clamp(20px,5vw,48px) 60px;box-shadow:0 0 50px #28455c10}.progress{display:flex;align-items:flex-start;justify-content:center;max-width:420px;margin:0 auto 42px}.progress span{position:relative;display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:50%;background:#edf0f2;color:#8b9197;font-family:var(--number-font);font-weight:600;font-variant-numeric:tabular-nums}.progress span small{position:absolute;top:37px;color:#777f88;font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:.72rem;font-weight:600;white-space:nowrap}.progress span.active{background:var(--navy);color:#fff}.progress span.active small{color:var(--navy)}.progress span.done{background:var(--blue-strong);color:#fff}.progress span.done small{color:var(--blue-strong)}.progress i{height:1px;background:var(--line);flex:1;margin:17px 8px}.panel{display:none}.panel.active{display:block;animation:fade .28s ease}@keyframes fade{from{opacity:.4;transform:translateY(5px)}}.intro{text-align:center;margin-bottom:28px}.intro.compact{margin-bottom:22px}.eyebrow{margin:0 0 6px;color:var(--rose);font-size:.75rem;font-weight:700;letter-spacing:.18em}.intro h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:500;font-size:clamp(1.65rem,6vw,2.15rem);line-height:1.4;letter-spacing:.025em;margin:0;color:var(--navy)}.intro>p:last-child{margin:8px 0 0;color:var(--muted)}
.service-card{display:flex;justify-content:space-between;gap:18px;padding:22px;border:1px solid #e4cbd6;border-radius:18px;background:linear-gradient(135deg,#fff,#fff4f7);box-shadow:0 10px 24px #7b456010}.service-card span{display:inline-block;color:var(--rose);font-size:.72rem;font-weight:700}.service-card h2{font-size:1rem;margin:2px 0}.service-card p{font-size:.8rem;color:var(--muted);margin:0}.service-meta{display:flex;align-items:flex-end;gap:14px;white-space:nowrap}.service-meta strong{color:var(--navy);font-family:var(--number-font);font-size:2rem;font-weight:300;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.service-meta b{color:var(--rose);font-family:var(--number-font);font-size:1.5rem;font-weight:400;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.service-meta small{font-family:inherit;font-size:.66rem;margin-left:2px}.calendar-head{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;text-align:center;margin:34px 0 16px}.calendar-head button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--navy);font-size:1.5rem}.calendar-head strong{font-family:var(--number-font);font-size:1.05rem;font-weight:500;font-variant-numeric:tabular-nums;color:var(--navy)}.date-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.date-button{border:1px solid var(--line);border-radius:12px;background:#fff;padding:9px 2px;color:var(--ink);min-width:0}.date-button small{display:block;font-size:.67rem;color:var(--muted)}.date-button strong{display:block;font-family:var(--number-font);font-size:1.05rem;font-weight:500;font-variant-numeric:tabular-nums}.date-button.sunday small,.date-button.sunday strong{color:#c44f67}.date-button.saturday small,.date-button.saturday strong{color:#397aa6}.date-button.selected{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 7px 16px #223a5428}.date-button.selected small,.date-button.selected strong{color:#fff}.date-button:disabled{opacity:.35;cursor:not-allowed}.slots-wrap{margin-top:30px}.slots-wrap h2{font-size:1rem;color:var(--navy);margin:0 0 14px}.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.slot{padding:11px 4px;border:1px solid #b8d5e1;border-radius:10px;background:#fff;color:var(--navy);font-family:var(--number-font);font-weight:600;font-variant-numeric:tabular-nums}.slot:hover{background:var(--blue)}.slot.selected{background:var(--rose);border-color:var(--rose);color:#fff}.slot.unavailable{color:#a7abb0;background:#f5f6f7;border-color:#eceeef;text-decoration:line-through;cursor:not-allowed}.slot-note{font-size:.75rem;color:var(--muted);text-align:right;margin:12px 0 0}.slot-note span{color:var(--blue-strong);font-weight:700}.demo-note{margin:18px 0 0;padding:12px 14px;border-radius:10px;background:#f5f7f8;color:var(--muted);font-size:.78rem;line-height:1.65}
.text-back{border:0;background:transparent;color:var(--blue-strong);padding:6px 0;margin-bottom:20px}.selection-summary{padding:16px 18px;border-radius:14px;background:var(--blue);color:var(--navy);font-weight:700;margin-bottom:28px}.selection-summary small{display:block;color:var(--muted);font-weight:500}form label{display:block;font-weight:700;margin-top:21px}form label>span{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:5px;background:var(--rose);color:#fff;font-size:.66rem;vertical-align:2px}form label>span.optional{background:#e9edf0;color:#6e7479}input,textarea{display:block;width:100%;margin-top:8px;padding:14px 15px;border:1px solid #cfd8dd;border-radius:10px;background:#fff;color:var(--ink);font-size:1rem}textarea{resize:vertical}.agree{display:flex;align-items:flex-start;gap:10px;font-size:.86rem;font-weight:500!important}.agree input{width:20px;height:20px;margin:3px 0 0;accent-color:var(--rose)}.agree span{margin:0!important;padding:0!important;background:none!important;color:var(--ink)!important;font-size:inherit!important}.primary{display:flex;width:100%;align-items:center;justify-content:center;gap:12px;margin-top:30px;padding:17px 22px;border:0;border-radius:12px;background:var(--navy);color:#fff;font-weight:700;box-shadow:0 10px 22px #223a5426}.primary b{font-size:1.5rem;line-height:1}.primary.disabled{background:#b9bdc1;box-shadow:none;cursor:not-allowed}.confirm-card{border:1px solid var(--line);border-radius:16px;overflow:hidden}.confirm-card dl{margin:0}.confirm-row{display:grid;grid-template-columns:112px 1fr;border-bottom:1px solid var(--line)}.confirm-row:last-child{border:0}.confirm-row dt,.confirm-row dd{padding:15px;margin:0}.confirm-row dt{background:#f5f8fa;color:var(--muted);font-weight:700}.confirm-row dd{overflow-wrap:anywhere}.pending-notice{margin-top:22px;padding:18px;border-radius:14px;background:#fff6df;border:1px solid #ead696}.pending-notice strong{color:#765b12}.pending-notice p{margin:5px 0 0;font-size:.86rem;color:#736844}.shop-info{margin-top:56px;padding:26px;border-top:1px solid var(--line);text-align:center;color:var(--muted);font-size:.82rem}.shop-info strong{font:1.25rem Georgia,serif;color:var(--navy)}.shop-info p{margin:10px 0 0}footer{padding:30px 24px;background:var(--navy);color:#fff;text-align:center;font-size:.78rem}footer p{margin:0 auto 12px;max-width:520px;opacity:.85}footer small{opacity:.55}
@media(max-width:520px){main{padding-inline:18px}.service-card{display:block}.service-meta{justify-content:flex-end;margin-top:10px}.date-strip{gap:4px}.date-button{padding-inline:0}.slots{grid-template-columns:repeat(3,1fr)}.confirm-row{grid-template-columns:94px 1fr}.confirm-row dt,.confirm-row dd{padding:13px 11px}}
.slots-status{grid-column:1/-1;margin:12px 0;color:#6e5962;text-align:center}.slots-status.error{color:#a13f54}.slot.retry{grid-column:1/-1}.primary:disabled{cursor:wait;opacity:.65}
@media(prefers-reduced-motion:reduce){.panel.active{animation:none}}
.thanks-main{display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 68px)}.thanks-card{text-align:center;padding:36px 0 10px}.thanks-mark{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 22px;border-radius:50%;background:linear-gradient(145deg,var(--blue-strong),var(--navy));color:#fff;font-size:2rem;box-shadow:0 12px 28px #397b9830}.thanks-card h1{margin:0;color:var(--navy);font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(1.65rem,6vw,2.15rem)}.thanks-lead{margin:10px 0 0;color:var(--muted)}.thanks-booking{margin:28px 0 0;padding:18px;border-radius:14px;background:var(--blue);color:var(--navy);font-weight:700}.thanks-info{margin-top:28px;padding:22px;text-align:left;border:1px solid var(--line);border-radius:14px}.thanks-info h2{margin:0 0 8px;color:var(--navy);font-size:1rem}.thanks-info p{margin:0;color:var(--muted);font-size:.9rem}.link-button{text-decoration:none}.thanks-main+.shop-info{margin-top:30px}
