/* WEB NEW R4.11 — Identidad visual de los modales «Planifica tu visita» aplicada
   exclusivamente a las ventanas de sesiones y reserva. Sin cambios funcionales. */
.nd-sessions-dialog,.nd-booking-dialog{
 color:#f2eee4;width:min(860px,calc(100vw - 48px));
 max-height:min(86dvh,900px);opacity:0;
 transform:translateY(8px) scale(.996);
 transition:opacity .38s cubic-bezier(.2,.7,.2,1),transform .38s cubic-bezier(.2,.7,.2,1);
}
.nd-sessions-dialog::backdrop,.nd-booking-dialog::backdrop{
 background:rgba(10,19,15,.35);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);
 transition:background .38s ease;
}
.nd-sessions-dialog.nd-sessions-dialog--visible,.nd-booking-dialog.nd-booking-dialog--visible{
 opacity:1;transform:translateY(0) scale(1);
}
.nd-sessions-dialog__surface,.nd-booking-dialog__surface{
 border:1px solid rgba(232,227,211,.31);border-radius:14px;
 background:radial-gradient(ellipse at 95% 0%,rgba(155,139,95,.13),transparent 45%),#18221d;
 box-shadow:0 15px 65px rgba(10,18,13,.22);
}
.nd-sessions-dialog__surface{max-height:min(86dvh,900px)}
.nd-booking-dialog__surface{height:min(86dvh,900px);max-height:min(86dvh,900px)}
.nd-booking-dialog__head{
 padding:18px clamp(20px,5vw,53px);
 border-bottom:1px solid rgba(242,238,228,.17);
 color:#c7c4b8;letter-spacing:.2em;font-size:.62rem;
}
.nd-booking-dialog__close{width:42px;height:42px;border:1px solid rgba(242,238,228,.28);background:transparent;color:#eae6db;transition:background .2s,transform .2s}
.nd-booking-dialog__close:hover{background:rgba(255,255,255,.1);transform:rotate(90deg)}
.nd-booking-dialog__close:focus-visible{outline:2px solid #d5c69b;outline-offset:4px}
.nd-sessions-dialog__content,.nd-booking-dialog__body{padding:clamp(22px,5vw,54px);scrollbar-color:#657367 transparent}
.nd-sessions-dialog__content h2,.nd-booking-dialog__body h2{font-size:clamp(2.5rem,6vw,5rem);color:#f2eee4;line-height:1.02;margin:0 0 1.6rem}
.nd-sessions-dialog .nd-dates__kicker,.nd-booking-dialog .nd-dates__kicker,.nd-sessions__label{color:#c6ba94;letter-spacing:.2em;font-size:.67rem}
.nd-sessions-dialog__mark{color:#c6ba94}
.nd-sessions-dialog .nd-booking-dialog__lead,.nd-booking-dialog .nd-booking-dialog__lead{color:#d7d8cd;font-size:clamp(.95rem,1.5vw,1.1rem);line-height:1.7}
.nd-sessions-dialog__date{color:#f2eee4;border-color:rgba(242,238,228,.19);padding:1.25rem 0;margin:1.75rem 0}
.nd-sessions-dialog__date button,.nd-sessions-dialog__back,.nd-booking-return{color:#e9d9ac;text-decoration-color:rgba(233,217,172,.55)}
.nd-sessions-dialog__date button:hover,.nd-sessions-dialog__back:hover,.nd-booking-return:hover{color:#fff8e6}
.nd-sessions-dialog .nd-sessions__slot{
 background:rgba(255,255,255,.055);border:1px solid rgba(242,238,228,.17);
 color:#f7f0dc;border-radius:5px;min-height:116px;
 transition:background .25s,border-color .25s,transform .25s;
}
.nd-sessions-dialog .nd-sessions__slot:not(:disabled):hover{background:rgba(193,174,117,.14);border-color:rgba(212,193,142,.6);transform:translateY(-2px)}
.nd-sessions-dialog .nd-sessions__slot strong{color:#f7f0dc}
.nd-sessions-dialog .nd-sessions__slot span{color:#bccbbd}
.nd-sessions-dialog .nd-sessions__slot:disabled{background:rgba(255,255,255,.025);border-color:rgba(242,238,228,.09);color:#a5aea5;opacity:.64}
.nd-sessions-dialog .nd-sessions__slot:disabled strong,.nd-sessions-dialog .nd-sessions__slot:disabled span{color:#a5aea5}
.nd-sessions-dialog .nd-sessions__hint{color:#b5beb2;line-height:1.7}
.nd-booking-summary{background:rgba(193,174,117,.10);border:1px solid rgba(193,174,117,.23);border-radius:3px;color:#dedfd2}
.nd-booking-summary strong{color:#f7e8bd}
.nd-booking-fieldset{border-color:rgba(242,238,228,.18)}
.nd-booking-fieldset legend{color:#c6ba94}
.nd-booking-fieldset legend span{color:#f3eee2}
.nd-booking-ticket{border-color:rgba(242,238,228,.13)}
.nd-booking-ticket strong,.nd-booking-fields label,.nd-booking-check{color:#f2eee4}
.nd-booking-ticket small,.nd-booking-fields label span,.nd-booking-terms,.nd-booking-terms p{color:#b7c2b5}
.nd-booking-stepper button{border-color:rgba(242,238,228,.3);background:rgba(255,255,255,.055);color:#f7e8bd}
.nd-booking-stepper button:not(:disabled):hover{border-color:#d5c69b;background:rgba(193,174,117,.15)}
.nd-booking-stepper output{color:#f2eee4}
.nd-booking-total{color:#d7d8cd;border-top:1px solid rgba(242,238,228,.14)}
.nd-booking-total strong{color:#f7e8bd}
.nd-booking-fields input,.nd-booking-fields select{
 background:rgba(255,255,255,.065);color:#f6f1e7;
 border:1px solid rgba(242,238,228,.28);border-radius:3px;
 transition:border-color .2s,background .2s;
}
.nd-booking-fields input::placeholder{color:#aeb7a9;opacity:1}
.nd-booking-fields input:focus,.nd-booking-fields select:focus{outline:2px solid #d5c69b;outline-offset:2px;background:rgba(255,255,255,.11)}
.nd-booking-fields select option{background:#18221d;color:#f6f1e7}
.nd-booking-check input{accent-color:#c6ba94}
.nd-booking-cta{
 background:#d3c197;border-color:#d3c197;border-radius:3px;color:#1a2820;
 transition:background .2s,border-color .2s;
}
.nd-booking-cta:hover{background:#eee0bb;border-color:#eee0bb}
.nd-booking-inline-error{color:#ffc7b8}
.nd-booking-payment__brand{border-color:rgba(242,238,228,.18)}
.nd-booking-payment__mark{background:#bda975;color:#18221d}
.nd-booking-payment__brand strong{color:#f2eee4}
.nd-booking-payment__brand small,.nd-booking-payment>p{color:#b7c2b5}
.nd-booking-payment__mock{background:rgba(193,174,117,.10);border-color:rgba(193,174,117,.32);border-radius:4px}
.nd-booking-payment__mock span,.nd-booking-payment__mock small{color:#c9d1c4}
.nd-booking-payment__mock strong{color:#f7e8bd}
.nd-booking-secondary{border-color:rgba(242,238,228,.38);border-radius:3px;color:#f2eee4}
.nd-booking-secondary:hover{background:rgba(255,255,255,.08)}
.nd-booking-result__check{background:rgba(193,174,117,.16);color:#e9d9ac}
.nd-booking-result h3{color:#f2eee4}
.nd-booking-result p,.nd-booking-demo-id{color:#b7c2b5}
.nd-sessions-dialog button:focus-visible,.nd-booking-dialog button:focus-visible{outline:2px solid #d5c69b;outline-offset:3px}
@media(max-width:680px){
 .nd-sessions-dialog,.nd-booking-dialog{width:calc(100vw - 22px);max-width:calc(100vw - 22px);max-height:calc(100dvh - 32px)}
 .nd-sessions-dialog__surface,.nd-booking-dialog__surface{border-radius:12px;max-height:calc(100dvh - 32px)}
 .nd-booking-dialog__surface{height:calc(100dvh - 32px)}
 .nd-booking-dialog__head{padding:calc(12px + env(safe-area-inset-top,0px)) 18px 12px;font-size:.53rem;letter-spacing:.12em}
 .nd-sessions-dialog__content,.nd-booking-dialog__body{padding:28px 22px calc(35px + env(safe-area-inset-bottom,0px))}
 .nd-sessions-dialog__content h2,.nd-booking-dialog__body h2{font-size:clamp(2.7rem,12vw,4.3rem)}
 .nd-sessions-dialog .nd-sessions__slot{min-height:103px}
 .nd-booking-payment__actions{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
 .nd-sessions-dialog,.nd-booking-dialog,.nd-sessions-dialog .nd-sessions__slot{transition:none!important;transform:none!important}
}
