/* Estructura común de las landings (Lucas y Jonathan): banda clara arriba, agenda en ventana, casos en banda de color, preguntas, agenda final y pie. Los colores y las fuentes salen de tema.css. */
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { margin: 0; background: var(--oscuro-2); color: var(--texto); font: 400 17px/1.6 var(--cuerpo); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; height: auto; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: var(--display); margin: 0; letter-spacing: -0.02em; line-height: 1.1; text-wrap: balance; }
p { margin: 0; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--acento); outline-offset: 3px; border-radius: 6px; }

.in { max-width: 1216px; margin: 0 auto; padding-left: max(20px, env(safe-area-inset-left, 0px)); padding-right: max(20px, env(safe-area-inset-right, 0px)); }
.estrecho { max-width: 896px; }
.label { font: 500 .8rem/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--texto-sub); display: inline-flex; align-items: center; gap: 14px; }
.label::before { content: ""; width: 32px; height: 1px; background: currentColor; opacity: .6; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: var(--acento); color: var(--acento-texto); font: 600 1rem/1 var(--display); letter-spacing: -0.01em; padding: 15px 24px; border-radius: 999px; border: 0; text-decoration: none; cursor: pointer; white-space: nowrap; transition: transform .15s ease, box-shadow .15s ease, filter .15s ease; }
.btn:hover { transform: translateY(-1px); filter: brightness(1.06); box-shadow: 0 10px 28px var(--acento-sombra); }
.btn svg { width: 18px; height: 18px; flex: none; }
.vivo { width: 8px; height: 8px; border-radius: 50%; background: var(--vivo); display: inline-block; box-shadow: 0 0 0 0 var(--vivo); animation: latido 2.2s infinite; }
@keyframes latido { 0% { box-shadow: 0 0 0 0 rgba(34, 197, 94, .55); } 70% { box-shadow: 0 0 0 8px rgba(34, 197, 94, 0); } 100% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0); } }

/* Barra flotante de arriba: aparece al pasar la primera agenda */
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); background: var(--oscuro-2); z-index: 60; }
.cabecera { position: fixed; top: calc(16px + env(safe-area-inset-top, 0px)); left: 0; right: 0; z-index: 50; padding: 0 max(16px, env(safe-area-inset-right, 0px)) 0 max(16px, env(safe-area-inset-left, 0px)); opacity: 0; transform: translateY(-12px); pointer-events: none; transition: opacity .3s ease, transform .3s ease; }
.cabecera.ver { opacity: 1; transform: none; pointer-events: auto; }
.cabecera nav { max-width: 1024px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 8px 8px 8px 20px; border-radius: 999px; background: var(--nav-fondo); border: 1px solid rgba(255, 255, 255, .1); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); box-shadow: 0 10px 15px -3px rgba(0, 0, 0, .2), 0 4px 6px -4px rgba(0, 0, 0, .2); }
.logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: #FFFFFF; font: 700 1rem/1 var(--display); letter-spacing: -0.02em; white-space: nowrap; }
.logo .icono { width: 26px; height: 26px; flex: none; }
.logo sup { font: 500 .6rem/1 var(--mono); opacity: .6; letter-spacing: .04em; }
.enlaces { display: flex; gap: 28px; }
.enlaces a { font: 400 .75rem/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: rgba(255, 255, 255, .6); text-decoration: none; }
.enlaces a:hover { color: #FFFFFF; }
.nav-der { display: flex; align-items: center; gap: 14px; }
.abierta { display: inline-flex; align-items: center; gap: 8px; font: 400 .7rem/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .6); }
.cabecera .btn { padding: 12px 20px; font-size: .92rem; }

/* Banda clara de arriba */
.portada { background: var(--claro); color: var(--claro-texto); padding-block: 22px 52px; }
.portada .in { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 18px; }
.powered { align-self: flex-end; display: inline-flex; align-items: center; gap: 12px; padding: 8px 18px 8px 16px; border-radius: 999px; border: 1px solid var(--claro-borde); font: 400 .72rem/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--claro-sub); background: rgba(255, 255, 255, .45); }
.powered img { height: 20px; width: auto; }
.pastilla { font: 700 .78rem/1.35 var(--mono); letter-spacing: .12em; text-transform: uppercase; background: var(--acento); color: var(--acento-texto); padding: 10px 18px; border-radius: 999px; box-shadow: 0 10px 24px var(--acento-sombra); max-width: 100%; }
.portada h1 { font-size: clamp(2.1rem, 4.2vw, 3.1rem); font-weight: 800; letter-spacing: -0.035em; line-height: 1.08; max-width: 22ch; }
.portada h1 em { font-style: normal; color: var(--acento-claro); }
.portada h1 mark { background: linear-gradient(transparent 58%, var(--subrayado) 58%); color: inherit; padding: 0 .06em; }
.portada .sub { font-size: clamp(1.05rem, 1.6vw, 1.25rem); color: var(--claro-sub); max-width: 52ch; }

/* Agenda */
.agenda { background: var(--oscuro); padding-block: clamp(56px, 7vw, 64px) clamp(56px, 7vw, 72px); }
.agenda-final { background: var(--oscuro-3); padding-block: clamp(72px, 9vw, 96px); }
.agenda .in, .agenda-final .in { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 18px; }
.agenda h2 { font-size: clamp(1.5rem, 2.6vw, 1.75rem); font-weight: 700; display: inline-flex; align-items: center; gap: 12px; color: #FFFFFF; }
.agenda-final h2 { font-size: clamp(2rem, 4vw, 2.9rem); font-weight: 800; letter-spacing: -0.035em; color: #FFFFFF; max-width: 16ch; }
.agenda-final .texto-intro { color: var(--texto-sub); max-width: 52ch; font-size: .98rem; }
.ventana { width: 100%; max-width: 856px; background: var(--ventana); border: 1px solid var(--raya); border-radius: 16px; overflow: hidden; text-align: left; box-shadow: 0 40px 90px rgba(0, 0, 0, .45); margin-top: 6px; }
.ventana-barra { display: flex; align-items: center; gap: 6px; padding: 12px 16px; border-bottom: 1px solid var(--raya); }
.ventana-barra i { width: 9px; height: 9px; border-radius: 50%; background: var(--raya); }
.ventana-barra span { margin-left: auto; font: 500 .74rem/1 var(--mono); color: var(--texto-sub); letter-spacing: .06em; }
.agenda .nota, .agenda-final .nota { color: var(--texto-sub); font-size: .86rem; max-width: 46ch; }
.agenda .nota a, .agenda-final .nota a { color: var(--texto); }

/* Calendario de reservas: tarjeta blanca dentro de la ventana, como el de Content Capital */
.reserva { padding: 18px; }
.r-tarjeta { max-width: 480px; margin: 0 auto; background: #FFFFFF; color: #1F2328; border-radius: 8px; overflow: hidden; font-family: var(--cuerpo); text-align: left; }
.r-pasos { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 18px; padding: 14px 16px; border-bottom: 1px solid #E5E7EB; font-size: .9rem; color: #9CA3AF; }
.r-pasos span { display: inline-flex; align-items: center; gap: 7px; }
.r-pasos i { width: 8px; height: 8px; border-radius: 50%; background: #D1D5DB; }
.r-pasos .activo { color: #1F2328; }
.r-pasos .activo i { background: var(--acento); }
.r-pasos .hecho i { background: #22C55E; }
.r-contenido { padding: 20px 20px 24px; display: flex; flex-direction: column; gap: 16px; }
.r-titulo { font: 600 1.3rem/1.25 var(--cuerpo); letter-spacing: -0.01em; color: #1F2328; }
.r-form-datos, .r-form-final { display: flex; flex-direction: column; gap: 12px; }
.r-importante { max-height: 230px; overflow-y: auto; display: flex; flex-direction: column; gap: 12px; font-size: .92rem; line-height: 1.45; color: #374151; padding-right: 8px; margin-bottom: 4px; }
.r-importante .r-imp-titulo { font-weight: 600; color: #1F2328; }
.r-tarjeta input, .r-tarjeta select { font: inherit; font-size: .98rem; color: #1F2328; background: #FFFFFF; border: 1px solid #D1D5DB; border-radius: 6px; padding: 11px 12px; width: 100%; }
.r-tarjeta input::placeholder { color: #6B7280; }
.r-tarjeta input:focus, .r-tarjeta select:focus { outline: none; border-color: var(--acento); box-shadow: 0 0 0 3px var(--acento-sombra); }
.r-tel { display: flex; }
.r-tel select { width: auto; flex: none; border-radius: 6px 0 0 6px; border-right: 0; background: #F3F4F6; padding-right: 6px; }
.r-tel input { border-radius: 0 6px 6px 0; }
.r-legal { font-size: .78rem; line-height: 1.45; color: #4B5563; }
.r-tarjeta .r-aviso { color: #DC2626; font-size: .88rem; }
.r-continuar { display: inline-flex; align-items: center; justify-content: center; gap: 6px; width: 100%; background: var(--acento); color: var(--acento-texto); border: 0; border-radius: 6px; padding: 13px 16px; font: 600 1rem/1 var(--cuerpo); cursor: pointer; text-decoration: none; }
.r-continuar svg { width: 16px; height: 16px; }
.r-continuar:hover { filter: brightness(1.08); }
.r-quien { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: #F3F4F6; border-radius: 6px; padding: 10px 12px; font-size: .9rem; color: #374151; }
.r-quien span { min-width: 0; overflow-wrap: anywhere; }
.r-quien button { background: none; border: 0; color: var(--acento-claro); font-weight: 600; cursor: pointer; font-size: .88rem; flex: none; }
.r-calendario { position: relative; }
.r-calendario.bloqueado .r-mes, .r-calendario.bloqueado .r-semana, .r-calendario.bloqueado .r-dias, .r-calendario.bloqueado .r-zona { opacity: .4; }
.r-mes { display: flex; align-items: center; justify-content: space-between; margin: 6px 0 12px; }
.r-mes b { font-weight: 500; font-size: 1.1rem; color: #374151; }
.r-mes div { display: flex; gap: 6px; }
.r-mes button { width: 32px; height: 32px; border: 1px solid #E5E7EB; border-radius: 6px; background: #FFFFFF; color: #374151; cursor: pointer; display: grid; place-items: center; }
.r-mes button:disabled { opacity: .4; cursor: default; }
.r-mes button svg { width: 16px; height: 16px; }
.r-semana, .r-dias { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; text-align: center; }
.r-semana span { font-size: .72rem; font-weight: 500; color: #9CA3AF; padding-block: 6px; }
.r-dias button { aspect-ratio: 1; border: 0; border-radius: 50%; background: transparent; color: #9CA3AF; font: 500 .95rem/1 var(--cuerpo); cursor: pointer; font-variant-numeric: tabular-nums; }
.r-dias button.libre { color: var(--acento-claro); background: var(--dia-claro); font-weight: 700; }
.r-dias button.elegido { background: var(--acento); color: var(--acento-texto); }
.r-zona { font-size: .75rem; color: #6B7280; margin-top: 10px; }
.r-toast { position: absolute; left: 50%; top: 58%; transform: translate(-50%, -50%); width: min(280px, 90%); background: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 6px; box-shadow: 0 12px 32px rgba(0, 0, 0, .16); padding: 12px 16px; font-size: .9rem; line-height: 1.4; color: #1F2328; text-align: center; }
.r-horas { margin-top: 16px; border-top: 1px solid #E5E7EB; padding-top: 14px; }
.r-dia-elegido { font-weight: 600; color: #1F2328; margin-bottom: 10px; }
.r-dia-elegido::first-letter, .r-elegido span::first-letter { text-transform: uppercase; }
.r-horas-rejilla { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.r-horas-rejilla button { border: 1px solid var(--acento-claro); background: #FFFFFF; color: var(--acento-claro); border-radius: 6px; padding: 10px 6px; font: 600 .95rem/1 var(--cuerpo); cursor: pointer; font-variant-numeric: tabular-nums; }
.r-horas-rejilla button:hover, .r-horas-rejilla button.elegida { background: var(--acento); border-color: var(--acento); color: var(--acento-texto); }
.r-form-final { border-top: 1px solid #E5E7EB; padding-top: 16px; }
.r-elegido { display: flex; align-items: center; gap: 8px; font-weight: 600; color: #1F2328; }
.r-elegido svg { width: 18px; height: 18px; color: var(--acento-claro); flex: none; }
.r-preguntas { display: flex; flex-direction: column; gap: 12px; }
.r-preguntas .r-campo { display: flex; flex-direction: column; gap: 6px; }
.r-preguntas label { font-weight: 600; font-size: .88rem; color: #1F2328; }
.r-preguntas small { color: #6B7280; font-weight: 400; }
.r-ok { padding: 28px 22px; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.r-ok .check { width: 48px; height: 48px; border-radius: 50%; background: #22C55E; color: #FFFFFF; display: grid; place-items: center; }
.r-ok .check svg { width: 24px; height: 24px; }
.r-ok h4 { font: 700 1.35rem/1.2 var(--cuerpo); color: #1F2328; }
.r-ok p { color: #4B5563; }
.r-secundario { width: 100%; background: #FFFFFF; color: #1F2328; border: 1px solid #D1D5DB; border-radius: 6px; padding: 12px 16px; font: 600 .95rem/1 var(--cuerpo); cursor: pointer; }

/* Casos */
.casos { background: var(--banda); color: var(--banda-texto); padding-block: clamp(72px, 9vw, 96px); position: relative; }
.casos .cabeza { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 18px; margin-bottom: 56px; }
.casos .label { color: var(--banda-texto); }
.casos h2 { font-size: clamp(2rem, 4.2vw, 3rem); font-weight: 800; letter-spacing: -0.035em; max-width: 24ch; }
.casos h2 mark { background: var(--banda-marca); color: var(--banda-marca-texto); padding: 0 .12em; border-radius: 4px; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.casos .cabeza p { opacity: .92; font-size: 1.05rem; }
.lista { max-width: 1088px; margin: 0 auto; display: flex; flex-direction: column; gap: 28px; }
.caso { background: var(--tarjeta); color: var(--tarjeta-texto); border-radius: 24px; padding: 32px; display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 40px; align-items: center; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1); }
.visual { position: relative; width: 190px; aspect-ratio: 9 / 16; justify-self: center; border-radius: 14px; overflow: hidden; background: #0B0D14; color: #FFFFFF; }
.visual img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.visual .chip-nombre { position: absolute; top: 12px; left: 12px; z-index: 2; font: 600 .7rem/1 var(--display); padding: 7px 10px; border-radius: 999px; background: rgba(11, 13, 20, .62); border: 1px solid rgba(255, 255, 255, .18); backdrop-filter: blur(6px); color: #FFFFFF; }
.visual.dato { display: flex; flex-direction: column; justify-content: center; gap: 8px; padding: 50px 16px 16px; background: var(--dato-fondo); }
.visual.dato b { font: 800 2.6rem/1 var(--display); letter-spacing: -0.05em; color: var(--dato-cifra); font-variant-numeric: tabular-nums; }
.visual.dato span { font-size: .8rem; line-height: 1.35; color: rgba(255, 255, 255, .78); }
.visual.dato svg { width: 100%; height: auto; margin-top: 12px; }
.visual.dato .linea { fill: none; stroke: var(--dato-cifra); stroke-width: 3; stroke-linejoin: round; }
.visual.dato .corte { stroke: #FFFFFF; stroke-opacity: .35; stroke-dasharray: 4 5; }
.caso .texto { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 16px; min-width: 0; }
.caso h3 { font-size: clamp(1.5rem, 2.4vw, 2rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1.15; }
.caso h3 span { display: block; color: var(--cifra); }
.caso .texto p { font-size: 1.05rem; line-height: 1.6; color: var(--tarjeta-sub); max-width: 54ch; }
.caso .texto p b { color: var(--cifra); font-weight: 700; }
.autor { display: inline-flex; align-items: center; gap: 10px; font-size: .85rem; color: var(--tarjeta-sub); }
.autor i { width: 28px; height: 28px; border-radius: 50%; background: var(--cifra); color: var(--acento-texto); font: 700 .68rem/28px var(--display); font-style: normal; text-align: center; }

/* Preguntas */
.preguntas { background: var(--oscuro-2); padding-block: clamp(72px, 9vw, 96px); }
.preguntas .in { display: flex; flex-direction: column; gap: 22px; }
.preguntas h2 { font-size: clamp(2.3rem, 5vw, 3.75rem); font-weight: 800; letter-spacing: -0.04em; color: #FFFFFF; }
.faq { border-top: 1px solid var(--raya); margin-top: 18px; }
.faq details { border-bottom: 1px solid var(--raya); }
.faq summary { list-style: none; cursor: pointer; padding: 24px 0; display: grid; grid-template-columns: 38px minmax(0, 1fr) 24px; align-items: center; gap: 4px; font: 600 1.2rem/1.35 var(--display); letter-spacing: -0.015em; color: #FFFFFF; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .n { font: 400 .78rem/1 var(--mono); color: var(--texto-sub); letter-spacing: .06em; }
.faq summary svg { width: 18px; height: 18px; color: var(--acento-claro-oscuro); transition: transform .2s ease; justify-self: end; }
.faq details[open] summary svg { transform: rotate(180deg); }
.faq details p { padding: 0 34px 26px 42px; color: var(--texto-sub); max-width: 70ch; }

/* Llamada final y pie */
.pie { background: var(--oscuro-2); border-top: 1px solid var(--raya); }
.llamada { padding-block: 44px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 22px; border-bottom: 1px solid var(--raya); max-width: 880px; margin: 48px auto 0; }
.llamada .icono-cuadro { width: 44px; height: 44px; border-radius: 50%; background: var(--acento); color: var(--acento-texto); display: grid; place-items: center; }
.llamada .icono-cuadro svg { width: 20px; height: 20px; }
.llamada p { font: 700 clamp(1.3rem, 2.4vw, 1.75rem)/1.25 var(--display); letter-spacing: -0.025em; color: #FFFFFF; max-width: 30ch; }
.llamada p em { font-style: normal; color: var(--acento-claro-oscuro); }
.pie-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; padding-block: 56px 40px; }
.pie-marca { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.pie-marca .powered { align-self: flex-start; background: transparent; border-color: var(--raya); color: var(--texto-sub); }
.pie-marca p { color: var(--texto-sub); font-size: .95rem; max-width: 38ch; }
.contacto .label { margin-bottom: 18px; }
.contacto ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--raya); }
.contacto li { border-bottom: 1px solid var(--raya); }
.contacto a { display: flex; align-items: center; gap: 12px; padding: 15px 0; color: var(--texto); text-decoration: none; font-size: .95rem; }
.contacto a:hover { color: #FFFFFF; }
.contacto svg { width: 18px; height: 18px; color: var(--texto-sub); flex: none; }
.legal { border-top: 1px solid var(--raya); padding-block: 22px calc(120px + env(safe-area-inset-bottom, 0px)); font: 400 .76rem/1.5 var(--mono); color: var(--texto-sub); letter-spacing: .04em; }

/* Barra flotante de abajo */
.barra-abajo { position: fixed; left: 0; right: 0; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 50; padding: 0 max(16px, env(safe-area-inset-right, 0px)) 0 max(16px, env(safe-area-inset-left, 0px)); opacity: 0; transform: translateY(16px); pointer-events: none; transition: opacity .3s ease, transform .3s ease; }
.barra-abajo.ver { opacity: 1; transform: none; pointer-events: auto; }
.barra-abajo > div { max-width: 896px; margin: 0 auto; display: flex; align-items: center; gap: 22px; padding: 22px 32px; border-radius: 16px; background: var(--oscuro-3); border: 1px solid var(--raya); box-shadow: 0 20px 40px rgba(0, 0, 0, .35); }
.barra-abajo .icono { width: 40px; height: 40px; flex: none; }
.barra-abajo p { font: 700 1.15rem/1.35 var(--display); letter-spacing: -0.02em; color: #FFFFFF; flex: 1; min-width: 0; }
.barra-abajo p em { font-style: normal; color: var(--acento-claro-oscuro); }
.barra-abajo .btn { padding: 15px 24px; }

@media (max-width: 900px) {
  .enlaces, .abierta { display: none; }
  .caso { grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 24px 20px; }
  .pie-cols { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .reserva { padding: 10px; }
  .r-contenido { padding: 16px 14px 20px; }
  body { font-size: 16px; }
  .portada { padding-block: 18px 40px; }
  .powered { align-self: center; }
  .cabecera nav { padding-left: 16px; }
  .cabecera .btn .txt-largo { display: none; }
  .faq summary { font-size: 1.05rem; grid-template-columns: 32px minmax(0, 1fr) 20px; }
  .faq details p { padding: 0 8px 22px 36px; }
  .barra-abajo > div { padding: 12px 12px 12px 16px; gap: 12px; }
  .barra-abajo p { font-size: .88rem; }
  .barra-abajo .icono { width: 32px; height: 32px; }
  .barra-abajo .btn { width: 48px; height: 48px; padding: 0; }
  .barra-abajo .btn .txt { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .vivo { animation: none; }
  .btn, .cabecera, .barra-abajo { transition: none; }
}

/* Portada de cada caso: un vídeo o una imagen real del cliente, con su cifra encima */
.video-caso { width: 210px; }
.video-caso video, .video-caso img { width: 100%; height: 100%; object-fit: cover; display: block; }
.video-caso::after { content: ""; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, rgba(0, 0, 0, .78)); z-index: 1; pointer-events: none; }
.cifra-video { position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 2; font: 800 1.15rem/1.15 var(--display); letter-spacing: -0.02em; color: #FFFFFF; }
