/* Solicitud de bloque: calendario mensual, sin inventario de disponibilidad. */
.booking-panel{padding:1.35rem;border:1px solid #d2e3e4;border-radius:24px;background:#f5f9f9;min-width:0}
.booking-panel fieldset{border:0;margin:0;padding:0;min-width:0}
.booking-panel legend{font-size:.9rem;font-weight:800;margin-bottom:.8rem}
.booking-note{font-size:.83rem;color:var(--muted);line-height:1.6;margin:0 0 1.2rem}
.booking-calendar{padding:.85rem;border:1px solid var(--line);border-radius:18px;background:#fff}
.calendar-toolbar{display:grid;grid-template-columns:44px 1fr 44px;gap:8px;align-items:center;margin-bottom:.6rem}
.calendar-month{text-align:center;font-size:.94rem;font-weight:800;text-transform:capitalize;line-height:1.4}
.calendar-nav{width:44px;height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:1.2rem;color:var(--navy);cursor:pointer}
.calendar-nav:disabled{opacity:.35;cursor:default}
.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.calendar-week span{text-align:center;font-size:.69rem;color:var(--muted);padding:6px 0;font-weight:700}
.calendar-day{border:0;background:transparent;color:var(--navy);min-width:0;min-height:44px;border-radius:10px;font:700 .83rem Montserrat,system-ui,sans-serif;font-variant-numeric:tabular-nums;cursor:pointer;padding:0}
.calendar-day:disabled{color:#7b858c;background:#f7f8f8;cursor:default;font-weight:500}
.calendar-day[aria-pressed=true]{background:var(--teal-deep);color:white}
.calendar-day:focus-visible{outline-offset:1px}
.calendar-help{font-size:.72rem;color:var(--muted);margin:.7rem 0 0;line-height:1.6}
.calendar-first{display:inline-flex;align-items:center;min-height:44px;padding:.2rem 0;background:none;border:0;color:var(--teal-deep);font:700 .75rem Montserrat,system-ui,sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.booking-panel .booking-shifts{margin-top:1.3rem}
.booking-panel .seg{gap:.55rem}
.booking-panel .seg .chip>span{padding:.8rem .45rem;min-height:76px;font-size:.86rem;gap:5px;border-width:1px;text-align:center}
.booking-panel .seg .chip small{font-size:.68rem}
.booking-summary{background:#e3efef;border-radius:14px;padding:1rem;margin:1.2rem 0;font-size:.9rem;line-height:1.6}
.booking-summary small{display:block;font-size:.72rem;color:var(--muted);margin-bottom:.25rem}
.booking-summary strong{display:block;font-weight:800;text-transform:capitalize}
.booking-summary span{font-size:.8rem;color:var(--muted)}
.booking-panel .booking-send{width:100%;font-size:.94rem;min-height:56px}
.booking-disclaimer{font-size:.73rem;line-height:1.6;color:var(--muted);margin:.85rem 0 0}
.booking-policy{display:inline-block;padding:.7rem 1rem;border-radius:12px;background:var(--teal-soft);color:var(--teal-deep);font-size:.85rem;line-height:1.6;font-weight:600;margin:1.3rem 0 0}
.booking-date-error{display:block;color:#a32119;font-size:.8rem;line-height:1.5;margin-top:.5rem}
.booking-date-error:empty{display:none}
#f-fecha[aria-invalid=true]{border-color:#a32119}
#cta:has(.booking-panel) .cta-big{font-size:clamp(2.9rem,7vw,5.5rem);line-height:1.04}
@media(min-width:600px){.booking-panel{padding:1.8rem}.calendar-days{gap:5px}.calendar-day{min-height:46px}}
@media(hover:hover) and (pointer:fine){.calendar-day:not(:disabled):not([aria-pressed=true]):hover,.calendar-nav:not(:disabled):hover{background:var(--teal-soft)}.calendar-first:hover{color:var(--navy)}}


/* 2026-11-05: tipo de servicio, horario obligatorio, horas de SIVA Personal y comentarios */
.booking-panel .booking-kind{margin-bottom:1.3rem}
.booking-panel .seg.seg-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}
.booking-panel .seg-3 .chip>span{min-height:68px;padding:.6rem .3rem;font-size:.8rem}
.booking-panel .seg-3 .chip small{font-size:.64rem}
.booking-panel legend .req{color:#a32119}
.booking-hours,.booking-notes{display:grid;gap:.45rem;margin-top:1rem;font-size:.86rem;font-weight:700}
.booking-hours[hidden]{display:none}
.booking-notes small{font-weight:500;color:var(--muted)}
.booking-hours select,.booking-notes textarea{font:500 .95rem Montserrat,system-ui,sans-serif;padding:.7rem .8rem;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);width:100%;min-height:48px}
.booking-notes textarea{min-height:84px;resize:vertical}
.booking-hours select:focus,.booking-notes textarea:focus{outline:none;border-color:var(--teal-ink);box-shadow:0 0 0 3px rgba(39,143,150,.2)}
.calendar-day.is-today:not(:disabled){box-shadow:inset 0 0 0 1.5px var(--teal)}
.booking-status:empty{display:none}
.booking-status{color:#a32119;font-size:.82rem;font-weight:600;margin:0 0 .6rem}
@media(min-width:600px){.booking-panel .seg-3 .chip>span{font-size:.86rem}}
.booking-summary strong,.calendar-month{text-transform:none}
.booking-summary strong::first-letter,.calendar-month::first-letter{text-transform:uppercase}

/* ══ Pase de craft 2026-11-10: agendador ordenado en celular y en compu ══
   Celular: texto → horario en pastillas → panel (servicio, fecha, horario, notas, envío).
   Compu (≥1000): izquierda fija (título, texto, horario, 3 pasos) · derecha el panel:
   servicio a lo ancho, luego calendario | horario + notas + resumen + botón, y la garantía al pie. */
.booking-policy{display:flex;flex-wrap:wrap;gap:.4rem;padding:0;background:none;border-radius:0;margin:1.4rem 0 0}
.booking-policy span{display:inline-flex;align-items:center;min-height:34px;padding:.35rem .8rem;border-radius:999px;background:var(--teal-soft);color:var(--teal-deep);font-size:.8rem;font-weight:700;line-height:1.3;white-space:nowrap}
.booking-policy span:first-child{background:var(--navy);color:#fff}
#cta .booking-panel{margin-top:1.8rem}
#cta .calendar-help{display:none}
.booking-panel legend{display:flex;align-items:baseline;gap:.3rem;font-size:.92rem;letter-spacing:-.005em}
.booking-panel .seg-3 .chip>span{min-height:64px;padding:.55rem .35rem;line-height:1.2}
.booking-panel .seg-3 .chip small{display:block;white-space:normal;line-height:1.25;margin-top:.15rem}
.booking-panel .seg .chip input:checked+span small{opacity:.85}
.booking-side .booking-summary{margin:1.1rem 0 1rem}
.booking-panel .guarantee{margin-top:1.1rem;font-size:.9rem}
.booking-panel .guarantee strong{font-weight:700}
.calendar-first{margin-top:.25rem}
@media(min-width:900px){
  #cta:has(.booking-panel) .cta-grid{display:block}
  #cta:has(.booking-panel) .cta-grid>div:first-child{max-width:40rem}
}
@media(min-width:1000px){
  #cta{padding-block:clamp(4.5rem,9vh,6.5rem)}
  #cta:has(.booking-panel) .cta-grid{display:grid;grid-template-columns:minmax(0,.74fr) minmax(0,1.26fr);gap:clamp(2.5rem,5vw,5rem);align-items:start}
  #cta:has(.booking-panel) .cta-grid>div:first-child{position:sticky;top:calc(var(--nav) + 2.5rem);max-width:none}
  #cta:has(.booking-panel) .cta-big{font-size:clamp(3rem,4.6vw,4.2rem);line-height:1}
  #cta:has(.booking-panel) .lead{font-size:1.02rem;line-height:1.65;max-width:30rem}
  #cta .steps-cta{display:grid;grid-template-columns:1fr;gap:1.1rem;margin:2.2rem 0 0;padding-top:1.8rem;border-top:1px solid var(--line)}
  #cta .steps-cta li{gap:1rem}
  #cta .steps-cta li::before{font-size:1.25rem;min-width:2rem;padding-top:.1rem}
  #cta .steps-cta b{font-size:.98rem;margin-bottom:.15rem}
  #cta .steps-cta span{font-size:.88rem}
  #cta .booking-panel{margin-top:0;padding:2rem 2.1rem 2.1rem;border-radius:28px;background:#f5f9f9;box-shadow:0 30px 60px -48px rgba(13,24,41,.45)}
  #cta .booking-kind{margin-bottom:1.6rem;padding-bottom:1.6rem;border-bottom:1px solid #dce9ea}
  #cta .booking-panel .seg-3{gap:.6rem}
  #cta .booking-panel .seg-3 .chip>span{min-height:66px;font-size:.95rem;gap:.2rem}
  #cta .booking-panel .seg-3 .chip small{font-size:.74rem;font-weight:600}
  #cta .booking-side .booking-shifts{margin-top:0}
  #cta .booking-cols{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:2rem;align-items:start}
  #cta .booking-note{font-size:.8rem;margin-bottom:.9rem}
  #cta .booking-calendar{padding:.8rem .75rem .7rem}
  #cta .calendar-toolbar{grid-template-columns:38px 1fr 38px;margin-bottom:.35rem}
  #cta .calendar-nav{width:38px;height:38px;border-radius:10px}
  #cta .calendar-week span{padding:4px 0}
  #cta .calendar-days{gap:4px}
  #cta .calendar-day{min-height:40px}
  #cta .booking-panel .booking-shifts .chip>span{min-height:60px}
  #cta .booking-notes{margin-top:1.3rem}
  #cta .booking-notes textarea{min-height:76px}
  #cta .booking-panel .booking-send{min-height:54px}
  #cta .booking-disclaimer{margin-top:.7rem;font-size:.72rem}
  #cta .booking-panel .guarantee{margin-top:1.6rem;padding:1rem 1.2rem;align-items:center}
  #cta .booking-status:empty{display:none}
}
@media(max-width:599px){
  .booking-policy{gap:.3rem}
  .booking-policy span{font-size:.72rem;padding:.3rem .6rem;min-height:30px}
}
