/* Tu-Acceso.cl — estilos del sitio informativo.
   La tipografía se sirve desde este mismo dominio: no se carga nada de
   Google ni de terceros, que es lo coherente con lo que el sitio dice sobre
   privacidad. */
@font-face{
    font-family:'Plus Jakarta Sans';
    font-style:normal;
    font-weight:200 800;
    font-display:swap;
    src:url(fuentes/jakarta-latin.woff2) format('woff2');
}
    :root{
        --bg:#ffffff;
        --bg-soft:#f8fafc;
        --ink:#0f172a;
        --ink-soft:#475569;
        --line:#e2e8f0;
        --accent:#0b3d91;
        --accent-2:#049b8f;
        --accent-soft:#e8eefb;
        --teal:#049b8f;
        --teal-soft:#e2f6f4;
        --cta:#ff6b35;
        --cta-dark:#e2551f;
        --ok:#1f9d55;
        --radius:18px;
        --header-h:76px;
    }
    *{margin:0;padding:0;box-sizing:border-box;}
    html{scroll-behavior:smooth; scroll-padding-top:var(--header-h);}
    body{
        font-family:'Plus Jakarta Sans', -apple-system, sans-serif;
        color:var(--ink);
        background:var(--bg);
        line-height:1.55;
        overflow-x:hidden;
    }
    img{max-width:100%; display:block;}
    a{color:inherit;}
    a:focus-visible, button:focus-visible{outline:2px solid var(--accent); outline-offset:3px;}
    .container{max-width:1220px; margin:0 auto; padding:0 5%;}

    /* Header */
    header{
        position:fixed; top:0; width:100%; z-index:1000;
        background:rgba(255,255,255,0.92);
        backdrop-filter:blur(8px);
        border-bottom:1px solid var(--line);
        min-height:var(--header-h);
    }
    .nav{
        max-width:1220px; margin:0 auto; padding:0 5%;
        height:var(--header-h);
        display:flex; align-items:center; justify-content:space-between; gap:1rem;
    }
    .logo{font-size:1.25rem; font-weight:800; letter-spacing:-0.02em; color:var(--accent);}
    .logo .cl{color:var(--cta);}
    .nav-links{
        display:flex; gap:2rem; list-style:none;
        font-size:0.92rem; font-weight:500; color:var(--ink-soft);
    }
    .nav-links a{text-decoration:none; transition:color .15s;}
    .nav-links a:hover{color:var(--ink);}
    .nav-actions{display:flex; align-items:center; gap:1rem;}

    .btn{
        display:inline-flex; align-items:center; gap:0.4rem;
        font-family:inherit; font-size:0.92rem; font-weight:700;
        text-decoration:none; cursor:pointer;
        padding:0.8rem 1.5rem;
        border-radius:99px;
        border:1px solid transparent;
        white-space:nowrap;
        transition:transform .15s, box-shadow .15s, background .15s;
    }
    .btn-primary{background:var(--accent); color:#fff;}
    .btn-primary:hover{transform:translateY(-1px); box-shadow:0 10px 24px rgba(11,61,145,0.28);}
    .btn-ghost{background:transparent; color:var(--ink); border-color:var(--line);}
    .btn-ghost:hover{border-color:var(--ink);}
    .btn-sm{padding:0.6rem 1.1rem; font-size:0.85rem;}

    /* HERO — collage de fotos con esquina cortada, estilo Homely */
    .hero{
        padding:calc(var(--header-h) + 3.5rem) 0 5rem;
    }
    .hero-grid{
        display:grid;
        grid-template-columns: 1fr 1fr;
        gap:3rem;
        align-items:center;
    }
    .hero-copy .eyebrow{
        display:inline-block;
        font-size:0.82rem; font-weight:700; color:var(--accent);
        background:var(--accent-soft);
        padding:0.4rem 0.9rem;
        border-radius:99px;
        margin-bottom:1.3rem;
    }
    .hero-copy h1{
        font-size:clamp(2.2rem, 4vw, 3.2rem);
        font-weight:800;
        line-height:1.12;
        letter-spacing:-0.02em;
        margin-bottom:1.2rem;
        max-width:13ch;
    }
    .hero-copy p{
        color:var(--ink-soft);
        font-size:1.08rem;
        max-width:42ch;
        margin-bottom:2rem;
    }
    .hero-actions{display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:2.8rem;}

    .stats{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; max-width:42rem;}
    .stat{
        background:#fff; border-radius:16px; padding:1rem;
        box-shadow:0 1px 2px rgba(15,23,42,0.05);
        border:1px solid var(--line);
    }
    .stat b{display:block; font-size:1.3rem; font-weight:800; letter-spacing:-0.01em; color:var(--accent);}
    .stat span{font-size:0.8rem; color:var(--ink-soft);}

    /* collage de imágenes */
    .collage{
        position:relative;
        display:grid;
        grid-template-columns: 1.3fr 1fr;
        gap:1.1rem;
    }
    .collage-main{
        grid-row: 1 / 3;
        clip-path: polygon(0 0, 100% 0, 100% 100%, 12% 100%, 0 88%);
        overflow:hidden;
        aspect-ratio:3/4;
    }
    .collage-main img{width:100%; height:100%; object-fit:cover;}
    .collage-top{
        clip-path: polygon(0 0, 100% 0, 100% 82%, 88% 100%, 0 100%);
        overflow:hidden;
        aspect-ratio:4/3;
    }
    .collage-top img{width:100%; height:100%; object-fit:cover;}
    .collage-bottom{
        border-radius:16px;
        overflow:hidden;
        aspect-ratio:4/3;
    }
    .collage-bottom img{width:100%; height:100%; object-fit:cover;}

    /* Secciones */
    .section{padding:5.5rem 0;}
    .section-head{max-width:640px; margin-bottom:3.2rem;}
    .eyebrow-line{
        font-size:0.82rem; font-weight:700; color:var(--accent);
        text-transform:none;
        margin-bottom:0.7rem;
    }
    .section-head h2{
        font-size:clamp(1.7rem, 3vw, 2.3rem);
        font-weight:800;
        letter-spacing:-0.02em;
        margin-bottom:0.9rem;
    }
    .section-head p{color:var(--ink-soft); font-size:1.03rem;}

    .bg-soft{background:var(--bg-soft);}

    /* Feature row: foto con corte + texto, alternando */
    .feature-row{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:3.5rem;
        align-items:center;
        margin-bottom:4.5rem;
    }
    .feature-row:last-child{margin-bottom:0;}
    .feature-row.flip .feature-photo{order:2;}
    .feature-row.flip .feature-text{order:1;}

    .feature-photo{
        clip-path: polygon(0 0, 100% 0, 100% 100%, 14% 100%, 0 85%);
        overflow:hidden;
    }
    .feature-row.flip .feature-photo{
        clip-path: polygon(0 0, 100% 0, 100% 85%, 86% 100%, 0 100%);
    }
    .feature-photo img{width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; display:block;}

    .feature-text h3{
        font-size:1.5rem; font-weight:800; letter-spacing:-0.01em;
        margin-bottom:0.9rem;
    }
    .feature-text p{color:var(--ink-soft); margin-bottom:1.3rem; max-width:44ch;}
    .feature-text ul{list-style:none;}
    .feature-text ul li{
        position:relative; padding-left:1.6rem; margin-bottom:0.7rem; color:var(--ink);
        font-size:0.98rem;
    }
    .feature-text ul li::before{
        content:'';
        position:absolute; left:0; top:0.5em;
        width:8px; height:8px;
        border-radius:2px;
        background:var(--accent);
    }

    /* Servicio+ — tarjeta destacada del portal cautivo */
    .plus-badge{
        display:inline-flex; align-items:center; gap:0.4rem;
        background:var(--ink); color:#fff;
        font-size:0.78rem; font-weight:800;
        padding:0.3rem 0.75rem;
        border-radius:99px;
        margin-bottom:1rem;
    }
    .plus-badge b{color:var(--accent-2);}

    .flow-card{
        background:var(--bg-soft);
        border:1px solid var(--line);
        border-radius:var(--radius);
        padding:2rem;
    }
    .flow-steps{
        display:grid;
        grid-template-columns:repeat(3, 1fr);
        gap:1.5rem;
        margin-top:2.5rem;
    }
    .flow-step{
        background:#fff;
        border:1px solid var(--line);
        border-radius:14px;
        padding:1.5rem;
    }
    .flow-step .num{
        display:inline-flex; align-items:center; justify-content:center;
        width:2rem; height:2rem;
        background:var(--accent-soft); color:var(--accent);
        font-weight:800; font-size:0.9rem;
        border-radius:8px;
        margin-bottom:1rem;
    }
    .flow-step h4{font-size:1.05rem; font-weight:700; margin-bottom:0.5rem;}
    .flow-step p{font-size:0.92rem; color:var(--ink-soft);}
    .flow-arrow{
        display:flex; align-items:center; justify-content:center;
        color:var(--ink-soft); font-size:1.4rem;
    }

    .flow-photo{
        border-radius:var(--radius);
        overflow:hidden;
        aspect-ratio:16/9;
        margin-top:2.5rem;
    }
    .flow-photo img{width:100%; height:100%; object-fit:cover;}

    /* Split kioskos/staff */
    .split{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:2rem;
    }
    .split-card{
        border:1px solid var(--line);
        border-radius:var(--radius);
        padding:2rem;
        background:#fff;
    }
    .split-card img{
        border-radius:12px;
        aspect-ratio:16/10; object-fit:cover; width:100%;
        margin-bottom:1.5rem;
    }
    .split-card h3{font-size:1.2rem; font-weight:800; margin-bottom:0.6rem;}
    .split-card p{color:var(--ink-soft); font-size:0.96rem;}
    .tag{
        display:inline-block;
        font-size:0.75rem; font-weight:700; color:var(--accent);
        background:var(--accent-soft);
        padding:0.25rem 0.7rem;
        border-radius:99px;
        margin-bottom:0.9rem;
    }

    /* CTA final */
    .cta-final{
        background:var(--ink);
        border-radius:24px;
        padding:4rem 3rem;
        text-align:center;
        color:#fff;
        margin:0 5%;
    }
    .cta-final h2{
        font-size:clamp(1.8rem, 3.4vw, 2.3rem);
        font-weight:800;
        max-width:20ch;
        margin:0 auto 1rem;
        letter-spacing:-0.02em;
    }
    .cta-final p{color:#b7bad0; max-width:44ch; margin:0 auto 2.2rem;}

    footer{
        padding:3rem 5% 2.5rem;
        text-align:center;
        font-size:0.85rem;
        color:var(--ink-soft);
    }
    footer .logo{margin-bottom:0.8rem; justify-content:center; display:flex;}

    @media (max-width: 900px){
        .hero-grid{grid-template-columns:1fr;}
        .hero-copy h1, .hero-copy p{max-width:none;}
        .nav-links{display:none;}
        .feature-row{grid-template-columns:1fr; gap:1.8rem;}
        .feature-row.flip .feature-photo, .feature-row.flip .feature-text{order:0;}
        .flow-steps{grid-template-columns:1fr;}
        .flow-arrow{display:none;}
        .split{grid-template-columns:1fr;}
        .cta-final{padding:3rem 1.6rem;}
    }
    @media (max-width: 480px){
        .stats{grid-template-columns:1fr; gap:0.75rem;}
        .collage{grid-template-columns:1fr 1fr;}
    }

    /* ---- Añadidos de esta versión ---- */
    .pill-soon{
        display:inline-flex; align-items:center; gap:0.45rem;
        font-size:0.8rem; font-weight:800; color:var(--accent);
        background:var(--accent-soft);
        padding:0.4rem 0.9rem; border-radius:99px; margin-bottom:1.3rem;
    }
    .pill-soon::before{
        content:''; width:8px; height:8px; border-radius:50%;
        background:var(--accent); animation:latido 1.8s ease-in-out infinite;
    }
    @keyframes latido{ 0%,100%{opacity:1} 50%{opacity:.35} }
    @media (prefers-reduced-motion: reduce){ .pill-soon::before{animation:none} }

    .tag-dev{
        display:inline-block; font-size:0.72rem; font-weight:800;
        color:#8a5a00; background:#fff3d6;
        padding:0.25rem 0.7rem; border-radius:99px; margin-bottom:0.9rem;
    }
    .estado{
        display:inline-block; font-size:0.72rem; font-weight:800;
        padding:0.2rem 0.6rem; border-radius:99px; margin-bottom:0.7rem;
    }
    .estado.pruebas{ background:#e3f6ea; color:#17753f; }
    .estado.pronto{ background:var(--accent-soft); color:var(--accent); }
    .estado.despues{ background:#eceef5; color:var(--ink-soft); }

    .cards{
        display:grid; grid-template-columns:repeat(3, 1fr); gap:1.4rem;
    }
    .card{
        background:#fff; border:1px solid var(--line);
        border-radius:var(--radius); padding:1.6rem;
    }
    .card h3{ font-size:1.05rem; font-weight:800; margin-bottom:0.5rem; }
    .card p{ font-size:0.93rem; color:var(--ink-soft); }
    .derechos{
        margin-top:2.4rem; padding:1.6rem 1.8rem;
        background:var(--accent-soft); border-radius:var(--radius);
        display:flex; gap:1.2rem; align-items:center; justify-content:space-between; flex-wrap:wrap;
    }
    .derechos p{ max-width:60ch; }
    .derechos b{ color:var(--accent); }

    .contacto-secundario{ margin-top:1.4rem; font-size:0.9rem; color:#b7bad0; }
    .contacto-secundario a{ color:#fff; }

    footer .pie-enlaces{
        display:flex; gap:1.4rem; justify-content:center; flex-wrap:wrap; margin-top:0.8rem;
    }
    footer .pie-enlaces a{ color:var(--ink-soft); text-decoration:none; }
    footer .pie-enlaces a:hover{ color:var(--ink); text-decoration:underline; }

    /* Páginas de texto (privacidad) */
    .doc{ padding:calc(var(--header-h) + 3rem) 0 4rem; }
    .doc-inner{ max-width:760px; margin:0 auto; padding:0 5%; }
    .doc h1{ font-size:clamp(1.9rem,4vw,2.5rem); font-weight:800; letter-spacing:-0.02em; margin-bottom:0.8rem; }
    .doc .lead{ color:var(--ink-soft); font-size:1.05rem; margin-bottom:2.4rem; }
    .doc h2{ font-size:1.25rem; font-weight:800; margin:2.4rem 0 0.7rem; letter-spacing:-0.01em; }
    .doc p, .doc li{ color:var(--ink-soft); font-size:0.98rem; }
    .doc p + p{ margin-top:0.8rem; }
    .doc ul{ margin:0.6rem 0 0 1.2rem; }
    .doc li{ margin-bottom:0.4rem; }
    .doc strong{ color:var(--ink); }
    .doc a{ color:var(--accent); }
    .doc .actualizado{ font-size:0.85rem; margin-top:2.6rem; }

    .sello-bloque{
        display:flex; gap:1.6rem; align-items:center;
        margin-top:2rem; padding:1.6rem;
        border:1px solid var(--line); border-radius:var(--radius); background:var(--bg-soft);
    }
    .sello-bloque img{ width:150px; height:150px; flex-shrink:0; border-radius:50%; }
    .sello-bloque h3{ font-size:1.05rem; font-weight:800; margin-bottom:0.4rem; }
    .sello-bloque p{ font-size:0.92rem; }

    @media (max-width: 900px){
        .cards{ grid-template-columns:1fr; }
        .derechos{ flex-direction:column; align-items:flex-start; }
        .sello-bloque{ flex-direction:column; text-align:center; }
    }

/* ---- Página de contacto ---- */
.contacto-pagina{padding:calc(var(--header-h) + 3rem) 0 5rem;}
.contacto-grid{
    max-width:1220px; margin:0 auto; padding:0 5%;
    display:grid; grid-template-columns:1fr 1.1fr; gap:3.5rem; align-items:start;
}
.contacto-texto h1{font-size:clamp(1.9rem,4vw,2.7rem); line-height:1.15; letter-spacing:-0.02em; margin:0.9rem 0 1rem;}
.contacto-texto .lead{color:var(--ink-soft); font-size:1.05rem; margin-bottom:2rem; max-width:46ch;}
.contacto-correos{border-top:1px solid var(--line); padding-top:1.5rem;}
.contacto-correos h2{font-size:1rem; margin-bottom:1rem;}
.contacto-correos dl div{display:flex; flex-wrap:wrap; gap:0.2rem 1rem; padding:0.5rem 0;}
.contacto-correos dt{color:var(--ink-soft); font-size:0.9rem; min-width:11rem;}
.contacto-correos dd a{color:var(--accent); font-weight:600; text-decoration:none;}
.contacto-correos dd a:hover{text-decoration:underline;}
.contacto-nota{color:var(--ink-soft); font-size:0.85rem; margin-top:1rem;}
.contacto-tarjeta{
    background:#fff; border:1px solid var(--line); border-radius:var(--radius);
    padding:2rem; box-shadow:0 10px 40px rgba(21,26,45,0.06);
}
.campos{display:grid; grid-template-columns:1fr 1fr; gap:1.1rem;}
.campo-ancho{grid-column:1 / -1;}
.campo label{display:block; font-size:0.85rem; font-weight:600; margin-bottom:0.35rem;}
.campo .opcional{color:var(--ink-soft); font-weight:400;}
.campo input, .campo select, .campo textarea{
    width:100%; font:inherit; color:var(--ink); background:#fff;
    border:1px solid var(--line); border-radius:12px; padding:0.7rem 0.85rem;
}
.campo textarea{resize:vertical; min-height:7rem;}
.campo input:focus, .campo select:focus, .campo textarea:focus{outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent);}
.trampa{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.acepto{display:flex; gap:0.7rem; align-items:flex-start; margin:1.4rem 0; font-size:0.88rem; color:var(--ink-soft);}
.acepto input{margin-top:0.25rem; accent-color:var(--accent); flex-shrink:0;}
.acepto a{color:var(--accent);}
#boton-enviar{width:100%; cursor:pointer; font:inherit; font-weight:700;}
#boton-enviar:disabled{opacity:0.6; cursor:wait;}
.aviso{padding:1rem 1.2rem; border-radius:12px; margin-bottom:1.2rem; font-size:0.95rem;}
.aviso[hidden]{display:none;}
.aviso-ok{background:#e9f7ef; color:#14532d; border:1px solid #b7e4c7;}
.aviso-error{background:#fdecec; color:#7f1d1d; border:1px solid #f5c2c2;}
.nav-links a[aria-current="page"]{color:var(--ink);}
@media (max-width:820px){
    .contacto-grid{grid-template-columns:1fr; gap:2rem;}
    .campos{grid-template-columns:1fr;}
    .contacto-tarjeta{padding:1.4rem;}
}

.contacto-banner{
    display:grid; grid-template-columns:repeat(3,1fr); gap:0.6rem;
    max-width:1100px; margin:0 auto 2rem; padding:0 1.25rem;
}
.contacto-banner img{
    width:100%; height:130px; object-fit:cover; border-radius:14px; display:block;
}
@media (max-width:640px){ .contacto-banner img{height:80px;} }


/* ---- Versión alineada con la demo: paleta azul, ilustraciones y movimiento suave ---- */
.btn-cta{background:var(--cta); color:#fff;}
.btn-cta:hover{background:var(--cta-dark); transform:translateY(-1px);}
.centrado{text-align:center; margin-left:auto; margin-right:auto;}
.centrado-texto{text-align:center; max-width:720px; margin:0 auto;}
.estrecho{max-width:780px;}
.icono{width:24px; height:24px;}
.icono-caja{
    display:inline-flex; align-items:center; justify-content:center;
    width:44px; height:44px; border-radius:12px; flex-shrink:0;
    background:var(--accent-soft); color:var(--accent);
}
.card .icono{color:var(--accent); margin-bottom:0.8rem;}

/* Ilustración de la portada */
.hero-arte{display:flex; justify-content:center;}
.hero-ilustracion{width:100%; max-width:520px; height:auto;}
@keyframes flotar{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes pulso-suave{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.75;transform:scale(1.06)}}
.flotar{animation:flotar 6s ease-in-out infinite;}
.flotar-lento{animation:flotar 8s ease-in-out infinite; animation-delay:-2s;}
.pulso-suave{animation:pulso-suave 3s ease-in-out infinite; transform-box:fill-box; transform-origin:center;}

/* Aparición al desplazarse */
.js .aparecer{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
.js .aparecer.visible{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){
    .flotar,.flotar-lento,.pulso-suave{animation:none;}
    .js .aparecer{opacity:1; transform:none; transition:none;}
}

.section-head.centrado{max-width:680px;}
.section-head.centrado .eyebrow-line{text-align:center;}

/* Tarjetas con imagen */
.cards-img{display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;}
.card-img{
    background:#fff; border:1px solid var(--line); border-radius:var(--radius);
    overflow:hidden; box-shadow:0 2px 10px rgba(15,23,42,0.05);
    transition:transform .3s ease;
}
.card-img:hover{transform:translateY(-4px);}
.card-img img{width:100%; height:auto; aspect-ratio:16/9; object-fit:cover;}
.card-img-cuerpo{padding:1.5rem;}
.card-img-cuerpo h3{font-size:1.15rem; font-weight:800; margin:1rem 0 0.5rem;}
.card-img-cuerpo p{font-size:0.95rem; color:var(--ink-soft);}

/* Pasos */
.pasos{list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;}
.paso{background:var(--ink); color:#fff; border-radius:var(--radius); padding:1.4rem;}
.paso img{width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; border-radius:12px; margin-bottom:1.2rem;}
.paso .num{
    display:inline-flex; align-items:center; justify-content:center;
    width:2rem; height:2rem; border-radius:50%;
    background:var(--teal); color:#fff; font-weight:800; font-size:0.9rem; margin-bottom:0.8rem;
}
.paso h3{font-size:1.05rem; font-weight:800; margin-bottom:0.5rem;}
.paso p{font-size:0.92rem; color:#cbd5e1;}

/* Ticket de ejemplo: mismo formato vertical que la credencial real */
.ticket-wrap{max-width:340px; margin:0 auto;}
.ticket-ejemplo{width:100%; height:auto; font-family:'Plus Jakarta Sans', sans-serif;}

/* Galería con fotos reales */
.galeria{display:grid; grid-template-columns:1fr 1fr 1fr; gap:1.2rem; align-items:start;}
.galeria figure{margin:0;}
.galeria img{width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius);}
.galeria figcaption{font-size:0.85rem; color:var(--ink-soft); margin-top:0.6rem;}

/* Estado del desarrollo */
.estado-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1.2rem;}
.estado-item{
    display:flex; gap:1rem; align-items:flex-start;
    background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.4rem;
}
.estado-item h4{font-size:1.02rem; font-weight:800; margin-bottom:0.3rem;}
.estado-item p{font-size:0.92rem; color:var(--ink-soft);}
.estado.pruebas{background:var(--teal-soft); color:#036b62;}
.estado.pronto{background:#fff3e8; color:#b4470f;}

/* Datos personales */
.datos-grid{display:grid; grid-template-columns:1.3fr 0.7fr; gap:3rem; align-items:center; margin-bottom:2.5rem;}
.h2-datos{font-size:clamp(1.7rem,3vw,2.3rem); font-weight:800; letter-spacing:-0.02em; margin-bottom:0.9rem;}
.datos-intro{color:var(--ink-soft); font-size:1.03rem; margin-bottom:1.5rem; max-width:52ch;}
.sello{width:100%; max-width:220px; height:auto; justify-self:center; border-radius:50%; box-shadow:0 10px 30px rgba(15,23,42,0.12);}
.datos-cards{grid-template-columns:repeat(3,1fr);}
.nota-sello{font-size:0.82rem; color:var(--ink-soft); margin-top:1.6rem; text-align:center;}

/* CTA con imagen */
.cta-final{
    display:grid; grid-template-columns:1.1fr 0.9fr; align-items:stretch;
    padding:0; overflow:hidden; background:var(--accent); text-align:left;
}
.cta-texto{padding:3.5rem 3rem;}
.cta-final h2{margin:0 0 1rem; max-width:22ch;}
.cta-final p{color:#dbe6fb; margin:0 0 2rem;}
.cta-final > img{width:100%; height:100%; object-fit:cover;}
.contacto-secundario{color:#dbe6fb; margin-top:1.4rem;}
.cta-final .contacto-secundario a{color:#fff;}

/* Cabecera de páginas interiores */
.cabecera{padding:calc(var(--header-h) + 3.5rem) 0 3.5rem; background:var(--accent-soft);}
.cabecera h1{font-size:clamp(2rem,4vw,2.8rem); font-weight:800; letter-spacing:-0.02em; margin:0.6rem 0 1rem;}
.cabecera p{color:var(--ink-soft); font-size:1.05rem;}

/* Servicios */
.servs{display:grid; grid-template-columns:repeat(2,1fr); gap:1.6rem;}
.serv{background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
.serv img{width:100%; height:auto; aspect-ratio:16/9; object-fit:cover;}
.serv-cuerpo{padding:1.6rem;}
.serv-cuerpo h2{font-size:1.2rem; font-weight:800; margin-bottom:0.5rem;}
.serv-cuerpo p{color:var(--ink-soft); font-size:0.95rem; margin-bottom:1rem;}
.serv-cuerpo ul{list-style:none;}
.serv-cuerpo li{position:relative; padding-left:1.4rem; margin-bottom:0.5rem; font-size:0.93rem; color:var(--ink-soft);}
.serv-cuerpo li::before{content:''; position:absolute; left:0; top:0.55em; width:8px; height:8px; border-radius:50%; background:var(--teal);}
.cards-4{grid-template-columns:repeat(4,1fr);}

/* Preguntas frecuentes */
.faq-grupo{margin-bottom:2.4rem;}
.faq-grupo h2{font-size:1.15rem; font-weight:800; margin-bottom:1rem;}
.faq{border:1px solid var(--line); border-radius:var(--radius); background:#fff; overflow:hidden;}
.faq details{padding:1.1rem 1.4rem; border-bottom:1px solid var(--line);}
.faq details:last-child{border-bottom:0;}
.faq summary{
    cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:1rem;
    font-weight:700; font-size:0.97rem;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary span{color:var(--accent); font-size:1.3rem; line-height:1; transition:transform .2s;}
.faq details[open] summary span{transform:rotate(45deg);}
.faq details p{margin-top:0.8rem; color:var(--ink-soft); font-size:0.95rem;}
.faq details a{color:var(--accent);}
.ayuda-contacto{background:var(--accent-soft); border-radius:var(--radius); padding:1.8rem; text-align:center;}
.ayuda-contacto p{margin-bottom:0.4rem;}
.ayuda-contacto .btn{margin-top:1rem;}

@media (max-width: 900px){
    .cards-img,.pasos,.estado-grid,.servs,.datos-cards,.cards-4{grid-template-columns:1fr;}
    .galeria{grid-template-columns:1fr;}
    .datos-grid{grid-template-columns:1fr;}
    .cta-final{grid-template-columns:1fr;}
    .cta-final > img{max-height:220px;}
    .cta-texto{padding:2.4rem 1.6rem;}
}
.hero-copy h1{max-width:16ch;}

@media (max-width: 900px){
    .hero-arte{margin-top:1.5rem;}
    .hero-ilustracion{max-width:300px;}
    .datos-grid{gap:2rem;}
}
