.cf-shell{max-width:1240px;margin:auto;padding:0 5% 90px}.cf-shell button,.cf-shell input,.cf-shell select{font:inherit}.cf-shell button{cursor:pointer}.cf-shell h2{font-size:clamp(24px,3vw,36px);line-height:1.5}.cf-shell h3{font-size:22px}.cf-shell a:focus-visible,.cf-shell button:focus-visible,.cf-shell input:focus-visible,.cf-shell select:focus-visible,.cf-composer textarea:focus-visible{outline:3px solid #9f372d;outline-offset:4px}.cf-sample{border:1px solid #b78f60;background:#f5eddf;padding:18px 22px;margin-bottom:24px}.cf-sample strong{display:block;font-size:15px}.cf-sample p{font-size:13px;margin:6px 0 0;line-height:1.9}.cf-intro{display:flex;justify-content:space-between;gap:24px;align-items:center;font-size:14px;margin:25px 0 35px}.cf-intro a{white-space:nowrap;text-decoration:underline}.cf-modes{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:52px}.cf-modes button{background:transparent;border:1px solid #b8b4ad;text-align:left;padding:24px;color:#191918;transition:background .15s}.cf-modes button[aria-pressed=true]{background:#191918;color:#fff;border-color:#191918}.cf-modes span{display:block;font-size:10px;letter-spacing:.15em;margin-bottom:12px}.cf-modes strong{display:block;font-size:clamp(17px,2vw,24px)}.cf-modes small{display:block;font-size:13px;margin-top:9px}.cf-tools-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.cf-tools-head h2{margin:0}.cf-view{display:flex;border:1px solid #bbb7b0;flex-shrink:0}.cf-view button{border:0;background:transparent;min-height:44px;padding:10px 16px;font-size:13px}.cf-view button[aria-pressed=true]{background:#191918;color:#fff}.cf-filters{display:grid;grid-template-columns:1.4fr 1fr auto;gap:16px;align-items:end;padding:24px;background:#ebe7df}.cf-filters label,.cf-request label,.cf-composer label{display:block;font-size:13px;font-weight:600;line-height:1.8}.cf-filters input,.cf-filters select,.cf-request input,.cf-request select{display:block;width:100%;min-width:0;border:1px solid #bcb7ae;border-radius:0;background:#fff;min-height:48px;padding:10px 12px;color:#191918;margin-top:6px}.cf-filters .button{min-height:48px;background:transparent;padding:10px 18px;font-size:13px}.cf-chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0;min-height:18px}.cf-chips button{border:1px solid #ccc6bb;background:#fff;padding:8px 13px;min-height:40px;font-size:12px;overflow-wrap:anywhere}.cf-workspace{display:grid;grid-template-columns:360px minmax(0,1fr);gap:32px;align-items:start}.cf-workspace.is-list{grid-template-columns:1fr}.cf-workspace aside{border:1px solid #ccc7bd;background:#fff;padding:20px;min-width:0}.cf-month-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.cf-month-head h3{font-size:21px;margin:0}.cf-month-head button{width:44px;height:44px;border:1px solid #cdc8bd;background:#fff}.cf-week,.cf-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.cf-week span{text-align:center;font-size:11px;color:#706d67;padding:10px 0}.cf-calendar button{min-width:0;min-height:48px;border:1px solid transparent;background:#f4f1eb;padding:5px 0;color:#403c35;font-size:13px}.cf-calendar button small{display:block;font-size:9px;min-height:13px;color:#817d75}.cf-calendar button.has-session{border-bottom:2px solid #984538;background:#e9e2d6;font-weight:700}.cf-calendar button[aria-pressed=true]{background:#191918;color:white;border:1px solid #191918}.cf-calendar button[aria-pressed=true] small{color:white}.cf-hint{font-size:12px;line-height:1.9;color:#69655e}.cf-calendar-actions{display:flex;gap:12px;margin:18px 0}.cf-calendar-actions button{background:transparent;border:0;border-bottom:1px solid #999;padding:8px 0;font-size:12px;min-height:40px}.cf-calendar-actions button:disabled{opacity:.4;cursor:default}.cf-results-head{border-bottom:1px solid #c9c3b8;margin-bottom:18px;padding-bottom:12px;display:flex;justify-content:space-between;gap:15px;align-items:center}.cf-results-head h3{margin:0;font-size:20px;scroll-margin-top:125px}.cf-results-head p{font-size:12px;margin:0;white-space:nowrap}.cf-card{border:1px solid #ccc7bd;background:#fff;margin-bottom:16px;padding:24px}.cf-card-top{display:flex;justify-content:flex-end;gap:12px;align-items:center;font-size:10px;letter-spacing:.08em;color:#696157}.cf-label{border:1px solid #ae8d5e;background:#f7f0e5;color:#604a2b;padding:4px 8px;white-space:nowrap}.cf-card-date{display:flex;gap:15px;flex-wrap:wrap;margin:18px 0 10px;align-items:center}.cf-card-date strong{font-size:22px}.cf-card-date span{font-size:13px}.cf-card h4{font-size:28px;margin:8px 0}.cf-card h4 small{font-size:14px;font-weight:500;display:inline-block}.cf-card p{font-size:14px;margin:8px 0}.cf-capacity{color:#6d6962}.cf-card-bottom{display:flex;justify-content:flex-end;align-items:center;gap:16px;border-top:1px solid #e2ddd4;padding-top:18px;margin-top:20px}.cf-card-bottom>span{font-size:11px;color:#77716a}.cf-card-bottom button{font-size:12px;min-height:44px;white-space:nowrap;padding:10px 14px}.cf-empty{padding:35px;background:#ebe7df}.cf-empty h4{font-size:21px}.cf-empty p{font-size:14px;line-height:1.9}.cf-empty button{margin:8px 8px 0 0;font-size:13px}.cf-policy{border-top:1px solid #c7c1b7;margin-top:70px;padding-top:35px}.cf-policy h2{font-size:25px}.cf-policy ol{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;padding-left:23px;font-size:14px;margin:28px 0}.cf-policy p{font-size:13px;color:#69655e;line-height:1.9}.cf-policy>a{display:inline-block;margin:12px 24px 0 0;font-size:14px;text-decoration:underline}.cf-request{display:grid;grid-template-columns:1fr 1.2fr;gap:40px}.cf-request h2{margin-top:0}.cf-request p{font-size:14px;line-height:2}.cf-request-note{padding:20px;background:#ebe7df;margin:25px 0}.cf-request-note strong{font-size:14px}.cf-request form{background:#fff;border:1px solid #ccc7bd;padding:30px}.cf-request label{margin-bottom:18px}.cf-request label>span{font-weight:400;color:#8c3a30;font-size:11px}.cf-time-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.cf-request .cf-hint{font-size:12px}.cf-request-result{grid-column:1/-1;scroll-margin-top:120px}.cf-request-result:empty{display:none}#cf-form-error{color:#973a2f}.cf-composer{max-width:100%;margin-top:20px}.cf-composer textarea{display:block;width:100%;min-width:0;margin:8px 0 18px;padding:15px;border:1px solid #bdb5a7;background:#faf8f4;color:#292620;font-family:inherit;font-size:14px;line-height:1.9;resize:vertical}.cf-copy-row{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.cf-copy-row p{font-size:12px}.cf-contact-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:20px 0}.cf-contact-actions .button{font-size:13px;white-space:normal;text-align:left;line-height:1.6}.cf-composer p{font-size:12px;line-height:1.9}.cf-composer p a{text-decoration:underline}.cf-detail{padding:20px 0}.cf-detail h2{font-size:32px;padding-right:50px}.cf-detail-meta{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.cf-detail-meta div{border-bottom:1px solid #ddd5c7;padding-bottom:15px}.cf-detail-meta dt{font-size:11px;color:#706a5f;margin-bottom:7px}.cf-detail-meta dd{margin:0;font-size:14px}.cf-detail>p{font-size:14px;line-height:1.9}.cf-detail h3{margin-top:32px}.cf-nav-note{margin:20px 0 32px;padding:22px;background:#ebe7df;border-left:3px solid #191918;font-size:14px}.cf-nav-note a{text-decoration:underline;font-weight:700}.cf-nav-note p{font-size:12px;color:#6c655c;margin:7px 0 0}
@media(min-width:1101px){header>nav{gap:12px}header>nav a{font-size:11px}}
@media(max-width:1000px){.cf-workspace{grid-template-columns:310px minmax(0,1fr);gap:20px}.cf-card{padding:20px}.cf-card-bottom{display:block}.cf-card-bottom button{display:flex;margin-top:12px}.cf-shell{padding-left:4%;padding-right:4%}}
@media(max-width:760px){.cf-shell{padding-left:22px;padding-right:22px}.cf-intro{display:block}.cf-intro a{display:inline-block;margin-top:10px}.cf-modes{gap:10px;margin-bottom:35px}.cf-modes button{padding:18px 14px}.cf-modes strong{font-size:17px}.cf-modes small{font-size:11px}.cf-modes span{font-size:8px;letter-spacing:.05em}.cf-tools-head{display:block}.cf-view{display:inline-flex;margin-top:18px}.cf-filters{grid-template-columns:1fr;padding:18px}.cf-workspace{grid-template-columns:1fr;gap:26px}.cf-workspace aside{padding:18px}.cf-calendar{gap:4px}.cf-calendar button{min-height:49px}.cf-card{padding:20px}.cf-card-bottom{display:block}.cf-card-bottom button{width:100%;justify-content:space-between}.cf-results-head{display:block}.cf-results-head p{margin-top:8px}.cf-request{grid-template-columns:1fr;gap:24px}.cf-request form{padding:22px}.cf-request-result{grid-column:auto}.cf-policy ol{grid-template-columns:1fr;gap:14px}.cf-detail-meta{grid-template-columns:1fr}.cf-sample{padding:16px}.cf-request .button{white-space:normal}.cf-card h4{font-size:26px}.cf-composer textarea{font-size:16px}.cf-copy-row .button{width:100%}.cf-time-row{gap:10px}.cf-time-row input{padding:8px}.cf-detail{padding:12px 0}.cf-contact-actions{display:grid}.cf-card-top{font-size:9px}}
@media(max-width:350px){.cf-shell{padding-left:16px;padding-right:16px}.cf-modes{grid-template-columns:1fr}.cf-modes button{padding:16px}.cf-modes strong{font-size:18px}.cf-calendar button{min-height:44px}.cf-workspace aside{padding:10px}.cf-month-head h3{font-size:19px}.cf-request form{padding:16px}.cf-detail h2{font-size:26px}.cf-time-row{grid-template-columns:1fr}}
/* v1.3: compact comparisons, explicit state and shorter actions. */
.cf-modes button[aria-pressed=true]{box-shadow:inset 0 -4px 0 #a88759}.cf-modes small{line-height:1.8}.cf-card{padding:19px 22px}.cf-card-date{margin:12px 0 5px}.cf-card-date strong{font-size:20px}.cf-card h4{font-size:25px;margin:4px 0}.cf-compare{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.cf-compare p{margin:4px 0;font-size:13px}.cf-card-bottom{margin-top:12px;padding-top:12px}.cf-card-bottom button{background:#191918;color:white;border-color:#191918}.cf-source-status{border-left:3px solid #a88759;padding:10px 16px;margin-bottom:30px;background:#ebe7df}.cf-source-status strong{display:block;font-size:14px}.cf-source-status span,.cf-source-status small{display:block;font-size:11px;line-height:1.9;margin-top:4px}.cf-sample-inline{border-left:3px solid #a88759;background:#f5eddf;padding:12px;font-size:13px}.cf-detail-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin:20px 0}.cf-detail-actions button{font-size:13px}.cf-detail>#cf-join-apply{width:100%;justify-content:center;margin-top:16px}.cf-state-preview{margin-top:48px;border:1px dashed #bcb5a8;background:transparent}.cf-state-preview summary{padding:17px;font-size:12px;cursor:pointer}.cf-state-preview p,.cf-state-preview label{font-size:12px;padding:0 17px;line-height:1.8}.cf-state-preview select{display:block;max-width:100%;width:440px;background:white;border:1px solid #bcb7ae;padding:10px;margin:8px 0 20px;min-height:44px;color:#191918}.cf-state-preview select:focus-visible{outline:3px solid #9f372d;outline-offset:3px}.cf-request select{font-size:14px}#cf-request-duration{min-width:0}.cf-composer .cf-copy-row .button{font-size:14px}.cf-detail h3{font-size:21px}.cf-composer label{font-size:13px}.cf-detail .cf-hint{font-size:12px}.cf-request-result h3{scroll-margin-top:130px}.cf-state-preview~.cf-policy{margin-top:40px}
@media(max-width:1000px){.cf-compare{display:block}}
@media(max-width:760px){.cf-modes strong{font-size:18px}.cf-card{padding:18px}.cf-card-date strong{font-size:19px}.cf-card h4{font-size:24px}.cf-card-bottom{margin-top:10px}.cf-card-bottom button{margin-top:10px}.cf-time-row{grid-template-columns:1fr}.cf-modes small{font-size:12px}.cf-detail-meta{grid-template-columns:1fr 1fr;gap:14px}.cf-detail-meta dd{font-size:12px;overflow-wrap:anywhere}.cf-detail h2{font-size:27px}.cf-modes{grid-template-columns:1fr 1fr}.cf-state-preview select{font-size:13px}}
@media(max-width:400px){.cf-modes{grid-template-columns:1fr}.cf-modes span{margin-bottom:6px}.cf-modes strong{font-size:20px}.cf-modes small{margin-top:5px}.cf-modes button{padding:16px 18px}.cf-detail-meta{grid-template-columns:1fr}.cf-card h4 small{display:block;font-size:13px;margin-top:4px}}

/* Booking copy v1: compact cards keep actions aligned when redundant labels are removed. */
@media(max-width:1000px){.cf-card-bottom>button:only-child{margin-top:0}}

/* Public schedule refresh: no Calendar API calls from visitor browsers. */
.cf-refresh-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin:-12px 0 4px}
.cf-refresh-tools .button{min-height:44px;padding:9px 15px;border:1px solid #857c6d;background:#fff;color:#191918;font-size:13px}
.cf-refresh-tools .button:disabled{opacity:.6;cursor:wait}
#cf-refresh-status{font-size:13px;color:#47433d;line-height:1.6;margin:0}
.cf-refresh-note{margin:4px 0 26px;font-size:12px}
@media(max-width:400px){.cf-refresh-tools .button{width:100%;justify-content:center}}

/* Schedule copy minimalism: keep context in controls, not repeated banners. */
.cf-intro{margin:8px 0 20px;justify-content:flex-start}
.cf-modes{margin-bottom:32px}
.cf-modes button{padding:20px 22px;min-height:74px}
.cf-source-status{background:transparent;border:0;padding:0;margin:0 0 8px}
.cf-source-status span{margin:0;font-size:12px}
.cf-refresh-tools{margin:0 0 22px}
.cf-card-date{margin-top:8px}
.cf-instructor{margin:14px 0 0;font-size:13px}
.cf-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:760px){.cf-modes{margin-bottom:26px}.cf-modes button{min-height:66px;padding:17px 16px}}
/* Reservation UX v3: one decision per step; no overlay on editable content. */
.cf-reservation-dialog{width:min(680px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:24px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.cf-reservation-dialog .dialog-close{position:sticky;top:0;display:block;margin-left:auto;z-index:1;background:#fff;min-height:44px}
.cf-reservation-dialog .cf-detail{padding:0;min-width:0;overflow-wrap:anywhere}.cf-reservation-dialog h2{font-size:clamp(21px,4vw,28px);padding:0;line-height:1.5;margin:12px 0 18px}.cf-reservation-dialog h3{font-size:17px;margin:20px 0 8px}
.cf-selection-summary{display:grid;gap:2px;border-left:3px solid #a88759;padding:10px 14px;margin:12px 0;font-size:14px;line-height:1.7}.cf-selection-summary strong{font-size:17px}
.cf-tertiary{display:block;border:0;background:transparent;min-height:44px;padding:10px 0;text-decoration:underline;text-underline-offset:4px;font:inherit;font-size:13px;color:#4e4942;cursor:pointer}.cf-detail>#cf-change-class{margin-top:24px}
.cf-supplement,.cf-mail-help{border-top:1px solid #ccc7bd;border-bottom:1px solid #ccc7bd;padding:12px 0;margin:18px 0}.cf-supplement summary,.cf-mail-help summary{cursor:pointer;min-height:44px;display:list-item;padding:9px 0;font-size:14px}.cf-supplement p{font-size:14px;line-height:1.9}
.cf-reservation-dialog .cf-composer{margin-top:12px}.cf-composer textarea,.cf-supplement textarea{box-sizing:border-box;display:block;width:100%;min-width:0;font:inherit;font-size:16px;line-height:1.7;padding:12px;resize:vertical;min-height:180px;max-height:60dvh;scroll-margin-block:32px}
.cf-reservation-dialog .cf-contact-actions{display:grid;grid-template-columns:1fr;gap:12px;margin:16px 0}.cf-reservation-dialog .cf-copy-row{display:block}.cf-reservation-dialog .cf-copy-row button,.cf-reservation-dialog .cf-contact-actions a{width:100%;min-height:48px;justify-content:center;text-align:center;white-space:normal}.cf-reservation-dialog #cf-copy-status,.cf-reservation-dialog #cf-handoff-status{margin:10px 0;min-height:24px;color:#3f3932}
.cf-reservation-dialog :is(button,a,textarea,summary):focus-visible{outline:3px solid #9f372d;outline-offset:3px}.cf-refresh-tools:has(button[hidden]){margin-bottom:12px}.cf-refresh-tools [hidden]{display:none!important}
@media(max-width:430px){.cf-reservation-dialog{padding:16px}.cf-detail-meta{gap:12px;margin:16px 0}.cf-detail-meta div{padding-bottom:10px}.cf-reservation-dialog .cf-composer textarea{padding:10px;min-height:200px}}

.cf-composer textarea,.cf-supplement textarea{font-weight:400}

/* Progressive upcoming-class list: mobile-friendly and accessible. */
.cf-more{display:block;width:100%;min-height:48px;margin:18px 0 28px;border:1px solid #191918;background:#fff;color:#191918;font-size:14px;font-weight:600;cursor:pointer}.cf-more:hover,.cf-more:focus-visible{background:#f1ede6}


/* Production calendar-first schedule (2026-11-04).
   Keep the existing studio shell and validated LINE/email detail flow. */
.cf-shell{max-width:980px;padding-bottom:72px}
.cf-shell .cf-tools-head{margin:8px 0 16px}
.cf-shell .cf-tools-head h2{font-size:clamp(20px,3.4vw,27px)}
.cf-shell .cf-workspace{display:flex;flex-direction:column;gap:24px}
.cf-shell #cf-calendar-panel{width:100%;border-radius:18px;padding:clamp(12px,3vw,26px)}
.cf-shell .cf-month-head{margin:0 0 12px}
.cf-shell .cf-month-head button{border-radius:50%;background:#f8f6f1}
.cf-shell .cf-week,.cf-shell .cf-calendar{gap:5px}
.cf-shell .cf-calendar button{min-height:54px;border:1px solid #e5e1d9;border-radius:9px;background:#faf9f6;font-variant-numeric:tabular-nums}
.cf-shell .cf-calendar button.has-session{background:#f0ebe1;border-color:#c3ab8a;border-bottom:2px solid #a27c4b}
.cf-shell .cf-calendar button[aria-pressed=true]{background:#191918;color:#fff;border-color:#191918}
.cf-shell .cf-calendar button[aria-pressed=true] small{color:#fff}
.cf-shell .cf-week span{padding:4px 0 9px}
.cf-shell .cf-calendar-actions{margin:15px 0 5px}
.cf-shell .cf-calendar-actions button{min-height:44px}
.cf-shell .cf-results-head{margin-top:0;padding-bottom:12px}
.cf-shell .cf-results-head h3{font-size:clamp(18px,3vw,24px)}
.cf-shell .cf-advanced{border:1px solid #d6d2c8;background:#fff;border-radius:12px;margin:12px 0 18px}
.cf-shell .cf-advanced summary{padding:12px 16px;min-height:48px;display:list-item;cursor:pointer;font-weight:600;font-size:14px}
.cf-shell .cf-advanced .cf-filters{border-top:1px solid #e1ddd4;margin:0}
.cf-shell .cf-chips:empty{display:none}
.cf-shell .cf-chips{min-height:0;margin:10px 0}
.cf-shell .cf-card{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;align-items:center;border-radius:14px;padding:17px 20px;margin-bottom:10px}
.cf-shell .cf-card-date{grid-column:1;margin:0;gap:6px}
.cf-shell .cf-card-date strong{display:none}
.cf-shell .cf-card-date span{font-size:18px;font-weight:700;color:#191918;font-variant-numeric:tabular-nums}
.cf-shell .cf-card h4{grid-column:1;font-size:clamp(18px,3.2vw,22px);margin:3px 0;line-height:1.4}
.cf-shell .cf-card .cf-instructor{grid-column:1;margin:0;font-size:13px}
.cf-shell .cf-card-top{grid-column:1/-1;justify-content:flex-start}
.cf-shell .cf-card-bottom{grid-column:2;grid-row:1/5;border:0;padding:0;margin:0}
.cf-shell .cf-card-bottom button{margin:0;min-height:44px;white-space:normal;font-size:12px}
.cf-shell .cf-source-status:empty{display:none}
.cf-shell .cf-refresh-tools:has(button[hidden]){display:none}
@media(max-width:760px){
  .cf-shell .cf-workspace{display:flex;gap:16px}
  .cf-shell .cf-advanced .cf-filters{grid-template-columns:1fr;padding:15px}
  .cf-shell #cf-calendar-panel{padding:14px}
  .cf-shell .cf-calendar button{min-height:49px}
  .cf-shell .cf-card{grid-template-columns:minmax(0,1fr) auto;padding:14px}
  .cf-shell .cf-card-bottom{display:block;grid-column:2;grid-row:1/5}
  .cf-shell .cf-card-bottom button{width:auto;min-width:90px;padding:10px}
}
@media(max-width:360px){
  .cf-shell #cf-calendar-panel{padding:9px}
  .cf-shell .cf-calendar,.cf-shell .cf-week{gap:2px}
  .cf-shell .cf-calendar button{min-height:46px;font-size:12px}
  .cf-shell .cf-card{gap:6px}
  .cf-shell .cf-card-bottom button{min-width:68px;padding:8px;font-size:11px}
}
