/* ==========================================================================
   Footer
   ========================================================================== */

.df-footer {
    --marca-d: var(--c4);
    --marca-m: var(--c3);
    --marca-l: var(--c2);
    position: relative;
    overflow: hidden;
    isolation: isolate;
    padding-top: clamp(64px, 8vw, 96px);
    background: var(--navy-3);
    color: var(--on-dark-2);
}
.df-footer::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image: radial-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px);
    background-size: 22px 22px;
    mask-image: linear-gradient(180deg, #000, transparent 70%);
    -webkit-mask-image: linear-gradient(180deg, #000, transparent 70%);
}

.df-footer-grid {
    display: grid;
    grid-template-columns: 1.45fr 1.1fr .8fr .8fr;
    gap: clamp(28px, 4vw, 48px);
}

.df-logo-claro .df-logo-nombre { color: #fff; }
.df-logo-claro .df-logo-desc { color: var(--c2); border-color: var(--c3); }

.df-footer-marca p { max-width: 36ch; margin-top: 20px; color: var(--on-dark-3); font-size: .95rem; }

.df-footer-iso {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-top: 24px;
    padding: 8px 16px 8px 8px;
    border: 1px solid var(--line-dark);
    border-radius: 16px;
    background: rgba(255, 255, 255, .04);
}
.df-footer-iso img {
    width: 96px;
    height: auto;
    padding: 6px 8px;
    border-radius: 10px;
    background: #fff;
}
.df-footer-iso span { color: var(--on-dark-2); font-size: .82rem; font-weight: 600; line-height: 1.35; }

.df-footer-titulo {
    margin-bottom: 20px;
    color: #fff;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.df-footer-lista { display: grid; gap: 14px; }
.df-footer-lista li { display: flex; align-items: flex-start; gap: 12px; font-size: .95rem; }
.df-footer-lista .df-icono { width: 17px; height: 17px; margin-top: 3px; color: var(--c3); }
.df-footer-lista a { transition: color .15s; }
.df-footer-lista a:hover { color: #fff; }

.df-footer-links { display: grid; gap: 11px; }
.df-footer-links a {
    display: inline-flex;
    align-items: center;
    gap: .45em;
    font-size: .95rem;
    transition: color .15s, transform .2s var(--ease-out);
}
.df-footer-links a:hover { color: #fff; transform: translateX(3px); }
.df-footer-links .df-icono { width: 14px; height: 14px; color: var(--c2); }
.df-footer-oficinas a { flex-wrap: wrap; column-gap: .55em; }
.df-footer-oficinas small {
    color: var(--on-dark-3);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

/* Firma gigante: la marca como textura editorial */
.df-footer-firma {
    margin-top: clamp(40px, 6vw, 72px);
    color: transparent;
    font-family: var(--font-serif);
    font-size: clamp(4rem, 15.5vw, 13.5rem);
    font-style: italic;
    font-weight: 500;
    letter-spacing: -.035em;
    line-height: .82;
    text-align: center;
    white-space: nowrap;
    -webkit-text-stroke: 1px rgba(167, 224, 219, .3);
    background: linear-gradient(180deg, rgba(167, 224, 219, .16), transparent 85%);
    -webkit-background-clip: text;
    background-clip: text;
    user-select: none;
}

.df-footer-base {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-block: 22px 26px;
    border-top: 1px solid var(--line-dark);
    color: var(--on-dark-3);
    font-size: .84rem;
}
.df-footer-base a { transition: color .15s; }
.df-footer-base a:hover { color: #fff; }
