/* ==========================================================================
   PÁGINA RCF - Restablecimiento del Contacto entre Familiares
   Paleta institucional: rojo #E50914 · marino #1A2530 · azul #00719E/#00A0DC
   ========================================================================== */
.rcfx { --rojo:#E50914; --rojo-osc:#8B0000; --marino:#1A2530; --marino2:#2A3B4C; --azul:#00719E; --azul-cl:#00A0DC; --gris:#F1F5F9; --r:18px;
        font-family:'Inter',system-ui,sans-serif; color:#2D3748; overflow:hidden; }
.rcfx h1,.rcfx h2,.rcfx h3 { font-family:'Poppins','Inter',sans-serif; }
.rcfx-contenedor { max-width:1180px; margin:0 auto; }
.rcfx-seccion { padding:5rem 1.5rem; }

/* Aparición al hacer scroll (solo si hay JS) */
.js .rv { opacity:0; transform:translateY(28px); transition:opacity .7s ease var(--d,0s), transform .7s cubic-bezier(.2,.7,.2,1) var(--d,0s); }
.js .rv.visto { opacity:1; transform:none; }

/* ---------- HERO ---------- */
.rcfx-hero { position:relative; color:#fff; padding:8.5rem 1.5rem 7rem;
    background:radial-gradient(circle at 80% 20%, rgba(229,9,20,.35), transparent 45%), linear-gradient(135deg,#0E1A24 0%,#00394F 45%,#00719E 100%); }
.rcfx-hero-fondo span { position:absolute; border-radius:50%; background:rgba(255,255,255,.07); animation:rcfxFlota 14s ease-in-out infinite; }
.rcfx-hero-fondo span:nth-child(1){ width:220px;height:220px;left:-60px;top:20%; }
.rcfx-hero-fondo span:nth-child(2){ width:90px;height:90px;left:45%;top:12%;animation-delay:-3s; }
.rcfx-hero-fondo span:nth-child(3){ width:300px;height:300px;right:-90px;bottom:5%;animation-delay:-6s; }
.rcfx-hero-fondo span:nth-child(4){ width:50px;height:50px;left:30%;bottom:22%;animation-delay:-2s;background:rgba(229,9,20,.25); }
.rcfx-hero-fondo span:nth-child(5){ width:130px;height:130px;right:30%;top:8%;animation-delay:-8s; }
.rcfx-hero-fondo span:nth-child(6){ width:26px;height:26px;left:12%;top:12%;animation-delay:-5s;background:rgba(255,255,255,.18); }
@keyframes rcfxFlota { 0%,100%{transform:translate(0,0)} 50%{transform:translate(18px,-26px)} }
.rcfx-hero-grid { position:relative; max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1.15fr .85fr; gap:3rem; align-items:center; }
.rcfx-volver { display:inline-block; color:rgba(255,255,255,.85); font-weight:600; font-size:.9rem; text-decoration:none; margin-bottom:1.4rem; }
.rcfx-volver:hover { text-decoration:underline; }
.rcfx-logo { display:block; max-height:140px; width:auto; margin-bottom:1.1rem; }
.rcfx-etiqueta { display:inline-block; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.3); font-size:.78rem; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; padding:.35rem .9rem; border-radius:50px; margin-bottom:1rem; }
.rcfx-hero h1 { font-size:clamp(2rem,4.4vw,3.3rem); line-height:1.12; font-weight:800; margin:0 0 1rem; }
.rcfx-hero h1 em { font-style:normal; color:#FF8A91; position:relative; white-space:nowrap; }
.rcfx-hero h1 em::after { content:""; position:absolute; left:0; right:0; bottom:-4px; height:5px; border-radius:4px; background:var(--rojo); transform-origin:left; animation:rcfxSubraya 1.2s .6s both; }
@keyframes rcfxSubraya { from{transform:scaleX(0)} to{transform:scaleX(1)} }
.rcfx-lead { font-size:1.15rem; line-height:1.65; max-width:560px; color:rgba(255,255,255,.92); margin-bottom:1.8rem; }
.rcfx-botones { display:flex; flex-wrap:wrap; gap:.9rem; margin-bottom:1.6rem; }
.rcfx-btn { display:inline-block; padding:.85rem 1.6rem; border-radius:50px; font-weight:700; font-size:.98rem; text-decoration:none; transition:transform .2s, box-shadow .2s, background .2s; cursor:pointer; }
.rcfx-btn:hover { transform:translateY(-3px); }
.rcfx-btn-rojo { background:var(--rojo); color:#fff; box-shadow:0 8px 22px rgba(229,9,20,.45); animation:rcfxLate 2.6s infinite; }
.rcfx-btn-rojo:hover { background:#B90710; }
@keyframes rcfxLate { 0%,100%{box-shadow:0 8px 22px rgba(229,9,20,.45)} 50%{box-shadow:0 8px 34px rgba(229,9,20,.8)} }
.rcfx-btn-claro { background:rgba(255,255,255,.14); color:#fff; border:2px solid rgba(255,255,255,.55); }
.rcfx-btn-claro:hover { background:#fff; color:var(--azul); }
.rcfx-btn-claro-osc { background:rgba(255,255,255,.1); color:#fff; border:2px solid rgba(255,255,255,.4); }
.rcfx-btn-claro-osc:hover { background:#fff; color:var(--marino); }
.rcfx-chips { list-style:none; display:flex; flex-wrap:wrap; gap:.6rem; padding:0; margin:0; }
.rcfx-chips li { font-size:.85rem; font-weight:600; background:rgba(0,0,0,.22); padding:.35rem .85rem; border-radius:50px; }

.rcfx-hero-visual { background:rgba(255,255,255,.08); backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.2); border-radius:28px; padding:1.4rem 1rem 1rem; box-shadow:0 20px 50px rgba(0,0,0,.25); }
.rcfx-conexion { width:100%; height:auto; display:block; overflow:visible; }
.rcfx-ruta-fondo { fill:none; stroke:rgba(255,255,255,.18); stroke-width:3; }
.rcfx-ruta { fill:none; stroke-width:4; stroke-linecap:round; stroke-dasharray:10 12; animation:rcfxFluye 1.6s linear infinite; }
@keyframes rcfxFluye { to{stroke-dashoffset:-44} }
.rcfx-nodo circle:first-child { fill:var(--rojo); }
.rcfx-nodo-b circle:first-child { fill:#fff; fill-opacity:.2; stroke:#fff; stroke-width:3; }
.rcfx-nodo-a circle:first-child { animation:rcfxPulso 2.4s infinite; transform-origin:70px 210px; }
.rcfx-nodo-b circle:first-child { animation:rcfxPulso 2.4s 1.2s infinite; transform-origin:350px 110px; }
@keyframes rcfxPulso { 0%,100%{transform:scale(1)} 50%{transform:scale(1.1)} }
.rcfx-corazon { fill:var(--rojo); animation:rcfxLatido2 1.4s ease-in-out infinite; transform-box:fill-box; transform-origin:center; }
@keyframes rcfxLatido2 { 0%,100%{transform:scale(1)} 15%{transform:scale(1.18)} 30%{transform:scale(1)} 45%{transform:scale(1.12)} }
.rcfx-visual-pie { text-align:center; font-size:.82rem; color:rgba(255,255,255,.8); margin-top:.6rem; }
.rcfx-onda { position:absolute; left:0; bottom:-1px; width:100%; height:60px; display:block; }
.rcfx-onda path { fill:#F8FAFC; }

/* ---------- CINTA ---------- */
.rcfx-cinta { background:#F8FAFC; padding:0 1.5rem 1rem; margin-top:-1px; }
.rcfx-cinta-grid { max-width:1180px; margin:-3.6rem auto 0; position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.rcfx-dato { background:#fff; border-radius:var(--r); padding:1.3rem 1rem; text-align:center; box-shadow:0 10px 30px rgba(26,37,48,.12); border-bottom:4px solid var(--rojo); transition:transform .25s; }
.rcfx-dato:hover { transform:translateY(-6px); }
.rcfx-dato span { font-size:1.8rem; display:block; }
.rcfx-dato strong { display:block; font-family:'Poppins',sans-serif; color:var(--marino); font-size:1.05rem; margin:.2rem 0; }
.rcfx-dato small { color:#64748B; font-size:.85rem; }

/* ---------- ENCABEZADOS ---------- */
.rcfx-sobretitulo { display:inline-block; font-size:.78rem; font-weight:800; letter-spacing:1.6px; text-transform:uppercase; color:var(--rojo); margin-bottom:.6rem; }
.rcfx-sobretitulo-claro { color:#FF8A91; }
.rcfx-seccion h2 { font-size:clamp(1.7rem,3.2vw,2.4rem); color:var(--marino); line-height:1.2; margin-bottom:1rem; font-weight:800; }
.rcfx-encabezado { text-align:center; max-width:720px; margin:0 auto 3rem; }
.rcfx-encabezado p { color:#64748B; font-size:1.05rem; }

/* ---------- QUÉ ES ---------- */
.rcfx-que { background:#F8FAFC; padding-top:3rem; }
.rcfx-dos-col { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
.rcfx-que-texto p { margin-bottom:1rem; line-height:1.8; color:#475569; }
.rcfx-publico { background:#fff; border-radius:24px; padding:2rem; box-shadow:0 14px 40px rgba(26,37,48,.1); border-top:5px solid var(--azul); }
.rcfx-publico h3 { color:var(--marino); font-size:1.25rem; margin-bottom:1.1rem; }
.rcfx-publico ul { list-style:none; padding:0; margin:0; display:grid; gap:.7rem; }
.rcfx-publico li { display:flex; gap:.9rem; align-items:flex-start; padding:.8rem .9rem; border-radius:14px; background:var(--gris); transition:transform .2s, background .2s; }
.rcfx-publico li:hover { transform:translateX(6px); background:#E6F4FA; }
.rcfx-publico li span { font-size:1.4rem; line-height:1.3; }
.rcfx-publico li p { margin:0; font-size:.95rem; line-height:1.55; color:#334155; }

/* ---------- SERVICIOS ---------- */
.rcfx-servicios { background:linear-gradient(135deg,#00394F 0%,#00719E 60%,#00A0DC 100%); color:#fff; }
.rcfx-servicios h2 { color:#fff; }
.rcfx-servicios .rcfx-encabezado p { color:rgba(255,255,255,.88); }
.rcfx-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.rcfx-card { position:relative; background:#fff; color:#334155; border-radius:var(--r); padding:2rem 1.6rem 1.7rem; overflow:hidden; transition:transform .3s, box-shadow .3s; box-shadow:0 10px 28px rgba(0,0,0,.18); }
.rcfx-card::before { content:""; position:absolute; left:0; top:0; height:5px; width:100%; background:linear-gradient(90deg,var(--rojo),#FF6B73); transform:scaleX(0); transform-origin:left; transition:transform .4s; }
.rcfx-card:hover { transform:translateY(-10px) rotate(-.4deg); box-shadow:0 22px 44px rgba(0,0,0,.3); }
.rcfx-card:hover::before { transform:scaleX(1); }
.rcfx-card-num { position:absolute; right:1.2rem; top:.8rem; font-family:'Poppins',sans-serif; font-weight:800; font-size:2.6rem; color:#E2E8F0; line-height:1; }
.rcfx-icono { width:62px; height:62px; border-radius:18px; display:grid; place-items:center; font-size:1.9rem; background:linear-gradient(135deg,#FFE9EA,#fff); border:2px solid #FFD0D3; margin-bottom:1rem; transition:transform .4s; }
.rcfx-card:hover .rcfx-icono { transform:rotate(-8deg) scale(1.12); }
.rcfx-card h3 { color:var(--marino); font-size:1.12rem; margin-bottom:.6rem; position:relative; }
.rcfx-card p { font-size:.94rem; line-height:1.65; margin:0; }
.rcfx-card-activa { outline:3px solid var(--rojo); }
.rcfx-activo { white-space:nowrap; flex-shrink:0; display:inline-flex; align-items:center; gap:.45rem; background:var(--rojo); color:#fff; font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.8px; padding:.3rem .75rem; border-radius:50px; }
.rcfx-activo i { width:8px; height:8px; border-radius:50%; background:#fff; animation:rcfxParpadeo 1.3s infinite; }
@keyframes rcfxParpadeo { 50%{opacity:.2} }
.rcfx-card-activa .rcfx-activo { position:absolute; left:1.4rem; top:-1px; border-radius:0 0 12px 12px; }
.rcfx-card-activa .rcfx-icono { margin-top:.9rem; }
.rcfx-nota { margin-top:2rem; display:flex; gap:1rem; align-items:center; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.3); border-radius:var(--r); padding:1.1rem 1.4rem; }
.rcfx-nota p { margin:0; font-size:.95rem; line-height:1.6; }

/* ---------- PROCESO ---------- */
.rcfx-proceso { background:#fff; }
.rcfx-pasos { list-style:none; max-width:820px; margin:0 auto; padding:0 0 0 0; position:relative; }
.rcfx-pasos::before { content:""; position:absolute; left:27px; top:20px; bottom:20px; width:4px; border-radius:4px; background:#E2E8F0; }
.rcfx-pasos li { position:relative; margin-bottom:1rem; }
.rcfx-pasos button { all:unset; box-sizing:border-box; cursor:pointer; display:flex; align-items:center; gap:1.2rem; width:100%; padding:.6rem .8rem .6rem 0; border-radius:50px; }
.rcfx-pasos button:focus-visible { outline:3px solid var(--azul); outline-offset:2px; }
.rcfx-pasos .n { position:relative; z-index:1; flex:0 0 58px; height:58px; border-radius:50%; display:grid; place-items:center; background:#fff; border:4px solid #CBD5E1; color:#64748B; font-family:'Poppins',sans-serif; font-weight:800; font-size:1.25rem; transition:all .35s; }
.rcfx-pasos strong { font-family:'Poppins',sans-serif; font-size:1.1rem; color:#475569; transition:color .3s; }
.rcfx-pasos li p { margin:0 0 0 76px; max-height:0; overflow:hidden; opacity:0; color:#475569; line-height:1.7; background:var(--gris); border-radius:14px; padding:0 1.2rem; transition:max-height .45s ease, opacity .4s, padding .4s, margin .4s; }
.rcfx-pasos li.activo .n { background:var(--rojo); border-color:var(--rojo); color:#fff; transform:scale(1.12); box-shadow:0 0 0 8px rgba(229,9,20,.15); }
.rcfx-pasos li.activo strong { color:var(--marino); }
.rcfx-pasos li.activo p { max-height:200px; opacity:1; padding:1rem 1.2rem; margin-top:.3rem; border-left:5px solid var(--rojo); }
.rcfx-pasos li.hecho .n { background:var(--azul); border-color:var(--azul); color:#fff; }
.no-js .rcfx-pasos li p { max-height:none; opacity:1; padding:1rem 1.2rem; }
.rcfx-pasos button:hover .n { border-color:var(--rojo); }

/* ---------- PRINCIPIOS ---------- */
.rcfx-principios { background:linear-gradient(160deg,var(--marino) 0%,var(--marino2) 100%); }
.rcfx-principios h2 { color:#fff; }
.rcfx-princ-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1rem; }
.rcfx-princ { text-align:center; padding:1.8rem 1.1rem; border-radius:var(--r); background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.15); color:#E2E8F0; transition:transform .3s, background .3s, border-color .3s; }
.rcfx-princ:hover { transform:translateY(-8px); background:rgba(229,9,20,.18); border-color:var(--rojo); }
.rcfx-princ span { display:block; font-size:2.2rem; margin-bottom:.6rem; transition:transform .4s; }
.rcfx-princ:hover span { transform:scale(1.25) rotate(8deg); }
.rcfx-princ h3 { color:#fff; font-size:1.05rem; margin-bottom:.5rem; }
.rcfx-princ p { font-size:.88rem; line-height:1.6; margin:0; }

/* ---------- CONTACTO ---------- */
.rcfx-contacto { background:#F8FAFC; }
.rcfx-contacto-caja { display:grid; grid-template-columns:.9fr 1.1fr; border-radius:28px; overflow:hidden; box-shadow:0 24px 60px rgba(26,37,48,.25); background:linear-gradient(135deg,#8B0000,#E50914); }
.rcfx-contacto-visual { position:relative; min-height:360px; background:#7a0a10; }
.rcfx-contacto-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s; }
.rcfx-contacto-caja:hover .rcfx-contacto-visual img { transform:scale(1.06); }
.rcfx-sobres { position:absolute; inset:0; z-index:2; pointer-events:none; }
.rcfx-sobres .sobre { position:absolute; font-size:1.8rem; opacity:0; animation:rcfxSobre 6s infinite; }
.rcfx-sobres .s1{ left:12%; bottom:10%; } .rcfx-sobres .s2{ left:40%; bottom:6%; animation-delay:1.5s; } .rcfx-sobres .s3{ left:68%; bottom:12%; animation-delay:3s; } .rcfx-sobres .s4{ left:85%; bottom:4%; animation-delay:4.5s; }
@keyframes rcfxSobre { 0%{opacity:0;transform:translateY(0) rotate(0)} 15%{opacity:1} 100%{opacity:0;transform:translateY(-240px) rotate(18deg)} }
.rcfx-contacto-info { padding:2.6rem 2.4rem; color:#fff; }
.rcfx-contacto-info h2 { color:#fff; font-size:clamp(1.5rem,2.6vw,2rem); }
.rcfx-contacto-info > p { line-height:1.7; color:rgba(255,255,255,.93); }
.rcfx-ayuda { font-weight:800; text-transform:uppercase; letter-spacing:1px; font-size:.8rem; margin:1.3rem 0 .6rem; }
.rcfx-via { display:flex; gap:.6rem; margin-bottom:.7rem; align-items:stretch; }
.rcfx-via a { flex:1; min-width:0; background:#fff; color:var(--rojo-osc); font-weight:700; text-decoration:none; padding:.8rem 1rem; border-radius:12px; word-break:break-all; transition:transform .2s; }
.rcfx-via a:hover { transform:translateX(5px); }
.rcfx-copiar { cursor:pointer; border:2px solid rgba(255,255,255,.7); background:transparent; color:#fff; font-weight:700; border-radius:12px; padding:0 1rem; font-family:inherit; transition:background .2s; }
.rcfx-copiar:hover { background:rgba(255,255,255,.2); }
.rcfx-copiar.ok { background:#16A34A; border-color:#16A34A; }
.rcfx-apoyo { margin:1.2rem 0 0; font-size:.88rem; color:rgba(255,255,255,.85); }
.rcfx-equipo-titulo { text-align:center; margin:3.5rem 0 1.6rem !important; }
.rcfx-equipo { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.rcfx-equipo-card { background:#fff; border-radius:var(--r); padding:1.6rem; text-align:center; box-shadow:0 8px 24px rgba(26,37,48,.08); border-top:4px solid var(--azul); transition:transform .3s, border-color .3s; }
.rcfx-equipo-card:hover { transform:translateY(-6px); border-color:var(--rojo); }
.rcfx-equipo-card span { font-size:1.9rem; }
.rcfx-equipo-card h3 { font-size:1rem; color:var(--marino); margin:.4rem 0; }
.rcfx-equipo-card p { margin:0; color:#475569; font-size:.93rem; word-break:break-word; }
.rcfx-volver-pie { text-align:center; margin-top:2.5rem; }
.rcfx-volver-pie .rcfx-btn { background:var(--marino); border-color:var(--marino); }
.rcfx-volver-pie .rcfx-btn:hover { background:var(--rojo); border-color:var(--rojo); color:#fff; }

/* ---------- RESPONSIVE ---------- */
@media (max-width:960px) {
    .rcfx-hero-grid, .rcfx-dos-col, .rcfx-contacto-caja { grid-template-columns:1fr; }
    .rcfx-hero { padding-top:7rem; }
    .rcfx-hero-visual { max-width:480px; margin:0 auto; }
    .rcfx-cards { grid-template-columns:repeat(2,1fr); }
    .rcfx-princ-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .rcfx-princ-grid .rcfx-princ:last-child { grid-column:1/-1; }
    .rcfx-cinta-grid { grid-template-columns:repeat(2,1fr); }
    .rcfx-equipo { grid-template-columns:1fr; }
    .rcfx-contacto-visual { min-height:260px; }
}
@media (max-width:600px) {
    .rcfx-seccion { padding:3.6rem 1.1rem; }
    .rcfx-hero { padding:6.5rem 1.1rem 5.5rem; }
    .rcfx-cards { grid-template-columns:1fr; }
    .rcfx-botones .rcfx-btn { width:100%; text-align:center; }
    .rcfx-contacto-info { padding:2rem 1.3rem; }
    .rcfx-via { flex-direction:column; }
    .rcfx-copiar { padding:.55rem; }
    .rcfx-nota { flex-direction:column; align-items:flex-start; }
    .rcfx-pasos::before { left:23px; }
    .rcfx-pasos .n { flex-basis:48px; height:48px; }
    .rcfx-pasos li p { margin-left:64px; }
    .rcfx-hero h1 em { white-space:normal; }
    .rcfx-princ-grid { grid-template-columns:minmax(0,1fr); }
    .rcfx-princ-grid .rcfx-princ:last-child { grid-column:auto; }
    .rcfx-princ { padding:1.5rem 1.2rem; overflow-wrap:anywhere; }
}
@media (prefers-reduced-motion:reduce) {
    .rcfx *, .rcfx *::before, .rcfx *::after { animation:none !important; transition:none !important; }
    .js .rv { opacity:1; transform:none; }
}

/* Título accesible pero oculto visualmente (se quitó el titular grande del hero) */
.rcfx-sr { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.rcfx-princ { min-width:0; }
