:root{--ink:#151515;--muted:#71717a;--paper:#fff;--canvas:#f4f4f5;--line:#d9d9dc;--soft-line:#e9e9eb;--teal:#0d9488;--teal-soft:#eaf7f5;--blue:#3979d8}*{box-sizing:border-box}html{background:var(--canvas);min-width:320px}body{color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;margin:0;font-family:Noto Sans SC,Noto Sans JP,PingFang SC,Hiragino Sans,Yu Gothic UI,system-ui,sans-serif;font-size:16px;line-height:1.6}button,input,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}.booking-shell{min-height:100svh}.site-header{background:var(--paper);border-bottom:1px solid #ededee;justify-content:space-between;align-items:center;height:64px;padding:0 max(24px,50vw - 400px);display:flex}.brand{color:var(--ink);cursor:pointer;background:0 0;border:0;align-items:baseline;gap:12px;padding:0;display:inline-flex}.brand strong{letter-spacing:-.035em;font-size:1.18rem;font-weight:800}.brand span{color:#9a9aa1;font-size:.86rem;font-weight:600}.language-button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:8px 0;font-size:.86rem;font-weight:650}.language-button:hover{color:var(--ink)}.booking-page{width:min(800px,100% - 40px);margin:0 auto;padding:60px 0 72px}.booking-intro{margin-bottom:34px}.booking-intro p{color:var(--teal);letter-spacing:.12em;margin:0 0 6px;font-size:.75rem;font-weight:750}.booking-intro h1{color:var(--ink);letter-spacing:-.04em;margin:0;font-size:clamp(1.85rem,5vw,2.35rem);font-weight:760;line-height:1.25}.page-meta{color:var(--muted);align-items:center;gap:18px;font-size:.8rem;font-weight:650;display:flex}.page-meta span:first-child{color:var(--ink)}.preview-label{color:#66666d;background:#e8e8ea;border-radius:999px;margin-left:auto;padding:3px 9px;font-size:.72rem}.progress-track{background:#dedee1;height:2px;margin-top:14px;overflow:hidden}.progress-track>span{background:var(--teal);height:100%;transition:width .22s;display:block}.step-content{margin-top:38px}.step-content>h2,.title-row h2{max-width:700px;color:var(--ink);letter-spacing:-.025em;margin:0;font-size:clamp(1.45rem,3.5vw,1.75rem);font-weight:720;line-height:1.35}.completion-panel h1{color:var(--ink);letter-spacing:-.045em;margin:0;font-size:clamp(2rem,6vw,3rem);font-weight:760;line-height:1.2}.region-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:42px;display:grid}.choice-card{border:1px solid var(--line);background:var(--paper);width:100%;min-height:96px;color:var(--ink);text-align:left;cursor:pointer;border-radius:13px;grid-template-columns:42px 1fr 20px;align-items:center;gap:14px;padding:18px 20px;transition:border-color .16s,background .16s,transform .16s;display:grid}.choice-card:hover{border-color:#a7a7ac;transform:translateY(-1px)}.choice-card.selected{border-color:var(--teal);background:var(--teal-soft)}.choice-card>span:nth-child(2){gap:2px;display:grid}.choice-card strong{font-size:1rem}.choice-card small{color:var(--muted);font-size:.82rem}.choice-index{color:#a1a1a8;letter-spacing:.08em;font-size:.78rem;font-weight:750}.selected .choice-index{color:var(--teal)}.radio-indicator{background:var(--paper);border:1.5px solid #b9b9be;border-radius:50%;width:20px;height:20px}.selected .radio-indicator{border:5px solid var(--teal)}.style-options{gap:10px;margin-top:40px;display:grid}.style-option-block{gap:10px;display:grid}.style-card{min-height:82px}.follow-up-panel{border:1px solid var(--soft-line);background:#ffffff8c;border-radius:13px;margin-top:18px;padding:24px}.style-option-block .follow-up-panel{margin:0 0 8px}.follow-up-panel>label{margin-bottom:13px;font-size:.88rem;font-weight:750;display:block}.ppt-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.ppt-options button{border:1px solid var(--line);background:var(--paper);min-height:48px;color:var(--ink);cursor:pointer;text-align:left;border-radius:9px;padding:9px 12px;font-size:.88rem;font-weight:650}.ppt-options button:hover{border-color:#a7a7ac}.ppt-options button.selected{border-color:var(--teal);background:var(--teal-soft);color:#086b63}.level-section{border-top:1px solid var(--soft-line);margin-top:22px;padding-top:20px}.level-section>label{margin-bottom:12px;font-size:.88rem;font-weight:750;display:block}.level-options{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.level-options button{border:1px solid var(--line);background:var(--paper);min-height:54px;color:var(--ink);cursor:pointer;border-radius:9px;place-items:center;gap:0;padding:6px;display:grid}.level-options button span{color:var(--muted);font-size:.66rem}.level-options button strong{font-size:1rem}.level-options button.selected{border-color:var(--teal);background:var(--teal-soft);color:#086b63}.material-preview-action{align-items:center;gap:14px;margin-top:16px;display:flex}.material-preview-action button{color:#fff;cursor:pointer;background:#171717;border:0;border-radius:8px;min-height:44px;padding:0 16px;font-size:.84rem;font-weight:720}.material-preview-action small{color:var(--muted);font-size:.75rem}.pdf-preview-backdrop{z-index:100;background:#0f0f10b8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.pdf-preview-dialog{background:var(--paper);border-radius:14px;grid-template-rows:auto 1fr auto;width:min(960px,100%);height:min(860px,100svh - 48px);display:grid;overflow:hidden;box-shadow:0 22px 70px #00000047}.pdf-preview-dialog header{border-bottom:1px solid var(--soft-line);justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:12px 16px 12px 20px;display:flex}.pdf-preview-dialog header div{display:grid}.pdf-preview-dialog header span{color:var(--muted);font-size:.76rem}.pdf-preview-dialog header button{width:40px;height:40px;color:var(--ink);cursor:pointer;background:#f0f0f1;border:0;border-radius:50%;font-size:1.4rem}.pdf-preview-dialog iframe{background:#2b2b2b;border:0;width:100%;height:100%}.pdf-preview-dialog footer{border-top:1px solid var(--soft-line);justify-content:flex-end;align-items:center;min-height:54px;padding:9px 18px;display:flex}.pdf-preview-dialog footer a{color:var(--ink);font-size:.84rem;font-weight:720}.follow-up-panel textarea{resize:vertical;border:1px solid var(--line);background:var(--paper);width:100%;min-height:118px;color:var(--ink);border-radius:11px;outline:none;padding:14px 16px;line-height:1.65}.follow-up-panel textarea:focus,.contact-form input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0d94881a}.follow-up-panel textarea::placeholder,.contact-form input::placeholder{color:#a8a8ae}.page-actions,.form-actions{justify-content:space-between;align-items:center;gap:16px;margin-top:34px;display:flex}.primary-button{color:#fff;cursor:pointer;background:#171717;border:0;border-radius:9px;justify-content:center;align-items:center;min-width:154px;min-height:50px;padding:0 24px;font-weight:700;text-decoration:none;transition:background .16s,transform .16s,opacity .16s;display:inline-flex}.primary-button:hover:not(:disabled){background:#333;transform:translateY(-1px)}.primary-button:disabled{opacity:.25;cursor:not-allowed}.text-button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:10px 1px;font-size:.88rem;font-weight:700}.text-button:hover{color:var(--ink)}.text-button.centered{margin:16px auto 0;display:block}.title-row{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.title-row>span{color:#5e5e65;background:#e7e7e9;border-radius:999px;flex:none;margin-top:11px;padding:5px 10px;font-size:.76rem;font-weight:700}.schedule-picker{grid-template-columns:210px 1fr;gap:18px;min-height:330px;margin-top:38px;display:grid}.date-list{scrollbar-width:thin;align-content:start;gap:7px;max-height:360px;padding-right:7px;display:grid;overflow-y:auto}.date-list button{border:1px solid var(--line);background:var(--paper);min-height:52px;color:var(--ink);cursor:pointer;text-align:left;border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:8px 11px;display:flex}.date-list button strong{white-space:nowrap;font-size:.88rem}.date-list button small{color:#a0a0a6;text-align:center;min-width:24px;font-size:.72rem}.date-list button.selected{color:#fff;background:#171717;border-color:#171717}.date-list button.selected small{color:#c9c9cd}.time-grid{grid-template-columns:repeat(3,minmax(88px,1fr));align-content:start;gap:9px;display:grid}.time-grid button{border:1px solid var(--line);background:var(--paper);min-height:50px;color:var(--ink);cursor:pointer;font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:9px;font-weight:720}.time-grid button:hover{border-color:#a7a7ac}.time-grid button.selected{border-color:var(--teal);background:var(--teal-soft);color:#086b63}.loading-state,.empty-state,.calendar-pending{border:1px solid var(--soft-line);min-height:320px;color:var(--muted);text-align:center;background:#ffffff8c;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;gap:10px;margin-top:34px;display:flex}.loading-state{flex-direction:row}.empty-state p,.calendar-pending p{max-width:440px;margin:0}.calendar-pending strong{color:var(--ink);font-size:1.08rem}.empty-state button{color:var(--ink);cursor:pointer;background:0 0;border:0;border-bottom:1px solid;font-weight:700}.calendar-pending a{color:#fff;background:#171717;border-radius:8px;align-items:center;min-height:46px;margin-top:10px;padding:0 18px;font-weight:700;text-decoration:none;display:inline-flex}.spinner{border:2px solid #d7d7da;border-top-color:#333;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.contact-form>h2{margin-bottom:30px}.booking-summary{border-left:3px solid var(--teal);background:var(--paper);gap:2px;margin-bottom:28px;padding:15px 17px;display:grid}.booking-summary strong{font-size:.91rem}.booking-summary span{color:var(--muted);font-size:.8rem}.contact-form label{color:var(--ink);gap:7px;margin-bottom:18px;font-size:.88rem;font-weight:720;display:grid}.contact-form label>span{align-items:center;gap:8px;display:flex}.contact-form label em{color:var(--blue);font-size:.7rem;font-style:normal;font-weight:700}.contact-form input{background:var(--paper);width:100%;min-height:54px;color:var(--ink);border:1px solid #cfcfd3;border-radius:11px;outline:none;padding:11px 15px;font-size:1rem}.contact-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.honeypot{clip:rect(0 0 0 0)!important;white-space:nowrap!important;width:1px!important;height:1px!important;position:absolute!important;overflow:hidden!important}.form-error{color:#9c3f31;background:#fff0ed;border-radius:8px;margin:0 0 15px;padding:10px 12px;font-size:.82rem}.completion-panel{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100svh - 200px);display:flex}.completion-kicker{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:24px;font-size:.78rem;font-weight:750}.completion-mark{background:var(--teal-soft);width:60px;height:60px;color:var(--teal);border-radius:50%;place-items:center;margin-bottom:22px;font-size:1.55rem;font-weight:800;display:grid}.completion-panel>p{max-width:430px;color:var(--muted);margin:16px 0 0}.confirmation-card{border:1px solid var(--line);background:var(--paper);border-radius:11px;gap:3px;width:min(430px,100%);margin-top:26px;padding:18px;display:grid}.confirmation-card strong{font-size:.92rem}.confirmation-card span{color:var(--ink);font-size:.84rem;font-weight:700}.confirmation-card small{color:var(--muted);font-size:.74rem}.save-notice{background:var(--teal-soft);text-align:left;border-radius:9px;width:min(430px,100%);padding:11px 13px;font-size:.76rem;line-height:1.55;color:#27645f!important;margin-top:14px!important}.completion-actions{gap:9px;width:min(430px,100%);margin-top:14px;display:grid}.completion-actions .primary-button,.completion-actions .secondary-button{width:100%}.secondary-button{border:1px solid var(--line);background:var(--paper);min-height:48px;color:var(--ink);cursor:pointer;font:inherit;border-radius:9px;justify-content:center;align-items:center;padding:0 20px;font-size:.86rem;font-weight:700;text-decoration:none;display:inline-flex}.secondary-button:hover{background:#fafafa;border-color:#a7a7ac}button:focus-visible,a:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #3979d847}@media (max-width:680px){.site-header{height:58px;padding-inline:18px}.booking-page{width:min(100% - 32px,800px);padding-top:40px}.booking-intro{margin-bottom:28px}.booking-intro h1{font-size:1.85rem}.step-content{margin-top:32px}.step-content>h2,.title-row h2{font-size:1.5rem}.completion-panel h1{font-size:2.3rem}.region-options{grid-template-columns:1fr;margin-top:32px}.choice-card{min-height:84px}.ppt-options{grid-template-columns:1fr}.level-options{grid-template-columns:repeat(5,1fr)}.material-preview-action{flex-direction:column;align-items:flex-start}.pdf-preview-backdrop{padding:0}.pdf-preview-dialog{border-radius:0;width:100%;height:100svh}.title-row{align-items:flex-end}.title-row>span{margin-bottom:5px}.schedule-picker{grid-template-columns:1fr;gap:18px;margin-top:30px}.date-list{grid-auto-columns:132px;grid-auto-flow:column;max-height:none;padding:0 0 8px;overflow-x:auto}.date-list button{min-height:48px}.time-grid{grid-template-columns:repeat(3,minmax(76px,1fr))}.contact-grid{grid-template-columns:1fr;gap:0}}@media (max-width:400px){.brand span{display:none}.time-grid{grid-template-columns:repeat(2,1fr)}.primary-button{min-width:135px;padding-inline:18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}
