/* SALÒN — WEB予約 */
.rhead{padding-bottom:48px}
.rsv{padding-bottom:96px}
.r-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;border-bottom:1px solid var(--taupe);padding-bottom:18px;margin-bottom:40px}
.steps{list-style:none;margin:0;padding:0;display:flex;gap:0;font-family:var(--jp);font-size:14px;counter-reset:s}
.steps li{position:relative;padding:0 22px 0 0;color:var(--mute);white-space:nowrap}
.steps li::before{counter-increment:s;content:counter(s);display:inline-grid;place-items:center;width:26px;height:26px;border:1px solid var(--line);border-radius:50%;margin-right:8px;font-family:"Cormorant Garamond",serif;font-size:16px;vertical-align:1px}
.steps li.on{color:var(--ink)}
.steps li.on::before{background:var(--taupe);border-color:var(--taupe);color:#fff}
.steps li.dn{color:var(--sub)}
.steps li.dn::before{border-color:var(--taupe);color:var(--taupe)}
.hold{margin:0;font-family:var(--jp);font-size:14px;color:var(--sub)}
.hold b{font-family:"Cormorant Garamond",serif;font-size:24px;font-weight:600;color:#9b2c1f;font-variant-numeric:tabular-nums;margin:0 2px}

.r-grid{display:grid;grid-template-columns:1fr 340px;gap:56px;align-items:start}
.stp{border:0;margin:0;padding:0;min-width:0;display:none}
.stp.on{display:block}
.stp legend{font-family:var(--jp);font-weight:600;font-size:20px;letter-spacing:.1em;color:var(--taupe-d);padding:0;margin-bottom:24px}
.sub{font-family:var(--jp);font-weight:600;font-size:15px;letter-spacing:.08em;margin:36px 0 14px}

/* calendar */
.cal{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.cal .wd{font-family:var(--jp);font-size:12.5px;text-align:center;padding:8px 0;color:var(--mute);border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--mist)}
.cal .d{min-height:84px;padding:8px 8px 10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-family:var(--jp);display:flex;flex-direction:column;gap:2px;background:#fff;text-align:left}
.cal .d .n{font-family:"Cormorant Garamond",serif;font-size:20px;line-height:1.1}
.cal .d .st{font-size:12.5px;line-height:1.5;color:var(--mute)}
.cal .d.past{background:var(--mist);color:#b3aaa1}
.cal .d.full .st{color:#9b2c1f}
.cal button.d{border-top:0;border-left:0;cursor:pointer}
.cal button.d .st{color:var(--taupe-d);font-weight:600}
.cal button.d[aria-pressed="true"]{background:var(--taupe);color:#fff}
.cal button.d[aria-pressed="true"] .st{color:#fff}
.cal-n{font-family:var(--jp);font-size:13px;color:var(--sub);margin:14px 0 26px}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.slots[hidden]{display:none}
.slots button{border:1px solid var(--line);background:#fff;padding:12px 12px 10px;text-align:left;font-family:var(--jp)}
.slots button b{display:block;font-family:"Cormorant Garamond",serif;font-size:22px;font-weight:600;line-height:1.1}
.slots button small{display:block;font-size:12.5px;color:#9b2c1f}
.slots button span{display:block;font-size:12.5px;color:var(--mute)}
.slots button:hover{border-color:var(--taupe)}
.slots button[aria-pressed="true"]{border-color:var(--taupe);background:var(--taupe);color:#fff}
.slots button[aria-pressed="true"] small,.slots button[aria-pressed="true"] span{color:#fff}

/* options */
.opts,.adds{display:grid;gap:8px}
.op,.ad{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start;border:1px solid var(--line);padding:16px 18px;font-family:var(--jp);cursor:pointer;background:#fff}
.op{grid-template-columns:auto 1fr}
.op input,.ad input,.ck input{margin:5px 0 0;width:17px;height:17px;accent-color:var(--taupe)}
.op b,.ad b{display:block;font-weight:600;font-size:15.5px;letter-spacing:.06em}
.op small,.ad small{display:block;font-size:13.5px;color:var(--sub);line-height:1.8;margin-top:2px}
.op.dis{cursor:default;background:var(--mist);color:#8b8279}
.op.dis small{color:#8b8279}
.ad em{font-style:normal;font-size:15px;white-space:nowrap;padding-top:1px}
.ad.lock{cursor:default;background:var(--mist)}
.ad.lock em{color:#9b2c1f;font-size:13.5px}
.ck{display:flex;gap:10px;align-items:flex-start;margin:18px 0 0;font-family:var(--jp);font-size:15px;cursor:pointer}
.ck em{display:block;font-style:normal;font-size:12.5px;color:var(--taupe)}
.parts{display:flex;flex-wrap:wrap;gap:8px}
.parts button{border:1px solid var(--taupe-l);background:#fff;padding:9px 18px;font-family:var(--jp);font-size:14.5px;letter-spacing:.08em;color:var(--taupe-d)}
.parts button[aria-pressed="true"]{background:var(--taupe);border-color:var(--taupe);color:#fff}
.pt-n{font-family:var(--jp);font-size:13px;color:var(--taupe);min-height:1.8em;margin:10px 0 0}

/* doctors */
.docs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.dc{position:relative;border:1px solid var(--line);cursor:pointer;display:flex;flex-direction:column;background:#fff}
.dc input{position:absolute;top:12px;left:12px;width:18px;height:18px;accent-color:var(--taupe);z-index:1}
.dc .ph{position:relative;aspect-ratio:1;display:block;overflow:hidden;background:#d9d4ce}
.dc .ph img,.dc .ph svg{width:100%;height:100%;object-fit:cover;display:block}
.dc .ph i{position:absolute;left:0;right:0;bottom:0;background:rgba(34,30,27,.72);color:#fff;font-style:normal;font-family:var(--jp);font-size:12.5px;text-align:center;padding:4px 0;letter-spacing:.1em}
.dc .tx{padding:14px 16px 16px;font-family:var(--jp);display:flex;flex-direction:column;gap:2px}
.dc b{font-weight:600;font-size:16px;letter-spacing:.1em}
.dc small{font-size:13px;color:var(--sub);line-height:1.7}
.dc em{font-style:normal;font-size:14.5px;margin-top:6px;color:var(--taupe-d)}
.dc:has(input:checked){border-color:var(--taupe);box-shadow:0 0 0 1px var(--taupe)}

/* screening */
.exp{font-family:var(--jp);font-size:15px;color:var(--sub)}
.sels{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;margin:8px 0 16px}
.sels label{display:flex;flex-direction:column;gap:6px;font-family:var(--jp);font-size:14px}
.sels select{height:48px;border:1px solid #bdb4aa;border-radius:0;background:#fff;padding:0 12px;font-family:var(--jp);font-size:15px;color:var(--ink)}

.nx{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}
.nx .go,#submit{margin-left:auto;height:52px;padding:0 44px;font-size:15px;border:0}
.nx .go:disabled{background:#b3aaa1;cursor:default}
.back{border:0;background:none;font-family:var(--jp);font-size:14px;color:var(--sub);text-decoration:underline;text-underline-offset:4px;padding:8px 0}
#submit.busy{background:#6e655c;cursor:progress}

/* summary */
.r-sum{position:sticky;top:calc(var(--hdr) + 24px);border:1px solid var(--line);padding:26px 24px 22px;background:#fff;font-family:var(--jp)}
.r-sum h2{margin:0 0 16px;font-weight:600;font-size:16px;letter-spacing:.12em;color:var(--taupe-d)}
.r-sum dl{margin:0;display:grid;grid-template-columns:1fr;font-size:14px}
.r-sum dt{font-size:12.5px;color:var(--mute);padding-top:12px;border-top:1px solid var(--line);margin-top:12px}
.r-sum dt:first-child{border-top:0;margin-top:0;padding-top:0}
.r-sum dd{margin:2px 0 0;line-height:1.8}
.r-sum dd small{display:block;font-size:12.5px;color:var(--sub);line-height:1.7;margin-top:4px}
.r-sum #s-add span{display:block}
.tot{margin:18px -24px 14px;padding:18px 24px;background:var(--mist);border-top:1px solid var(--taupe)}
.tot span{display:block;font-size:13px;color:var(--sub)}
.tot b{display:block;font-family:"Cormorant Garamond",serif;font-weight:600;font-size:34px;letter-spacing:.01em;line-height:1.3;font-variant-numeric:tabular-nums}
.tot small{display:block;font-size:12.5px;color:var(--sub);line-height:1.7}

/* closed */
.closed{padding:24px 0 8px;font-family:var(--jp)}
.closed:focus{outline:0}
.cl-t{font-weight:600;font-size:clamp(24px,3.2vw,34px);letter-spacing:.12em;line-height:1.7;color:var(--taupe-d);margin:0 0 24px}
.closed dl{display:grid;grid-template-columns:9em 1fr;gap:10px 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin:28px 0 18px;font-size:15px}
.closed dt{color:var(--mute)}
.closed dd{margin:0}
.closed .more{margin-top:18px}
.rsv.end .r-top .hold{visibility:hidden}

.tel{padding-top:0}
.tel .lead{font-family:var(--jp)}

@media (max-width:960px){
  .r-grid{grid-template-columns:1fr;gap:40px}
  .r-sum{position:static}
  .steps li{padding-right:10px;font-size:0}
  .steps li.on{font-size:14px}
  .steps li::before{font-size:16px}
}
@media (max-width:640px){
  .cal .d{min-height:66px;padding:6px 5px 8px}
  .cal .d .n{font-size:17px}
  .cal .d .st{font-size:12px;line-height:1.35}
  .docs{grid-template-columns:1fr}
  .dc{flex-direction:row}
  .dc .ph{width:110px;flex:none}
  .sels{grid-template-columns:1fr}
  .ad{grid-template-columns:auto 1fr}
  .ad em{grid-column:2}
  .nx .go,#submit{padding:0 24px;flex:1}
  .closed dl{grid-template-columns:1fr;gap:2px}
  .closed dd{margin-bottom:10px}
}
.slots i{font-style:normal}
