/* Callback scheduler — calendar + timeframe picker.
   Shared by the quote and contact forms. Styles are scoped to [data-scheduler]
   markup; the matching behavior lives in callback-scheduler.js. */

.callback-scheduler{border:1px solid var(--line);border-radius:var(--radius-lg,12px);margin:1.25rem 0;padding:.85rem;}
.callback-scheduler legend{font-weight:900;color:var(--bronze-dark);padding:0 .35rem;}

/* Flex + wrap reacts to the FORM column's real width (not the viewport), so the
   timeframe stays to the right of the calendar whenever it physically fits. */
.scheduler-grid{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.75rem;align-items:stretch;}
.scheduler-calendar{flex:3 1 205px;min-width:195px;}
.scheduler-times{flex:2 1 145px;min-width:138px;}

.scheduler-calendar{background:var(--surface,#fff);border:1px solid var(--line);border-radius:var(--radius);padding:.75rem;}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;}
.cal-title{font-weight:800;color:var(--ink);font-size:.98rem;}
.cal-nav{appearance:none;border:1px solid var(--line);background:var(--paper);color:var(--bronze-dark);width:2rem;height:2rem;border-radius:var(--radius);font-size:1.15rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s;}
.cal-nav:hover:not(:disabled){background:var(--gold);border-color:var(--gold);color:#fff;}
.cal-nav:disabled{opacity:.35;cursor:not-allowed;}
.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px;}
.cal-weekdays span{text-align:center;font-size:.7rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);padding:.2rem 0;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.cal-day{appearance:none;border:1px solid transparent;background:transparent;color:var(--ink);aspect-ratio:1;border-radius:var(--radius);font-size:.9rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s,border-color .12s;}
.cal-day:hover:not(:disabled){background:rgba(199,158,79,.18);border-color:var(--gold);}
.cal-day:disabled,.cal-day.is-empty{color:var(--line);cursor:default;background:transparent;border-color:transparent;}
.cal-day.is-empty{visibility:hidden;}
.cal-day.is-today:not(.is-selected){box-shadow:inset 0 0 0 1px var(--gold);}
.cal-day.is-selected{background:var(--copper);border-color:var(--copper);color:#fff;}

.scheduler-times{background:var(--surface,#fff);border:1px solid var(--line);border-radius:var(--radius);padding:.75rem;display:flex;flex-direction:column;}
.scheduler-times-label{display:block;font-size:.7rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem;}
.time-options{display:flex;flex-direction:column;gap:.4rem;}
.time-chip{appearance:none;text-align:center;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:var(--radius);padding:.45rem .7rem;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s,color .12s;}
.time-chip:hover{border-color:var(--gold);background:rgba(199,158,79,.12);}
.time-chip.is-selected{background:var(--copper);border-color:var(--copper);color:#fff;}
.scheduler-summary{margin:auto 0 0;padding-top:.75rem;font-size:var(--text-sm);color:var(--muted);line-height:1.4;text-align:center;}
.scheduler-summary strong{color:var(--bronze-dark);}
