/* ============================================================
   WORK CENTER ÁLAMO · reservas.css
   Piel del widget de reservas (assets/js/booking.js) para la
   identidad Forma. Solo lo carga la portada.

   Cómo está hecho:
     1. Las reglas del widget son LAS MISMAS de antes (salieron
        del <style> de index.html), todas encerradas en
        #bookingWidget para que no se crucen con el resto.
     2. Las variables que esas reglas leen (--titulo, --crema,
        --azul-oscuro…) se redefinen aquí con la paleta Océano
        profundo. Así no hubo que reescribir 200 reglas.
     3. Al final van los ajustes de la nueva identidad: Mona
        Sans sin cursivas, esquinas redondas, botón de píldora.
   booking.js no se tocó.
   ============================================================ */

#bookingWidget{
  --azul-oscuro:#071A2E; --crema:#F7FAFD; --crema-oscuro:#DCE7F1; --blanco:#ffffff;
  --gris:#3D5166; --gris-suave:#6B7C8F; --azul-claro:#1478A8; --negro:#071A2E;
  --titulo:#071A2E; --texto:#3D5166; --acento:#071A2E;
  --accion-bg:#071A2E; --accion-tx:#071A2E;
  --serif:var(--sans); --transition:cubic-bezier(.22,.7,.2,1);
  --t-xs:.8rem; --t-sm:.95rem; --t-md:1.05rem; --t-lg:1.3rem; --t-xl:1.6rem; --t-2xl:2rem; --t-3xl:2.6rem;
}

/* ---------- 1 · reglas originales del widget ---------- */
#bookingWidget .btn-pill{display:inline-flex;align-items:center;gap:10px; padding:14px 32px;border-radius:50px; font-family:var(--sans);font-size:var(--t-sm);font-weight:700; letter-spacing:.1em;text-transform:uppercase; border:1.5px solid var(--azul-oscuro); background:transparent;color:var(--titulo); cursor:pointer;transition:all .35s var(--transition);}
#bookingWidget .btn-pill:hover{background:var(--accion-bg);color:var(--accion-tx)}
#bookingWidget .btn-pill.solid{background:var(--accion-bg);color:var(--accion-tx);border-color:var(--accion-bg)}
#bookingWidget .btn-pill.solid:hover{background:#ffffff;border-color:#ffffff;color:var(--accion-tx)}
#bookingWidget .btn-pill.light{border-color:var(--crema);color:var(--crema)}
#bookingWidget .btn-pill.light:hover{background:var(--accion-bg);color:var(--accion-tx)}
#bookingWidget{border:1px solid rgba(0,24,53,.12); border-radius:12px; padding:24px; box-shadow:0 20px 50px rgba(0,24,53,.08); min-height:600px; position:relative;}
#bookingWidget .widget-loader{position:absolute;inset:24px; display:flex;flex-direction:column;align-items:center;justify-content:center; background:var(--blanco);border-radius:6px; font-family:var(--sans);color:var(--gris); pointer-events:none;}
#bookingWidget .widget-loader.hidden{display:none}
#bookingWidget .widget-loader-spinner{width:48px;height:48px;border-radius:50%; border:3px solid rgba(0,24,53,.1); border-top-color:var(--azul-claro); animation:spin .9s linear infinite;margin-bottom:18px;}
@keyframes spin{to{transform:rotate(360deg)}}
#bookingWidget .bw-content{padding:8px 4px}
#bookingWidget .bw-error-state{text-align:center;padding:60px 32px;}
#bookingWidget .bw-error-msg{font-family:var(--serif);font-style:italic;font-size:var(--t-lg);color:var(--titulo); margin-bottom:24px;}
#bookingWidget .bw-hold-banner{background:rgba(100,134,208,.10); border:1px solid rgba(100,134,208,.30); border-radius:10px; padding:11px 16px 9px; margin-bottom:18px; animation:bwHoldIn .35s var(--transition);}
@keyframes bwHoldIn{from{opacity:0;transform:translateY(-6px)} to{opacity:1;transform:none}}
#bookingWidget .bw-hold-row{display:flex;align-items:center;justify-content:space-between;gap:12px; margin-bottom:8px;}
#bookingWidget .bw-hold-label{font-family:var(--sans);font-size:var(--t-xs);font-weight:600; letter-spacing:.03em;color:var(--titulo);line-height:1.35;}
#bookingWidget .bw-hold-label strong{display:inline-block;margin-left:6px; font-weight:700;color:var(--titulo); border-bottom:1.5px solid var(--azul-claro);}
#bookingWidget .bw-hold-time{font-family:var(--sans);font-size:var(--t-md);font-weight:700; letter-spacing:.06em;color:var(--titulo); font-variant-numeric:tabular-nums;flex-shrink:0; display:flex;align-items:baseline;gap:7px;white-space:nowrap;}
#bookingWidget .bw-hold-time-label{font-size:var(--t-xs);font-weight:600;letter-spacing:.1em; text-transform:uppercase;opacity:.6;}
#bookingWidget .bw-hold-bar{height:3px;border-radius:3px;overflow:hidden; background:rgba(0,24,53,.14);}
#bookingWidget .bw-hold-bar-fill{display:block;height:100%;border-radius:3px; background:var(--azul-claro); transition:width 1s linear;}
#bookingWidget .bw-hold-banner.urgent{background:rgba(197,84,60,.10); border-color:rgba(197,84,60,.35);}
#bookingWidget .bw-hold-banner.urgent .bw-hold-label, #bookingWidget .bw-hold-banner.urgent .bw-hold-time{color:#a8402c}
#bookingWidget .bw-hold-banner.urgent .bw-hold-label strong{color:#a8402c;border-bottom-color:#c5543c;}
#bookingWidget .bw-hold-banner.urgent .bw-hold-bar-fill{background:#c5543c}
#bookingWidget .bw-hold-banner.urgent .bw-hold-time{animation:bwHoldPulse 1s ease-in-out infinite}
@keyframes bwHoldPulse{0%,100%{opacity:1} 50%{opacity:.45}}
#bookingWidget .bw-hold-error{display:none; background:rgba(197,84,60,.10); border:1px solid rgba(197,84,60,.35); border-radius:10px; padding:12px 16px;margin-bottom:18px; font-family:var(--sans);font-size:var(--t-xs);font-weight:600; color:#a8402c;line-height:1.45; animation:bwHoldIn .35s var(--transition);}
#bookingWidget #bwSlotsContainer.holding .bw-slots-grid{opacity:.6;pointer-events:none}
#bookingWidget #bwSlotsContainer.holding .bw-slot.selected{opacity:1}
@media (max-width:520px){#bookingWidget .bw-hold-label{font-size:var(--t-xs)}}
@media (max-width:520px){#bookingWidget .bw-hold-time{font-size:var(--t-sm)}}
@media (max-width:520px){#bookingWidget .bw-hold-banner{padding:10px 13px 8px}}
#bookingWidget .bw-progress{display:flex;align-items:center;justify-content:center; gap:6px;margin-bottom:36px;padding:8px 0 24px; border-bottom:1px solid rgba(255,255,255,.12);}
#bookingWidget .bw-step-num{width:32px;height:32px;border-radius:50%; display:flex;align-items:center;justify-content:center; font-family:var(--sans);font-weight:700;font-size:var(--t-xs); border:1.5px solid rgba(255,255,255,.38);color:rgba(255,255,255,.62); transition:all .35s var(--transition);background:transparent;flex-shrink:0;}
#bookingWidget .bw-step-num.active{border-color:var(--crema);color:var(--azul-oscuro); background:var(--crema);transform:scale(1.14); box-shadow:0 0 0 4px rgba(240,239,234,.15);}
#bookingWidget .bw-step-num.done{border-color:var(--acento);color:var(--acento);background:transparent;}
#bookingWidget .bw-step-line{flex:1;max-width:48px;height:2px;border-radius:2px; background:rgba(255,255,255,.32)}
#bookingWidget .bw-step-line.done{background:var(--acento)}
#bookingWidget .bw-step-container{min-height:380px;transition:opacity .25s ease}
#bookingWidget .bw-step-container.bw-fading-out{opacity:0}
#bookingWidget .bw-header{margin-bottom:32px;text-align:center}
#bookingWidget .bw-eyebrow{display:inline-block; font-family:var(--sans);font-size:var(--t-xs);font-weight:700; letter-spacing:.2em;text-transform:uppercase;color:var(--texto); margin-bottom:14px;}
#bookingWidget .bw-title{font-family:var(--serif);font-style:italic;font-weight:500; font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.05;color:var(--titulo);}
#bookingWidget .bw-title .italic{font-style:italic}
#bookingWidget .bw-title .bold{font-family:var(--sans);font-weight:900;font-style:normal; text-transform:uppercase;letter-spacing:-.02em;}
#bookingWidget .bw-cat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:14px;margin-bottom:32px}
#bookingWidget .bw-cat-card{display:flex;align-items:flex-start;gap:14px;text-align:left; padding:20px 22px;border-radius:16px;background:var(--crema); border:1.5px solid rgba(0,24,53,.12);cursor:pointer; transition:all .3s var(--transition)}
#bookingWidget .bw-cat-card:hover{border-color:var(--azul-claro);transform:translateY(-2px); box-shadow:0 10px 26px rgba(0,24,53,.12)}
#bookingWidget .bw-cat-card.active{background:var(--azul-oscuro);border-color:var(--azul-oscuro); box-shadow:0 12px 30px rgba(0,24,53,.28)}
#bookingWidget .bw-cat-icon{font-size:var(--t-2xl);line-height:1;flex-shrink:0}
#bookingWidget .bw-cat-body{display:flex;flex-direction:column;gap:3px;min-width:0}
#bookingWidget .bw-cat-title{font-family:var(--serif);font-style:italic;font-weight:600; font-size:var(--t-lg);color:var(--titulo);line-height:1.15}
#bookingWidget .bw-cat-desc{font-family:var(--sans);font-size:var(--t-sm);color:var(--texto);line-height:1.4}
#bookingWidget .bw-cat-meta{font-family:var(--sans);font-size:var(--t-xs);font-weight:700; letter-spacing:.06em;text-transform:uppercase;color:var(--acento);margin-top:3px}
#bookingWidget .bw-cat-card.active .bw-cat-title{color:var(--crema)}
#bookingWidget .bw-cat-card.active .bw-cat-desc{color:rgba(240,239,234,.78)}
#bookingWidget .bw-cat-card.active .bw-cat-meta{color:rgba(240,239,234,.92)}
#bookingWidget .bw-fam-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:22px;align-items:start}
#bookingWidget .bw-fam-titulo{font-family:var(--sans);font-size:var(--t-xs);font-weight:700; letter-spacing:.14em;text-transform:uppercase;color:var(--texto); padding-bottom:10px;margin-bottom:12px;border-bottom:1.5px solid rgba(0,24,53,.14); display:flex;align-items:center;gap:7px}
#bookingWidget .bw-fam-lista{display:flex;flex-direction:column;gap:8px}
#bookingWidget .bw-opt{display:grid;grid-template-columns:1fr auto;align-items:center; gap:1px 14px;width:100%;text-align:left; padding:13px 15px;border-radius:11px;background:var(--crema); border:1.5px solid rgba(0,24,53,.12);cursor:pointer; transition:all .25s var(--transition)}
#bookingWidget .bw-opt:hover{border-color:var(--azul-claro)}
#bookingWidget .bw-opt.selected{border-color:var(--azul-oscuro);background:#fff; box-shadow:0 8px 20px rgba(0,24,53,.14)}
#bookingWidget .bw-opt-dur{grid-column:1;font-family:var(--sans);font-size:var(--t-md);font-weight:700; color:var(--titulo);line-height:1.25}
#bookingWidget .bw-opt-nombre{grid-column:1;font-family:var(--serif);font-style:italic;font-weight:600; font-size:var(--t-sm);color:var(--texto);line-height:1.2}
#bookingWidget .bw-opt-precio{grid-column:2;grid-row:1/-1;align-self:center; font-family:var(--sans);font-size:var(--t-lg);font-weight:800; color:var(--titulo);white-space:nowrap;text-align:right}
#bookingWidget .bw-detalle:empty{display:none}
#bookingWidget .bw-detalle-caja{margin-top:26px;padding:22px 24px;border-radius:14px; background:#fff;border:1.5px solid var(--azul-oscuro); box-shadow:0 10px 28px rgba(0,24,53,.12)}
#bookingWidget .bw-detalle-nombre{font-family:var(--serif);font-style:italic;font-weight:600; font-size:var(--t-lg);color:var(--titulo);margin-bottom:10px}
#bookingWidget .bw-detalle-desc{font-family:var(--sans);font-size:var(--t-sm);line-height:1.6; color:var(--texto);margin:0 0 16px}
#bookingWidget .bw-detalle-facts{display:flex;gap:12px;flex-wrap:wrap}
#bookingWidget .bw-detalle-fact{display:flex;flex-direction:column;gap:2px;flex:1 1 200px; background:rgba(0,24,53,.05);border-radius:10px;padding:12px 14px; font-family:var(--sans);font-size:var(--t-sm);color:var(--titulo)}
#bookingWidget .bw-detalle-fact strong{font-size:var(--t-xs);font-weight:700;letter-spacing:.14em; text-transform:uppercase;color:var(--texto)}
@media (max-width:640px){#bookingWidget .bw-cat-grid{grid-template-columns:1fr;gap:10px;margin-bottom:26px}}
@media (max-width:640px){#bookingWidget .bw-cat-card{padding:16px 18px;gap:12px}}
@media (max-width:640px){#bookingWidget .bw-cat-icon{font-size:var(--t-xl)}}
@media (max-width:640px){#bookingWidget .bw-cat-title{font-size:var(--t-md)}}
@media (max-width:640px){#bookingWidget .bw-cat-desc{font-size:var(--t-xs)}}
@media (max-width:640px){#bookingWidget .bw-fam-grid{grid-template-columns:1fr;gap:26px}}
@media (max-width:640px){#bookingWidget .bw-detalle-caja{padding:18px;margin-top:22px}}
@media (max-width:640px){#bookingWidget .bw-detalle-fact{flex:1 1 100%}}
#bookingWidget .bw-services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;}
#bookingWidget .bw-service-card{text-align:left;width:100%;padding:22px 22px 18px; background:var(--crema);border:1.5px solid rgba(0,24,53,.12);border-radius:14px; cursor:pointer;transition:all .3s var(--transition); display:flex;flex-direction:column;gap:10px;}
#bookingWidget .bw-service-card:hover{border-color:var(--azul-claro);transform:translateY(-2px); box-shadow:0 10px 26px rgba(0,24,53,.08);}
#bookingWidget .bw-service-card.selected{border-color:var(--azul-oscuro);background:white; box-shadow:0 12px 30px rgba(0,24,53,.12);}
#bookingWidget .bw-service-cat{font-family:var(--sans);font-size:var(--t-xs);font-weight:700; letter-spacing:.18em;text-transform:uppercase;color:var(--texto);}
#bookingWidget .bw-service-name{font-family:var(--serif);font-style:italic;font-weight:500; font-size:var(--t-lg);line-height:1.1;color:var(--titulo);}
#bookingWidget .bw-service-meta{display:flex;justify-content:space-between;align-items:center; margin-top:8px;padding-top:14px;border-top:1px solid rgba(0,24,53,.1); font-family:var(--sans);font-size:var(--t-xs);color:var(--texto);}
#bookingWidget .bw-service-meta strong{color:var(--titulo);font-weight:700}
#bookingWidget .bw-calendar-wrap{max-width:520px;margin:0 auto;background:var(--crema);border-radius:14px;padding:24px;border:1px solid rgba(0,24,53,.1)}
#bookingWidget .bw-cal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;}
#bookingWidget .bw-cal-title{font-family:var(--serif);font-style:italic;font-weight:600;font-size:var(--t-lg);color:var(--titulo);}
#bookingWidget .bw-cal-title::first-letter{text-transform:uppercase}
#bookingWidget .bw-cal-nav{display:flex;gap:8px}
#bookingWidget .bw-cal-nav button{width:38px;height:38px;border-radius:50%;border:1.5px solid rgba(0,24,53,.2); display:flex;align-items:center;justify-content:center;color:var(--titulo); transition:all .25s var(--transition);}
#bookingWidget .bw-cal-nav button:hover:not(:disabled){background:var(--azul-oscuro);color:var(--crema);border-color:var(--azul-oscuro)}
#bookingWidget .bw-cal-nav button:disabled{opacity:.3;cursor:not-allowed}
#bookingWidget .bw-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
#bookingWidget .bw-cal-dow{font-family:var(--sans);font-size:var(--t-xs);font-weight:700; letter-spacing:.1em;text-transform:uppercase;color:var(--texto); text-align:center;padding:6px 0 10px;}
#bookingWidget .bw-cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center; font-family:var(--sans);font-weight:600;font-size:var(--t-sm); border-radius:50%;cursor:pointer;transition:all .25s var(--transition); color:var(--titulo);background:transparent;border:1.5px solid transparent;}
#bookingWidget .bw-cal-day.empty{cursor:default}
#bookingWidget .bw-cal-day.disabled{opacity:.45;cursor:not-allowed;color:var(--texto)}
#bookingWidget .bw-cal-day:hover:not(.disabled):not(.empty):not(.selected){background:rgba(100,134,208,.15);border-color:rgba(100,134,208,.4)}
#bookingWidget .bw-cal-day.today{border-color:rgba(100,134,208,.5)}
#bookingWidget .bw-cal-day.selected{background:var(--azul-oscuro);color:var(--crema);border-color:var(--azul-oscuro)}
#bookingWidget .bw-slots-info{background:var(--crema-oscuro);padding:18px 24px;border-radius:12px;margin-bottom:24px; display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
#bookingWidget .bw-slots-info-item{display:flex;flex-direction:column;gap:2px}
#bookingWidget .bw-slots-info-label{font-family:var(--sans);font-size:var(--t-xs);font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--texto)}
#bookingWidget .bw-slots-info-value{font-family:var(--serif);font-style:italic;font-size:var(--t-md);color:var(--titulo)}
#bookingWidget .bw-slots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
#bookingWidget .bw-slot-ini{display:block;font-size:var(--t-md);line-height:1.15}
#bookingWidget .bw-slot-fin{display:block;font-size:var(--t-xs);opacity:.72;margin-top:2px;font-weight:600}
#bookingWidget .bw-slot.selected .bw-slot-fin{opacity:.9}
#bookingWidget .bw-slots-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}
#bookingWidget .bw-slot{padding:12px 8px;border-radius:10px;border:1.5px solid rgba(0,24,53,.18); font-family:var(--sans);font-weight:600;font-size:var(--t-sm);color:var(--titulo); background:var(--crema);transition:all .25s var(--transition);text-align:center;}
#bookingWidget .bw-slot:hover:not(.selected){background:white;border-color:var(--azul-claro);transform:translateY(-1px)}
#bookingWidget .bw-slot.selected{background:var(--azul-oscuro);color:var(--crema);border-color:var(--azul-oscuro)}
#bookingWidget .bw-slots-empty{text-align:center;padding:60px 20px;color:var(--texto); font-family:var(--serif);font-style:italic;font-size:var(--t-md);}
#bookingWidget .bw-form{max-width:600px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
#bookingWidget .bw-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
#bookingWidget .bw-field{display:flex;flex-direction:column;gap:6px}
#bookingWidget .bw-field label{font-family:var(--sans);font-size:var(--t-xs);font-weight:700; letter-spacing:.18em;text-transform:uppercase;color:var(--texto);}
#bookingWidget .bw-field input, #bookingWidget .bw-field textarea{font-family:var(--sans);font-size:var(--t-md);color:var(--titulo); background:transparent;border:none;border-bottom:1.5px solid rgba(0,24,53,.25); padding:10px 0;outline:none;transition:border-color .25s;}
#bookingWidget .bw-field input:focus, #bookingWidget .bw-field textarea:focus{border-color:var(--azul-claro)}
#bookingWidget .bw-field input.error, #bookingWidget .bw-field textarea.error{border-color:#e74c3c}
#bookingWidget .bw-field textarea{resize:vertical;min-height:80px}
#bookingWidget .bw-field-hint{font-size:var(--t-xs);color:var(--texto);font-style:italic}
#bookingWidget .bw-payment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:32px}
#bookingWidget .bw-payment-card{text-align:left;padding:22px;border-radius:14px;border:1.5px solid rgba(0,24,53,.12); background:var(--crema);cursor:pointer;transition:all .3s var(--transition); display:flex;flex-direction:column;gap:10px;}
#bookingWidget .bw-payment-card:hover{border-color:var(--azul-claro);transform:translateY(-2px)}
#bookingWidget .bw-payment-card.selected{border-color:var(--azul-oscuro);background:white;box-shadow:0 12px 30px rgba(0,24,53,.1)}
#bookingWidget .bw-payment-card.disabled{opacity:.45;cursor:not-allowed}
#bookingWidget .bw-payment-icon{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center; overflow:hidden;flex-shrink:0;background:#fff; box-shadow:0 4px 12px rgba(0,24,53,.08);}
#bookingWidget .bw-payment-icon-img{width:100%;height:100%;object-fit:contain;padding:8px;display:block;}
#bookingWidget .bw-payment-name{font-family:var(--sans);font-weight:700;font-size:var(--t-md);color:var(--titulo)}
#bookingWidget .bw-payment-desc{font-size:var(--t-xs);color:var(--texto);line-height:1.45}
#bookingWidget .bw-payment-fee{font-size:var(--t-xs);color:var(--acento);font-weight:600}
#bookingWidget .bw-payment-plan{background:var(--crema-oscuro);padding:24px;border-radius:14px; display:flex;flex-direction:column;gap:14px;}
#bookingWidget .bw-plan-title{font-family:var(--sans);font-size:var(--t-xs);font-weight:700;letter-spacing:.15em; text-transform:uppercase;color:var(--texto);margin-bottom:4px;}
#bookingWidget .bw-plan-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#bookingWidget .bw-plan-option{padding:14px;border-radius:10px;border:1.5px solid rgba(0,24,53,.15); background:white;cursor:pointer;transition:all .25s var(--transition);text-align:left; display:flex;flex-direction:column;gap:4px;}
#bookingWidget .bw-plan-option:hover{border-color:var(--azul-claro)}
#bookingWidget .bw-plan-option.selected{border-color:var(--azul-oscuro);background:var(--azul-oscuro);color:var(--crema)}
#bookingWidget .bw-plan-option-label{font-family:var(--sans);font-weight:700;font-size:var(--t-sm)}
#bookingWidget .bw-plan-option-amount{font-family:var(--serif);font-style:italic;font-size:var(--t-md)}
#bookingWidget .bw-plan-option.selected .bw-plan-option-amount{color:var(--crema)}
#bookingWidget .bw-duration-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
#bookingWidget .bw-duration-option{padding:14px 12px;border-radius:10px;border:1.5px solid rgba(0,24,53,.15); background:white;cursor:pointer;transition:all .25s var(--transition);text-align:center; display:flex;flex-direction:column;gap:4px;}
#bookingWidget .bw-duration-option:hover{border-color:var(--azul-claro)}
#bookingWidget .bw-duration-option.selected{border-color:var(--azul-oscuro);background:var(--azul-oscuro);color:var(--crema)}
#bookingWidget .bw-duration-label{font-family:var(--sans);font-weight:700;font-size:var(--t-md)}
#bookingWidget .bw-duration-amount{font-family:var(--serif);font-style:italic;font-size:var(--t-sm)}
#bookingWidget .bw-duration-end{font-size:var(--t-xs);letter-spacing:.05em;opacity:.7}
#bookingWidget .bw-success{text-align:center;padding:24px 12px}
#bookingWidget .bw-success-icon{width:72px;height:72px;border-radius:50%;background:#2ec27e;color:white; display:flex;align-items:center;justify-content:center;margin:0 auto 24px; font-size:var(--t-2xl);}
#bookingWidget .bw-success-ref{display:inline-block;padding:8px 20px;background:var(--crema-oscuro);border-radius:50px; font-family:var(--sans);font-weight:700;letter-spacing:.1em;color:var(--titulo); margin:18px 0;font-size:var(--t-sm);}
#bookingWidget .bw-success-summary{max-width:480px;margin:24px auto 36px;padding:24px;background:var(--crema-oscuro);border-radius:14px; text-align:left;display:flex;flex-direction:column;gap:14px;}
#bookingWidget .bw-summary-row{display:flex;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid rgba(0,24,53,.1);gap:18px}
#bookingWidget .bw-summary-row:last-child{border:none;padding-bottom:0}
#bookingWidget .bw-summary-label{font-family:var(--sans);font-size:var(--t-xs);font-weight:700;letter-spacing:.15em; text-transform:uppercase;color:var(--texto);}
#bookingWidget .bw-summary-value{font-family:var(--serif);font-style:italic;font-size:var(--t-md);color:var(--titulo);text-align:right}
#bookingWidget .bw-instructions{max-width:560px;margin:0 auto;text-align:left;padding:28px; background:white;border:1px solid rgba(0,24,53,.12);border-radius:14px;}
#bookingWidget .bw-instructions h4{font-family:var(--serif);font-style:italic;font-weight:600;font-size:var(--t-lg); color:var(--titulo);margin-bottom:14px;}
#bookingWidget .bw-instructions p{color:var(--texto);font-size:var(--t-sm);line-height:1.6;margin-bottom:18px}
#bookingWidget .bw-bank-details{background:var(--crema);padding:18px;border-radius:10px;display:flex;flex-direction:column;gap:10px;margin:18px 0; font-family:var(--sans);font-size:var(--t-sm);}
#bookingWidget .bw-bank-row{display:flex;justify-content:space-between;gap:18px;align-items:center}
#bookingWidget .bw-bank-row strong{color:var(--texto);font-weight:600;font-size:var(--t-xs);letter-spacing:.1em;text-transform:uppercase;flex-shrink:0}
#bookingWidget .bw-bank-row > span{font-weight:600;color:var(--titulo);text-align:right;word-break:break-all}
#bookingWidget .bw-copyable-row{display:inline-flex;align-items:center;gap:10px;justify-content:flex-end; font-weight:600;color:var(--titulo);text-align:right;}
#bookingWidget .bw-copyable-value{font-family:var(--sans);letter-spacing:.02em}
#bookingWidget .bw-copy-btn{display:inline-flex;align-items:center;gap:6px; padding:6px 12px;border-radius:50px; background:var(--azul-oscuro);color:var(--crema); font-family:var(--sans);font-size:var(--t-xs);font-weight:700; letter-spacing:.08em;text-transform:uppercase; border:none;cursor:pointer;transition:all .2s var(--transition); flex-shrink:0;}
#bookingWidget .bw-copy-btn:hover{background:var(--azul-claro);transform:translateY(-1px)}
#bookingWidget .bw-copy-btn.copied{background:#2ec27e}
#bookingWidget .bw-copy-btn svg{flex-shrink:0}
#bookingWidget .bw-copy-label{display:inline}
#bookingWidget .bw-copy-success{font-weight:700}
@media (max-width:560px){#bookingWidget .bw-bank-row{flex-direction:column;align-items:flex-start;gap:6px}}
@media (max-width:560px){#bookingWidget .bw-bank-row > span, #bookingWidget .bw-copyable-row{text-align:left;justify-content:flex-start;width:100%}}
@media (max-width:560px){#bookingWidget .bw-copy-label{display:none}}
@media (max-width:560px){#bookingWidget .bw-copy-btn{padding:6px 10px}}
#bookingWidget .bw-instructions-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
#bookingWidget .bw-nav{display:flex;justify-content:space-between;align-items:center;gap:16px; margin-top:36px;padding-top:24px;border-top:1px solid rgba(0,24,53,.1);}
#bookingWidget .bw-back{display:inline-flex;align-items:center;gap:8px;padding:10px 18px; font-family:var(--sans);font-weight:600;font-size:var(--t-xs); letter-spacing:.1em;text-transform:uppercase;color:var(--texto); transition:color .25s;}
#bookingWidget .bw-back:hover{color:var(--titulo)}
#bookingWidget .bw-back:disabled{opacity:.3;cursor:not-allowed}
#bookingWidget .bw-continue{display:inline-flex;align-items:center;gap:10px;padding:14px 32px;border-radius:50px; background:var(--azul-oscuro);color:var(--crema); font-family:var(--sans);font-weight:700;font-size:var(--t-xs);letter-spacing:.1em;text-transform:uppercase; transition:all .3s var(--transition);}
#bookingWidget .bw-continue:hover:not(:disabled){background:var(--azul-claro);transform:translateY(-1px)}
#bookingWidget .bw-continue:disabled{opacity:.4;cursor:not-allowed}
#bookingWidget .bw-continue:not(:disabled){box-shadow:0 6px 20px rgba(0,24,53,.25); animation:bw-pulse 2s ease-in-out infinite;}
@keyframes bw-pulse{0%,100%{box-shadow:0 6px 20px var(--borde)} 50%{box-shadow:0 6px 28px rgba(100,134,208,.55)}}
@media (max-width:640px){#bookingWidget .bw-form-row{grid-template-columns:1fr}}
@media (max-width:640px){#bookingWidget .bw-services-grid{grid-template-columns:1fr}}
@media (max-width:640px){#bookingWidget .bw-payment-grid{grid-template-columns:1fr}}
@media (max-width:640px){#bookingWidget .bw-nav{position:sticky; bottom:0; left:0; right:0; margin:24px -20px 0; padding:18px 20px; background:rgba(0,16,36,.96); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-top:1px solid rgba(0,24,53,.15); box-shadow:0 -8px 24px rgba(0,24,53,.08); z-index:10;}}
@media (max-width:640px){#bookingWidget .bw-continue{padding:16px 28px; font-size:var(--t-sm); flex:1; justify-content:center;}}
@media (max-width:640px){#bookingWidget .bw-back{padding:14px 16px;font-size:var(--t-xs)}}
@media (max-width:640px){#bookingWidget{padding-bottom:20px}}
@media (max-width:640px){#bookingWidget .bw-step-num{width:28px;height:28px;font-size:var(--t-xs)}}
@media (max-width:640px){#bookingWidget .bw-step-line{max-width:24px}}
#bookingWidget{     border-radius:24px;}
#bookingWidget .bw-service-card, #bookingWidget .bw-cat-card, #bookingWidget .bw-opt, #bookingWidget .bw-slot, #bookingWidget .bw-payment-card, #bookingWidget .bw-calendar-wrap, #bookingWidget .bw-bank-details, #bookingWidget .bw-payment-plan, #bookingWidget .bw-slots-info, #bookingWidget .bw-success-ref, #bookingWidget .bw-success-summary, #bookingWidget .bw-duration-option, #bookingWidget .bw-instructions, #bookingWidget .bw-plan-option, #bookingWidget .bw-detalle-caja, #bookingWidget .bw-nav{--titulo:#001835; --texto:#3a4456; --acento:#001835; color:var(--texto);}
#bookingWidget .bw-service-card, #bookingWidget .bw-payment-card, #bookingWidget .bw-calendar-wrap{background:var(--crema) ; backdrop-filter:none;-webkit-backdrop-filter:none; border:1px solid rgba(0,24,53,.12) ;}
#bookingWidget .bw-service-card:hover, #bookingWidget .bw-payment-card:hover{background:#ffffff ;}
#bookingWidget .bw-service-card.selected, #bookingWidget .bw-payment-card.selected{background:#ffffff ; border-color:var(--accion-tx) ;}
@media (max-width:640px){#bookingWidget .bw-title{font-size:var(--t-lg);line-height:1.15}}

/* ---------- 2 · la hoja: clara sobre la sección oscura ----------
   Igual que en el preview aprobado: el sistema de reservas va en
   una hoja clara con barra arriba, para que fechas, horarios y
   precios se lean como en papel. */
#bookingWidget{--accion-bg:#071A2E;--accion-tx:#F7FAFD;
  background:#E8F1F8;color:#071A2E;border:0;border-radius:28px;padding:0 0 28px;min-height:600px;overflow:hidden;
  box-shadow:0 34px 70px -38px rgba(0,0,0,.6);font-family:var(--sans);letter-spacing:-.01em}
#bookingWidget .barra-w{display:flex;justify-content:space-between;gap:16px;padding:14px 24px;border-bottom:1px solid rgba(7,26,46,.12);font-size:13px;color:rgba(7,26,46,.62)}
#bookingWidget .barra-w .vivo{display:inline-flex;align-items:center;gap:8px}
#bookingWidget .barra-w .vivo::before{content:"";width:7px;height:7px;border-radius:50%;background:#2EC27E;box-shadow:0 0 0 3px rgba(46,194,126,.18)}
#bookingWidget .bw-content,#bookingWidget .bw-error-state{padding:28px clamp(16px,3vw,36px) 0}
#bookingWidget .widget-loader{inset:52px 24px 24px;background:transparent;border-radius:20px}

/* ---------- 3 · identidad Forma ---------- */
/* Sin cursivas: la identidad no las usa. Los títulos que eran
   serif cursiva quedan en Mona Sans con el interletrado cerrado. */
#bookingWidget *{font-style:normal!important}
#bookingWidget .bw-title,#bookingWidget .bw-cat-title,#bookingWidget .bw-service-name,#bookingWidget .bw-detalle-nombre,
#bookingWidget .bw-cal-title,#bookingWidget .bw-instructions h4,#bookingWidget .bw-error-msg{font-weight:500;letter-spacing:-.035em}
#bookingWidget .bw-title{font-size:clamp(26px,2.6vw,36px);line-height:1.08}
#bookingWidget .bw-title .bold{font-weight:500;text-transform:none;letter-spacing:-.035em}
#bookingWidget .bw-eyebrow,#bookingWidget .bw-fam-titulo,#bookingWidget .bw-service-cat,#bookingWidget .bw-cal-dow,
#bookingWidget .bw-slots-info-label,#bookingWidget .bw-field label,#bookingWidget .bw-plan-title,#bookingWidget .bw-summary-label,
#bookingWidget .bw-detalle-fact strong,#bookingWidget .bw-bank-row strong{letter-spacing:.04em;font-weight:600;color:rgba(7,26,46,.62)}
#bookingWidget .bw-eyebrow{display:inline-flex;align-items:center;gap:10px;text-transform:none;font-size:14px;letter-spacing:-.005em;font-weight:400}
#bookingWidget .bw-eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
#bookingWidget .bw-slots-info-value,#bookingWidget .bw-summary-value,#bookingWidget .bw-opt-nombre{font-weight:500}
#bookingWidget .bw-opt-precio{font-weight:600;letter-spacing:-.03em}

/* pasos de arriba: sobre la hoja clara */
#bookingWidget .bw-progress{border-bottom-color:rgba(7,26,46,.12)}
#bookingWidget .bw-step-num{border-color:rgba(7,26,46,.25);color:rgba(7,26,46,.55)}
#bookingWidget .bw-step-num.active{background:#071A2E;border-color:#071A2E;color:#E8F1F8;box-shadow:0 0 0 4px rgba(7,26,46,.1)}
#bookingWidget .bw-step-num.done{border-color:#1478A8;color:#1478A8}
#bookingWidget .bw-step-line{background:rgba(7,26,46,.16)}
#bookingWidget .bw-step-line.done{background:#1478A8}

/* tarjetas, opciones y horarios: blancas sobre la hoja */
#bookingWidget .bw-cat-card,#bookingWidget .bw-opt,#bookingWidget .bw-service-card,#bookingWidget .bw-payment-card,
#bookingWidget .bw-slot,#bookingWidget .bw-calendar-wrap,#bookingWidget .bw-plan-option,#bookingWidget .bw-duration-option,
#bookingWidget .bw-instructions{background:#ffffff;border:1px solid rgba(7,26,46,.12);box-shadow:none}
#bookingWidget .bw-cat-card,#bookingWidget .bw-service-card,#bookingWidget .bw-payment-card,#bookingWidget .bw-calendar-wrap,
#bookingWidget .bw-instructions,#bookingWidget .bw-detalle-caja,#bookingWidget .bw-payment-plan,#bookingWidget .bw-success-summary,
#bookingWidget .bw-slots-info{border-radius:20px}
#bookingWidget .bw-opt,#bookingWidget .bw-slot,#bookingWidget .bw-plan-option,#bookingWidget .bw-duration-option,#bookingWidget .bw-bank-details{border-radius:14px}
#bookingWidget .bw-cat-card:hover,#bookingWidget .bw-opt:hover,#bookingWidget .bw-service-card:hover,#bookingWidget .bw-payment-card:hover,
#bookingWidget .bw-slot:hover:not(.selected),#bookingWidget .bw-plan-option:hover,#bookingWidget .bw-duration-option:hover{border-color:rgba(7,26,46,.45);box-shadow:0 12px 26px -16px rgba(7,26,46,.35)}
#bookingWidget .bw-cat-card.active,#bookingWidget .bw-opt.selected,#bookingWidget .bw-service-card.selected,#bookingWidget .bw-payment-card.selected{border-color:#071A2E;box-shadow:inset 0 0 0 1px #071A2E}
#bookingWidget .bw-slot.selected,#bookingWidget .bw-plan-option.selected,#bookingWidget .bw-duration-option.selected,#bookingWidget .bw-cal-day.selected{background:#071A2E;border-color:#071A2E;color:#E8F1F8}
#bookingWidget .bw-cal-day.today{box-shadow:inset 0 0 0 1px #1478A8}
#bookingWidget .bw-slots-info,#bookingWidget .bw-payment-plan,#bookingWidget .bw-success-summary,#bookingWidget .bw-success-ref,
#bookingWidget .bw-detalle-caja{background:#DCE7F1}
#bookingWidget .bw-detalle-fact{background:rgba(255,255,255,.7)}
#bookingWidget .bw-field input,#bookingWidget .bw-field textarea{border-bottom-color:rgba(7,26,46,.28)}
#bookingWidget .bw-field input:focus,#bookingWidget .bw-field textarea:focus{border-color:#1478A8}

/* botones: píldora oscura y liga para regresar */
#bookingWidget .bw-continue,#bookingWidget .btn-pill.solid,#bookingWidget .bw-copy-btn{background:#071A2E;color:#E8F1F8;border-color:#071A2E;
  text-transform:none;letter-spacing:-.01em;font-weight:500;font-size:15px;box-shadow:0 12px 26px -14px rgba(7,26,46,.45)}
#bookingWidget .bw-copy-btn{font-size:13px;box-shadow:none}
#bookingWidget .bw-continue:hover:not(:disabled),#bookingWidget .btn-pill.solid:hover,#bookingWidget .bw-copy-btn:hover{background:#0D2A47;color:#fff;border-color:#0D2A47}
#bookingWidget .btn-pill{text-transform:none;letter-spacing:-.01em;font-weight:500;font-size:15px;padding:12px 24px}
#bookingWidget .btn-pill:not(.solid){border:1px solid rgba(7,26,46,.35);color:#071A2E;background:transparent}
#bookingWidget .btn-pill:not(.solid):hover{border-color:#071A2E;background:transparent;color:#071A2E}
#bookingWidget .bw-back{text-transform:none;letter-spacing:-.01em;font-size:15px;font-weight:500;color:rgba(7,26,46,.7)}
#bookingWidget .bw-back:hover{color:#071A2E}
#bookingWidget .bw-nav{background:transparent;border-top:1px solid rgba(7,26,46,.12)}
@media (max-width:640px){
  #bookingWidget{border-radius:22px}
  #bookingWidget .bw-content,#bookingWidget .bw-error-state{padding:22px 16px 0}
  #bookingWidget .bw-nav{margin:24px -16px 0;padding:14px 16px;background:rgba(232,241,248,.96);border-top:1px solid rgba(7,26,46,.14)}
  #bookingWidget .barra-w{padding:12px 16px;font-size:12.5px}
}

/* WhatsApp siempre verde con su logo (regla de todo el sitio) */
#bookingWidget .btn-pill.wa-pill{background:#25D366;border-color:#25D366;color:#fff;gap:8px}
#bookingWidget .btn-pill.wa-pill:hover{background:#1FBF5B;border-color:#1FBF5B;color:#fff}
#bookingWidget .btn-pill.wa-pill .wa-i{width:18px;height:18px;fill:currentColor}
