/* Modal de ofertas, sección de vídeo y evaluación inicial */
.modal { position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(44, 44, 44, .55); backdrop-filter: blur(4px); opacity: 0; transition: opacity .4s var(--ease); overflow-y: auto; }
.modal[hidden] { display: none; }
.modal.is-open { opacity: 1; }
.modal__box { position: relative; width: min(880px, 100%); margin: auto; background: var(--cream); border-radius: var(--radius-lg); overflow: hidden; display: grid; grid-template-columns: 1fr 1.1fr; box-shadow: 0 40px 90px -20px rgba(0,0,0,.5); transform: translateY(40px) scale(.94); transition: transform .6s var(--ease); }
.modal.is-open .modal__box { transform: none; }
.modal__box.no-img { grid-template-columns: 1fr; width: min(520px, 100%); }
.modal__img { position: relative; min-height: 280px; background: var(--cream-2); }
.modal__img[hidden] { display: none; }
.modal__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.modal__tag { position: absolute; left: 16px; top: 16px; background: var(--ocre); color: #fff; font-weight: 600; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; padding: 7px 14px; border-radius: 999px; animation: bob 3s ease-in-out infinite; }
.modal__tag[hidden] { display: none; }
.modal__body { padding: clamp(28px, 4vw, 44px); display: flex; flex-direction: column; justify-content: center; }
.modal__body h2 { font-size: clamp(1.8rem, 3.4vw, 2.5rem); color: var(--ocre); }
.modal__body p { color: var(--ink-2); white-space: pre-line; }
.modal__body p[hidden] { display: none; }
.modal__price { font-family: var(--font-h); font-size: 2.4rem !important; color: var(--moss-d) !important; font-weight: 700; line-height: 1; font-variant-numeric: lining-nums; }
.modal__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 10px; }
.modal__actions a[hidden] { display: none; }
.modal__close { position: absolute; right: 14px; top: 14px; z-index: 2; width: 42px; height: 42px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); color: var(--ink); display: grid; place-items: center; cursor: pointer; transition: .3s var(--ease); box-shadow: var(--shadow); }
.modal__close:hover { background: var(--ocre); color: #fff; transform: rotate(90deg); }
.modal__dots { display: flex; gap: 8px; margin-top: 22px; }
.modal__dots[hidden] { display: none; }
.modal__dots i { width: 9px; height: 9px; border-radius: 50%; background: var(--cream-3); transition: .3s; }
.modal__dots i.is-on { background: var(--moss); width: 26px; border-radius: 9px; }
body.modal-open { overflow: hidden; }
@media (max-width: 760px) { .modal__box { grid-template-columns: 1fr; } .modal__img { min-height: 190px; } }

.video-sec { background: var(--moss-tint); }
.video { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(30px, 5vw, 80px); align-items: center; }
.video__frame { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius-lg); overflow: hidden; background: var(--moss-d) center / cover no-repeat; box-shadow: var(--shadow-lg); border: 8px solid #fff; }
.video__frame::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(44,44,44,.05), rgba(44,44,44,.35)); pointer-events: none; }
.video__frame iframe, .video__frame video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: #000; z-index: 1; }
.video__play { position: absolute; inset: 0; width: 100%; border: 0; background: none; cursor: pointer; display: grid; place-items: center; }
.video__play span { width: 88px; height: 88px; border-radius: 50%; background: var(--moss); color: #fff; display: grid; place-items: center; box-shadow: 0 0 0 0 rgba(90,127,84,.6); animation: playPulse 2.4s infinite; transition: transform .35s var(--ease), background .3s; }
.video__play .icon { margin-left: 4px; fill: currentColor; stroke: none; }
.video__play:hover span { transform: scale(1.12); background: var(--ocre); }
@keyframes playPulse { 70% { box-shadow: 0 0 0 26px rgba(90,127,84,0); } 100% { box-shadow: 0 0 0 0 rgba(90,127,84,0); } }
@media (max-width: 860px) { .video { grid-template-columns: 1fr; } }

.radios { display: flex; flex-wrap: wrap; gap: 10px; }
.radios label { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border: 1.5px solid var(--cream-3); border-radius: 999px; background: #fff; cursor: pointer; font-size: .95rem; transition: .25s; }
.radios label:hover { border-color: var(--ocre); }
.radios input { accent-color: var(--moss); }
.radios label:has(input:checked) { background: var(--moss-tint); border-color: var(--moss); color: var(--moss-d); font-weight: 500; }
.form-q { font-weight: 500; display: block; margin-bottom: 8px; font-size: .95rem; }

.video__frame.is-file::before { display: none; }
.video__frame.is-file { aspect-ratio: auto; background: #000; }
.video__frame.is-file video { position: static; display: block; width: 100%; height: auto; max-height: 78vh; object-fit: contain; background: #000; z-index: auto; }
.video__frame.is-file .video__play { background: linear-gradient(180deg, rgba(44,44,44,0), rgba(44,44,44,.25)); }
.video__play[hidden] { display: none; }

/* Portada reordenable: fondos alternos automáticos */
.home-sections > section:nth-of-type(even) { background: #fff; }
.home-sections > section.video-sec { background: var(--moss-tint); }

.video__play { z-index: 3; }

.home-sections > section.cta-band { background: var(--moss); }
