/* Divergentes Media — rediseño visual del sitio (octubre 2026)
   Se carga en todo el sitio DESPUÉS de divergentes_theme.css y de los estilos de cada
   página. Conserva la paleta corporativa (azul #1F3B73 / #152850, naranja #F5793B);
   cambia tipografía, espaciado, jerarquía y componentes.
   Alcance: solo el sitio público (header#top, footer#bottom y clases dv-*). */

/* ============================================================
   Fuentes (OFL, alojadas en el módulo; licencias en static/src/fonts)
   ============================================================ */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/divergentes_website_theme/static/src/fonts/inter-latin-wght-normal.woff2') format('woff2-variations');
}
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/divergentes_website_theme/static/src/fonts/montserrat-latin-wght-normal.woff2') format('woff2-variations');
}

/* ============================================================
   Tokens
   ============================================================ */
:root {
    --dv-primary: #1F3B73;
    --dv-primary-dark: #152850;
    /* Naranja de marca: íconos, detalles y texto sobre azul oscuro (5,3:1). */
    --dv-accent: #F5793B;
    --dv-accent-hover: #E86A2C;
    /* Tonos accesibles de la misma familia (WCAG AA):
       botón con texto blanco 4,6:1 · texto naranja sobre blanco 5,2:1 · titular grande 3,2:1 */
    --dv-accent-strong: #C84F17;
    --dv-accent-strong-hover: #B54515;
    --dv-accent-text: #B84A12;
    --dv-accent-large: #E86A2C;
    --dv-ink: #1C2333;
    --dv-text: #3D4555;
    --dv-muted: #6B7383;
    --dv-surface: #F5F7FA;
    --dv-line: #E3E8EF;
    --dv-radius: 12px;
    --dv-radius-lg: 16px;
    --dv-shadow-sm: 0 1px 2px rgba(21, 40, 80, .06), 0 2px 8px rgba(21, 40, 80, .05);
    --dv-shadow-md: 0 10px 30px rgba(21, 40, 80, .10);
    --dv-font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
    --dv-font-head: 'Montserrat', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}

/* ============================================================
   Base (solo dentro del sitio: #wrapwrap)
   ============================================================ */
#wrapwrap {
    font-family: var(--dv-font-body);
    color: var(--dv-text);
    -webkit-font-smoothing: antialiased;
}
#wrapwrap h1, #wrapwrap h2, #wrapwrap h3, #wrapwrap h4, #wrapwrap h5, #wrapwrap h6,
#wrapwrap .h1, #wrapwrap .h2, #wrapwrap .h3, #wrapwrap .h4, #wrapwrap .h5, #wrapwrap .h6 {
    font-family: var(--dv-font-head);
    font-weight: 700;
    letter-spacing: -0.01em;
}
#wrapwrap main a:not(.btn):focus-visible,
#wrapwrap .btn:focus-visible,
header#top a:focus-visible,
footer#bottom a:focus-visible {
    outline: 3px solid rgba(245, 121, 59, .55);
    outline-offset: 2px;
    border-radius: 4px;
}

/* ============================================================
   Botones
   ============================================================ */
#wrapwrap .btn-hero,
#wrapwrap .btn-cta,
#wrapwrap .btn_cta,
#wrapwrap .btn-dv-primary {
    background: var(--dv-accent-strong) !important;
    border: 2px solid var(--dv-accent-strong) !important;
    color: #fff !important;
    font-family: var(--dv-font-head);
    font-weight: 700;
    font-size: .95rem;
    padding: .72rem 1.4rem;
    border-radius: 10px;
    box-shadow: 0 6px 16px rgba(200, 79, 23, .22);
    transition: background .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
#wrapwrap .btn-hero:hover,
#wrapwrap .btn-cta:hover,
#wrapwrap .btn_cta:hover,
#wrapwrap .btn-dv-primary:hover {
    background: var(--dv-accent-strong-hover) !important;
    border-color: var(--dv-accent-strong-hover) !important;
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(200, 79, 23, .28);
}
#wrapwrap .btn-hero-ghost,
#wrapwrap .dv-hero .btn-hero-ghost,
#wrapwrap .btn-dv-secondary {
    background: #fff !important;
    border: 2px solid var(--dv-line) !important;
    color: var(--dv-primary) !important;
    font-family: var(--dv-font-head);
    font-weight: 700;
    font-size: .95rem;
    padding: .72rem 1.4rem;
    border-radius: 10px;
    transition: border-color .2s ease, color .2s ease;
}
#wrapwrap .btn-hero-ghost:hover,
#wrapwrap .btn-dv-secondary:hover {
    border-color: var(--dv-primary) !important;
    color: var(--dv-primary-dark) !important;
}
.dv-link-arrow {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-family: var(--dv-font-head);
    font-weight: 700;
    font-size: .9rem;
    color: var(--dv-accent-text);
    text-decoration: none;
}
.dv-link-arrow:hover { color: var(--dv-accent-strong-hover); }
.dv-link-arrow i { font-size: .8em; transition: transform .2s ease; }
.dv-link-arrow:hover i { transform: translateX(3px); }

/* Botones principales de Odoo (tienda, carrito, checkout): naranja accesible.
   El CSS anterior del tema los pintaba con #F5793B (contraste 2,7:1). */
#wrapwrap .btn-primary,
#wrapwrap .oe_website_sale .btn-primary {
    --btn-bg: var(--dv-accent-strong);
    --btn-border-color: var(--dv-accent-strong);
    --btn-hover-bg: var(--dv-accent-strong-hover);
    --btn-hover-border-color: var(--dv-accent-strong-hover);
    --btn-active-bg: var(--dv-accent-strong-hover);
    --btn-active-border-color: var(--dv-accent-strong-hover);
    --btn-color: #fff;
    --btn-hover-color: #fff;
    background-color: var(--dv-accent-strong) !important;
    border-color: var(--dv-accent-strong) !important;
    color: #fff !important;
}
#wrapwrap .btn-primary:hover,
#wrapwrap .oe_website_sale .btn-primary:hover {
    background-color: var(--dv-accent-strong-hover) !important;
    border-color: var(--dv-accent-strong-hover) !important;
}

/* ============================================================
   Encabezado
   ============================================================ */
.dv-topbar {
    background: var(--dv-primary-dark);
    color: rgba(255, 255, 255, .82);
    font-size: .8rem;
    line-height: 1;
}
.dv-topbar .container { min-height: 34px; }
.dv-topbar a, .dv-topbar-place { color: rgba(255, 255, 255, .82); text-decoration: none; }
.dv-topbar a:hover { color: #fff; }
.dv-topbar-contact { display: flex; gap: 1.6rem; }
.dv-topbar i { color: var(--dv-accent); }

header#top {
    background: #fff;
    box-shadow: 0 1px 0 var(--dv-line), 0 6px 18px rgba(21, 40, 80, .05);
}
header#top .navbar { padding: .55rem 0; box-shadow: none !important; background: #fff !important; }
header#top .navbar-brand img { max-height: 46px; width: auto; }
header#top .nav-link {
    font-family: var(--dv-font-head);
    font-weight: 600;
    font-size: .92rem;
    color: var(--dv-ink) !important;
    padding: .5rem .8rem !important;
    border-radius: 8px;
}
header#top .top_menu .nav-link:hover,
header#top .top_menu .nav-link.active,
header#top .top_menu .show > .nav-link {
    color: var(--dv-accent-text) !important;
}
header#top .dropdown-menu {
    /* Odoo pinta los ítems con !important usando estas variables; con la paleta
       corporativa el activo quedaba blanco sobre fondo claro (ilegible). */
    --dropdown-link-color: var(--dv-ink);
    --dropdown-link-hover-color: var(--dv-accent-text);
    --dropdown-link-hover-bg: var(--dv-surface);
    --dropdown-link-active-color: var(--dv-accent-text);
    --dropdown-link-active-bg: rgba(245, 121, 59, .12);
    border: 1px solid var(--dv-line);
    border-radius: var(--dv-radius);
    box-shadow: var(--dv-shadow-md);
    padding: .4rem;
}
header#top .dropdown-item {
    font-weight: 500;
    border-radius: 8px;
    padding: .5rem .9rem;
    color: var(--dv-ink);
}
header#top .dropdown-item:hover,
header#top .dropdown-item:focus { background: var(--dv-surface) !important; color: var(--dv-accent-text) !important; }
header#top .dropdown-item.active,
header#top .dropdown-item:active { background: rgba(245, 121, 59, .12) !important; color: var(--dv-accent-text) !important; font-weight: 600; }
/* El teléfono pasa a la barra superior: en escritorio se oculta del menú para dar espacio */
@media (min-width: 992px) {
    header#top nav[aria-label="Main"] a[href^="tel:"] { display: none !important; }
}
header#top .o_nav_link_btn {
    border-color: var(--dv-line) !important;
    border-radius: 10px;
    font-size: .88rem !important;
}
header#top .btn_cta {
    padding: .55rem 1.1rem !important;
    font-size: .88rem !important;
    box-shadow: none !important;
}
header#top .s_text_block .container { padding: 0; }
/* Menú móvil */
header#top .o_navbar_mobile .nav-link { font-size: 1rem; padding: .7rem .5rem !important; }
header#top .o_navbar_mobile .btn_cta { width: 100%; }

/* ============================================================
   Portadas (todas las páginas con .dv-hero): fondo claro
   ============================================================ */
#wrapwrap .dv-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(520px 320px at 100% 0%, rgba(245, 121, 59, .14), transparent 70%),
        radial-gradient(620px 380px at 0% 100%, rgba(31, 59, 115, .08), transparent 70%),
        linear-gradient(180deg, #fff 0%, var(--dv-surface) 100%) !important;
    color: var(--dv-text);
    padding: 72px 0 64px !important;
    border-bottom: 1px solid var(--dv-line);
}
#wrapwrap .dv-hero::before { display: none; }
#wrapwrap .dv-hero h1 {
    color: var(--dv-primary);
    font-size: clamp(2rem, 1.35rem + 2.4vw, 3.25rem);
    font-weight: 800;
    line-height: 1.1;
    margin-bottom: 1rem;
    text-shadow: none;
}
#wrapwrap .dv-hero p {
    color: var(--dv-text);
    opacity: 1;
    font-size: 1.1rem;
    line-height: 1.65;
}
#wrapwrap .dv-hero .text-center p { max-width: 760px; }
.dv-accent { color: var(--dv-accent-large); }
.dv-eyebrow,
#wrapwrap .dv-hero-eyebrow,
#wrapwrap .dv-showcase-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-family: var(--dv-font-head);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--dv-accent-text) !important;
    background: rgba(245, 121, 59, .1) !important;
    border: 0 !important;
    border-radius: 999px;
    padding: .38rem .8rem;
    margin-bottom: 1.1rem;
}
#wrapwrap .dv-showcase-eyebrow { background: transparent !important; padding: 0; margin-bottom: .5rem; }
#wrapwrap .dv-hero-icon { box-shadow: 0 10px 24px rgba(245, 121, 59, .25); }
/* Pastillas de las portadas de producto (Soluciones Odoo, DV-AQUA, DV-TOUR) */
#wrapwrap .dv-hero .dva-chip,
#wrapwrap .dv-hero .dvt-chip,
#wrapwrap .dv-hero .dvo-chip {
    background: #fff;
    border: 1px solid var(--dv-line);
    color: var(--dv-primary);
    font-weight: 600;
    box-shadow: var(--dv-shadow-sm);
}
#wrapwrap .dv-hero .dva-chip i,
#wrapwrap .dv-hero .dvt-chip i,
#wrapwrap .dv-hero .dvo-chip i { color: var(--dv-accent); }
#wrapwrap .dv-hero-actions { gap: .75rem; }
#wrapwrap .dv-hero-shot img,
#wrapwrap .dv-hero-visual img { box-shadow: none; }
#wrapwrap .dv-hero-shot {
    border-radius: var(--dv-radius-lg);
    box-shadow: var(--dv-shadow-md);
    border: 1px solid var(--dv-line);
}

/* Portada del inicio: texto a la izquierda, captura a la derecha */
#wrapwrap .dv-hero-home { padding: 84px 0 76px !important; }
#wrapwrap .dv-hero-home h1 { font-size: clamp(2.1rem, 1.3rem + 2.4vw, 3.05rem); letter-spacing: -0.02em; }
.dv-hero-lead { max-width: 620px; }
.dv-hero-points {
    list-style: none;
    padding: 0;
    margin: 1.4rem 0 1.8rem;
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1.4rem;
}
.dv-hero-points li {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    font-weight: 600;
    font-size: .92rem;
    color: var(--dv-primary);
}
.dv-hero-points i {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: #fff;
    border: 1px solid var(--dv-line);
    color: var(--dv-accent);
    font-size: .95rem;
}
.dv-hero-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; }
.dv-hero-visual { position: relative; }
.dv-hero-visual::before {
    content: "";
    position: absolute;
    inset: 12% -6% -8% 14%;
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(245, 121, 59, .9), rgba(245, 121, 59, .55));
    transform: rotate(4deg);
    z-index: 0;
}
.dv-hero-visual .dv-shot {
    position: relative;
    z-index: 1;
    transform: none;
    box-shadow: 0 24px 50px rgba(21, 40, 80, .22);
}

/* ============================================================
   Secciones y títulos
   ============================================================ */
#wrapwrap .dv-section { padding: 88px 0; }
#wrapwrap .dv-section-light { background: var(--dv-surface); }
#wrapwrap .dv-section-title { margin-bottom: 52px; }
#wrapwrap .dv-section-title h2 {
    color: var(--dv-primary);
    font-size: clamp(1.7rem, 1.3rem + 1.4vw, 2.4rem);
    font-weight: 800;
}
#wrapwrap .dv-section-title p { color: var(--dv-muted); font-size: 1.05rem; }
#wrapwrap .dv-section-title::after {
    width: 48px;
    height: 4px;
    border-radius: 4px;
    background: var(--dv-accent);
}

/* ============================================================
   Tarjetas de servicio
   ============================================================ */
#wrapwrap .dv-services-grid { gap: 24px; }
#wrapwrap .dv-service-card {
    background: #fff;
    border: 1px solid var(--dv-line);
    border-radius: var(--dv-radius-lg);
    box-shadow: var(--dv-shadow-sm);
    padding: 30px 28px;
    text-align: left;
    display: flex;
    flex-direction: column;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
#wrapwrap .dv-service-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--dv-shadow-md);
    border-color: rgba(245, 121, 59, .35);
}
#wrapwrap .dv-service-card .icon {
    width: 54px;
    height: 54px;
    margin: 0 0 20px;
    border-radius: 14px;
    background: rgba(245, 121, 59, .1);
    color: var(--dv-accent);
    font-size: 1.35rem;
}
#wrapwrap .dv-service-card .icon i { color: var(--dv-accent); }
#wrapwrap .dv-service-card h3 { font-size: 1.15rem; color: var(--dv-primary); margin-bottom: .6rem; }
#wrapwrap .dv-service-card p { color: var(--dv-text); font-size: .95rem; flex-grow: 1; }
#wrapwrap .dv-service-card .dv-link-arrow { margin-top: .4rem; }

/* ============================================================
   Tienda en el inicio: mosaicos de categorías
   ============================================================ */
#wrapwrap .dv-store { background: var(--dv-surface); }
#wrapwrap .dv-store .dv-section-title h2 i { color: var(--dv-accent); }
.dv-store-tile { display: block; text-decoration: none; height: 100%; }
.dv-store-tile > div {
    height: 100%;
    background: #fff;
    border: 1px solid var(--dv-line);
    border-radius: var(--dv-radius-lg);
    padding: 26px 12px;
    text-align: center;
    box-shadow: var(--dv-shadow-sm);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.dv-store-tile i { font-size: 2rem; color: var(--dv-accent); margin-bottom: .8rem; display: block; }
.dv-store-tile h5 { font-size: 1rem; color: var(--dv-primary); margin: 0; }
.dv-store-tile:hover > div { transform: translateY(-3px); box-shadow: var(--dv-shadow-md); border-color: rgba(245, 121, 59, .35); }

/* ============================================================
   Cifras
   ============================================================ */
#wrapwrap .dv-stats {
    background: var(--dv-primary-dark);
    padding: 56px 0;
}
#wrapwrap .dv-stat-item h3 {
    font-family: var(--dv-font-head);
    font-weight: 800;
    color: var(--dv-accent);
    font-size: clamp(2.2rem, 1.6rem + 2vw, 3rem);
}
#wrapwrap .dv-stat-item p { color: rgba(255, 255, 255, .85); font-weight: 500; }

/* ============================================================
   Proyectos destacados (inicio): tarjetas horizontales 2×2
   ============================================================ */
#wrapwrap .dv-featured .dv-projects-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}
#wrapwrap .dv-project-card {
    border: 1px solid var(--dv-line);
    border-radius: var(--dv-radius-lg);
    box-shadow: var(--dv-shadow-sm);
    overflow: hidden;
    background: #fff;
    transition: transform .2s ease, box-shadow .2s ease;
}
#wrapwrap .dv-project-card:hover { transform: translateY(-4px); box-shadow: var(--dv-shadow-md); }
#wrapwrap .dv-featured .dv-project-card { display: grid; grid-template-columns: 38% 1fr; }
#wrapwrap .dv-featured .dv-project-card .project-image { height: auto; min-height: 100%; }
/* Si la cantidad de tarjetas es impar, la última ocupa todo el ancho */
#wrapwrap .dv-featured .dv-project-card:last-child:nth-child(odd) { grid-column: 1 / -1; grid-template-columns: 19% 1fr; }
#wrapwrap .dv-project-card .project-content { padding: 26px 26px 28px; }
#wrapwrap .dv-project-card .project-badge {
    background: rgba(245, 121, 59, .12);
    color: var(--dv-accent-text);
    font-family: var(--dv-font-head);
    font-weight: 700;
    letter-spacing: .02em;
}
#wrapwrap .dv-project-card h3 { color: var(--dv-primary); font-size: 1.25rem; }
#wrapwrap .dv-project-card p { color: var(--dv-text); font-size: .95rem; }
#wrapwrap .dv-project-card .feature-list li { color: var(--dv-text); font-size: .9rem; }
#wrapwrap .dv-project-card .btn-project {
    background: transparent;
    color: var(--dv-accent-text);
    padding: 0;
    font-family: var(--dv-font-head);
    font-weight: 700;
}
#wrapwrap .dv-project-card .btn-project::after { content: " →"; }
#wrapwrap .dv-project-card .btn-project:hover { background: transparent; color: var(--dv-accent-strong-hover); }

/* ============================================================
   Franja de llamada a la acción
   ============================================================ */
#wrapwrap .dv-cta {
    background: var(--dv-primary) !important;
    padding: 72px 0;
}
#wrapwrap .dv-cta h2 { color: #fff; font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.3rem); font-weight: 800; }
#wrapwrap .dv-cta p { color: rgba(255, 255, 255, .82); }

/* ============================================================
   Capturas, listas y bloques de producto (páginas internas)
   ============================================================ */
#wrapwrap .dv-shot { border-radius: var(--dv-radius-lg); border: 1px solid var(--dv-line); }
#wrapwrap .dv-showcase-row h3 { color: var(--dv-primary); }
#wrapwrap .dv-showcase-list li::before { color: var(--dv-accent); }
#wrapwrap .dv-module-card,
#wrapwrap .dva-card, #wrapwrap .dvt-card, #wrapwrap .dvo-card,
#wrapwrap .dva-pillar, #wrapwrap .dvt-pillar {
    border-color: var(--dv-line);
    border-radius: var(--dv-radius-lg);
}
#wrapwrap .dva-faq details, #wrapwrap .dvt-faq details { border-color: var(--dv-line); }

/* ============================================================
   Contacto (/contactus)
   ============================================================ */
.dv-page-contact .s_website_form .form-control,
.dv-page-contact .s_website_form .form-select {
    border: 1px solid #D5DCE6;
    border-radius: 10px;
    padding: .65rem .85rem;
    background: #fff;
}
.dv-page-contact .s_website_form .form-control:focus {
    border-color: var(--dv-accent);
    box-shadow: 0 0 0 .2rem rgba(245, 121, 59, .18);
}
.dv-page-contact .s_website_form .s_website_form_label { font-weight: 600; color: var(--dv-ink); }
.dv-page-contact .s_website_form_send {
    background: var(--dv-accent-strong) !important;
    border-color: var(--dv-accent-strong) !important;
    color: #fff !important;
    font-family: var(--dv-font-head);
    font-weight: 700;
    border-radius: 10px;
    padding: .65rem 1.6rem;
}
.dv-page-contact .s_website_form_send:hover { background: var(--dv-accent-strong-hover) !important; }
.dv-contact-card {
    background: var(--dv-surface);
    border: 1px solid var(--dv-line);
    border-radius: var(--dv-radius-lg);
    padding: 28px;
}
.dv-contact-card h5 { color: var(--dv-primary); margin-bottom: 1.1rem; }
.dv-contact-card li { display: flex; gap: .75rem; margin-bottom: 1rem; color: var(--dv-text); }
.dv-contact-card li i {
    flex: 0 0 38px;
    height: 38px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid var(--dv-line);
    color: var(--dv-accent);
}
.dv-contact-card li strong { display: block; color: var(--dv-ink); font-size: .9rem; }
.dv-contact-card li a { color: var(--dv-primary); text-decoration: none; }
.dv-contact-card li a:hover { color: var(--dv-accent-text); }

/* ============================================================
   Tienda (/shop y fichas): mismo lenguaje visual, sin tocar lógica
   ============================================================ */
#wrapwrap .oe_product_cart {
    border: 1px solid var(--dv-line) !important;
    border-radius: var(--dv-radius) !important;
    box-shadow: none;
    overflow: hidden;
    transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
#wrapwrap .oe_product_cart:hover {
    box-shadow: var(--dv-shadow-md);
    transform: translateY(-2px);
    border-color: rgba(245, 121, 59, .35) !important;
}
#wrapwrap .oe_product_cart .o_wsale_products_item_title a,
#wrapwrap .oe_product_cart h6 a { color: var(--dv-ink); font-weight: 600; }
#wrapwrap .oe_product_cart .product_price,
#wrapwrap .oe_product_cart .oe_currency_value { color: var(--dv-primary); font-weight: 700; }
#wrapwrap .o_wsale_products_main_row h1,
#wrapwrap #products_grid_before h1 { color: var(--dv-primary); }

/* ============================================================
   Pie de página
   ============================================================ */
footer#bottom.dv-footer {
    background: var(--dv-primary-dark) !important;
    color: rgba(255, 255, 255, .78);
    font-family: var(--dv-font-body);
}
.dv-footer-main { padding-top: 64px; padding-bottom: 40px; }
footer#bottom.dv-footer h5 {
    font-family: var(--dv-font-head);
    font-size: .95rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 1.1rem;
}
footer#bottom.dv-footer .dv-footer-brand { font-size: 1.25rem; }
.dv-footer-text { color: rgba(255, 255, 255, .72); font-size: .92rem; line-height: 1.7; margin-bottom: 1.2rem; }
.dv-footer-links li { margin-bottom: .55rem; }
footer#bottom.dv-footer a { color: rgba(255, 255, 255, .78); text-decoration: none; font-size: .92rem; }
footer#bottom.dv-footer a:hover { color: var(--dv-accent); }
.dv-footer-contact li { display: flex; gap: .65rem; margin-bottom: .75rem; font-size: .92rem; }
.dv-footer-contact i { color: var(--dv-accent); margin-top: .2rem; }
.dv-footer-social { display: flex; gap: .6rem; }
footer#bottom.dv-footer .dv-footer-social a {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    font-size: 1rem;
}
footer#bottom.dv-footer .dv-footer-social a:hover { background: var(--dv-accent-strong); color: #fff; }
.dv-footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, .1);
    padding: 18px 0;
    font-size: .84rem;
    color: rgba(255, 255, 255, .6);
}
.dv-footer-legal { display: flex; gap: 1.2rem; }
footer#bottom.dv-footer .dv-footer-legal a { font-size: .84rem; color: rgba(255, 255, 255, .6); }

/* ============================================================
   Adaptación a pantallas
   ============================================================ */
@media (max-width: 991.98px) {
    #wrapwrap .dv-section { padding: 64px 0; }
    #wrapwrap .dv-hero, #wrapwrap .dv-hero-home { padding: 52px 0 48px !important; }
    #wrapwrap .dv-featured .dv-projects-grid { grid-template-columns: 1fr; }
    #wrapwrap .dv-featured .dv-project-card:last-child:nth-child(odd) { grid-template-columns: 38% 1fr; }
}
@media (max-width: 767.98px) {
    #wrapwrap .dv-section { padding: 52px 0; }
    #wrapwrap .dv-section-title { margin-bottom: 34px; }
    #wrapwrap .dv-featured .dv-project-card { grid-template-columns: 1fr; }
    #wrapwrap .dv-featured .dv-project-card:last-child:nth-child(odd) { grid-template-columns: 1fr; }
    #wrapwrap .dv-featured .dv-project-card .project-image { min-height: 150px; }
    .dv-hero-buttons .btn { width: 100%; }
    .dv-hero-buttons .dv-link-arrow { margin: .25rem auto 0; }
    #wrapwrap .dv-service-card { padding: 24px 22px; }
    #wrapwrap .dv-cta { padding: 56px 0; }
    .dv-footer-main { padding-top: 48px; }
}
@media (prefers-reduced-motion: reduce) {
    #wrapwrap *, #wrapwrap *::before, #wrapwrap *::after { transition: none !important; animation: none !important; }
}

/* Contacto: encabezado claro (la vista estándar trae una foto de ejemplo con filtro oscuro) */
.dv-page-contact .s_title {
    background:
        radial-gradient(520px 320px at 100% 0%, rgba(245, 121, 59, .14), transparent 70%),
        linear-gradient(180deg, #fff 0%, var(--dv-surface) 100%) !important;
    border-bottom: 1px solid var(--dv-line);
    padding: 56px 0 44px !important;
}
.dv-page-contact .s_title .s_parallax_bg,
.dv-page-contact .s_title .o_we_bg_filter { display: none !important; }
.dv-page-contact .s_title h1 {
    color: var(--dv-primary) !important;
    font-size: clamp(2rem, 1.4rem + 2vw, 3rem);
    font-weight: 800;
}
.dv-page-contact .lead { color: var(--dv-text); font-size: 1.08rem; }
