/* =========================================================
   AGENDAR AVALIAÇÃO — scheduling page (extends wellness.css)
   ========================================================= */

.book-page{ min-height:100vh; background:
  radial-gradient(120% 70% at 85% -10%, rgba(225,43,43,.16), transparent 55%),
  var(--ink); padding-top:120px; padding-bottom:90px; }

.book-head{ text-align:center; max-width:760px; margin:0 auto clamp(40px,6vw,70px); }
.book-head .eyebrow{ justify-content:center; margin-bottom:18px; }
.book-head h1{ font-family:var(--f-display); font-weight:800; text-transform:uppercase; line-height:.92; font-size:clamp(2.6rem,6vw,5rem); letter-spacing:-.01em; }
.book-head h1 .accent{ color:var(--accent); }
.book-head p{ color:var(--muted); font-size:clamp(1rem,1.3vw,1.18rem); margin-top:18px; max-width:54ch; margin-inline:auto; }

.book-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(20px,2.6vw,38px); align-items:start; max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad); }

/* ----- aside ----- */
.aside-card{ background:var(--ink-2); border:1px solid var(--line); border-radius:var(--r); padding:34px 30px; }
.aside-card + .aside-card{ margin-top:18px; }
.aside-card h3{ font-family:var(--f-display); font-weight:700; text-transform:uppercase; font-size:1.35rem; margin-bottom:20px; }
.steps-list{ list-style:none; display:flex; flex-direction:column; gap:18px; }
.steps-list li{ display:flex; gap:16px; align-items:flex-start; }
.steps-list .sn{ flex:none; width:34px; height:34px; border-radius:10px; background:rgba(225,43,43,.14); color:var(--accent); font-family:var(--f-display); font-weight:800; display:grid; place-items:center; font-size:1.05rem; }
.steps-list h4{ font-size:.98rem; font-weight:700; }
.steps-list p{ color:var(--muted); font-size:.86rem; margin-top:3px; }
.hours-list{ list-style:none; display:flex; flex-direction:column; gap:12px; }
.hours-list li{ display:flex; justify-content:space-between; gap:14px; padding-bottom:12px; border-bottom:1px solid var(--line); font-size:.92rem; }
.hours-list li:last-child{ border-bottom:none; padding-bottom:0; }
.hours-list .d{ color:var(--paper); font-weight:600; }
.hours-list .h{ color:var(--muted); text-align:right; }
.hours-list .closed{ color:var(--muted-d); }

/* ----- scheduler card ----- */
.sched{ background:var(--ink-2); border:1px solid var(--line); border-radius:var(--r); padding:clamp(24px,3vw,38px); position:relative; overflow:hidden; }
.sched-steps{ display:flex; gap:8px; margin-bottom:26px; }
.sched-steps .ss{ flex:1; height:4px; border-radius:3px; background:var(--line); overflow:hidden; }
.sched-steps .ss.on{ background:var(--accent); }

.cal-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.cal-top .m{ font-family:var(--f-display); font-weight:700; text-transform:uppercase; font-size:1.4rem; }
.cal-nav{ display:flex; gap:8px; }
.cal-nav button{ width:40px; height:40px; border-radius:11px; border:1px solid var(--line); color:var(--paper); display:grid; place-items:center; transition:.25s; }
.cal-nav button:hover:not(:disabled){ border-color:var(--accent); color:var(--accent); }
.cal-nav button:disabled{ opacity:.3; cursor:not-allowed; }

.cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.cal-grid .wd{ text-align:center; font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted-d); padding:6px 0; }
.cal-day{ aspect-ratio:1; border-radius:12px; border:1px solid transparent; background:var(--ink); color:var(--paper); font-weight:600; font-size:.98rem; display:grid; place-items:center; cursor:pointer; transition:.2s var(--ease); position:relative; }
.cal-day:hover:not(.disabled):not(.empty){ border-color:var(--accent); transform:translateY(-2px); }
.cal-day.disabled{ color:var(--muted-d); opacity:.35; cursor:not-allowed; background:transparent; }
.cal-day.empty{ background:transparent; cursor:default; }
.cal-day.today::after{ content:""; position:absolute; bottom:7px; width:4px; height:4px; border-radius:50%; background:var(--accent); }
.cal-day.sel{ background:var(--accent); color:#fff; border-color:var(--accent); }

/* time slots */
.slots-wrap{ margin-top:24px; }
.slots-label{ font-size:.72rem; text-transform:uppercase; letter-spacing:.14em; color:var(--muted); font-weight:700; margin-bottom:14px; display:flex; align-items:center; gap:10px; }
.slots-label .sel-date{ color:var(--accent); }

/* Accordion for the available-times list (default collapsed) */
.slots-toggle{ display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; background:transparent; border:none; padding:8px 0; margin:0; cursor:pointer; color:inherit; font:inherit; text-align:left; }
.slots-toggle .slots-label{ margin-bottom:0; }
.slots-toggle:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:6px; }
.slots-chev{ color:var(--muted); flex:none; transition:transform .25s ease; }
.slots-toggle[aria-expanded="true"] .slots-chev{ transform:rotate(180deg); }
.slots-collapsible{ overflow:hidden; max-height:0; opacity:0; padding-top:0; transition:max-height .3s ease, opacity .2s ease, padding-top .3s ease; }
.slots-collapsible.open{ max-height:1400px; opacity:1; padding-top:14px; }
.slot-block + .slot-block{ margin-top:16px; }
.slot-block h5{ font-size:.78rem; color:var(--muted); font-weight:600; margin-bottom:10px; display:flex; align-items:center; gap:8px; }
.slot-block h5::before{ content:""; width:14px; height:14px; border-radius:4px; background:var(--accent); opacity:.5; }
.slots{ display:grid; grid-template-columns:repeat(auto-fill,minmax(82px,1fr)); gap:10px; }
.slot{ padding:12px 6px; border-radius:11px; border:1px solid var(--line); background:var(--ink); color:var(--paper); font-weight:600; font-size:.95rem; text-align:center; cursor:pointer; transition:.2s var(--ease); }
.slot:hover{ border-color:var(--accent); transform:translateY(-2px); }
.slot.sel{ background:var(--accent); color:#fff; border-color:var(--accent); }
.slots-empty{ color:var(--muted); font-size:.92rem; padding:20px 0; text-align:center; }

/* details form */
.fields{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:26px; }
.field{ display:flex; flex-direction:column; gap:7px; }
.field.full{ grid-column:1 / -1; }
.field label{ font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); font-weight:700; }
.field input, .field select, .field textarea{ background:var(--ink); border:1px solid var(--line); border-radius:11px; padding:13px 15px; color:var(--paper); font-family:var(--f-body); font-size:.98rem; transition:.2s; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--accent); }
.field input::placeholder{ color:var(--muted-d); }

/* summary + confirm */
.summary{ margin-top:26px; background:var(--ink); border:1px dashed var(--line); border-radius:14px; padding:18px 20px; display:flex; align-items:center; gap:16px; }
.summary .si{ width:46px; height:46px; flex:none; border-radius:12px; background:rgba(225,43,43,.14); color:var(--accent); display:grid; place-items:center; }
.summary .st{ font-size:.74rem; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); font-weight:700; }
.summary .sv{ font-family:var(--f-display); font-weight:700; font-size:1.2rem; text-transform:uppercase; margin-top:2px; }
.summary.empty .sv{ color:var(--muted-d); }

.confirm-btn{ width:100%; margin-top:22px; justify-content:center; padding:17px; font-size:1.02rem; }
.confirm-btn:disabled, .confirm-btn[aria-disabled="true"]{ opacity:.4; cursor:not-allowed; transform:none !important; box-shadow:none; }
.confirm-note{ text-align:center; color:var(--muted); font-size:.82rem; margin-top:14px; display:flex; align-items:center; justify-content:center; gap:8px; }

/* success overlay */
.success{ position:absolute; inset:0; background:var(--ink-2); display:none; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:40px; z-index:5; }
.success.show{ display:flex; animation:fade .4s var(--ease); }
@keyframes fade{ from{ opacity:0; transform:scale(.98);} to{ opacity:1; transform:none; } }
.success .check{ width:84px; height:84px; border-radius:50%; background:var(--accent); display:grid; place-items:center; color:#fff; margin-bottom:24px; animation:pop .5s var(--ease); }
@keyframes pop{ 0%{ transform:scale(0);} 60%{ transform:scale(1.12);} 100%{ transform:scale(1);} }
.success h2{ font-family:var(--f-display); font-weight:800; text-transform:uppercase; font-size:2.2rem; }
.success p{ color:var(--muted); margin:14px 0 28px; max-width:38ch; }

@media (max-width:920px){
  .book-grid{ grid-template-columns:1fr; }
  .aside-order{ order:2; }
}
@media (max-width:520px){
  .fields{ grid-template-columns:1fr; }
  .cal-grid{ gap:4px; }
}
