.d-none{display:none!important}
.container{max-width:1140px;margin:0 auto;padding-left:1rem;padding-right:1rem}

/* Tema Aliadas */
:root{
    --aliadas-primary:#f500a8;
    --aliadas-primary-600:#c40085;
    --text:#00558c;
    --bg:#f500a8;             /* fondo global rosa */
    --radius:1.5rem;
    --border-soft:1px solid rgba(245,0,168,.14);
    --shadow-soft:0 10px 30px rgba(0,0,0,.06);

    /* layout panel flotante */
    --overlap: clamp(16px, 2.6vw, 28px);
}

/* Vollkorn Black (TTF) */
@font-face{
    font-family:"Vollkorn";
    src:url("../../assets/fonts/Vollkorn-Black.ttf") format("truetype");
    font-weight:900;                      /* Black */
    font-style:normal;
    font-display:swap;
}

/* Helvetica Neue LT Std Bold (OTF) */
@font-face{
    font-family:"HelveticaNeueLTStd";
    src:url("../../assets/fonts/HelveticaNeueLTStd-Bd.otf") format("opentype");
    font-weight:700;                      /* Bold */
    font-style:normal;
    font-display:swap;
}

/* Uso sugerido */
/* h1,h2 { font-family:"Vollkorn", serif; }
   p,strong,b,.ad-step { font-family:"HelveticaNeueLTStd",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; } */

body{background:var(--bg);color:var(--text)}
body.bg-light{background:var(--bg)!important}

/* ===== HERO BLANCO ===== */
.ad-hero{
    background-color:#fff !important;
    background-image:none !important;
    color:var(--text);
    padding:clamp(2rem, 1rem + 3vw, 4rem) 1rem;
    position:relative;                   /* requerido para el ::after */
}

@media (max-width:576px){
    .ad-hero::after{ bottom:-12px; height:24px; }
}

/* Grid del hero: logo izquierda / copy derecha */
.ad-hero-grid{
    display:grid;
    grid-template-columns: 1fr 1.3fr;
    align-items:center;
    gap:clamp(1rem, 2vw, 2rem);
}

.ad-hero-logo{
    display:flex; justify-content:center; align-items:center;
}
.ad-hero-logo img{
    max-width:clamp(160px, 28vw, 320px);
    height:auto; object-fit:contain;
}

.ad-hero-copy{ text-align:left; }

.ad-hero h1{
    margin:0;
    font-family:'Fjalla One', Montserrat, system-ui, sans-serif;
    font-weight:800; letter-spacing:.2px;
    color:var(--text);
    font-size:clamp(1.75rem, 1rem + 2.4vw, 3rem);
    line-height:1.08;
}
.ad-hero p{
    margin:.75rem 0 0;
    font-weight:600; opacity:.98; color:var(--text);
}

/* Responsivo: ocultar logo y centrar texto en tablet/móvil */
@media (max-width:991px){
    .ad-hero-grid{ grid-template-columns:1fr; }
    .ad-hero-logo{ display:none; }
    .ad-hero-copy{ text-align:center; }
}

/* ===== PANEL / TARJETA ===== */
.ad-panel{
    background:#fff;
    border:1px solid rgba(0,0,0,.08);                     /* borde suave */
    border-radius:var(--radius);
    /* anillo + doble sombra para volumen */
    box-shadow:
        0 0 0 1px rgba(255,255,255,.8) inset,               /* anillo blanco sutil */
        0 2px 10px rgba(0,0,0,.06),                         /* sombra cercana */
        0 22px 60px rgba(0,0,0,.12);                        /* sombra extendida */
    margin-top:calc(var(--overlap) * -1);                 /* flota sobre el hero */
    position:relative; z-index:2;
    padding:clamp(1rem, 2vw, 2rem);
}
.ad-card{
    background:#fff;
    border:var(--border-soft);
    border-radius:var(--radius);
    box-shadow:var(--shadow-soft);
}
.ad-stack{
    max-width: 980px;
    margin-inline: auto;
    padding-inline: 1rem;
}
/* ===== Paso ===== */
.ad-step{
    display:flex; align-items:center; gap:.6rem;
    font-weight:800; color:var(--aliadas-primary);
    margin-bottom:.25rem;
}
.ad-step .badge{
    width:34px; height:34px; border-radius:50%;
    display:grid; place-items:center;
    background:#fff; color:var(--aliadas-primary);
    border:2px solid var(--aliadas-primary);
    font-weight:900; box-shadow:none; filter:none;
}

/* ===== Etiquetas ===== */
.ad-label{ font-weight:800; color:var(--text); letter-spacing:.2px; }
.ad-req{ color:#dc3545; }

/* ===== Inputs y Select2 ===== */
.form-control,
.select2-container--default .select2-selection--single{
    height:48px!important; border-radius:1rem!important;
}
.form-control{ padding:.75rem 1rem; }
.form-control::placeholder{ color:#9aa0a6; opacity:1; }
.form-control:focus{
    border-color:var(--aliadas-primary)!important;
    box-shadow:0 0 0 .2rem rgba(245,0,168,.25)!important;
}
.form-control.is-invalid{ border-color:#dc3545; }
.form-control.is-invalid:focus{ box-shadow:0 0 0 .2rem rgba(220,53,69,.15); }

.select2-container .select2-selection__rendered{
    line-height:48px!important; padding-left:1rem!important;
}
.select2-container .select2-selection__arrow{ height:48px!important; }
.select2-container--default .select2-selection--single{
    border:1px solid rgba(0,0,0,.12);
}
.select2-container--default .select2-selection--single:hover{
    border-color:var(--aliadas-primary);
}
.select2-container--default .select2-results__option--highlighted[aria-selected]{
    background-color:var(--aliadas-primary)!important;
}
.select2-container--default .select2-results__option[aria-selected=true]{
    background-color:rgba(245,0,168,.12)!important; color:var(--text);
}

/* ===== Botón primario (sin sombras) ===== */
.ad-btn, .btn-primary{
    display:inline-flex; align-items:center; justify-content:center;
    height:52px; padding:0 1.4rem; border:none; border-radius:999px;
    color:#fff; background-color:var(--aliadas-primary)!important;
    background-image:none!important;
    font-weight:800; letter-spacing:.3px;
    box-shadow:none!important; transform:none!important; outline:none;
}
.ad-btn:hover, .btn-primary:hover{
    background-color:var(--aliadas-primary-600)!important;
    box-shadow:none!important; transform:none!important;
}

/* ===== Animación del paso 2 ===== */
@keyframes adFadeUp{ from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none} }
#paso2{ animation:adFadeUp .25s ease-out; }

/* ===== Responsive general ===== */
@media (max-width:768px){
    #formCurp .col-md-8, #formCurp .col-md-4{ flex:0 0 100%; max-width:100%; }
    .ad-panel{ padding:1rem; }
}

/* ===== Accesibilidad: reducir movimiento ===== */
@media (prefers-reduced-motion:reduce){
    *{ animation:none!important; transition:none!important; }
}

/* ===== Inputs y botón coherentes con el card ===== */
.form-control{ border:1px solid rgba(0,0,0,.12); border-radius:1rem; }
.ad-btn{ height:48px; border-radius:999px; }





/* Página como flex column para empujar la franja al fondo */
html, body { height: 100%; }
.ad-page{
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}
.ad-main{
    flex: 1 0 auto; /* ocupa todo el espacio disponible */
}

/* ===== Banda de logos al final ===== */
.ad-logos{
    background: transparent;                        /* franja blanca sobre el fondo rosa */
    padding: clamp(1.25rem, 2vw, 2rem) 0;    /* respiración vertical */
    box-shadow: 0 -8px 24px rgba(0,0,0,.05); /* sutil separación con el rosa */
    flex-shrink: 0;                           /* evita que colapse */
}
.ad-logos .ad-stack{
    max-width: 1100px;                       /* un pelín más ancho que el panel */
    margin-inline: auto;
    padding-inline: 1rem;
}
.ad-logos-img{
    display: block;
    width: 100%;
    max-width: 1100px;                       /* tope del SVG */
    height: auto;
    margin-inline: auto;
    filter: drop-shadow(0 1px 0 rgba(0,0,0,.02));
}

/* En pantallas chicas que no quede enorme */
@media (max-width: 768px){
    .ad-logos{
        padding: 1rem 0;
    }
    .ad-logos-img{
        max-width: 92vw;
    }
}


/* ===== Banda de logos al final ===== */
.ad-logos{
    background: transparent;
    padding: clamp(1.25rem, 2vw, 2rem) 0;
    box-shadow: 0 -8px 24px rgba(0,0,0,.05);
    flex-shrink: 0;
}
.ad-logos .ad-stack{
    max-width: 1100px;
    margin-inline: auto;
    padding-inline: 1rem;
}

/* Fila con el SVG grande + el logo extra */
.ad-logos-row{
    display: flex;
    align-items: center;
    justify-content: center;        /* centramos el conjunto */
    gap: clamp(10px, 2vw, 28px);    /* espacio entre el SVG y el logo extra */
}

/* Imagen grande (todas las secretarías) */
.ad-logos-img{
    display: block;
    width: min(1100px, 100%);       /* tope de 1100px, responsiva */
    height: auto;
    filter: drop-shadow(0 1px 0 rgba(0,0,0,.02));
    flex: 0 1 auto;
}

/* Logo extra a la derecha */
.ad-logos-extra{
    display: block;
    height: clamp(28px, 4vw, 48px); /* ajusta el alto del logo extra */
    width: auto;
    filter: drop-shadow(0 1px 0 rgba(0,0,0,.02));
    flex: 0 0 auto;
}

/* En pantallas chicas: que no quede enorme y puede ir debajo si falta ancho */
@media (max-width: 768px){
    .ad-logos{ padding: 1rem 0; }

    .ad-logos-row{
        flex-wrap: wrap;              /* permite pasar a 2 líneas si no cabe */
        justify-content: center;
        gap: 12px;
    }

    .ad-logos-img{ width: 92vw; }   /* mismo criterio que ya usabas */
    .ad-logos-extra{ height: 28px; }/* un poco más pequeño en móvil */
}

/* ===== File input accesible/estilizado ===== */
.ad-file{
    position: relative;
    display: flex;
    align-items: stretch;
    gap: .5rem;
    margin-top: .25rem;
}

.ad-file-input{
    /* Oculto visualmente, pero accesible desde su label */
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0,0,0,0);
    border: 0;
}

.ad-file-label{
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .75rem;
    width: 100%;
    background: #fff;
    border: 1px solid rgba(0,0,0,.12);
    border-radius: 1rem;
    padding: .75rem 1rem;
    cursor: pointer;
    transition: border-color .2s ease;
}

.ad-file-label:hover{ border-color: var(--aliadas-primary); }

.ad-file-icon{ font-size: 1.25rem; }
.ad-file-text{ color: #6b7280; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ad-file-btn{
    background: var(--aliadas-primary);
    color: #fff;
    border-radius: 999px;
    padding: .5rem .9rem;
    font-weight: 700;
}

.ad-file-label.is-invalid{
    border-color:#dc3545;
    box-shadow: 0 0 0 .2rem rgba(220,53,69,.12);
}

/* Radios del bloque “Residente de GTO” */
.ad-fieldset{
    border: 1px dashed rgba(0,0,0,.12);
    border-radius: 1rem;
    padding: .75rem 1rem;
}
.ad-radio-group .form-check{
    margin-right: 1rem;
}

.ad-privacy summary{
    cursor:pointer;
    font-weight:700;
    color:var(--text);
}
.ad-privacy[open] summary { opacity:.9; }

.ad-step.is-done .badge{ background: var(--aliadas-primary); color:#fff; }
.ad-step.is-done{ color: var(--aliadas-primary-600); }

.ad-file-label{border:1px dashed rgba(0,0,0,.18); border-radius:1rem; padding:.85rem 1rem; display:flex; align-items:center; gap:.75rem; cursor:pointer;}
.ad-file-label:hover{background: rgba(245,0,168,.04);}
.ad-file-label.is-invalid{border-color:#dc3545; background: rgba(220,53,69,.03);}
.ad-file-btn{margin-left:auto; padding:.35rem .75rem; border-radius:999px; background:var(--aliadas-primary); color:#fff; font-weight:800;}
.ad-file-text{font-weight:600;}

.ad-error, label.error {
    display:block;
    margin-top:.35rem;
    font-size:.875rem;
    font-weight:400;
    color:#dc3545;
}

#ad #residente_gto-error,
#ad #prepa_status-error{
    font-weight: 400;
    color: #dc3545;
    font-size: 0.9375rem;
    margin-top: .25rem;
    display: block;
}

.ad-file-label {
    display:flex; align-items:center; gap:.5rem;
    width:100%; padding:.9rem 1rem;
    border:1px dashed #cfd8dc; border-radius:.6rem;
    transition:border-color .2s ease;
}
.ad-file-label.is-invalid { border-color:#dc3545; }

.ad-summary{
    background:#dc3545;
    color:#fff;
    padding:12px 14px;
    border-radius:10px;
    margin:8px 0 14px;
    box-shadow:0 1px 2px rgba(0,0,0,.06);
    font-size:.95rem;
}
.ad-summary a{ color:#fff; text-decoration: underline; }
.ad-summary .ad-summary-actions{ float:right; display:flex; gap:.75rem; }
.ad-summary .ad-close{
    background:transparent; border:0; color:#fff; font-size:1.15rem;
    line-height:1; cursor:pointer;
}


legend.ad-label { font-size: 1rem; }
