:root{--bg:#050505;--panel:#101010;--panel2:#161616;--gold:#e1ad43;--gold2:#f4ca69;--line:#34312a;--text:#f5f5f5;--muted:#a7a7a7;--green:#65c66d;--red:#d7534d}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:#050505;color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.page-glow{position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 50% -20%,rgba(225,173,67,.1),transparent 42%)}.app-shell{position:relative;width:min(1440px,calc(100% - 36px));margin:auto;padding:32px 0 22px}.hero{display:flex;justify-content:space-between;align-items:center;gap:32px;margin-bottom:28px}.brand-area{display:flex;align-items:center;gap:34px}.brand-logo{width:210px;height:210px;border-radius:50%;object-fit:cover;filter:drop-shadow(0 12px 28px rgba(0,0,0,.6))}.brand-title{font-family:Impact,"Arial Narrow",sans-serif;font-size:clamp(2.6rem,5vw,5.3rem);letter-spacing:.025em;line-height:.9;text-shadow:0 3px 0 #555}.brand-subtitle{display:flex;align-items:center;gap:14px;color:var(--gold);font-size:clamp(1rem,2vw,1.8rem);font-weight:700;letter-spacing:.32em;margin-top:18px}.brand-subtitle span{height:2px;width:55px;background:var(--gold)}.brand-copy p{letter-spacing:.35em;margin:12px 0 0;color:#ddd;text-align:center}.premium-panel,.hours-card{background:linear-gradient(145deg,#161616,#0b0b0b);border:1px solid var(--line);border-radius:20px;box-shadow:0 20px 45px rgba(0,0,0,.35)}.hours-card{width:280px;padding:24px}.hours-card h2,.panel-title{font-size:1rem;font-weight:800;margin:0 0 18px}.hours-card h2{color:var(--gold)}.hours-card p{font-size:.9rem;line-height:1.65;margin:0}.hours-card hr{border-color:#474747}.hours-card .lunch{margin-top:13px}.hours-card .lunch strong{color:var(--gold)}.gold-icon{font-size:1.45rem;margin-right:8px}.booking-layout{display:grid;grid-template-columns:minmax(390px,1.12fr) minmax(330px,.9fr) minmax(350px,.95fr);gap:16px;align-items:stretch}.premium-panel{padding:27px}.panel-title{display:flex;align-items:center;gap:12px}.panel-title .title-icon{color:var(--gold);font-size:1.5rem}.panel-title b{display:grid;place-items:center;width:38px;height:38px;border:2px solid var(--gold);border-radius:50%;color:var(--gold);font-size:1rem}.calendar-panel{padding:27px}.calendar-toolbar{display:grid;grid-template-columns:42px 1fr 42px;gap:12px;align-items:center;padding:8px;background:#191919;border:1px solid #292929;border-radius:11px;margin-bottom:14px}.calendar-toolbar h3{margin:0;text-align:center;color:var(--gold);font-size:1.25rem;letter-spacing:.05em}.month-nav{height:37px;display:grid;place-items:center;color:#fff;text-decoration:none;font-size:2rem;border:1px solid #474747;border-radius:8px;background:#202020}.month-nav.disabled{opacity:.25}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.weekdays{margin-bottom:8px}.weekdays span{text-align:center;font-size:.67rem}.calendar-day,.calendar-empty{aspect-ratio:1/1}.calendar-day{position:relative;border:1px solid #353535;border-radius:9px;background:linear-gradient(145deg,#202020,#151515);color:#eee;display:grid;place-items:center;padding:0;transition:.18s}.calendar-day .day-number{font-size:1.45rem;font-weight:650;line-height:1}.calendar-day i{position:absolute;bottom:6px;width:7px;height:7px;border-radius:50%;background:var(--green)}.calendar-day:not(:disabled):hover{border-color:var(--gold);transform:translateY(-1px)}.calendar-day.today{box-shadow:inset 0 0 0 1px var(--gold)}.calendar-day.selected{border-color:var(--gold);background:linear-gradient(145deg,#463719,#211b10);box-shadow:0 0 16px rgba(225,173,67,.28)}.calendar-day.selected i{background:var(--gold)}.calendar-day.unavailable{color:#7f7f7f;background:#161616}.calendar-day.unavailable i{display:none}.calendar-day:nth-child(7n){color:#cf625b}.legend{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin:18px 0;font-size:.75rem;color:#bbb}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:50%}.legend .green{background:var(--green)}.legend .yellow{background:var(--gold)}.legend .red{background:#e33939}.lunch-note,.info-note{display:flex;align-items:center;gap:14px;border:1px solid #303030;border-radius:10px;background:#151515;padding:14px}.lunch-note>span,.info-note>span{display:grid;place-items:center;min-width:42px;height:42px;border:2px solid var(--gold);border-radius:50%;color:var(--gold);font-weight:800}.lunch-note strong{color:var(--gold)}.lunch-note p,.info-note p{margin:4px 0 0;color:#ddd;font-size:.8rem}.step-panel{display:flex;flex-direction:column}.selected-info{display:flex;gap:12px;align-items:center;min-height:54px;margin:18px 0 12px}.selected-info span,.selected-summary span{color:#fff}.selected-info p{margin:0}.slots-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.slot-button{min-height:72px;border:1px solid #8a6724;border-radius:9px;background:#161616;color:#fff;font-size:1rem;transition:.18s}.slot-button:hover,.slot-button.selected{background:#332811;border-color:var(--gold);color:var(--gold2);box-shadow:0 0 12px rgba(225,173,67,.15)}.empty-state{display:grid;place-items:center;min-height:250px;color:#777;text-align:center}.empty-state span{font-size:2rem}.info-note{margin-top:auto}.selected-summary{min-height:66px;margin:8px 0 16px;border-bottom:1px solid #303030;padding-bottom:12px}.selected-summary p{margin:5px 0}.muted{color:var(--muted)}.input-wrap{display:flex;align-items:center;gap:10px;border:1px solid #3a3a3a;border-radius:9px;background:#111;padding:0 14px;margin-bottom:14px}.input-wrap span{font-size:1.2rem;color:#ddd}.input-wrap input{width:100%;background:transparent;border:0;outline:0;color:#fff;padding:15px 0}.input-wrap input::placeholder{color:#9b9b9b}.input-wrap:focus-within{border-color:var(--gold)}.service-heading{text-align:center;color:var(--gold);font-size:.9rem;font-weight:800;margin:22px 0 12px}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.service-card{position:relative;min-height:180px;border:1px solid #8a6724;border-radius:10px;background:linear-gradient(145deg,#1d1d1d,#101010);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;transition:.18s}.service-card:hover,.service-card.selected{border-color:var(--gold);background:linear-gradient(145deg,#2e2617,#14110b);box-shadow:0 0 15px rgba(225,173,67,.15)}.service-art{font-size:3.8rem;line-height:1;color:var(--gold)}.service-art.beard{font-size:2.4rem}.service-card strong{text-align:center}.service-card i{width:22px;height:22px;border:2px solid #eee;border-radius:50%}.service-card.selected i{border:6px solid var(--gold);background:#fff}.gold-button{display:block;width:100%;border:0;border-radius:8px;background:linear-gradient(90deg,#e2ab3a,#f5cf72);color:#111;padding:16px;font-weight:900;text-align:center;text-decoration:none;box-shadow:0 8px 22px rgba(225,173,67,.16)}.reserve-button{margin-top:20px}.secure-note{text-align:center;color:#999;font-size:.75rem;margin:13px 0 0}.form-feedback,.error-banner{background:#391818;border:1px solid #803633;color:#ffc8c6;padding:10px;border-radius:8px;margin-top:12px}.benefits{display:grid;grid-template-columns:repeat(4,1fr);margin-top:16px;padding:20px 26px}.benefits>div{display:flex;align-items:center;gap:16px;padding:0 22px;border-right:1px solid #333}.benefits>div:last-child{border:0}.benefits>div>span{font-size:2.2rem;color:var(--gold)}.benefits .wa{color:#56bd55}.benefits p{font-size:.78rem;margin:0}.benefits strong{display:block;color:var(--gold);font-size:.86rem;margin-bottom:5px}.success-screen{max-width:720px;margin:40px auto;text-align:center;padding:50px}.success-check{width:75px;height:75px;border-radius:50%;display:grid;place-items:center;margin:auto;background:var(--gold);color:#111;font-size:2rem;font-weight:900}.eyebrow{color:var(--gold);letter-spacing:.18em;font-size:.75rem;margin-top:18px}.confirmation-box{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:25px 0;text-align:left}.confirmation-box div{background:#171717;border:1px solid #333;padding:14px;border-radius:8px}.confirmation-box span,.confirmation-box strong{display:block}.confirmation-box span{font-size:.72rem;color:#999}.whatsapp-button{max-width:330px;margin:auto}.secondary-link{display:block;color:#aaa;margin-top:18px}footer{text-align:center;padding:18px}footer a{color:#777;text-decoration:none;font-size:.75rem}.loading{text-align:center;color:var(--gold);padding:20px}
@media(max-width:1150px){.booking-layout{grid-template-columns:1fr 1fr}.details-panel{grid-column:1/-1}.hero{align-items:flex-start}.brand-logo{width:160px;height:160px}.benefits{grid-template-columns:1fr 1fr;gap:20px}.benefits>div:nth-child(2){border:0}}
@media(max-width:780px){.app-shell{width:min(100% - 18px,1440px);padding-top:14px}.hero{display:block}.brand-area{justify-content:center;gap:14px}.brand-logo{width:105px;height:105px}.brand-title{font-size:2rem}.brand-subtitle{font-size:.72rem;letter-spacing:.17em;margin-top:9px}.brand-subtitle span{width:20px}.brand-copy p{font-size:.6rem;letter-spacing:.18em}.hours-card{width:100%;margin-top:18px}.booking-layout{grid-template-columns:1fr}.details-panel{grid-column:auto}.premium-panel{padding:18px}.calendar-panel{padding:18px}.calendar-day .day-number{font-size:1.18rem}.weekdays,.calendar-grid{gap:5px}.calendar-day i{width:5px;height:5px;bottom:4px}.slots-grid{grid-template-columns:repeat(3,1fr)}.benefits{grid-template-columns:1fr}.benefits>div{border-right:0;border-bottom:1px solid #333;padding:14px 0}.service-card{min-height:145px}.confirmation-box{grid-template-columns:1fr}}
@media(max-width:400px){.brand-logo{width:85px;height:85px}.brand-title{font-size:1.6rem}.calendar-day .day-number{font-size:1rem}.weekdays span{font-size:.55rem}.slots-grid{grid-template-columns:1fr 1fr}.service-grid{grid-template-columns:1fr}.service-card{min-height:125px}.service-art{font-size:3rem}}

/* Flujo solicitado: calendario y dos modales */
.calendar-only-layout{display:flex;justify-content:center}.calendar-only-layout .calendar-panel{width:min(620px,100%)}
.premium-modal .modal-dialog{max-width:560px}.premium-modal .modal-content{color:var(--text);background:linear-gradient(145deg,#171717,#0a0a0a);border:1px solid var(--line);border-radius:20px;box-shadow:0 28px 80px rgba(0,0,0,.7);overflow:hidden}.premium-modal .modal-header{border-bottom:1px solid #303030;padding:22px 24px}.premium-modal .modal-body{padding:24px}.premium-modal .modal-title{font-size:1.25rem;font-weight:800}.modal-kicker{margin:0 0 4px;color:var(--gold);font-size:.72rem;font-weight:800;letter-spacing:.15em}.premium-modal .selected-info{margin:0 0 18px;border:1px solid #303030;border-radius:10px;background:#141414;padding:14px}.premium-modal .selected-info span{color:var(--gold);font-size:1.25rem}.premium-modal .slots-grid{grid-template-columns:repeat(3,1fr)}.premium-modal .slot-button{min-height:62px}.modal-note{margin-top:20px}.premium-modal .selected-summary{background:#141414;border:1px solid #303030;border-radius:10px;padding:13px 15px;margin:0 0 18px}.premium-modal .selected-summary p{margin:4px 0}.modal-backdrop.show{opacity:.78}
@media(max-width:600px){.premium-modal .modal-dialog{margin:12px}.premium-modal .modal-body,.premium-modal .modal-header{padding:18px}.premium-modal .slots-grid{grid-template-columns:repeat(2,1fr)}.calendar-only-layout .calendar-panel{width:100%}}

/* Encabezado compacto para mostrar el calendario dentro de la pantalla */
.app-shell{padding-top:14px}
.hero{gap:18px;margin-bottom:14px}
.brand-area{gap:18px}
.brand-logo{width:118px;height:118px}
.brand-title{font-size:clamp(2rem,3.4vw,3.6rem);line-height:.92}
.brand-subtitle{font-size:clamp(.75rem,1.25vw,1.1rem);letter-spacing:.24em;margin-top:9px;gap:9px}
.brand-subtitle span{width:34px}
.brand-copy p{font-size:.7rem;letter-spacing:.25em;margin-top:7px}
.hours-card{width:235px;padding:14px 17px;border-radius:15px}
.hours-card h2{font-size:.82rem;margin-bottom:8px}
.hours-card p{font-size:.72rem;line-height:1.4}
.hours-card hr{margin:7px 0}
.hours-card .lunch{margin-top:6px}
.gold-icon{font-size:1.05rem}

@media(max-width:780px){
  .app-shell{padding-top:7px;padding-bottom:10px}
  .hero{display:flex;align-items:center;justify-content:center;gap:9px;margin-bottom:8px}
  .brand-area{gap:9px;flex:1;min-width:0;justify-content:flex-start}
  .brand-logo{width:64px;height:64px;flex:0 0 64px}
  .brand-copy{min-width:0}
  .brand-title{font-size:1.25rem;white-space:nowrap;text-shadow:0 1px 0 #555}
  .brand-subtitle{font-size:.48rem;letter-spacing:.12em;margin-top:4px;gap:4px;white-space:nowrap}
  .brand-subtitle span{width:10px}
  .brand-copy p{font-size:.4rem;letter-spacing:.12em;margin-top:3px;text-align:left;white-space:nowrap}
  .hours-card{width:132px;flex:0 0 132px;margin-top:0;padding:7px 9px;border-radius:10px}
  .hours-card h2{font-size:.58rem;margin-bottom:3px}
  .hours-card p{font-size:.49rem;line-height:1.25}
  .hours-card hr{margin:3px 0}
  .hours-card .lunch{margin-top:3px}
  .gold-icon{font-size:.72rem;margin-right:3px}
  .calendar-panel{padding:13px}
  .panel-title{font-size:.78rem;margin-bottom:10px}
  .panel-title .title-icon{font-size:1rem}
  .calendar-toolbar{margin-bottom:9px;padding:5px;grid-template-columns:34px 1fr 34px}
  .calendar-toolbar h3{font-size:1rem}
  .month-nav{height:31px;font-size:1.5rem}
  .legend{margin:10px 0;gap:10px;font-size:.62rem}
  .lunch-note{padding:8px;gap:8px}
  .lunch-note>span{min-width:30px;height:30px;font-size:.72rem}
  .lunch-note p{font-size:.63rem}
}

@media(max-width:430px){
  .app-shell{width:calc(100% - 10px)}
  .hero{gap:6px}
  .brand-logo{width:54px;height:54px;flex-basis:54px}
  .brand-title{font-size:1.05rem}
  .brand-subtitle{font-size:.42rem}
  .brand-copy p{font-size:.34rem}
  .hours-card{width:118px;flex-basis:118px;padding:6px 7px}
  .hours-card h2{font-size:.51rem}
  .hours-card p{font-size:.43rem}
  .calendar-panel{padding:10px}
  .calendar-day .day-number{font-size:1.05rem}
  footer{padding:7px}
}

.hero{justify-content:center}.brand-area{margin:0 auto}.schedule-note{margin-top:16px;padding-top:16px;border-top:1px solid #34312a}.schedule-note strong{color:var(--gold);display:block;margin-bottom:10px}.schedule-note p{margin:.4rem 0;line-height:1.5}
/* Horario inferior en dos columnas */
.schedule-note{margin-top:16px;padding:16px;border:1px solid #303030;border-radius:10px;background:#151515;text-align:center}
.schedule-note .schedule-title{display:block;color:var(--gold);margin-bottom:14px;font-size:.95rem}
.schedule-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.schedule-column{padding:10px 12px;border-right:1px solid #34312a;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.schedule-column:last-child{border-right:0}
.schedule-days{color:#eee;font-size:.78rem;font-weight:700;line-height:1.35}
.schedule-column b{display:block;color:var(--gold2);font-size:.85rem}
@media(max-width:430px){.schedule-note{padding:12px 8px}.schedule-columns{gap:4px}.schedule-column{padding:8px 5px}.schedule-days{font-size:.65rem}.schedule-column b{font-size:.72rem}}

/* Calendario compacto: celdas rectangulares para mostrar hasta 6 semanas sin scroll */
.calendar-day,
.calendar-empty{
  aspect-ratio:1.42 / 1;
  min-height:0;
}
.calendar-day{
  border-radius:8px;
}
.calendar-grid{
  row-gap:6px;
}
.calendar-day .day-number{
  font-size:1.32rem;
}
.calendar-day i{
  bottom:4px;
}

@media(max-width:780px){
  .calendar-day,
  .calendar-empty{
    aspect-ratio:1.5 / 1;
  }
  .weekdays,.calendar-grid{column-gap:5px;row-gap:4px}
  .calendar-day .day-number{font-size:1.06rem}
  .calendar-day i{bottom:3px}
}

@media(max-width:430px){
  .calendar-day,
  .calendar-empty{
    aspect-ratio:1.58 / 1;
  }
  .weekdays,.calendar-grid{column-gap:4px;row-gap:4px}
  .calendar-day{border-radius:7px}
  .calendar-day .day-number{font-size:.98rem}
}

/* =========================================================
   AJUSTE MÓVIL A PANTALLA COMPLETA
   - La agenda ocupa todo el viewport.
   - Los dos modales caben sin scroll.
   - Servicios siempre en dos columnas.
   ========================================================= */
@media (max-width: 600px){
  html,body{
    width:100%;
    min-height:100%;
    overflow-x:hidden;
  }
  body{
    min-height:100svh;
  }
  .page-glow{display:none}
  .app-shell{
    width:100%;
    min-height:100svh;
    margin:0;
    padding:5px 5px 0;
    display:flex;
    flex-direction:column;
  }
  .hero{
    width:100%;
    flex:0 0 auto;
    margin:0 0 5px;
    padding:0 7px;
  }
  .brand-area{
    width:100%;
    justify-content:flex-start;
  }
  .calendar-only-layout{
    width:100%;
    flex:1 1 auto;
    min-height:0;
  }
  .calendar-only-layout .calendar-panel{
    width:100%;
    min-height:0;
    padding:10px;
    border-radius:15px;
  }
  .panel-title{margin-bottom:8px}
  .calendar-toolbar{margin-bottom:7px}
  .weekdays{margin-bottom:5px}
  .legend{margin:8px 0}
  .schedule-note{
    margin-top:8px;
    padding:9px 6px;
  }
  .schedule-note .schedule-title{
    margin-bottom:7px;
    font-size:.82rem;
  }
  .schedule-column{
    padding:5px 3px;
    gap:3px;
  }
  footer{
    flex:0 0 auto;
    padding:5px 0 4px;
    line-height:1;
  }

  /* Modales ajustados al alto real de la pantalla */
  .premium-modal{
    padding:0 !important;
  }
  .premium-modal .modal-dialog{
    width:calc(100% - 10px);
    max-width:none;
    height:calc(100svh - 10px);
    max-height:calc(100svh - 10px);
    margin:5px auto;
    display:flex;
    align-items:center;
  }
  .premium-modal .modal-content{
    width:100%;
    max-height:100%;
    border-radius:15px;
    overflow:hidden;
  }
  .premium-modal .modal-header{
    flex:0 0 auto;
    padding:11px 13px;
  }
  .premium-modal .modal-title{
    font-size:1.02rem;
    line-height:1.1;
  }
  .modal-kicker{
    margin-bottom:2px;
    font-size:.6rem;
  }
  .premium-modal .modal-body{
    flex:1 1 auto;
    min-height:0;
    overflow:hidden;
    padding:10px 12px 11px;
  }
  .premium-modal .selected-info{
    min-height:0;
    margin:0 0 8px;
    padding:8px 10px;
    font-size:.78rem;
  }
  .premium-modal .selected-info span{font-size:1rem}
  .premium-modal .slots-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
  }
  .premium-modal .slot-button{
    min-height:42px;
    padding:6px 4px;
    font-size:.82rem;
  }
  .modal-note{
    margin-top:8px;
    padding:7px 9px;
    gap:8px;
  }
  .modal-note>span{
    min-width:27px;
    height:27px;
    font-size:.7rem;
  }
  .modal-note p{font-size:.67rem}
  .premium-modal .selected-summary{
    min-height:0;
    margin:0 0 8px;
    padding:7px 10px;
    font-size:.75rem;
  }
  .premium-modal .selected-summary p{margin:2px 0}
  .input-wrap{
    min-height:39px;
    margin-bottom:7px;
    padding:0 10px;
  }
  .input-wrap span{font-size:.95rem}
  .input-wrap input{
    padding:9px 0;
    font-size:.82rem;
  }
  .service-heading{
    margin:9px 0 7px;
    font-size:.72rem;
  }
  .service-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:7px;
  }
  .service-card{
    min-height:96px !important;
    padding:7px 3px;
    gap:5px;
    border-radius:8px;
  }
  .service-art{font-size:2rem}
  .service-art.beard{font-size:1.45rem}
  .service-card strong{
    font-size:.7rem;
    line-height:1.05;
  }
  .service-card i{
    width:16px;
    height:16px;
  }
  .service-card.selected i{border-width:4px}
  .reserve-button{
    margin-top:9px;
    padding:11px 8px;
    font-size:.78rem;
  }
  .secure-note{
    margin:6px 0 0;
    font-size:.6rem;
  }
  .form-feedback{
    margin-top:6px;
    padding:7px;
    font-size:.7rem;
  }
}

@media (max-width: 380px), (max-height: 700px){
  .brand-logo{width:46px;height:46px;flex-basis:46px}
  .brand-title{font-size:.95rem}
  .calendar-only-layout .calendar-panel{padding:8px}
  .calendar-toolbar{padding:4px}
  .calendar-toolbar h3{font-size:.9rem}
  .calendar-day,.calendar-empty{aspect-ratio:1.72/1}
  .calendar-day .day-number{font-size:.88rem}
  .legend{font-size:.55rem;gap:7px}
  .schedule-note{padding:7px 5px}
  .schedule-note .schedule-title{font-size:.74rem}
  .schedule-days{font-size:.57rem}
  .schedule-column b{font-size:.62rem}
  .premium-modal .modal-header{padding:8px 10px}
  .premium-modal .modal-body{padding:8px 10px}
  .premium-modal .slot-button{min-height:36px;font-size:.75rem}
  .service-card{min-height:82px !important}
  .service-art{font-size:1.7rem}
  .service-art.beard{font-size:1.2rem}
}

/* =========================================================
   CALENDARIO MÓVIL: OCUPAR TODO EL ALTO DISPONIBLE
   ========================================================= */
@media (max-width: 600px){
  html, body{
    height:100%;
    overflow:hidden;
  }

  .app-shell{
    height:100svh;
    min-height:100svh;
    max-height:100svh;
    overflow:hidden;
  }

  .calendar-only-layout{
    display:flex;
    flex:1 1 auto;
    min-height:0;
    align-items:stretch;
  }

  .calendar-only-layout .calendar-panel{
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    height:100%;
    min-height:0;
    overflow:hidden;
  }

  .calendar-grid{
    flex:1 1 auto;
    min-height:0;
    grid-auto-rows:minmax(0,1fr);
    align-content:stretch;
  }

  .calendar-day,
  .calendar-empty{
    width:100%;
    height:100%;
    min-height:27px;
    aspect-ratio:auto;
  }

  .legend,
  .schedule-note,
  .panel-title,
  .calendar-toolbar,
  .weekdays{
    flex:0 0 auto;
  }

  footer{
    flex:0 0 auto;
  }
}

@media (max-width: 600px) and (max-height: 720px){
  .hero{margin-bottom:3px}
  .brand-logo{width:47px;height:47px;flex-basis:47px}
  .brand-title{font-size:.96rem}
  .calendar-only-layout .calendar-panel{padding:8px}
  .panel-title{margin-bottom:5px;font-size:.72rem}
  .calendar-toolbar{margin-bottom:5px}
  .weekdays{margin-bottom:3px}
  .legend{margin:5px 0}
  .schedule-note{margin-top:5px;padding:6px 5px}
  .schedule-note .schedule-title{margin-bottom:4px;font-size:.75rem}
  .schedule-column{padding:3px 2px}
  footer{padding:3px 0}
}


/* =========================================================
   RESERVA COMPLETADA: AJUSTE RESPONSIVE SIN SCROLL
   ========================================================= */
@media (max-width: 600px){
  body.success-page{
    height:100%;
    min-height:100%;
    overflow:hidden;
  }

  body.success-page .app-shell{
    display:flex;
    flex-direction:column;
    width:100%;
    height:100svh;
    min-height:100svh;
    max-height:100svh;
    padding:6px 6px 4px;
    overflow:hidden;
  }

  body.success-page .hero{
    flex:0 0 auto;
    margin:0 0 5px;
  }

  body.success-page .brand-area{
    justify-content:center;
    gap:8px;
  }

  body.success-page .brand-logo{
    width:48px;
    height:48px;
    flex:0 0 48px;
  }

  body.success-page .brand-title{
    font-size:1rem;
    line-height:.92;
  }

  body.success-page .brand-subtitle{
    margin-top:4px;
    font-size:.47rem;
    letter-spacing:.13em;
    gap:5px;
  }

  body.success-page .brand-subtitle span{width:12px}

  body.success-page .brand-copy p{
    margin-top:3px;
    font-size:.42rem;
    letter-spacing:.12em;
  }

  body.success-page .success-screen{
    display:flex;
    flex-direction:column;
    justify-content:center;
    flex:1 1 auto;
    min-height:0;
    width:100%;
    max-width:none;
    margin:0;
    padding:12px 11px;
    border-radius:14px;
    overflow:hidden;
  }

  body.success-page .success-check{
    width:48px;
    height:48px;
    flex:0 0 48px;
    font-size:1.35rem;
  }

  body.success-page .eyebrow{
    margin:8px 0 3px;
    font-size:.58rem;
    letter-spacing:.14em;
  }

  body.success-page .success-screen h1{
    margin:0 0 5px;
    font-size:1.18rem;
    line-height:1.08;
  }

  body.success-page .success-screen > .muted{
    margin:0 auto;
    max-width:330px;
    font-size:.7rem;
    line-height:1.25;
  }

  body.success-page .confirmation-box{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
    width:100%;
    margin:10px 0;
  }

  body.success-page .confirmation-box div{
    min-width:0;
    padding:8px;
    border-radius:7px;
  }

  body.success-page .confirmation-box span{
    font-size:.55rem;
  }

  body.success-page .confirmation-box strong{
    margin-top:2px;
    font-size:.7rem;
    line-height:1.15;
    overflow-wrap:anywhere;
  }

  body.success-page .whatsapp-button{
    width:100%;
    max-width:330px;
    padding:11px 8px;
    font-size:.75rem;
  }

  body.success-page .secondary-link{
    margin-top:8px;
    font-size:.68rem;
  }

  body.success-page footer{
    flex:0 0 auto;
    padding:3px 0 0;
    line-height:1;
  }

  body.success-page footer a{font-size:.6rem}
}

@media (max-width: 380px), (max-height: 680px){
  body.success-page .app-shell{padding-top:3px}
  body.success-page .hero{margin-bottom:3px}
  body.success-page .brand-logo{width:40px;height:40px;flex-basis:40px}
  body.success-page .brand-title{font-size:.88rem}
  body.success-page .brand-subtitle{font-size:.4rem;margin-top:2px}
  body.success-page .brand-copy p{display:none}
  body.success-page .success-screen{padding:8px}
  body.success-page .success-check{width:40px;height:40px;flex-basis:40px;font-size:1.1rem}
  body.success-page .eyebrow{margin-top:5px;font-size:.52rem}
  body.success-page .success-screen h1{font-size:1rem;margin-bottom:3px}
  body.success-page .success-screen > .muted{font-size:.62rem;line-height:1.18}
  body.success-page .confirmation-box{margin:7px 0;gap:5px}
  body.success-page .confirmation-box div{padding:6px}
  body.success-page .confirmation-box strong{font-size:.63rem}
  body.success-page .whatsapp-button{padding:9px 6px;font-size:.68rem}
  body.success-page .secondary-link{margin-top:5px;font-size:.61rem}
}

/* =========================================================
   REDISEÑO DE RESERVA COMPLETADA
   Tarjeta compacta, equilibrada y adaptable a móvil
   ========================================================= */
body.success-page .app-shell{
  min-height:100svh;
  display:flex;
  flex-direction:column;
}
body.success-page .hero{
  flex:0 0 auto;
}
body.success-page .success-screen{
  position:relative;
  width:min(560px,100%);
  max-width:560px;
  min-height:0;
  margin:auto;
  padding:38px 34px 30px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  text-align:center;
  overflow:visible;
  background:
    radial-gradient(circle at 50% 0,rgba(225,173,67,.11),transparent 34%),
    linear-gradient(155deg,#171717 0%,#0b0b0b 72%);
  border:1px solid #3a352b;
  box-shadow:0 24px 65px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.025);
}
body.success-page .success-screen::before{
  content:"";
  position:absolute;
  left:24px;
  right:24px;
  top:0;
  height:3px;
  border-radius:0 0 4px 4px;
  background:linear-gradient(90deg,transparent,var(--gold),var(--gold2),var(--gold),transparent);
}
body.success-page .success-check{
  width:62px;
  height:62px;
  flex:0 0 62px;
  margin:0 auto 14px;
  border:5px solid rgba(225,173,67,.14);
  outline:1px solid rgba(225,173,67,.5);
  box-shadow:0 10px 28px rgba(225,173,67,.22);
  font-size:1.55rem;
}
body.success-page .eyebrow{
  margin:0 0 5px;
  font-size:.66rem;
  font-weight:900;
  letter-spacing:.22em;
}
body.success-page .success-screen h1{
  margin:0;
  font-size:1.65rem;
  line-height:1.08;
  letter-spacing:-.02em;
}
body.success-page .success-screen > .muted{
  max-width:390px;
  margin:9px auto 0;
  font-size:.82rem;
  line-height:1.45;
  color:#bcbcbc;
}
body.success-page .confirmation-box{
  width:100%;
  margin:22px 0 18px;
  gap:9px;
}
body.success-page .confirmation-box div{
  position:relative;
  min-height:67px;
  padding:12px 14px;
  background:linear-gradient(145deg,#191919,#121212);
  border-color:#363636;
  border-radius:10px;
}
body.success-page .confirmation-box div::before{
  content:"";
  position:absolute;
  left:0;
  top:11px;
  bottom:11px;
  width:2px;
  border-radius:2px;
  background:var(--gold);
  opacity:.72;
}
body.success-page .confirmation-box span{
  margin-bottom:4px;
  color:#8e8e8e;
  font-size:.62rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
}
body.success-page .confirmation-box strong{
  color:#f5f5f5;
  font-size:.84rem;
  line-height:1.25;
}
body.success-page .whatsapp-button{
  max-width:none;
  margin:0;
  padding:14px 16px;
  border-radius:10px;
  font-size:.86rem;
  letter-spacing:.01em;
}
body.success-page .whatsapp-button::before{
  content:"✓";
  display:inline-grid;
  place-items:center;
  width:20px;
  height:20px;
  margin-right:8px;
  border:1px solid currentColor;
  border-radius:50%;
  font-size:.7rem;
}
body.success-page .secondary-link{
  width:max-content;
  margin:15px auto 0;
  padding-bottom:2px;
  color:#c7c7c7;
  font-size:.75rem;
  text-underline-offset:4px;
}
body.success-page footer{
  flex:0 0 auto;
  padding:10px 0 4px;
}

@media(max-width:600px){
  body.success-page{
    min-height:100svh;
  }
  body.success-page .app-shell{
    min-height:100svh;
    padding:5px 7px 4px;
  }
  body.success-page .hero{
    margin-bottom:6px;
  }
  body.success-page .success-screen{
    flex:0 0 auto;
    width:100%;
    max-width:none;
    margin:auto 0;
    padding:24px 14px 18px;
    border-radius:15px;
  }
  body.success-page .success-screen::before{
    left:18px;
    right:18px;
  }
  body.success-page .success-check{
    width:51px;
    height:51px;
    flex-basis:51px;
    margin-bottom:10px;
    border-width:4px;
    font-size:1.25rem;
  }
  body.success-page .eyebrow{
    margin-bottom:3px;
    font-size:.56rem;
  }
  body.success-page .success-screen h1{
    font-size:1.27rem;
  }
  body.success-page .success-screen > .muted{
    max-width:310px;
    margin-top:6px;
    font-size:.68rem;
    line-height:1.3;
  }
  body.success-page .confirmation-box{
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin:14px 0 12px;
    gap:6px;
  }
  body.success-page .confirmation-box div{
    min-height:52px;
    padding:8px 9px 8px 11px;
    border-radius:8px;
  }
  body.success-page .confirmation-box div::before{
    top:8px;
    bottom:8px;
  }
  body.success-page .confirmation-box span{
    margin-bottom:2px;
    font-size:.5rem;
  }
  body.success-page .confirmation-box strong{
    font-size:.68rem;
  }
  body.success-page .whatsapp-button{
    padding:11px 9px;
    font-size:.72rem;
  }
  body.success-page .whatsapp-button::before{
    width:17px;
    height:17px;
    margin-right:6px;
  }
  body.success-page .secondary-link{
    margin-top:10px;
    font-size:.64rem;
  }
  body.success-page footer{
    padding:5px 0 2px;
  }
}

@media(max-width:380px),(max-height:680px){
  body.success-page .success-screen{
    padding:17px 11px 13px;
  }
  body.success-page .success-check{
    width:43px;
    height:43px;
    flex-basis:43px;
    margin-bottom:7px;
    font-size:1.05rem;
  }
  body.success-page .eyebrow{font-size:.49rem}
  body.success-page .success-screen h1{font-size:1.08rem}
  body.success-page .success-screen > .muted{font-size:.61rem;line-height:1.22}
  body.success-page .confirmation-box{margin:10px 0 9px;gap:5px}
  body.success-page .confirmation-box div{min-height:45px;padding:6px 7px 6px 9px}
  body.success-page .confirmation-box strong{font-size:.61rem}
  body.success-page .whatsapp-button{padding:9px 7px;font-size:.66rem}
  body.success-page .secondary-link{margin-top:7px;font-size:.58rem}
}


/* Servicios con duración variable */
.slot-service small{display:block;color:#aaa;font-size:.68rem;line-height:1.1}
.service-grid-three{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:10px}
.service-grid-three .slot-service:last-child{grid-column:1/-1;min-height:76px}
.slots-service-heading{margin-top:8px}
@media(min-width:601px){.service-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}.service-grid-three .slot-service:last-child{grid-column:auto;min-height:110px}}
@media(max-width:600px){
  .service-grid-three{gap:6px;margin-bottom:7px}
  .service-grid-three .service-card{min-height:68px!important;padding:5px 3px}
  .service-grid-three .slot-service:last-child{min-height:58px!important}
  .service-grid-three .service-art{font-size:1.4rem}
  .service-grid-three .service-art.beard{font-size:1.05rem}
  .service-grid-three .service-card strong{font-size:.62rem}
  .slot-service small{font-size:.55rem}
  .slots-service-heading{margin:6px 0 5px}
}

@media(max-width:600px){
  #hoursModal .slots-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
  #hoursModal .slot-button{min-height:31px;padding:3px 2px;font-size:.68rem}
  #hoursModal .modal-note{margin-top:5px;padding:5px 7px}
}
@media(max-width:360px),(max-height:650px){
  #hoursModal .slots-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}
  #hoursModal .slot-button{min-height:28px;font-size:.61rem}
  .service-grid-three .service-card{min-height:55px!important}
  .service-grid-three .slot-service:last-child{min-height:48px!important}
}


/* =========================================================
   AJUSTES DE SERVICIOS Y MODAL DE HORARIOS
   ========================================================= */

/* Responsive: los tres servicios permanecen en una sola fila. */
@media (max-width:600px){
  #hoursModal .service-grid-three{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:5px;
  }
  #hoursModal .service-grid-three .slot-service,
  #hoursModal .service-grid-three .slot-service:last-child{
    grid-column:auto !important;
    min-width:0;
    min-height:64px !important;
    padding:5px 2px;
  }
  #hoursModal .service-grid-three .service-card strong{
    font-size:.58rem;
    white-space:normal;
  }
  #hoursModal .slot-service small{
    font-size:.51rem;
    white-space:nowrap;
  }
}

/* Escritorio: caja más amplia y contenido completo sin scroll interno. */
@media (min-width:601px){
  #hoursModal .modal-dialog{
    width:min(94vw,980px);
    max-width:980px;
    margin:18px auto;
  }
  #hoursModal .modal-content{
    overflow:hidden;
  }
  #hoursModal .modal-body{
    overflow:hidden;
    padding:20px 24px 22px;
  }
  #hoursModal .selected-info{
    margin-bottom:10px;
    padding:10px 13px;
  }
  #hoursModal .service-grid-three{
    gap:10px;
    margin-bottom:12px;
  }
  #hoursModal .service-grid-three .service-card{
    min-height:88px !important;
    padding:8px 6px;
    gap:5px;
  }
  #hoursModal .service-grid-three .service-art{
    font-size:2rem;
  }
  #hoursModal .service-grid-three .service-art.beard{
    font-size:1.45rem;
  }
  #hoursModal .slots-grid{
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:7px;
  }
  #hoursModal .slot-button{
    min-height:38px;
    padding:5px 3px;
    font-size:.8rem;
  }
  #hoursModal .modal-note{
    margin-top:10px;
    padding:8px 11px;
  }
}
