/*
 * ODL Colors — Paleta personalizada del Observatorio de la Democracia Local
 *
 * Paleta:
 *   #1F4E79  Navy oscuro    → primary  (headers, fondos oscuros, nav)
 *   #3D7EA6  Azul medio     → dark     (botones, gradientes, enlaces)
 *   #A9D6E5  Azul claro     → accent   (acentos, gradiente claro, spans)
 *   #F7E7CE  Crema cálida   → secondary (fondo de secciones bg-section)
 *   #FFF7EA  Crema muy clara → white   (fondos "blancos", texto en oscuro)
 *
 * Este archivo sobreescribe únicamente las variables :root de custom.css.
 * NO modifica ningún otro selector ni regla de custom.css.
 */

:root {
    /* Navy oscuro — fondos oscuros, headings, nav sticky */
    --primary-color     : #1F4E79;

    /* Crema cálida — fondo de secciones (bg-section) y body */
    --secondary-color   : #F7E7CE;

    /* Gris oscuro cálido — texto del body legible sobre crema */
    --text-color        : #4A3F35;

    /* Azul claro — color de acento en gradientes y spans de título */
    --accent-color      : #A9D6E5;

    /* Azul medio — segundo color del gradiente, botones, enlaces */
    --dark-color        : #3D7EA6;

    /* Crema muy clara — texto "blanco" sobre fondos oscuros */
    --white-color       : #FFF7EA;

    /* Divisor — azul claro semitransparente */
    --divider-color     : #A9D6E5;

    /* Divisor oscuro semitransparente — sobre fondos navy */
    --dark-divider-color: rgba(255, 247, 234, 0.2);

    /* Error — sin cambio */
    --error-color       : rgb(230, 87, 87);

    /* Fuente — sin cambio */
    --default-font      : "Fustat", sans-serif;
}

/*
 * El hero necesita una imagen de fondo azul institucional.
 * La clase .hero usa .bg-section + .parallaxie con hero-bg.jpg del template.
 * Agregamos un overlay azul semitransparente sobre la imagen existente.
 */
.hero.bg-section.parallaxie {
    position: relative;
}

.hero.bg-section.parallaxie::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        135deg,
        rgba(31, 78, 121, 0.88) 0%,
        rgba(61, 126, 166, 0.70) 100%
    );
    border-radius: inherit;
    z-index: 1;
    pointer-events: none;
}

.hero .hero-section {
    position: relative;
    z-index: 2;
}

/*
 * Page header — overlay azul sobre la imagen de fondo
 */
.page-header.bg-section.parallaxie {
    position: relative;
}

.page-header.bg-section.parallaxie::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        135deg,
        rgba(31, 78, 121, 0.90) 0%,
        rgba(61, 126, 166, 0.75) 100%
    );
    border-radius: inherit;
    z-index: 1;
    pointer-events: none;
}

.page-header-box {
    position: relative;
    z-index: 2;
}

/*
 * Intro video section — overlay azul
 */
.intro-video.bg-section.parallaxie::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        135deg,
        rgba(31, 78, 121, 0.90) 0%,
        rgba(169, 214, 229, 0.55) 100%
    );
    border-radius: inherit;
    z-index: 1;
    pointer-events: none;
}

.intro-video .container {
    position: relative;
    z-index: 2;
}

/*
 * Preloader — fondo azul ODL en lugar del gradiente verde
 */
.preloader {
    background: linear-gradient(
        263deg,
        var(--accent-color) 0.16%,
        var(--dark-color) 99.84%
    );
}

/*
 * Paginación WordPress — estilo consistente con el tema
 */
.pagination-wrap {
    margin-top: 60px;
    text-align: center;
}

.pagination-wrap .nav-links {
    display: inline-flex;
    gap: 8px;
    align-items: center;
}

.pagination-wrap .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    font-size: 15px;
    font-weight: 600;
    color: var(--primary-color);
    border: 1px solid var(--divider-color);
    transition: all 0.3s ease-in-out;
    text-decoration: none;
}

.pagination-wrap .page-numbers:hover,
.pagination-wrap .page-numbers.current {
    background: var(--dark-color);
    color: var(--white-color);
    border-color: var(--dark-color);
}

/*
 * Fecha en listado de publicaciones
 */
.blog-date {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--dark-color);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 8px;
}

/*
 * Post navigation (anterior / siguiente)
 */
.post-navigation {
    margin-top: 50px;
    padding-top: 30px;
    border-top: 1px solid var(--divider-color);
}

.post-navigation .nav-links {
    display: flex;
    justify-content: space-between;
    gap: 20px;
}

.post-navigation .nav-previous a,
.post-navigation .nav-next a {
    font-size: 15px;
    font-weight: 600;
    color: var(--primary-color);
    transition: color 0.3s ease-in-out;
}

.post-navigation .nav-previous a:hover,
.post-navigation .nav-next a:hover {
    color: var(--dark-color);
}

/*
 * Archive description
 */
.archive-description {
    margin-bottom: 40px;
    padding: 20px 30px;
    background: var(--secondary-color);
    border-left: 4px solid var(--dark-color);
    border-radius: 8px;
}

/*
 * 404 page
 */
.page-404 {
    padding: 80px 0;
}

.page-404 .error-404-content figure {
    max-width: 400px;
    margin: 0 auto 40px;
}

.page-404 .error-404-content h2 {
    margin-bottom: 20px;
}

.page-404 .error-404-content p {
    max-width: 500px;
    margin: 0 auto 40px;
}

/* ─────────────────────────────────────────────────────────
   PADDING SECCIONES — 100px 0 → 50px 50px
───────────────────────────────────────────────────────── */
.about-us,
.our-service,
.our-potential,
.our-pricing,
.our-expertise,
.how-we-work,
.company-growth,
.our-faqs,
.our-blog,
.our-approach,
.our-partners,
.why-choose-us,
.our-team,
.error-page,
.page-services,
.page-service-single,
.page-blog,
.page-single-post,
.page-team,
.page-team-single,
.page-pricing,
.page-testimonial,
.page-gallery,
.page-video-gallery,
.page-faq,
.page-book-appointment,
.page-contact-us {
    padding: 50px 50px;
}

/* Variantes con padding-bottom distinto — se mantiene el bottom original reducido */
.our-partners,
.our-team,
.page-services,
.page-team,
.page-gallery,
.page-video-gallery {
    padding: 50px 50px 35px;
}

/* ─────────────────────────────────────────────────────────
   BOTONES — border-radius 100px → 10%
───────────────────────────────────────────────────────── */
.btn-default,
.btn-default.btn-highlighted,
.btn-default.btn-highlighted::after {
    border-radius: 10%;
}

/* ─────────────────────────────────────────────────────────
   CONTRASTE DE SECCIONES
   Alternas: crema oscura #F2E3C6 / crema muy clara #FFF9F0
   Texto:    navy #0B2545 / azul medio #4B88A2
───────────────────────────────────────────────────────── */

/* Secciones con fondo crema cálida más intensa #F2E3C6 */
.our-service.bg-section,
.our-pricing,
.company-growth,
.our-faqs {
    background: #F2E3C6 !important;
}

/* Secciones con fondo crema casi blanca #FFF9F0 */
.about-us,
.our-potential,
.our-expertise,
.our-blog.bg-section,
.our-approach,
.page-single-post,
.page-blog {
    background: #FFF9F0 !important;
}

/* Texto navy oscuro #0B2545 en headings sobre fondos claros */
.our-service h2,
.our-service h3,
.our-pricing h2,
.our-pricing h3,
.company-growth h2,
.company-growth h3,
.our-faqs h2,
.our-faqs h3,
.about-us h2,
.about-us h3,
.our-potential h2,
.our-potential h3,
.our-expertise h2,
.our-expertise h3,
.our-blog h2,
.our-blog h3 {
    color: #0B2545;
}

/* Texto azul medio #4B88A2 en subtítulos, párrafos y labels */
.our-service .section-title h3,
.our-pricing .section-title h3,
.company-growth .section-title h3,
.our-faqs .section-title h3,
.about-us .section-title h3,
.our-potential .section-title h3,
.our-expertise .section-title h3,
.our-blog .section-title h3,
.how-we-work .section-title h3,
.service-item-content h3,
.how-work-content h3,
.footer-contact-info h3 {
    color: #4B88A2;
}

/* Actualizar las variables para que gradientes de texto usen la nueva paleta */
.section-title h1 span,
.section-title h2 span {
    background-image: linear-gradient(267.43deg, #A9D6E5 4.95%, #0B2545 97.92%);
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
