/* ==========================================================================
   Goldfinch Builders — estilos personalizados
   Se carga DESPUÉS de assets/sass/style.css, por eso sus reglas ganan sin
   necesidad de tocar la hoja de estilos del tema.

   Contenido:
   1. Variables
   2. Footer — estructura y divisores
   3. Footer — títulos de widget
   4. Footer — columna 1 (logo, texto, redes)
   5. Footer — columna 2 (servicios)
   6. Footer — columna 3 (contacto)
   7. Footer — columna 4 (CTA)
   8. Responsive
   ========================================================================== */

/* 1. Variables ----------------------------------------------------------- */

:root {
    --gfb-gold: #c9a44e;
    --gfb-gold-light: #e0c078;
    --gfb-text: rgba(255, 255, 255, .72);
    --gfb-line: rgba(255, 255, 255, .10);
}

/* 2. Footer — estructura y divisores ------------------------------------- */

.wpo-site-footer .wpo-upper-footer {
    padding: 90px 0 80px;
}

.wpo-site-footer .wpo-upper-footer .row {
    align-items: stretch;
}

.wpo-site-footer .wpo-upper-footer .gfb-col {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.wpo-site-footer .wpo-upper-footer .gfb-col .widget {
    margin-bottom: 0;
    padding-bottom: 0;
}

/* 3. Títulos de widget --------------------------------------------------- */

.wpo-site-footer .wpo-upper-footer .widget > .widget-title {
    margin-bottom: 32px;
    padding-bottom: 0;
    border: 0;
}

.wpo-site-footer .wpo-upper-footer .widget > .widget-title h3 {
    position: relative;
    margin: 0;
    padding-bottom: 14px;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--gfb-gold);
}

.wpo-site-footer .wpo-upper-footer .widget > .widget-title h3::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 42px;
    height: 2px;
    background: var(--gfb-gold);
    opacity: .75;
}

.wpo-site-footer .wpo-upper-footer .widget > .widget-title h3::before {
    display: none;
}

/* 4. Columna 1 — logo, texto, redes -------------------------------------- */

.wpo-site-footer .about-widget {
    text-align: center;
}

.wpo-site-footer .about-widget .logo.widget-title {
    margin-bottom: 26px;
}

.wpo-site-footer .about-widget .logo img {
    max-width: 230px;
    height: auto;
}

.wpo-site-footer .about-widget p {
    max-width: 300px;
    margin: 0 auto 32px;
    font-size: 16px;
    line-height: 1.85;
    color: var(--gfb-text);
}

.wpo-site-footer .about-widget .gfb-social {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.wpo-site-footer .about-widget .gfb-social li {
    margin: 0;
    padding: 0;
    border: 0;
}

.wpo-site-footer .about-widget .gfb-social li a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 50%;
    background: transparent;
    color: #fff;
    font-size: 17px;
    line-height: 1;
    transition: color .25s ease, border-color .25s ease, transform .25s ease;
}

.wpo-site-footer .about-widget .gfb-social li a:hover,
.wpo-site-footer .about-widget .gfb-social li a:focus {
    color: var(--gfb-gold);
    border-color: var(--gfb-gold);
    background: transparent;
    transform: translateY(-3px);
}

.wpo-site-footer .about-widget .gfb-social li a:focus-visible {
    outline: 2px solid var(--gfb-gold);
    outline-offset: 3px;
}

/* 5. Columna 2 — servicios ----------------------------------------------- */

.wpo-site-footer .link-widget ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.wpo-site-footer .link-widget ul li {
    margin: 0;
    padding: 0 0 17px;
    border: 0;
}

.wpo-site-footer .link-widget ul li:last-child {
    padding-bottom: 0;
}

.wpo-site-footer .link-widget ul li a {
    display: inline-block;
    padding: 0;
    font-size: 16.5px;
    color: var(--gfb-text);
    text-decoration: none;
    transition: color .25s ease, transform .25s ease;
}

.wpo-site-footer .link-widget ul li a::before {
    display: none;
}

.wpo-site-footer .link-widget ul li a:hover,
.wpo-site-footer .link-widget ul li a:focus {
    color: var(--gfb-gold);
    transform: translateX(4px);
}

/* 6. Columna 3 — contacto ------------------------------------------------ */

.wpo-site-footer .contact-ft ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.wpo-site-footer .contact-ft ul li {
    position: relative;
    margin: 0;
    padding: 0 0 24px 40px;
    border: 0;
    font-size: 16px;
    line-height: 1.6;
    color: var(--gfb-text);
}

.wpo-site-footer .contact-ft ul li:last-child {
    padding-bottom: 0;
}

.wpo-site-footer .contact-ft ul li i {
    position: absolute;
    left: 0;
    top: 2px;
    font-size: 19px;
    color: var(--gfb-gold);
}

.wpo-site-footer .contact-ft ul li a {
    color: var(--gfb-text);
    text-decoration: none;
    transition: color .25s ease;
}

.wpo-site-footer .contact-ft ul li a:hover,
.wpo-site-footer .contact-ft ul li a:focus {
    color: var(--gfb-gold);
}

/* 7. Columna 4 — CTA ----------------------------------------------------- */

.wpo-site-footer .gfb-cta-widget {
    text-align: center;
}

.wpo-site-footer .gfb-cta-widget .gfb-cta__roof {
    display: block;
    width: 120px;
    height: auto;
    margin: 0 auto 22px;
    color: var(--gfb-gold);
}

.wpo-site-footer .gfb-cta-widget .gfb-cta__headline {
    margin: 0 0 14px;
    font-size: 40px;
    line-height: 1.12;
    font-weight: 800;
    letter-spacing: .01em;
    text-transform: uppercase;
    color: #fff;
}

.wpo-site-footer .gfb-cta-widget .gfb-cta__since {
    position: relative;
    margin: 0 0 34px;
    padding-bottom: 18px;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--gfb-gold-light);
}

.wpo-site-footer .gfb-cta-widget .gfb-cta__since::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 90px;
    height: 1px;
    background: var(--gfb-gold);
    opacity: .6;
    transform: translateX(-50%);
}

.wpo-site-footer .gfb-cta-widget .gfb-cta__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 17px 32px;
    border: 1px solid var(--gfb-gold);
    background: transparent;
    color: var(--gfb-gold-light);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background .3s ease, color .3s ease;
}

.wpo-site-footer .gfb-cta-widget .gfb-cta__btn svg {
    width: 18px;
    height: 18px;
    flex: none;
    transition: transform .3s ease;
}

.wpo-site-footer .gfb-cta-widget .gfb-cta__btn:hover,
.wpo-site-footer .gfb-cta-widget .gfb-cta__btn:focus {
    background: var(--gfb-gold);
    color: #14110c;
    text-decoration: none;
}

.wpo-site-footer .gfb-cta-widget .gfb-cta__btn:hover svg {
    transform: translateX(5px);
}

.wpo-site-footer .gfb-cta-widget .gfb-cta__btn:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

/* 8. Responsive ---------------------------------------------------------- */

/* Divisores verticales solo cuando las 4 columnas caben en una sola fila */
@media (min-width: 1200px) {
    .wpo-site-footer .wpo-upper-footer .gfb-col--divider {
        border-left: 1px solid var(--gfb-line);
    }
}

@media (max-width: 1199px) {
    .wpo-site-footer .wpo-upper-footer .gfb-col {
        margin-bottom: 55px;
    }

    .wpo-site-footer .gfb-cta-widget .gfb-cta__headline {
        font-size: 34px;
    }
}

@media (max-width: 767px) {
    .wpo-site-footer .wpo-upper-footer {
        padding: 60px 0 40px;
    }

    .wpo-site-footer .wpo-upper-footer .gfb-col {
        margin-bottom: 45px;
        text-align: center;
    }

    .wpo-site-footer .wpo-upper-footer .widget > .widget-title h3::after {
        left: 50%;
        transform: translateX(-50%);
    }

    .wpo-site-footer .contact-ft ul li {
        padding-left: 0;
        padding-bottom: 22px;
    }

    .wpo-site-footer .contact-ft ul li i {
        position: static;
        display: block;
        margin-bottom: 6px;
    }

    .wpo-site-footer .link-widget ul li a:hover {
        transform: none;
    }

    .wpo-site-footer .gfb-cta-widget .gfb-cta__headline {
        font-size: 32px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .wpo-site-footer .about-widget .gfb-social li a,
    .wpo-site-footer .link-widget ul li a,
    .wpo-site-footer .gfb-cta-widget .gfb-cta__btn,
    .wpo-site-footer .gfb-cta-widget .gfb-cta__btn svg {
        transition: none;
    }

    .wpo-site-footer .about-widget .gfb-social li a:hover,
    .wpo-site-footer .link-widget ul li a:hover,
    .wpo-site-footer .gfb-cta-widget .gfb-cta__btn:hover svg {
        transform: none;
    }
}
