.ataf-modules-section{
    --ataf-primary:#0f5cff;
    --ataf-title:#081633;
    --ataf-text:#475569;
    --ataf-bg:#f7fbff;
    --ataf-cols:4;
    --ataf-img-h:148px;
    background:var(--ataf-bg);
    padding:64px 24px;
    font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.ataf-modules-inner{
    max-width:1280px;
    margin:0 auto;
    display:grid;
    grid-template-columns:300px 1fr;
    gap:42px;
    align-items:start;
}
.ataf-modules-copy{padding-top:10px;}
.ataf-modules-eyebrow{font-size:12px;font-weight:800;letter-spacing:.03em;color:var(--ataf-primary);text-transform:uppercase;margin-bottom:18px;}
.ataf-modules-title{font-size:34px;line-height:1.08;font-weight:850;color:var(--ataf-title);margin:0 0 18px;letter-spacing:-.03em;}
.ataf-modules-desc{font-size:15px;line-height:1.75;color:var(--ataf-text);margin:0 0 28px;}
.ataf-modules-button{display:inline-flex;align-items:center;justify-content:center;background:var(--ataf-primary);color:#fff!important;text-decoration:none!important;border-radius:8px;padding:13px 22px;font-size:14px;font-weight:750;box-shadow:0 12px 24px rgba(15,92,255,.18);}
.ataf-modules-grid{display:grid;grid-template-columns:repeat(var(--ataf-cols),minmax(0,1fr));gap:22px;align-items:start;}
.ataf-module-card{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:10px;overflow:hidden;box-shadow:0 12px 30px rgba(8,22,51,.06);position:relative;transition:transform .2s ease, box-shadow .2s ease;display:flex;flex-direction:column;min-height:430px;}
.ataf-module-card:hover{transform:translateY(-3px);box-shadow:0 18px 36px rgba(8,22,51,.09);}
.ataf-module-image-wrap{height:var(--ataf-img-h);background:#eef5ff;overflow:hidden;position:relative;z-index:1;}
.ataf-module-image{width:100%;height:100%;object-fit:cover;display:block;position:relative;z-index:1;}
.ataf-module-image-placeholder{height:var(--ataf-img-h);background:linear-gradient(135deg,#edf5ff,#f8fbff);display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:13px;}
.ataf-module-body{padding:42px 18px 22px;position:static;display:flex;flex-direction:column;flex:1;}
.ataf-module-icon{width:38px;height:38px;border-radius:8px;background:var(--ataf-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:800;position:absolute;left:18px;top:calc(var(--ataf-img-h) - 19px);z-index:9999;margin:0;box-shadow:0 10px 20px rgba(15,92,255,.2);}
.ataf-module-title{font-size:17px;line-height:1.25;color:var(--ataf-title);font-weight:800;margin:0 0 10px;letter-spacing:-.015em;}
.ataf-module-subtitle{font-size:13.5px;line-height:1.55;color:#1e3a8a;font-weight:700;margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.ataf-module-desc{font-size:14px;line-height:1.65;color:var(--ataf-text);margin:0 0 14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.ataf-module-details{margin-top:auto;}
.ataf-module-details summary{list-style:none;cursor:pointer;}
.ataf-module-details summary::-webkit-details-marker{display:none;}
.ataf-module-link{display:inline-flex;align-items:center;font-size:14px;font-weight:800;color:var(--ataf-primary)!important;text-decoration:none!important;}
.ataf-module-link:after{content:' →';margin-left:4px;}
.ataf-module-details[open] .ataf-module-link:after{content:' ↑';}
.ataf-module-hidden{padding-top:16px;margin-top:12px;border-top:1px solid rgba(15,23,42,.08);}
.ataf-module-hidden-desc{font-size:13.5px;line-height:1.65;color:var(--ataf-text);margin:0 0 14px;}
.ataf-module-block h4,.ataf-module-problem h4{font-size:13px;line-height:1.2;color:var(--ataf-title);margin:12px 0 8px;font-weight:850;}
.ataf-module-list{margin:0 0 12px;padding:0;list-style:none;}
.ataf-module-list li{position:relative;font-size:13px;line-height:1.45;color:var(--ataf-text);padding-left:18px;margin-bottom:6px;}
.ataf-module-list li:before{content:'✓';position:absolute;left:0;top:0;color:var(--ataf-primary);font-weight:900;}
.ataf-module-problem{display:grid;grid-template-columns:1fr;gap:2px;background:#f8fbff;border:1px solid rgba(15,23,42,.06);border-radius:8px;padding:8px 10px;margin:12px 0;}
.ataf-module-problem .ataf-module-list li:before{content:'•';}
.ataf-module-cta{display:inline-flex;margin-top:8px;background:var(--ataf-primary);color:#fff!important;text-decoration:none!important;border-radius:7px;padding:10px 13px;font-size:13px;font-weight:800;}
.ataf-admin-module{border-bottom:1px solid #ddd;padding:12px 0;margin-bottom:12px;}
.ataf-admin-preview{display:block;width:100%;height:auto;margin:8px 0;border-radius:6px;border:1px solid #ddd;}
.editor-styles-wrapper .ataf-modules-section{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);}
@media (max-width:1100px){.ataf-modules-inner{grid-template-columns:1fr}.ataf-modules-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.ataf-modules-copy{max-width:620px;}}
@media (max-width:640px){.ataf-modules-section{padding:44px 18px}.ataf-modules-title{font-size:29px}.ataf-modules-grid{grid-template-columns:1fr}.ataf-module-image-wrap,.ataf-module-image-placeholder{height:170px}}

/* v1.2.0: tarjetas ordenadas antes de desplegar */
.ataf-module-details:not([open]){padding-top:8px;}
.ataf-module-details[open]{margin-top:14px;}
.ataf-module-details[open] .ataf-module-link{margin-top:0;}
.ataf-module-card:has(.ataf-module-details[open]){min-height:430px;}
@supports not selector(:has(*)){.ataf-module-card{min-height:430px;}}
@media (max-width:640px){.ataf-module-card{min-height:auto}.ataf-module-subtitle,.ataf-module-desc{-webkit-line-clamp:unset;}}


/* v1.4.1: actualización real sobre el mismo bloque.
   Mantiene altura ordenada en cerrado, permite títulos largos completos
   y evita que una tarjeta abierta estire visualmente las demás. */
.ataf-modules-grid{
    align-items:start!important;
    grid-auto-rows:auto!important;
}
.ataf-module-card{
    align-self:start!important;
    height:auto!important;
    min-height:430px;
}
.ataf-module-title{
    display:block!important;
    overflow:visible!important;
    -webkit-line-clamp:unset!important;
    -webkit-box-orient:initial!important;
}
.ataf-module-subtitle{
    display:block!important;
    overflow:visible!important;
    -webkit-line-clamp:unset!important;
    -webkit-box-orient:initial!important;
}
.ataf-module-desc{
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.ataf-module-details:not([open]){
    margin-top:auto!important;
    padding-top:8px;
}
.ataf-module-details[open]{
    margin-top:14px!important;
}
.ataf-module-details[open] .ataf-module-link:after{
    content:' ↑';
}
.ataf-module-details:not([open]) .ataf-module-link:after{
    content:' →';
}
@media (max-width:640px){
    .ataf-module-card{min-height:auto;}
    .ataf-module-desc{display:block;-webkit-line-clamp:unset;overflow:visible;}
}


/* v1.4.2: altura uniforme cuando las tarjetas están cerradas.
   JS agrega .is-open a la tarjeta activa para que solo esa crezca. */
.ataf-modules-section{
    --ataf-card-closed-h: 460px;
}
.ataf-modules-grid{
    align-items:start!important;
}
.ataf-module-card{
    align-self:start!important;
}
.ataf-module-card:not(.is-open){
    height:var(--ataf-card-closed-h)!important;
    min-height:var(--ataf-card-closed-h)!important;
    max-height:var(--ataf-card-closed-h)!important;
    overflow:hidden!important;
}
.ataf-module-card.is-open{
    height:auto!important;
    min-height:var(--ataf-card-closed-h)!important;
    max-height:none!important;
    overflow:visible!important;
}
.ataf-module-card:not(.is-open) .ataf-module-body{
    height:calc(var(--ataf-card-closed-h) - var(--ataf-img-h));
    overflow:hidden;
}
.ataf-module-card:not(.is-open) .ataf-module-details{
    margin-top:auto!important;
}
.ataf-module-card:not(.is-open) .ataf-module-hidden{
    display:none!important;
}
@media (max-width:640px){
    .ataf-module-card:not(.is-open){
        height:auto!important;
        min-height:auto!important;
        max-height:none!important;
        overflow:visible!important;
    }
    .ataf-module-card:not(.is-open) .ataf-module-body{
        height:auto;
        overflow:visible;
    }
}

/* v1.4.3: agrega contenido extendido automático en tarjetas existentes sin alterar el diseño. */

/* v1.4.4: tarjetas adicionales ocultas para el botón principal */
.ataf-modules-extra-wrap{
    max-width:1280px;
    margin:28px auto 0;
    display:none;
}
.ataf-modules-section.is-extra-open .ataf-modules-extra-wrap{
    display:block;
}
.ataf-modules-extra-inner{
    width:100%;
}
.ataf-modules-extra-grid{
    grid-template-columns:repeat(var(--ataf-cols),minmax(0,1fr));
}
.ataf-modules-button{
    cursor:pointer;
}
@media (max-width:1100px){
    .ataf-modules-extra-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:640px){
    .ataf-modules-extra-grid{grid-template-columns:1fr;}
}


/* v1.4.6: corrige iconos tapados por las imágenes en tarjetas cerradas.
   El icono deja de subir con margen negativo dentro de un contenedor recortado. */
.ataf-module-body{
    padding-top:16px!important;
}
.ataf-module-icon{
    position:relative!important;
    z-index:20!important;
    margin-top:0!important;
    margin-bottom:16px!important;
    flex:0 0 38px!important;
}
.ataf-module-image-wrap{
    position:relative!important;
    z-index:1!important;
    overflow:hidden!important;
}
.ataf-module-image{
    position:relative!important;
    z-index:1!important;
}
.ataf-module-card:not(.is-open) .ataf-module-body{
    height:calc(var(--ataf-card-closed-h) - var(--ataf-img-h))!important;
    overflow:hidden!important;
}


/* v1.4.7: fuerza el icono sobre la imagen del módulo */
.ataf-module-card{position:relative;}
.ataf-module-image-wrap,
.ataf-module-image{position:relative;z-index:1;}
.ataf-module-body{position:static;padding-top:42px;}
.ataf-module-icon{
    position:absolute!important;
    left:18px!important;
    top:calc(var(--ataf-img-h) - 19px)!important;
    z-index:9999!important;
    margin:0!important;
}


/* v1.4.8: lightbox para abrir imágenes al hacer clic */
.ataf-module-image-wrap{
    cursor:zoom-in;
}
.ataf-module-lightbox{
    position:fixed;
    inset:0;
    z-index:999999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    background:rgba(8,22,51,.78);
    opacity:0;
    pointer-events:none;
    transition:opacity .18s ease;
}
.ataf-module-lightbox.is-open{
    opacity:1;
    pointer-events:auto;
}
.ataf-module-lightbox-inner{
    position:relative;
    max-width:min(1100px,94vw);
    max-height:88vh;
}
.ataf-module-lightbox-img{
    display:block;
    max-width:100%;
    max-height:88vh;
    object-fit:contain;
    border-radius:14px;
    box-shadow:0 24px 70px rgba(0,0,0,.35);
    background:#fff;
}
.ataf-module-lightbox-close{
    position:absolute;
    top:-18px;
    right:-18px;
    width:42px;
    height:42px;
    border:0;
    border-radius:999px;
    background:#0f5cff;
    color:#fff;
    font-size:24px;
    line-height:1;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 12px 30px rgba(15,92,255,.35);
}
@media (max-width:640px){
    .ataf-module-lightbox{padding:16px;}
    .ataf-module-lightbox-close{top:-14px;right:-10px;width:38px;height:38px;font-size:22px;}
}
