/* Reserva y pago en línea de El Estudio (renta regular y Navidad) y páginas personales del cliente (/reservas/).
   Marca de Ochenta & Ocho: Bebas para la voz, Poppins para leer, rojo solo como acento, esquinas rectas, sin sombras
   ni desenfoques. Funciona sobre negro y sobre las secciones claras (.light). Ningún texto por debajo de 13 px. */

.rv-seccion,.rv-pagina-navidad,.nv-teaser{--rv-line:#333;--rv-muted:#b8b8b8;--rv-field:#0e0e0c;--rv-field-ink:#fff;--rv-field-line:#666;--rv-soft:#1a1a1a;color-scheme:dark}
.rv-seccion.light,.rv-pagina-navidad .light{--rv-line:#d2d2d7;--rv-muted:#555;--rv-field:#fff;--rv-field-ink:#111;--rv-field-line:#999;--rv-soft:#f5f5f7;color-scheme:light}
.rv-seccion [hidden],.rv-pagina [hidden]{display:none!important}

/* Tarifas: cuatro columnas separadas por líneas finas, sin tarjetas */
.rv-tarifas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--rv-line);margin-top:8px}
.rv-tarifa{padding:28px 24px 32px 0;border-right:1px solid var(--rv-line);min-width:0}
.rv-tarifa+.rv-tarifa{padding-left:24px}
.rv-tarifa:last-child{border-right:0}
.rv-tarifa-letra{font:400 1rem/1 var(--display);letter-spacing:.14em;color:var(--red);margin:0}
.rv-tarifa h3{font:400 1.75rem/1.05 var(--display);margin:14px 0 10px;text-transform:none}
.rv-tarifa-precio{margin:0 0 14px}
.rv-tarifa-precio strong{font:400 2.75rem/1 var(--display)}
.rv-tarifa-precio span{font-size:.875rem;color:var(--rv-muted)}
.rv-tarifa p{font-size:.9375rem;line-height:1.6;margin-block:0 10px}
.rv-tarifa .rv-tarifa-cond{font-size:.8125rem;color:var(--rv-muted)}
.rv-tarifa .rv-tarifa-promo{font-size:.875rem;border-left:2px solid var(--red);padding-left:12px;margin-top:16px}
.rv-tarifa-nota{font-size:.8125rem;line-height:1.7;color:var(--rv-muted);max-width:90ch;margin:20px 0 56px}

/* Aplicación: pasos a la izquierda, resumen fijo a la derecha */
.rv-app{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:56px;align-items:start}
.rv-recorrido{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--rv-line);scroll-margin-top:calc(var(--header-height,72px) + 28px);gap:12px}
.rv-recorrido button{display:flex;align-items:center;gap:10px;min-height:56px;padding:12px 4px;border:0;border-bottom:3px solid transparent;background:none;color:var(--rv-muted);font:500 .9375rem/1.4 var(--body);text-align:left;cursor:pointer;scroll-margin-top:calc(var(--header-height,72px) + 28px)}
.rv-recorrido button span{font:400 1rem/1 var(--display);letter-spacing:.08em}
.rv-recorrido [aria-current=step]{border-bottom-color:var(--red);color:var(--rv-field-ink)}
.rv-recorrido button:disabled{cursor:default;opacity:.65}
.rv-recorrido button:focus-visible,.rv-continuar button:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.rv-continuar{padding:20px 0;border-top:1px solid var(--rv-line)}
.rv-continuar>div{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}
.rv-continuar .button{min-height:48px}
.rv-continuar .button:disabled{opacity:.55;cursor:wait}
.rv-avance{font-size:.9375rem;line-height:1.6;margin:0 0 16px;color:var(--rv-muted)}
.rv-paso[disabled]{display:none}
.rv-pasos{min-width:0}
.rv-recorrido~.rv-pasos .rv-paso-num{display:none}
.rv-paso{border:0;border-top:1px solid var(--rv-line);margin:0;padding:28px 0 36px;min-width:0;transition:opacity .2s}
.rv-paso[disabled]{opacity:.42}
.rv-paso>legend{display:flex;align-items:baseline;gap:14px;padding:0;margin-bottom:20px;float:left;width:100%}
.rv-paso>legend~*{clear:both}
.rv-paso-num{font:400 1rem/1 var(--display);letter-spacing:.14em;color:var(--red)}
.rv-paso-titulo{font:400 clamp(1.75rem,3vw,2.25rem)/1 var(--display)}

.rv-opciones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rv-opcion{position:relative;display:block;cursor:pointer}
.rv-opcion input,.rv-hora input,.rv-dia-radio{position:absolute;opacity:0;width:1px;height:1px}
.rv-opcion-cuerpo{display:grid;gap:6px;height:100%;padding:18px 18px 20px;border:1px solid var(--rv-line);transition:border-color .16s,background-color .16s}
.rv-opcion-letra{font:400 .9375rem/1 var(--display);letter-spacing:.14em;color:var(--red)}
.rv-opcion strong{font-size:1rem;line-height:1.35;font-weight:500}
.rv-opcion-precio{font-size:.9375rem}
.rv-opcion small{font-size:.8125rem;line-height:1.6;color:var(--rv-muted)}
.rv-opcion input:checked+.rv-opcion-cuerpo{border-color:var(--red);outline:1px solid var(--red);outline-offset:-2px}
.rv-opcion input:focus-visible+.rv-opcion-cuerpo,.rv-hora input:focus-visible+span{outline:2px solid var(--red);outline-offset:3px}
@media (hover:hover){.rv-opcion:hover .rv-opcion-cuerpo{border-color:var(--rv-field-line)}.rv-opcion:hover input:checked+.rv-opcion-cuerpo{border-color:var(--red)}}

.rv-check{display:flex;align-items:flex-start;gap:12px;font-size:.9375rem;line-height:1.6;margin-block:16px;cursor:pointer}
.rv-check input{accent-color:var(--red);width:20px;height:20px;flex-shrink:0;margin:2px 0 0}
.rv-check a{text-decoration:underline;text-underline-offset:3px}
.rv-check small{color:var(--rv-muted);font-size:.875rem}

/* Calendario */
.rv-calendario{max-width:460px}
.rv-calendario[aria-busy=true]{opacity:.6}
.rv-cal-cabeza{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.rv-cal-mes{font:400 1.5rem/1 var(--display);margin:0;text-transform:capitalize}
.rv-cal-nav{appearance:none;width:44px;height:44px;border:1px solid var(--rv-line);background:transparent;color:inherit;font:inherit;font-size:1.125rem;cursor:pointer}
.rv-cal-nav:disabled{opacity:.3;cursor:default}
.rv-cal{display:grid;gap:4px}
.rv-cal-fila{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.rv-cal-dias span{font-size:.8125rem;color:var(--rv-muted);text-align:center;padding-bottom:4px}
.rv-dia{appearance:none;width:100%;aspect-ratio:1;min-height:40px;border:1px solid transparent;background:transparent;color:inherit;font:500 .9375rem/1 var(--body);cursor:pointer;display:grid;place-items:center;transition:background-color .16s,border-color .16s,color .16s}
.rv-dia.es-vacio{cursor:default}
.rv-dia.es-disponible{border-color:var(--rv-line)}
.rv-dia.es-lleno{color:var(--rv-muted);text-decoration:line-through;cursor:not-allowed}
.rv-dia.es-cerrado{color:var(--rv-muted);opacity:.55;cursor:not-allowed}
.rv-dia[aria-pressed=true]{background:var(--red);border-color:var(--red);color:#fff}
.rv-dia:focus-visible,.rv-cal-nav:focus-visible{outline:2px solid var(--red);outline-offset:2px}
@media (hover:hover){.rv-dia.es-disponible:hover{border-color:var(--red)}}
.rv-cal-leyenda{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.8125rem;color:var(--rv-muted);margin-top:14px}
.rv-cal-leyenda span::before{content:"";display:inline-block;width:10px;height:10px;margin-right:8px;border:1px solid var(--rv-line);vertical-align:-1px}
.rv-cal-leyenda .es-lleno::before{background:linear-gradient(to top right,transparent 45%,var(--rv-muted) 45% 55%,transparent 55%)}
.rv-cal-leyenda .es-cerrado::before{border-color:transparent;background:var(--rv-soft)}

/* Horarios y turnos */
.rv-horas,.rv-turnos{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;margin-bottom:20px}
.rv-horas[aria-busy=true],.rv-turnos[aria-busy=true]{opacity:.6}
.rv-hora{position:relative;cursor:pointer}
.rv-hora span{display:grid;gap:2px;padding:12px;min-height:56px;border:1px solid var(--rv-line);transition:background-color .16s,border-color .16s}
.rv-hora strong{font-size:1rem;font-weight:500}
.rv-hora small{font-size:.8125rem;color:var(--rv-muted)}
.rv-hora input:checked+span{background:var(--red);border-color:var(--red);color:#fff}
.rv-hora input:checked+span small{color:#fff}
.rv-hora input:disabled+span{opacity:.45;cursor:not-allowed}
.rv-hora.es-ocupado input:disabled+span strong{text-decoration:line-through}
@media (hover:hover){.rv-hora input:not(:disabled):not(:checked):hover+span,.rv-hora:hover input:not(:disabled):not(:checked)+span{border-color:var(--rv-field-line)}}

/* Campos */
.rv-fila{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}
.rv-campo{display:flex;flex-direction:column;gap:8px;font-size:.875rem;line-height:1.5;margin-bottom:16px;min-width:0}
.rv-campo>span{color:var(--rv-muted)}
.rv-campo input,.rv-campo select,.rv-campo textarea{width:100%;min-width:0;min-height:48px;padding:11px 12px;border:1px solid var(--rv-field-line);border-radius:0;background:var(--rv-field);color:var(--rv-field-ink);font:400 1rem/1.4 var(--body);box-sizing:border-box}
.rv-campo textarea{resize:vertical;min-height:96px}
.rv-campo input:focus,.rv-campo select:focus,.rv-campo textarea:focus{outline:2px solid var(--red);outline-offset:1px}
.rv-contador input{max-width:140px}
.rv-ayuda{font-size:.875rem;line-height:1.6;color:var(--rv-muted);margin-block:4px 12px;max-width:62ch}
.rv-subtitulo{font-size:.875rem;color:var(--rv-muted);margin-block:8px}
.rv-equipo{margin-block:4px 16px}
.rv-equipo-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid var(--rv-line);font-size:.9375rem}
.rv-equipo-item input{width:84px;min-height:44px;padding:8px;border:1px solid var(--rv-field-line);background:var(--rv-field);color:var(--rv-field-ink);font:inherit;border-radius:0}
.rv-codigo{display:flex;align-items:flex-end;gap:12px}
.rv-codigo .rv-campo{flex:1;margin-bottom:0}
.rv-codigo .button{min-height:48px}
.rv-promos{list-style:none;padding:0;margin:8px 0 0;font-size:.875rem;line-height:1.6}
.rv-promos li{padding:8px 0;border-top:1px solid var(--rv-line)}

/* Políticas */
.rv-politicas,.rv-politicas-previa{border-top:1px solid var(--rv-line);border-bottom:1px solid var(--rv-line);padding-block:4px;margin-bottom:12px}
.rv-politicas summary,.rv-politicas-previa summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;font-weight:500;font-size:.9375rem}
.rv-politicas[open]{max-height:min(52vh,460px);overflow:auto;overscroll-behavior:contain}
.rv-politicas h4,.rv-politicas h3,.rv-politicas-previa h4{font:500 .9375rem/1.4 var(--body);margin:16px 0 4px;text-transform:none;letter-spacing:0}
.rv-politicas p,.rv-politicas-previa p{font-size:.875rem;line-height:1.65;color:var(--rv-muted);margin:0 0 8px;max-width:72ch}
.rv-politicas-previa{margin-top:48px}
.rv-politicas-previa[open] summary span{transform:rotate(45deg)}
.rv-politicas-previa summary span{transition:transform .2s cubic-bezier(.23,1,.32,1)}

/* Pago */
.rv-tipo-pago{border:0;padding:0;margin:20px 0 8px}
.rv-tipo-pago legend{font-size:.875rem;color:var(--rv-muted);margin-bottom:4px;padding:0}
.rv-tipo-pago .rv-check{padding:14px 16px;border:1px solid var(--rv-line);margin-block:8px}
.rv-tipo-pago .rv-check:has(input:checked){border-color:var(--red)}
.rv-error{border-left:2px solid var(--red);padding:10px 14px;margin-block:16px;font-size:.9375rem;line-height:1.6;background:var(--rv-soft)}
.rv-aviso{border-left:2px solid var(--red);padding-left:14px;margin:0 0 16px;font-size:.9375rem;line-height:1.6}
.rv-pagar{width:100%;min-height:52px;margin-top:12px;font-size:1rem}
.rv-pagar:disabled{opacity:.45;cursor:not-allowed}
.rv-sin-api{font-size:1rem;line-height:1.7;border-left:2px solid var(--red);padding-left:16px;margin-block:24px}

/* Aviso simplificado (art. 16 LFPDPPP) y datos del proveedor antes de pagar (art. 76 Bis LFPC) */
.aviso-simplificado{font-size:.875rem;line-height:1.6;color:var(--rv-muted,#555);margin:12px 0;max-width:72ch}
.aviso-simplificado a,.rv-proveedor a{text-decoration:underline;text-underline-offset:3px;color:inherit}
.rv-proveedor{border-top:1px solid var(--rv-line);margin-top:20px;padding-top:14px;font-size:.875rem;line-height:1.6;color:var(--rv-muted)}
.rv-proveedor p{margin:0 0 8px;max-width:72ch}
.rv-proveedor strong,.aviso-simplificado strong{color:var(--rv-field-ink,#111);font-weight:500}

/* Resumen */
.rv-resumen-caja{position:sticky;top:calc(var(--header-height,72px) + 72px);border-top:2px solid var(--red);padding-top:20px;min-width:0}
.rv-resumen{display:grid;margin:12px 0 0}
.rv-resumen div{display:grid;grid-template-columns:.8fr 1.2fr;gap:16px;padding-block:10px;border-top:1px solid var(--rv-line);font-size:.9375rem;line-height:1.5}
.rv-resumen dt{color:var(--rv-muted)}
.rv-resumen dd{margin:0;overflow-wrap:anywhere}
.rv-lineas{list-style:none;padding:0;margin:16px 0 0;border-top:1px solid var(--rv-line)}
.rv-lineas li{display:flex;justify-content:space-between;gap:16px;padding-block:10px;border-bottom:1px solid var(--rv-line);font-size:.9375rem;line-height:1.45}
.rv-lineas li>span:first-child{display:grid;gap:2px}
.rv-lineas li>span:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.rv-lineas strong{font-weight:500}
.rv-lineas small{font-size:.8125rem;color:var(--rv-muted)}
.rv-lineas .es-descuento>span:last-child{color:var(--red)}
.rv-lineas .es-info{color:var(--rv-muted)}
.rv-total{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:16px 0 6px}
.rv-total span{font:400 1.25rem/1 var(--display);letter-spacing:.06em}
.rv-total strong{font:400 2.75rem/1 var(--display);font-variant-numeric:tabular-nums}
.rv-anticipo{display:flex;justify-content:space-between;gap:16px;font-size:.9375rem;color:var(--rv-muted);margin:0}
.rv-nota{font-size:.875rem;line-height:1.6;margin-top:14px;color:var(--rv-muted)}
.rv-hecho{border-top:2px solid var(--red);padding-top:24px;grid-column:1/-1}
.rv-hecho h3{font:400 clamp(2rem,4vw,3rem)/1 var(--display);margin:10px 0}
.rv-hecho p{font-size:1rem;line-height:1.6;max-width:60ch}

/* Barra inferior del teléfono: total a la vista y salto al pago */
.rv-barra{display:none}

/* Navidad: tema de temporada en navidad.css */
.rv-escenarios{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.rv-escenario-foto{aspect-ratio:4/3;display:grid;place-items:center;background:var(--rv-soft,#f5f5f7)}
.rv-escenario h3{font:400 1.75rem/1.1 var(--display);margin:18px 0 8px}
.rv-escenario p{font-size:.9375rem;line-height:1.6}

@media (max-width:1100px){.rv-tarifas{grid-template-columns:repeat(2,minmax(0,1fr))}.rv-tarifa:nth-child(2n){border-right:0}.rv-tarifa:nth-child(2n+1){padding-left:0}.rv-tarifa:nth-child(n+3){border-top:1px solid var(--rv-line)}}
@media (max-width:960px){
  .rv-app{grid-template-columns:1fr;gap:0}
  .rv-recorrido{margin-bottom:24px;gap:8px}
  .rv-recorrido button{display:grid;gap:6px;align-content:start;font-size:.8125rem;padding:12px 0;min-height:68px}
  .rv-continuar>div{flex-wrap:nowrap}
  .rv-continuar .button{font-size:.875rem;padding-inline:12px}
  .rv-resumen-caja{display:none}
  .rv-paso[data-paso=pago]{scroll-margin-top:calc(var(--header-height,72px) + 16px)}
  .rv-barra:not([hidden]){display:flex;position:fixed;z-index:30;left:0;right:0;bottom:0;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#000;color:#fff;border-top:1px solid #333;font-size:1rem}
  .rv-barra .button{min-height:44px}
  /* El botón flotante de WhatsApp sube para no tapar «Revisar y pagar». */
  body:has(.rv-barra:not([hidden])) .wa-float{bottom:calc(84px + env(safe-area-inset-bottom))}
  /* En el paso de pago, el botón flotante no tapa el total ni el botón de pagar. */
  .rv-en-pago .wa-float{display:none!important}
}
@media (max-width:760px){
  .rv-tarifas{grid-template-columns:1fr}
  .rv-tarifa,.rv-tarifa+.rv-tarifa{padding:24px 0 28px;border-right:0}
  .rv-tarifa+.rv-tarifa{border-top:1px solid var(--rv-line)}
  .rv-opciones,.rv-fila,.rv-escenarios{grid-template-columns:1fr}
  .rv-horas,.rv-turnos{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}
  .rv-calendario{max-width:none}
  .rv-codigo{flex-wrap:wrap}
  .rv-ayuda,.rv-nota,.rv-opcion small,.rv-tarifa .rv-tarifa-cond,.rv-lineas small,.rv-cal-leyenda,.rv-hora small{font-size:.875rem}
}

/* En el teléfono el resumen y el desglose completos se repiten junto al botón de pago (mismo contenido que la columna). */
.rv-resumen-movil{display:none;border-top:2px solid var(--red);padding-top:16px;margin-bottom:20px}
@media (max-width:960px){.rv-resumen-movil{display:block}}

@media (prefers-reduced-motion:reduce){.rv-paso,.rv-dia,.rv-hora span,.rv-opcion-cuerpo,.rv-politicas-previa summary span{transition:none}}

/* Páginas personales del cliente (/reservas/estado.php, cotizacion.php y el simulador local) */
.rv-pagina{--rv-line:#d2d2d7;--rv-muted:#555;--rv-field:#fff;--rv-field-ink:#111;--rv-field-line:#999;--rv-soft:#f5f5f7;--red:#d1182e;--display:'Bebas Neue','Arial Narrow',Impact,sans-serif;--body:'Poppins',Arial,sans-serif;--utility:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;margin:0;background:#fff;color:#111;font:400 16px/1.6 var(--body);color-scheme:light;-webkit-text-size-adjust:100%}
.rv-pagina *{box-sizing:border-box}
.rv-cabecera{background:#000;padding:16px 24px}
.rv-cabecera img{display:block;width:150px;height:auto}
.rv-principal{max-width:760px;margin:0 auto;padding:48px 24px 72px}
.rv-caja h1{font:400 clamp(2.5rem,7vw,4rem)/.98 var(--display);margin:10px 0 14px;font-weight:400}
.rv-eyebrow{font:400 .9375rem/1.2 var(--display);letter-spacing:.14em;color:var(--red);margin:0;text-transform:uppercase}
.rv-linea{font-size:1.0625rem;line-height:1.6;margin:0 0 24px;max-width:58ch}
.rv-pagina .rv-resumen{margin-block:24px}
.rv-pagina .rv-resumen div{grid-template-columns:.7fr 1.3fr}
.rv-pagina .rv-fuerte dd{font-weight:600}
.rv-acciones{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-block:24px}
.rv-pagina .button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 22px;border:1px solid transparent;border-radius:4px;font:500 .9375rem/1.2 var(--utility);text-decoration:none;cursor:pointer;transition:background-color .2s,transform .16s cubic-bezier(.23,1,.32,1)}
.rv-pagina .button:active{transform:scale(.97)}
.rv-pagina .button:disabled{opacity:.45;cursor:not-allowed}
.rv-pagina .button-red{background:var(--red);border-color:var(--red);color:#fff}
.rv-pagina .button-ghost{background:transparent;border-color:currentColor;color:inherit}
@media (hover:hover){.rv-pagina .button-red:hover{background:#b3142a;border-color:#b3142a}.rv-pagina .button-ghost:hover{background:#f5f5f7}}
.rv-pagina .button:focus-visible,.rv-pagina a:focus-visible,.rv-pagina summary:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.rv-formulario{margin-top:24px}
.rv-pago{display:grid;gap:4px;margin-top:8px}
.rv-monto{font:400 2.75rem/1 var(--display);margin:8px 0}
.rv-simulador{border:1px dashed #999;padding:20px;margin-block:24px;background:var(--rv-soft)}
.rv-simulador p{margin-top:0}
.rv-pie{border-top:1px solid #d2d2d7;padding:24px;text-align:center;font-size:.875rem;color:#555}
.rv-pie p{margin:4px 0}
.rv-pie a{color:inherit}
@media print{.rv-cabecera{-webkit-print-color-adjust:exact;print-color-adjust:exact}.rv-acciones,.rv-pie,.rv-simulador{display:none}.rv-politicas[open]{max-height:none;overflow:visible}.rv-principal{padding:0}}
