/* WEB NEW R4.9 — Calendario circular y flujo de reserva estrictamente simulado. */
.booking .nd-dates{width:min(100%,940px);margin:clamp(2rem,5vw,4rem) auto 0;padding:clamp(1.1rem,3vw,2.4rem);background:#fffefa;border:1px solid #d8d8d0;border-radius:24px;text-align:left;box-shadow:0 18px 60px rgba(29,43,35,.045)}
.nd-dates__head{display:flex;justify-content:space-between;align-items:center;gap:1.5rem}.nd-dates__kicker{font-size:.63rem;letter-spacing:.17em;font-weight:700;color:#688172}.nd-dates__intro h3,.nd-sessions__heading h3{font-family:var(--serif);font-size:clamp(1.25rem,2.6vw,1.85rem);font-weight:400;letter-spacing:-.02em;margin:.55rem 0 0}.nd-dates__arrows{display:flex;gap:.5rem;flex-shrink:0}.nd-dates__nav{width:42px;height:42px;display:grid;place-items:center;border:1px solid #cbd2ca;border-radius:50%;background:transparent;color:#233f35;cursor:pointer;transition:background .2s ease,border-color .2s ease}.nd-dates__nav:hover:not(:disabled){background:#e7eee8;border-color:#91ae9a}.nd-dates__nav:disabled{opacity:.32;cursor:default}.nd-dates__nav svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.nd-dates__range{font-size:.86rem;color:#65736b;margin:1.55rem 0 1.2rem;text-transform:capitalize}
.nd-dates__grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));justify-items:center;gap:clamp(.55rem,1.7vw,1.2rem) .5rem}.nd-dates__day{width:min(100%,91px);aspect-ratio:1;border:1px solid #dce2d9;border-radius:50%;background:#fafaf6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.12rem;color:#273a30;cursor:pointer;transition:background .28s ease,border-color .28s ease,transform .28s ease,box-shadow .28s ease}.nd-dates__day:hover{background:#edf2eb;border-color:#92af9e;transform:translateY(-2px);box-shadow:0 8px 22px rgba(24,60,42,.07)}.nd-dates__day[aria-pressed="true"]{background:#213e34;border-color:#213e34;color:white;box-shadow:0 0 0 4px #dce8de}.nd-dates__weekday{font-size:.62rem;text-transform:uppercase;letter-spacing:.11em;opacity:.8}.nd-dates__number{font-family:var(--serif);font-size:clamp(1.55rem,2.6vw,2rem);line-height:1.15}.nd-dates__month{font-size:.65rem;text-transform:capitalize;opacity:.85}.nd-dates__foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.45rem 1rem;margin-top:1.4rem;font-size:.73rem;color:#67786e}.nd-dates__indicator{font-weight:700;letter-spacing:.08em;color:#354c40}.nd-dates__chosen{margin:1.55rem 0 .35rem;color:#263e33;font-size:.93rem;font-weight:600}.nd-dates__disclaimer{margin:1.3rem 0 0;color:#79867d;font-size:.73rem;line-height:1.6}
.nd-sessions{margin-top:1.65rem;padding-top:1.65rem;border-top:1px solid #dfe5df;animation:nd-appear .45s ease both}.nd-sessions[hidden],.nd-booking-payment[hidden],.nd-booking-result[hidden],#nd-booking-form-stage[hidden],.nd-booking-inline-error[hidden]{display:none!important}.nd-sessions__heading{margin-bottom:1.2rem}.nd-sessions__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.nd-sessions__slot{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;min-height:98px;border-radius:13px;border:1px solid #c9d8cf;background:#f2f6f0;color:#234638;cursor:pointer;transition:background .25s ease,transform .25s ease}.nd-sessions__slot strong{font-family:var(--serif);font-size:1.65rem;font-weight:400}.nd-sessions__slot span{font-size:.64rem;letter-spacing:.06em}.nd-sessions__slot:not(:disabled):hover{background:#e1ede3;transform:translateY(-2px)}.nd-sessions__slot:disabled{background:#f1f0eb;color:#969c96;border-color:#e4e5df;cursor:not-allowed}.nd-sessions__hint{margin:1rem 0 0;font-size:.72rem;color:#68766c;line-height:1.6}
.nd-booking-dialog{position:fixed;inset:0;margin:auto;border:0;padding:0;background:transparent;color:#1f2f28;width:min(760px,calc(100vw - 40px));max-height:min(90dvh,920px);overflow:visible;opacity:0;transform:translateY(11px) scale(.99);transition:opacity .38s ease,transform .38s cubic-bezier(.18,.7,.25,1)}.nd-booking-dialog::backdrop{background:rgba(9,20,18,.46);backdrop-filter:blur(4px);opacity:0;transition:opacity .38s ease}.nd-booking-dialog.nd-booking-dialog--visible{opacity:1;transform:translateY(0) scale(1)}.nd-booking-dialog.nd-booking-dialog--visible::backdrop{opacity:1}.nd-booking-dialog__surface{height:min(90dvh,920px);max-height:90dvh;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(209,220,210,.75);border-radius:18px;background:#faf9f3;box-shadow:0 30px 90px rgba(0,0,0,.2)}.nd-booking-dialog__head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem clamp(1rem,4vw,2rem);border-bottom:1px solid #e3e5dc;font-size:.61rem;font-weight:700;letter-spacing:.12em;color:#617467}.nd-booking-dialog__close{width:38px;height:38px;border:1px solid #d2d9d1;background:transparent;color:#1f3f32;border-radius:50%;display:grid;place-items:center;cursor:pointer}.nd-booking-dialog__close svg{width:18px;height:18px}.nd-booking-dialog__body{overflow-y:auto;overscroll-behavior:contain;padding:clamp(1.25rem,4vw,2.6rem);min-height:0}.nd-booking-dialog__body h2{font:400 clamp(2.3rem,5.3vw,3.7rem)/1.08 var(--serif);letter-spacing:-.04em;margin:.7rem 0 1rem}.nd-booking-dialog__body h2 em{font-weight:400}.nd-booking-dialog__lead{font-size:.88rem;color:#6c786d;line-height:1.7;max-width:570px}.nd-booking-summary{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;justify-content:space-between;margin:1.3rem 0 2rem;padding:1rem 1.25rem;background:#e7eee7;border-radius:12px;font-size:.84rem}.nd-booking-summary strong{font-size:1.15rem;color:#234738}.nd-booking-fieldset{border:0;border-top:1px solid #dce0d7;margin:1.7rem 0 0;padding:1.4rem 0 0;min-width:0}.nd-booking-fieldset legend{float:left;width:100%;padding:0 0 1rem;color:#6b7c70;font-size:.7rem;letter-spacing:.11em;font-weight:600}.nd-booking-fieldset legend span{font-size:1rem;color:#243d31;letter-spacing:0;margin-left:.5rem}.nd-booking-ticket{clear:both;display:flex;justify-content:space-between;align-items:center;gap:1.2rem;padding:.8rem 0;border-bottom:1px solid #e9e9e3}.nd-booking-ticket strong,.nd-booking-ticket small{display:block}.nd-booking-ticket strong{font-size:.92rem}.nd-booking-ticket small{font-size:.74rem;color:#7d8a7e;margin-top:.3rem}.nd-booking-stepper{display:flex;align-items:center;gap:.8rem}.nd-booking-stepper button{width:34px;height:34px;flex:none;display:grid;place-items:center;border:1px solid #bfd0c2;border-radius:50%;background:#f4f7f1;color:#294838;cursor:pointer;font-size:1.25rem}.nd-booking-stepper button:disabled{opacity:.32;cursor:default}.nd-booking-stepper output{min-width:2ch;text-align:center;font-weight:700}.nd-booking-total{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 0;color:#304639;font-size:.87rem}.nd-booking-total strong{font:400 1.7rem var(--serif)}.nd-booking-fields{clear:both;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.nd-booking-fields label{font-size:.78rem;font-weight:600;color:#42594b}.nd-booking-fields label span{font-weight:400;color:#7d8a7e}.nd-booking-fields input,.nd-booking-fields select{display:block;width:100%;min-width:0;margin-top:.5rem;padding:.84rem .9rem;background:#fffefa;color:#273a31;border:1px solid #ccd8cd;border-radius:8px;font:inherit;font-size:.87rem}.nd-booking-terms{clear:both;font-size:.79rem;color:#627265;line-height:1.7}.nd-booking-check{display:flex;align-items:flex-start;gap:.7rem;margin-top:.9rem;color:#324638;cursor:pointer}.nd-booking-check input{width:18px;height:18px;flex:none;margin-top:.17rem;accent-color:#244838}.nd-booking-inline-error{margin:.8rem 0;color:#a33b31;font-size:.8rem;font-weight:600}.nd-booking-cta{margin-top:1.4rem;width:100%;min-height:52px;padding:.9rem 1.2rem;border:1px solid #243f34;border-radius:9px;background:#243f34;color:#fff;font-weight:650;font-size:.88rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;cursor:pointer}.nd-booking-cta:hover{background:#365e49}.nd-booking-cta svg{width:19px;height:19px}.nd-booking-payment__brand{display:flex;align-items:center;gap:.9rem;border-top:1px solid #dce0d7;padding-top:1.4rem}.nd-booking-payment__mark{width:42px;height:42px;border-radius:12px;background:#253d35;color:white;display:grid;place-items:center;font-weight:700;font-size:1.4rem}.nd-booking-payment__brand strong,.nd-booking-payment__brand small{display:block}.nd-booking-payment__brand small{font-size:.69rem;color:#7b867e;margin-top:.3rem}.nd-booking-payment>p{line-height:1.7;color:#6f7b71;font-size:.86rem;margin-top:1.3rem}.nd-booking-payment__mock{border:1px solid #cbd8d0;border-radius:14px;padding:1.7rem;background:linear-gradient(135deg,#e4eee4,#f7f8f1);display:grid;gap:.65rem}.nd-booking-payment__mock span{font-size:.6rem;font-weight:700;letter-spacing:.13em;color:#567264}.nd-booking-payment__mock strong{font:400 clamp(1.2rem,4vw,1.7rem) var(--serif);letter-spacing:.08em}.nd-booking-payment__mock small{color:#617467}.nd-booking-payment__actions{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:.8rem}.nd-booking-payment__actions .nd-booking-cta{margin-top:0}.nd-booking-secondary{min-height:52px;border:1px solid #b8cabd;background:transparent;border-radius:9px;color:#344f3d;font-size:.86rem;cursor:pointer}.nd-booking-result{text-align:center;padding:1.7rem 0}.nd-booking-result__check{width:60px;height:60px;margin:0 auto 1.3rem;background:#e2f0e4;color:#285e3e;border-radius:50%;display:grid;place-items:center}.nd-booking-result__check svg{width:30px;height:30px}.nd-booking-result h3{font:400 2.1rem var(--serif)}.nd-booking-result p{color:#617368;line-height:1.65}.nd-booking-demo-id{font-size:.73rem;letter-spacing:.04em}
@keyframes nd-appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:680px){.booking .nd-dates{border-radius:18px;padding:1.05rem}.nd-dates__head{align-items:flex-end;gap:1rem}.nd-dates__nav{width:38px;height:38px}.nd-dates__grid{gap:.5rem .15rem}.nd-dates__day{width:min(100%,64px)}.nd-dates__number{font-size:1.55rem}.nd-dates__weekday,.nd-dates__month{font-size:.56rem}.nd-dates__range{font-size:.78rem}.nd-sessions__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.nd-sessions__slot{min-height:83px}.nd-booking-dialog{width:calc(100vw - 18px);max-height:calc(100dvh - 22px)}.nd-booking-dialog__surface{height:calc(100dvh - 22px);max-height:calc(100dvh - 22px);border-radius:14px}.nd-booking-dialog__head{padding:.8rem 1rem}.nd-booking-dialog__body{padding:1.25rem}.nd-booking-fields{grid-template-columns:1fr}.nd-booking-payment__actions{grid-template-columns:1fr}.nd-booking-payment__actions .nd-booking-cta{margin-top:0}}
@media(max-width:360px){.nd-dates__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.nd-dates__day{width:72px}}
@media(prefers-reduced-motion:reduce){.nd-dates__day,.nd-dates__nav,.nd-sessions__slot,.nd-booking-dialog,.nd-booking-dialog::backdrop{transition:none!important}.nd-dates__day:hover,.nd-sessions__slot:not(:disabled):hover{transform:none}.nd-sessions{animation:none}}

/* R4.10 — Dos modales editoriales apilados: fecha → sesiones → datos.
   Al cerrar datos permanece abierto el modal de sesiones, al cerrarlo reaparece el calendario. */
.nd-sessions-dialog{position:fixed;inset:0;margin:auto;padding:0;border:0;width:min(705px,calc(100vw - 44px));max-height:calc(100dvh - 48px);background:transparent;color:#243b30;opacity:0;transform:translateY(12px) scale(.986);transition:opacity .32s ease,transform .32s cubic-bezier(.2,.8,.2,1);overflow:visible}
.nd-sessions-dialog::backdrop{background:rgba(8,19,15,.38);backdrop-filter:blur(3px);opacity:0;transition:opacity .32s ease}
.nd-sessions-dialog--visible{opacity:1;transform:translateY(0) scale(1)}
.nd-sessions-dialog--visible::backdrop{opacity:1}
.nd-sessions-dialog__surface{max-height:calc(100dvh - 48px);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(226,231,222,.8);border-radius:22px;background:#faf9f4;box-shadow:0 25px 95px rgba(7,27,17,.21)}
.nd-sessions-dialog__content{padding:clamp(1.4rem,4vw,3rem);overflow-y:auto;overscroll-behavior:contain}
.nd-sessions-dialog__eyebrow{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.nd-sessions-dialog__mark{color:#b5a58b;font-size:1.4rem}
.nd-sessions-dialog__content h2{font:400 clamp(2.8rem,6vw,4.5rem)/1.05 var(--serif);letter-spacing:-.045em;margin:.8rem 0 1rem}
.nd-sessions-dialog__content h2 em{font-weight:400}
.nd-sessions-dialog__date{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:1rem 0 1.25rem;margin:1.55rem 0 1.1rem;border-top:1px solid #e4e6de;border-bottom:1px solid #e4e6de;color:#294737;font-size:.91rem;text-transform:capitalize}
.nd-sessions-dialog__date>svg{width:19px;height:19px;flex:none}
.nd-sessions-dialog__date button{margin-left:auto;display:inline-flex;align-items:center;gap:.3rem;border:0;background:transparent;color:#52755e;font:inherit;font-size:.76rem;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.nd-sessions-dialog__date button svg{width:14px;height:14px}
.nd-sessions-dialog .nd-sessions{margin:0;padding:0;border:0;animation:none}
.nd-sessions__label{font-size:.65rem;font-weight:700;letter-spacing:.15em;color:#718576;margin-bottom:.9rem}
.nd-sessions-dialog .nd-sessions__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.6rem,1.4vw,1rem)}
.nd-sessions-dialog .nd-sessions__slot{min-height:115px;gap:.65rem;border-radius:14px;background:#f5f7f0;border-color:#d4e0d3;position:relative}
.nd-sessions-dialog .nd-sessions__slot strong{font-size:clamp(1.9rem,3.8vw,2.5rem);letter-spacing:-.02em}
.nd-sessions-dialog .nd-sessions__slot span{font-size:.66rem;color:#597c62}
.nd-sessions-dialog .nd-sessions__slot:not(:disabled):focus-visible{outline:3px solid #a4bfa8;outline-offset:2px}
.nd-sessions-dialog .nd-sessions__slot:disabled span{color:#929a91}
.nd-sessions-dialog .nd-sessions__hint{display:flex;align-items:flex-start;gap:.45rem;margin-top:1rem}
.nd-sessions-dialog .nd-sessions__hint svg{width:16px;height:16px;flex:none;margin-top:2px}
.nd-sessions-dialog__back{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.6rem;padding:.6rem 0;background:transparent;border:0;color:#335642;font-size:.85rem;cursor:pointer}
.nd-sessions-dialog__back svg{width:18px;height:18px}
.nd-booking-dialog{width:min(750px,calc(100vw - 56px))}
.nd-booking-dialog::backdrop{background:rgba(8,19,15,.20);backdrop-filter:blur(2px)}
.nd-booking-return{display:inline-flex;align-items:center;gap:.4rem;background:transparent;border:0;padding:.3rem 0;margin:0 0 .25rem;color:#537562;font-size:.8rem;cursor:pointer}
.nd-booking-return svg{width:16px;height:16px}
.nd-sessions-dialog__back:hover,.nd-booking-return:hover,.nd-sessions-dialog__date button:hover{color:#152e23}
@media(max-width:680px){
 .nd-sessions-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 32px)}
 .nd-sessions-dialog__surface{max-height:calc(100dvh - 32px);border-radius:18px}
 .nd-sessions-dialog__content{padding:1.25rem}
 .nd-sessions-dialog__content h2{font-size:clamp(2.5rem,11vw,3.6rem)}
 .nd-sessions-dialog .nd-sessions__slot{min-height:106px}
 .nd-sessions-dialog .nd-sessions__slot strong{font-size:1.9rem}
 .nd-booking-dialog{width:calc(100vw - 30px);max-height:calc(100dvh - 50px)}
 .nd-booking-dialog__surface{height:calc(100dvh - 50px);max-height:calc(100dvh - 50px);border-radius:17px}
}
@media(prefers-reduced-motion:reduce){.nd-sessions-dialog,.nd-sessions-dialog::backdrop{transition:none!important}}
