/* ==========================================================================
   ROYDISA - SISTEMA DE OPTIMIZACIÓN MÓVIL Y RESPONSIVE (M01 - M10)
   Versión: 3.5 (base actual de octubre y fichas originales enriquecidas)
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Variables y Configuración Base
   -------------------------------------------------------------------------- */
:root {
    --rd-primary: #004b87;
    --rd-primary-dark: #003366;
    --rd-primary-light: #e6f0fa;
    --rd-accent: #c90000;
    --rd-accent-dark: #a00000;
    --rd-accent-light: #fff0f0;
    --rd-text-dark: #0f172a;
    --rd-text-muted: #475569;
    --rd-bg-light: #f8fafc;
    --rd-border: #e2e8f0;
    --rd-radius: 10px;
    --rd-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
    --rd-shadow-md: 0 4px 14px rgba(0, 0, 0, 0.12);
    --rd-shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.18);
}

/* Contacto: reservar el mapa sin descargar Google Maps hasta que se abra. */
.elementor-widget-google_maps .roydisa-map-deferred {
    position: relative;
    background: #eef2f6;
}

.elementor-widget-google_maps .roydisa-map-deferred iframe {
    display: block;
    width: 100%;
    border: 0;
}

.elementor-widget-google_maps .roydisa-map-activate {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    height: 100%;
    padding: 20px;
    border: 1px solid var(--rd-border);
    background: linear-gradient(135deg, #f7f8fa, #e8edf2);
    color: var(--rd-primary);
    font: inherit;
    font-weight: 600;
    line-height: 1.3;
    text-align: center;
    cursor: pointer;
}

.elementor-widget-google_maps .roydisa-map-activate span {
    display: inline-block;
    padding: 12px 24px;
    background: var(--rd-accent);
    color: #fff;
    border-radius: 4px;
}

.elementor-widget-google_maps .roydisa-map-activate small {
    max-width: 28rem;
    color: var(--rd-text-muted);
    font-size: 14px;
    font-weight: 400;
}

.elementor-widget-google_maps .roydisa-map-activate:hover,
.elementor-widget-google_maps .roydisa-map-activate:focus-visible {
    background: #e2ebf2;
    color: var(--rd-primary-dark);
}

/* Contenido recuperado dentro de las tarjetas originales del catálogo. */
.catalogo-producto .roydisa-festo-details {
    margin: 12px 0 0;
    padding-left: 18px;
    text-align: left;
    font-size: 14px;
    line-height: 1.5;
}
.catalogo-producto .roydisa-festo-details li { margin-bottom: 6px; }
.catalogo-producto .roydisa-bosch-features .series-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.catalogo-producto .roydisa-bosch-brochure-cover {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 190px;
    margin-bottom: 12px;
    background: #eef3f8;
    color: #004b87;
    font-size: 22px;
    font-weight: 700;
}
@media (max-width: 600px) {
    .single-us_portfolio.postid-1935 .catalogo-producto .series-grid,
    .catalogo-producto .roydisa-bosch-features .series-grid { grid-template-columns: minmax(0, 1fr); }
}

.roydisa-xunta-mobile-link {
    display: none;
}

/* El banner de presupuesto debe quedar debajo del menú de la cabecera. */
.elementor-330 .elementor-element-107b1f2,
.elementor-330 .elementor-element-e5efd30 {
    z-index: 1 !important;
}

/* Fondo de cabeceras compartido: misma imagen, archivo más ligero. */
:is(.elementor-element-7d2a6e9, .elementor-element-366ed82,
    .elementor-element-11ca65d, .elementor-element-f739f08,
    .elementor-element-83c9a7b, .elementor-element-699e13d,
    .elementor-element-637dba5, .elementor-element-19fcbf0,
    .elementor-element-7db3f19, .elementor-element-307a79a,
    .elementor-element-d84ff08, .elementor-element-baf95a2,
    .elementor-element-0f6eaae, .elementor-element-dd28d00,
    .elementor-element-e6b7c75, .elementor-element-247ddee,
    .elementor-element-dd1bbdd, .elementor-element-581cd92,
    .elementor-element-bffa83b, .elementor-element-d391b43):not(.elementor-motion-effects-element-type-background),
:is(.elementor-element-7d2a6e9, .elementor-element-366ed82,
    .elementor-element-11ca65d, .elementor-element-f739f08,
    .elementor-element-83c9a7b, .elementor-element-699e13d,
    .elementor-element-637dba5, .elementor-element-19fcbf0,
    .elementor-element-7db3f19, .elementor-element-307a79a,
    .elementor-element-d84ff08, .elementor-element-baf95a2,
    .elementor-element-0f6eaae, .elementor-element-dd28d00,
    .elementor-element-e6b7c75, .elementor-element-247ddee,
    .elementor-element-dd1bbdd, .elementor-element-581cd92,
    .elementor-element-bffa83b, .elementor-element-d391b43) > .elementor-motion-effects-container > .elementor-motion-effects-layer {
    background-image: url('../../uploads/2024/10/footer-bg-2-1440.webp') !important;
}

/* Prevención global de desbordamiento horizontal */
html, body {
    max-width: 100%;
    overflow-x: hidden;
}

/* Enlaces táctiles accesibles para teléfonos y correos (M01) */
.roydisa-touch-tel,
.roydisa-touch-mail {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    min-height: 44px !important;
    color: var(--rd-primary) !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    transition: color 0.2s ease, transform 0.1s ease !important;
    touch-action: manipulation;
}
.roydisa-touch-tel:hover,
.roydisa-touch-mail:hover,
.roydisa-touch-tel:focus-visible,
.roydisa-touch-mail:focus-visible {
    color: var(--rd-accent) !important;
    text-decoration: underline !important;
}

/* --------------------------------------------------------------------------
   1. Reglas Desktop (>= 768px): Proporción EXACTA al diseño de producción
   -------------------------------------------------------------------------- */
@media (min-width: 768px) {
    .roydisa-mobile-menu-toggle,
    .roydisa-mobile-menu,
    .roydisa-menu-backdrop,
    .roydisa-mobile-footer {
        display: none !important;
    }

    /* Cabecera Desktop: Roydisa + Xunta juntos a la izquierda, Menú a la derecha */
    .elementor-17 .elementor-element-ff01f96 > .e-con-inner {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 0 !important;
        width: 100% !important;
        max-width: 1400px !important;
        margin: 0 auto !important;
        padding: 0 20px !important;
    }

    /* 1. Logotipo Roydisa en escritorio */
    .elementor-17 .elementor-element-2f293e6 {
        flex: 0 0 auto !important;
        width: auto !important;
        max-width: none !important;
        display: flex !important;
        align-items: center !important;
        margin: 0 16px 0 0 !important;
        padding: 0 !important;
    }
    .elementor-17 .elementor-element-2f293e6 img {
        height: 52px !important;
        max-height: 52px !important;
        width: auto !important;
        object-fit: contain !important;
        object-position: left center !important;
        display: block !important;
    }

    /* 2. Logotipo Xunta de Galicia en escritorio: compacto y justo al lado de Roydisa */
    .elementor-17 .elementor-element-06ba647 {
        flex: 0 0 auto !important;
        width: auto !important;
        max-width: 120px !important;
        display: flex !important;
        align-items: center !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .elementor-17 .elementor-element-06ba647 .elementor-widget-container,
    .elementor-17 .elementor-element-d06505b {
        display: flex !important;
        align-items: center !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .elementor-17 .elementor-element-06ba647 img,
    .elementor-17 .elementor-element-d06505b img {
        height: 32px !important;
        max-height: 32px !important;
        width: auto !important;
        max-width: 115px !important;
        object-fit: contain !important;
        display: block !important;
    }

    /* 3. Menú y Botón Presupuesto a la derecha */
    .elementor-17 .elementor-element-a8a2002 {
        flex: 1 1 auto !important;
        display: flex !important;
        flex-direction: row !important;
        justify-content: flex-end !important;
        align-items: center !important;
        gap: 20px !important;
        margin-left: auto !important;
        padding: 0 !important;
    }
    .elementor-17 .elementor-element-74e4f7a {
        width: auto !important;
        margin: 0 !important;
    }
    .elementor-17 .elementor-element-557f9d9 {
        width: auto !important;
        margin: 0 !important;
        flex-shrink: 0 !important;
    }
}

/* --------------------------------------------------------------------------
   2. Cabecera Móvil (< 768px) (M02 / M03)
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
    /* Ocultar barra superior densa en móvil */
    .elementor-17 .elementor-element-97786e5 {
        display: none !important;
    }

    /* Barra de cabecera fija y sticky, limpia, 100% opaca y de altura optimizada (64px) */
    .elementor-17 .elementor-element-ff01f96,
    .elementor-17 .elementor-element-ff01f96.she-header,
    .elementor-17 .elementor-element-ff01f96.she-header-yes {
        position: sticky !important;
        top: 0 !important;
        z-index: 990 !important;
        padding: 0 !important;
        background: #ffffff !important;
        background-color: #ffffff !important;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08) !important;
    }
    .elementor-17 .elementor-element-ff01f96 > .e-con-inner {
        display: flex !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: center !important;
        width: 100% !important;
        height: 64px !important;
        padding: 0 16px !important;
        gap: 12px !important;
        background: #ffffff !important;
    }

    /* Logotipo principal Roydisa en móvil */
    .elementor-17 .elementor-element-2f293e6 {
        flex: 0 1 auto !important;
        width: auto !important;
        margin: 0 !important;
        display: flex !important;
        align-items: center !important;
    }
    .elementor-17 .elementor-element-2f293e6 img {
        display: block;
        width: auto;
        max-width: 140px;
        height: 38px;
        object-fit: contain;
        object-position: left center;
    }

    /* Ocultar segundo logotipo en cabecera móvil */
    .elementor-17 .elementor-element-06ba647 {
        display: none !important;
    }

    /* Fila de acciones (Botón Presupuesto + Toggle Menú) alineadas horizontalmente */
    .elementor-17 .elementor-element-a8a2002 {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 8px;
        width: auto !important;
        padding: 0 !important;
        margin: 0 !important;
        flex-shrink: 0;
    }

    /* Botón Presupuesto compacto en cabecera */
    .elementor-17 .elementor-element-557f9d9 {
        width: auto !important;
        margin: 0 !important;
    }
    .elementor-17 .elementor-element-557f9d9 .elementor-button {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-height: 38px !important;
        padding: 6px 12px !important;
        background: linear-gradient(135deg, #c90000 0%, #a00000 100%) !important;
        color: #ffffff !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        letter-spacing: 0.03em !important;
        border-radius: 6px !important;
        text-transform: uppercase !important;
        box-shadow: 0 2px 6px rgba(201, 0, 0, 0.25) !important;
        border: none !important;
        white-space: nowrap;
        touch-action: manipulation;
    }

    /* Ocultar el menú original de Elementor en móvil */
    .elementor-17.roydisa-mobile-ready .elementor-element-74e4f7a {
        display: none !important;
    }

    /* Botón Hamburguesa */
    .roydisa-mobile-menu-toggle {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 6px !important;
        min-height: 38px !important;
        padding: 6px 10px !important;
        border: 1px solid var(--rd-border) !important;
        border-radius: 6px !important;
        background: #f8fafc !important;
        color: var(--rd-text-dark) !important;
        font-family: inherit !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        cursor: pointer !important;
        transition: all 0.2s ease !important;
        touch-action: manipulation;
    }
    .roydisa-mobile-menu-toggle:hover,
    .roydisa-mobile-menu-toggle:focus-visible {
        background: #ffffff !important;
        border-color: #cbd5e1 !important;
        color: var(--rd-primary) !important;
        outline: none;
    }
    .roydisa-mobile-menu-toggle .rd-icon {
        width: 18px;
        height: 18px;
        fill: currentColor;
    }
    .roydisa-mobile-menu-toggle .rd-icon-close {
        display: none;
    }
    .roydisa-mobile-menu-toggle[aria-expanded="true"] .rd-icon-hamburger {
        display: none;
    }
    .roydisa-mobile-menu-toggle[aria-expanded="true"] .rd-icon-close {
        display: block;
    }

    /* Backdrop sombreado */
    .roydisa-menu-backdrop {
        position: fixed;
        inset: 0;
        background: rgba(15, 23, 42, 0.6);
        backdrop-filter: blur(2px);
        z-index: 995;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.25s ease;
    }
    body.roydisa-menu-open .roydisa-menu-backdrop {
        opacity: 1;
        pointer-events: auto;
    }
    body.roydisa-menu-open {
        overflow: hidden !important;
        touch-action: none;
    }

    /* Panel Drawer de Navegación */
    .roydisa-mobile-menu {
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: min(88vw, 360px) !important;
        max-width: 100vw !important;
        height: 100dvh !important;
        background: #ffffff !important;
        z-index: 1000 !important;
        overflow-y: auto !important;
        overscroll-behavior: contain !important;
        box-shadow: -4px 0 24px rgba(0, 0, 0, 0.2) !important;
        transform: translateX(100%) !important;
        transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
        display: flex !important;
        flex-direction: column !important;
    }
    .roydisa-mobile-menu:not([hidden]) {
        transform: translateX(0) !important;
    }
    .roydisa-mobile-menu[hidden] {
        display: flex !important;
        transform: translateX(100%) !important;
        pointer-events: none !important;
    }

    /* Cabecera del Drawer */
    .roydisa-menu-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 16px 20px;
        border-bottom: 1px solid var(--rd-border);
        background: var(--rd-bg-light);
        flex-shrink: 0;
    }
    .roydisa-menu-header-title {
        font-size: 16px;
        font-weight: 700;
        color: var(--rd-primary-dark);
        margin: 0;
    }
    .roydisa-menu-close-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 36px;
        height: 36px;
        border-radius: 50%;
        border: 1px solid var(--rd-border);
        background: #ffffff;
        color: var(--rd-text-dark);
        cursor: pointer;
        padding: 0;
    }

    /* Lista y Acordeón del Menú */
    .roydisa-menu-body {
        padding: 12px 16px 32px;
        flex-grow: 1;
    }
    .roydisa-mobile-menu ul {
        list-style: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    .roydisa-mobile-menu li {
        margin: 0 !important;
        padding: 0 !important;
    }
    .roydisa-mobile-menu a,
    .roydisa-mobile-menu summary {
        display: flex !important;
        align-items: center !important;
        min-height: 48px !important;
        padding: 10px 14px !important;
        color: var(--rd-text-dark) !important;
        text-decoration: none !important;
        border-bottom: 1px solid #f1f5f9 !important;
        font-size: 15px !important;
        line-height: 1.35 !important;
        font-weight: 500 !important;
        border-radius: 6px !important;
        transition: background 0.15s ease, color 0.15s ease !important;
        touch-action: manipulation;
    }
    .roydisa-mobile-menu summary {
        justify-content: space-between !important;
        cursor: pointer !important;
        font-weight: 600 !important;
        list-style: none !important;
        user-select: none;
    }
    .roydisa-mobile-menu summary::-webkit-details-marker {
        display: none !important;
    }
    .roydisa-mobile-menu .roydisa-chevron {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 24px;
        height: 24px;
        color: #64748b;
        transition: transform 0.2s ease;
    }
    .roydisa-mobile-menu details[open] > summary > .roydisa-chevron {
        transform: rotate(180deg);
        color: var(--rd-primary);
    }
    .roydisa-mobile-menu details > ul {
        margin-left: 10px !important;
        padding-left: 8px !important;
        border-left: 2px solid #e2e8f0 !important;
        background: #fafafa;
        border-radius: 0 0 6px 6px;
    }
    .roydisa-mobile-menu details details > ul {
        margin-left: 6px !important;
        border-left-color: #cbd5e1 !important;
    }
    .roydisa-mobile-menu a:hover,
    .roydisa-mobile-menu summary:hover,
    .roydisa-mobile-menu a:focus-visible,
    .roydisa-mobile-menu summary:focus-visible {
        color: var(--rd-primary) !important;
        background: #f0f7ff !important;
    }
    .roydisa-mobile-menu .roydisa-mobile-view-all {
        color: var(--rd-accent) !important;
        font-weight: 700 !important;
        background: var(--rd-accent-light) !important;
        border-radius: 6px !important;
        margin: 4px 0 !important;
    }
    .roydisa-mobile-menu .roydisa-mobile-view-all:hover {
        background: #fde8e8 !important;
        color: var(--rd-accent-dark) !important;
    }
    /* --------------------------------------------------------------------------
       3. Hero Section Portada (M08)
       -------------------------------------------------------------------------- */
    .elementor-464 .elementor-element-b29de2e {
        min-height: 440px !important;
        height: auto !important;
        padding: 40px 16px !important;
        background-image: linear-gradient(rgba(10, 37, 64, 0.82), rgba(10, 37, 64, 0.72)),
            url('../../uploads/2024/11/motor-electrico-weg-w22-600x600.jpg') !important;
        background-size: cover !important;
        background-position: center !important;
        display: flex !important;
        align-items: center !important;
    }
    .elementor-464 .elementor-element-b29de2e .elementor-background-slideshow,
    .elementor-464 .elementor-element-b29de2e .elementor-background-overlay {
        display: none !important;
    }
    .elementor-464 .elementor-element-4537edc {
        min-height: 130px !important;
    }
    .elementor-464 .elementor-element-8c3e67b {
        height: 60px !important;
        overflow: hidden;
    }
    .elementor-464 .elementor-element-8b9db47 {
        width: 100% !important;
        gap: 18px !important;
        padding: 0 !important;
    }
    .elementor-464 .elementor-element-16f1381 {
        width: 100% !important;
        justify-content: flex-start !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 10px 14px !important;
        border-radius: var(--rd-radius) !important;
        background: rgba(255, 255, 255, 0.95) !important;
        box-shadow: var(--rd-shadow-sm) !important;
    }
    .elementor-464 .elementor-element-16f1381 img {
        max-height: 38px !important;
        width: auto !important;
        object-fit: contain !important;
    }
    .elementor-464 .elementor-element-16f1381 .elementor-element-d9dfd7d {
        flex: 1 1 0 !important;
        min-width: 0 !important;
    }
    .elementor-464 .elementor-element-16f1381 .elementor-element-d9dfd7d img {
        display: block;
        width: 100% !important;
        max-width: 182px !important;
        aspect-ratio: 287 / 60;
        height: auto !important;
        object-position: left center !important;
    }
    .elementor-464 .roydisa-xunta-mobile-link {
        display: flex !important;
        align-items: center;
        flex: 0 0 clamp(66px, 20vw, 84px);
        min-width: 0;
        margin-left: auto;
    }
    .elementor-464 .roydisa-xunta-mobile-link img {
        display: block;
        width: 100% !important;
        height: auto !important;
        max-height: 38px !important;
        object-fit: contain !important;
    }
    .elementor-464 .elementor-element-a85ffd2 {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        width: 100% !important;
        gap: 10px !important;
    }
    .elementor-464 .elementor-element-a653a70 .elementor-heading-title {
        color: #f1f5f9 !important;
        font-size: 13px !important;
        letter-spacing: 0.12em !important;
        text-transform: uppercase !important;
        font-weight: 700 !important;
    }
    .elementor-464 .elementor-element-7f8c60e .elementor-heading-title {
        color: #ffffff !important;
        font-size: clamp(28px, 8vw, 38px) !important;
        line-height: 1.12 !important;
        font-weight: 800 !important;
        text-wrap: balance;
    }
    .elementor-464 .elementor-element-fd0003c .elementor-heading-title {
        color: #e2e8f0 !important;
        font-size: clamp(15px, 4.2vw, 17px) !important;
        line-height: 1.5 !important;
        font-weight: 400 !important;
        text-wrap: pretty;
    }

    /* Secciones de Productos y Servicios en Home */
    .elementor-464 .elementor-element-ed11861,
    .elementor-464 .elementor-element-deadabd,
    .elementor-464 .elementor-element-4eacc81 {
        overflow: hidden !important;
        padding: 32px 16px !important;
        margin-block: 0 !important;
    }

    /* Sección Productos: Reordenar y limpiar la etiqueta "CATÁLOGO" */
    .elementor-464 .elementor-element-7e33c9f {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        width: 100% !important;
        margin-bottom: 20px !important;
    }

    /* Etiqueta "CATÁLOGO": posición normal (no absoluta ni rotada), horizontal y elegante como antetítulo */
    .elementor-464 .elementor-element-9fa3c9e {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;
        transform: none !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 6px 0 !important;
        padding: 0 !important;
        order: -1 !important;
        display: block !important;
        text-align: left !important;
        z-index: 2 !important;
    }
    .elementor-464 .elementor-element-9fa3c9e > .elementor-widget-container {
        transform: none !important;
        --e-transform-rotateZ: 0deg !important;
        margin: 0 !important;
        padding: 0 !important;
        display: block !important;
        text-align: left !important;
    }
    .elementor-464 .elementor-element-9fa3c9e .elementor-heading-title {
        color: var(--rd-accent) !important;
        font-family: "Roboto Condensed", var(--e-global-typography-primary-font-family), sans-serif !important;
        font-size: 13.5px !important;
        font-weight: 700 !important;
        letter-spacing: 0.15em !important;
        text-transform: uppercase !important;
        line-height: 1.2 !important;
        margin: 0 !important;
        padding: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        gap: 6px !important;
    }
    .elementor-464 .elementor-element-9fa3c9e .elementor-heading-title::before {
        content: "";
        display: inline-block;
        width: 16px;
        height: 2px;
        background: var(--rd-accent);
    }

    .elementor-464 .elementor-element-14bc7b0 {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 10px 0 !important;
        padding: 0 !important;
        text-align: left !important;
    }
    .elementor-464 .elementor-element-14bc7b0 > .elementor-widget-container {
        margin: 0 !important;
        padding: 0 !important;
    }

    .elementor-464 .elementor-element-14bc7b0 .elementor-heading-title,
    .elementor-464 .elementor-element-7f1ad39 .elementor-heading-title,
    .elementor-464 .elementor-element-9e46f11 .elementor-heading-title {
        font-size: clamp(26px, 7vw, 34px) !important;
        line-height: 1.15 !important;
    }

    /* La fecha completa ya aparece bajo cada titular; no tapar la fotografía. */
    .elementor-677 .elementor-element-a037edf {
        display: none !important;
    }

    /* --------------------------------------------------------------------------
       4. SECCIÓN "¿QUIÉNES SOMOS? Sobre nosotros" — Tarjetas Ejecutivas Premium
       -------------------------------------------------------------------------- */
    .elementor-464 .elementor-element-25182c8 {
        min-height: auto !important;
        height: auto !important;
        padding: 44px 16px 36px !important;
        margin-block: 0 !important;
        background-attachment: scroll !important;
        background-size: cover !important;
        background-position: center !important;
        background-image: linear-gradient(rgba(10, 25, 45, 0.90), rgba(10, 25, 45, 0.90)),
            url('../../uploads/2024/11/pexels-pixabay-209251.jpg') !important;
    }

    .elementor-464 .elementor-element-25182c8 > .e-con-inner,
    .elementor-464 .elementor-element-25182c8 .elementor-container {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        gap: 0 !important;
        padding: 0 !important;
    }

    /* Encabezados de la sección */
    .elementor-464 .elementor-element-bd725cd .elementor-heading-title {
        color: #93c5fd !important;
        font-size: 13px !important;
        font-weight: 700 !important;
        letter-spacing: 0.15em !important;
        text-transform: uppercase !important;
        margin: 0 0 4px 0 !important;
    }
    .elementor-464 .elementor-element-b393fdf .elementor-heading-title {
        color: #ffffff !important;
        font-size: clamp(28px, 7.5vw, 36px) !important;
        font-weight: 800 !important;
        line-height: 1.15 !important;
        margin: 0 0 20px 0 !important;
    }

    /* Tarjetas de Información Corporativa */
    .elementor-464 .elementor-element-25182c8 .elementor-widget-image-box {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 14px 0 !important;
        height: auto !important;
        min-height: auto !important;
    }

    .elementor-464 .elementor-element-25182c8 .elementor-image-box-wrapper {
        display: flex !important;
        flex-direction: column !important;
        background: #ffffff !important;
        border-radius: var(--rd-radius) !important;
        padding: 18px 20px !important;
        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.16) !important;
        border-left: 5px solid var(--rd-primary) !important;
        border-top: 1px solid rgba(255, 255, 255, 0.8) !important;
        border-right: 1px solid var(--rd-border) !important;
        border-bottom: 1px solid var(--rd-border) !important;
        height: auto !important;
        min-height: auto !important;
    }

    /* Los iconos blancos reservaban altura en la parte superior de cada tarjeta. */
    .elementor-464 .elementor-element-25182c8 .elementor-image-box-img {
        display: none !important;
    }
    .elementor-464 .elementor-element-25182c8 .elementor-image-box-content {
        margin: 0 !important;
        padding: 0 !important;
    }

    .elementor-464 .elementor-element-25182c8 .elementor-image-box-title {
        color: var(--rd-primary-dark) !important;
        font-size: 18px !important;
        font-weight: 800 !important;
        line-height: 1.25 !important;
        margin: 0 0 8px 0 !important;
        display: block !important;
    }

    .elementor-464 .elementor-element-25182c8 .elementor-image-box-description {
        color: #334155 !important;
        font-size: 14.5px !important;
        line-height: 1.55 !important;
        margin: 0 !important;
        font-weight: 450 !important;
        display: block !important;
    }

    /* --------------------------------------------------------------------------
       5. Fichas de Producto / Portfolio y Documentos Técnicos (M06 / M09)
       -------------------------------------------------------------------------- */
    .single-us_portfolio .elementor-element-59db8aa .elementor-heading-title {
        font-size: clamp(26px, 7.2vw, 34px) !important;
        overflow-wrap: normal !important;
        hyphens: auto;
    }
    .single-us_portfolio .elementor-element-6ff83bc .elementor-button {
        font-size: 15px !important;
        padding: 10px 12px !important;
    }

    .tax-us_portfolio_category .subcategories-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
        width: 100% !important;
        padding-inline: 16px !important;
        box-sizing: border-box !important;
    }
    .tax-us_portfolio_category .subcategories-grid > a {
        min-width: 0 !important;
        width: auto !important;
        height: 100%;
    }
    .tax-us_portfolio_category .subcategories-grid .subcategory-item {
        box-sizing: border-box !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 92px !important;
        padding: 12px !important;
    }
    .tax-us_portfolio_category .subcategories-grid .subcategory-inner {
        box-sizing: border-box !important;
        width: 100% !important;
        height: 100% !important;
        padding: 0 !important;
        justify-content: center !important;
        align-items: center !important;
    }
    .tax-us_portfolio_category .subcategories-grid .subcategory-image {
        display: none !important;
    }
    .tax-us_portfolio_category .subcategories-grid .subcategory-title {
        width: 100% !important;
        min-width: 0 !important;
        text-align: center !important;
    }
    .tax-us_portfolio_category .subcategories-grid .subcategory-title h3 {
        margin: 0 !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
    }
    .single-us_portfolio .elementor-widget-theme-post-content > .elementor-widget-container {
        width: 100% !important;
        box-sizing: border-box !important;
        padding-inline: 18px !important;
    }
    .single-us_portfolio .elementor-widget-theme-post-content p,
    .single-us_portfolio .elementor-widget-theme-post-content li {
        text-align: left !important;
        line-height: 1.65 !important;
    }
    .single-us_portfolio .elementor-widget-theme-post-content img {
        max-width: 100%;
        height: auto;
    }
    .single-us_portfolio .elementor-widget-theme-post-content img.alignleft,
    .single-us_portfolio .elementor-widget-theme-post-content img.alignright {
        float: none !important;
        display: block !important;
        margin: 16px auto !important;
    }
    .single-us_portfolio .roydisa-doc-cover,
    .single-us_portfolio .elementor-widget-text-editor a.roydisa-doc-cover {
        display: block !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 auto 8px !important;
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        text-align: center !important;
    }
    .single-us_portfolio .roydisa-doc-cover img {
        display: block !important;
        width: auto !important;
        max-width: 100% !important;
        height: auto !important;
        margin: 0 auto !important;
    }
    .single-us_portfolio .roydisa-doc-cover:focus-visible {
        outline: 3px solid var(--rd-primary);
        outline-offset: 3px;
    }
    .single-us_portfolio.postid-1229 .elementor-widget-theme-post-content table {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        border: 0 !important;
    }
    .single-us_portfolio.postid-1229 .elementor-widget-theme-post-content tbody {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }
    .single-us_portfolio.postid-1229 .elementor-widget-theme-post-content tr {
        display: contents !important;
    }
    .single-us_portfolio.postid-1229 .elementor-widget-theme-post-content td {
        display: block !important;
        width: auto !important;
        height: auto !important;
        min-width: 0;
        padding: 12px !important;
        border: 1px solid var(--rd-border) !important;
        border-radius: 8px;
        text-align: center !important;
        background: #fff;
    }
    .roydisa-doc-card,
    .single-us_portfolio .elementor-widget-text-editor a[href$=".pdf"],
    .single-us_portfolio .elementor-widget-text-editor a[href*="catalogo"],
    .single-us_portfolio .elementor-widget-text-editor a[href*="manual"] {
        display: flex !important;
        align-items: center !important;
        gap: 12px !important;
        padding: 12px 16px !important;
        margin: 8px 0 12px !important;
        background: #ffffff !important;
        border: 1px solid #cbd5e1 !important;
        border-left: 4px solid var(--rd-primary) !important;
        border-radius: var(--rd-radius) !important;
        box-shadow: var(--rd-shadow-sm) !important;
        color: var(--rd-text-dark) !important;
        text-decoration: none !important;
        font-size: 15px !important;
        font-weight: 600 !important;
        line-height: 1.35 !important;
        transition: transform 0.15s ease, background 0.15s ease, box-shadow 0.15s ease !important;
        touch-action: manipulation;
    }
    .roydisa-doc-card:hover,
    .roydisa-doc-card:focus-visible,
    .single-us_portfolio .elementor-widget-text-editor a[href$=".pdf"]:hover {
        background: #f8fafc !important;
        border-left-color: var(--rd-accent) !important;
        transform: translateY(-1px);
        box-shadow: var(--rd-shadow-md) !important;
        color: var(--rd-accent) !important;
    }
    /* Tablas técnicas con scroll horizontal seguro (M09) */
    .roydisa-table-responsive {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        margin: 16px 0 !important;
        border: 1px solid var(--rd-border) !important;
        border-radius: var(--rd-radius) !important;
        box-shadow: var(--rd-shadow-sm) !important;
    }
    .roydisa-table-responsive table {
        width: 100% !important;
        min-width: 480px !important;
        margin: 0 !important;
        border-collapse: collapse !important;
    }
    .roydisa-table-responsive th,
    .roydisa-table-responsive td {
        padding: 10px 14px !important;
        font-size: 14px !important;
        border-bottom: 1px solid var(--rd-border) !important;
    }
    .roydisa-table-responsive th {
        background: var(--rd-bg-light) !important;
        font-weight: 700 !important;
        color: var(--rd-primary-dark) !important;
    }
    .single-us_portfolio .roydisa-table-responsive #tablaproductos {
        width: 100% !important;
        min-width: 380px !important;
        table-layout: auto !important;
    }
    .single-us_portfolio .roydisa-table-responsive #tablaproductos td,
    .single-us_portfolio .roydisa-table-responsive #tablaproductos th {
        width: auto !important;
        min-width: 0 !important;
        padding: 9px 8px !important;
        white-space: nowrap !important;
        font-size: 14px !important;
        line-height: 1.4 !important;
    }
    .single-us_portfolio .roydisa-table-responsive #tablaproductos tr:first-child td {
        background: var(--rd-bg-light) !important;
        color: var(--rd-primary-dark) !important;
        font-weight: 700 !important;
    }
    .single-us_portfolio .roydisa-table-responsive #tablaproductos tr[hidden] {
        display: none !important;
    }
    .single-us_portfolio .roydisa-table-hint {
        margin: 12px 0 4px !important;
        color: var(--rd-text-muted) !important;
        font-size: 13px !important;
        line-height: 1.4 !important;
    }

    /* Embed de Video y Galería */
    .portfolio-media,
    .portfolio-video {
        width: 100% !important;
        margin: 16px 0 !important;
    }
    .portfolio-video iframe {
        width: 100% !important;
        aspect-ratio: 16 / 9 !important;
        height: auto !important;
        border-radius: var(--rd-radius) !important;
    }

    /* --------------------------------------------------------------------------
       6. Delegaciones y Contacto (M01 / M07)
       -------------------------------------------------------------------------- */
    .elementor-541 .elementor-element-8c541e5 .elementor-heading-title {
        font-size: clamp(24px, 7.5vw, 30px) !important;
        line-height: 1.2 !important;
        letter-spacing: -0.02em !important;
        white-space: nowrap !important;
        overflow-wrap: normal !important;
    }
    .elementor-tabs .elementor-tabs-wrapper {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        border: none !important;
        margin-bottom: 16px !important;
    }
    .elementor-tabs .elementor-tab-title {
        flex: 1 1 auto !important;
        min-height: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 8px 16px !important;
        border-radius: 24px !important;
        background: #f1f5f9 !important;
        color: var(--rd-text-muted) !important;
        font-size: 14px !important;
        font-weight: 600 !important;
        border: 1px solid var(--rd-border) !important;
        cursor: pointer !important;
        transition: all 0.2s ease !important;
        touch-action: manipulation;
    }
    .elementor-tabs .elementor-tab-title.elementor-active {
        background: var(--rd-primary) !important;
        color: #ffffff !important;
        border-color: var(--rd-primary) !important;
        box-shadow: 0 2px 6px rgba(0, 75, 135, 0.3) !important;
    }
    .elementor-tabs .elementor-tab-content {
        border-radius: var(--rd-radius) !important;
        border: 1px solid var(--rd-border) !important;
        padding: 16px !important;
        background: #ffffff !important;
    }

    /* --------------------------------------------------------------------------
       7. Formularios e iOS Safari Autozoom Fix (M10)
       -------------------------------------------------------------------------- */
    .elementor-form input[type="text"],
    .elementor-form input[type="email"],
    .elementor-form input[type="tel"],
    .elementor-form input[type="number"],
    .elementor-form input[type="url"],
    .elementor-form textarea,
    .elementor-form select,
    .wpcf7 input[type="text"],
    .wpcf7 input[type="email"],
    .wpcf7 input[type="tel"],
    .wpcf7 textarea,
    .wpcf7 select {
        font-size: 16px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-height: 48px !important;
        padding: 12px 14px !important;
        border: 1px solid #cbd5e1 !important;
        border-radius: 6px !important;
        background: #ffffff !important;
        color: var(--rd-text-dark) !important;
        box-sizing: border-box !important;
        transition: border-color 0.2s, box-shadow 0.2s !important;
    }
    .elementor-form textarea,
    .wpcf7 textarea {
        min-height: 120px !important;
    }
    .elementor-form input:focus,
    .elementor-form textarea:focus,
    .elementor-form select:focus,
    .wpcf7 input:focus,
    .wpcf7 textarea:focus {
        border-color: var(--rd-primary) !important;
        box-shadow: 0 0 0 3px rgba(0, 75, 135, 0.15) !important;
        outline: none !important;
    }
    .elementor-form .elementor-button[type="submit"],
    .wpcf7 input[type="submit"] {
        width: 100% !important;
        min-height: 50px !important;
        padding: 14px 20px !important;
        font-size: 16px !important;
        font-weight: 700 !important;
        letter-spacing: 0.03em !important;
        text-transform: uppercase !important;
        border-radius: 6px !important;
        background: linear-gradient(135deg, #c90000 0%, #a00000 100%) !important;
        color: #ffffff !important;
        border: none !important;
        box-shadow: 0 4px 10px rgba(201, 0, 0, 0.25) !important;
        cursor: pointer !important;
        touch-action: manipulation;
    }
    .elementor-form .elementor-button[type="submit"]:hover,
    .elementor-form .elementor-button[type="submit"]:active {
        background: var(--rd-accent-dark) !important;
    }

    /* Página de Presupuesto (/presupuesto/) */
    .page-id-537 .elementor-element-c028dc5 {
        width: 100% !important;
        max-width: 100% !important;
    }
    .page-id-537 .elementor-element-e4251d3 .elementor-heading-title,
    .page-id-537 .elementor-element-7c06c72 .elementor-heading-title {
        font-size: clamp(26px, 7.5vw, 36px) !important;
    }
    .page-id-537 .elementor-element-e5efd30 {
        display: none !important;
    }

    /* --------------------------------------------------------------------------
       8. Footer Móvil con Diseño Ejecutivo de Alta Legibilidad (M04)
       -------------------------------------------------------------------------- */
    .elementor-330 .elementor-element-107b1f2 {
        margin-top: 15px !important;
        margin-bottom: 0 !important;
    }
    .elementor-330 .elementor-element-e5efd30 {
        padding: 24px 18px !important;
        border-radius: 16px !important;
        margin: 0 12px 20px !important;
        background-color: #0b1f3a !important;
    }
    .elementor-330 .elementor-element-df7c496 {
        width: 100% !important;
        max-width: 100% !important;
        text-align: center !important;
    }
    .elementor-330 .elementor-element-df7c496 .elementor-heading-title {
        font-size: 24px !important;
        color: #ffffff !important;
        text-align: center !important;
        margin-bottom: 8px !important;
    }
    .elementor-330 .elementor-element-2802706 {
        width: 100% !important;
    }
    .elementor-330 .elementor-element-2802706 .elementor-button {
        width: 100% !important;
        min-height: 48px !important;
        justify-content: center !important;
        padding: 12px 20px !important;
        border-radius: 8px !important;
        font-size: 16px !important;
        font-weight: 700 !important;
    }

    .elementor-330 .elementor-element-ed7b177 {
        padding: 28px 16px 20px !important;
        gap: 24px !important;
        background-color: #f1f5f9 !important;
    }
    .elementor-330 .elementor-element-ec3d4cd {
        gap: 12px !important;
    }
    .elementor-330 .elementor-element-f2563c5 img {
        height: 38px !important;
        width: auto !important;
        object-fit: contain !important;
    }
    .elementor-330 .elementor-element-f7866ca {
        color: var(--rd-text-muted) !important;
        font-size: 14px !important;
        line-height: 1.6 !important;
    }

    /* Encabezados de Enlaces de interés y Legal */
    .elementor-330 .elementor-element-c9a1f9e .elementor-heading-title,
    .elementor-330 .elementor-element-af33ced .elementor-heading-title {
        color: var(--rd-primary-dark) !important;
        font-size: 17px !important;
        font-weight: 800 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.05em !important;
        margin: 0 0 12px 0 !important;
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
    }
    .elementor-330 .elementor-element-c9a1f9e .elementor-heading-title::before,
    .elementor-330 .elementor-element-af33ced .elementor-heading-title::before {
        content: "";
        display: inline-block;
        width: 4px;
        height: 18px;
        background: var(--rd-accent);
        border-radius: 2px;
        flex-shrink: 0;
    }

    .roydisa-footer-ready .elementor-widget-container > .elementor-nav-menu--main,
    .roydisa-footer-ready .elementor-widget-container > .elementor-menu-toggle,
    .roydisa-footer-ready .elementor-widget-container > .elementor-nav-menu--dropdown {
        display: none !important;
    }

    /* Grid de tarjetas táctiles de enlaces móviles */
    .roydisa-mobile-footer {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px 10px !important;
        padding: 0 0 10px !important;
        margin: 0 !important;
    }
    .roydisa-mobile-footer a {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        min-height: 46px !important;
        color: var(--rd-text-dark) !important;
        background: #ffffff !important;
        border: 1px solid #cbd5e1 !important;
        border-left: 3.5px solid var(--rd-primary) !important;
        border-radius: 8px !important;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05) !important;
        text-decoration: none !important;
        font-size: 13.5px !important;
        font-weight: 600 !important;
        padding: 10px 12px !important;
        line-height: 1.25 !important;
        word-break: break-word;
        transition: all 0.15s ease !important;
        touch-action: manipulation;
    }
    .roydisa-mobile-footer a:focus-visible,
    .roydisa-mobile-footer a:hover,
    .roydisa-mobile-footer a:active {
        color: #ffffff !important;
        background: var(--rd-primary) !important;
        border-color: var(--rd-primary) !important;
        border-left-color: var(--rd-accent) !important;
        transform: translateY(-2px);
        box-shadow: 0 4px 12px rgba(0, 75, 135, 0.22) !important;
    }

    /* Barra de Copyright */
    .elementor-330 .elementor-element-ca193b2 {
        padding: 16px !important;
        background-color: #e2e8f0 !important;
        border-top: 1px solid #cbd5e1 !important;
    }
    .elementor-330 .elementor-element-f7a6076 {
        text-align: center !important;
    }
    .elementor-330 .elementor-element-f7a6076 p {
        color: var(--rd-text-muted) !important;
        font-size: 13px !important;
        font-weight: 500 !important;
        margin: 0 !important;
    }
}

@media (max-width: 430px) {
    /* Reservar la altura del primer bloque mientras se carga la tipografía. */
    .elementor-464 .elementor-element-b29de2e {
        min-height: 544px !important;
    }
}

/* El pie enlaza a /productos/; su árbol de categorías se navega desde la cabecera. */
.elementor-330 .elementor-element-a99bc90 .sub-menu,
.elementor-330 .elementor-element-a99bc90 .sub-arrow {
    display: none !important;
}

/* SmartMenus puede conservar .highlighted al salir del enlace. */
.elementor-330 .elementor-element-a99bc90 .elementor-nav-menu--main > ul > li.menu-item-has-children > a:not(:hover):not(:focus-visible)::after {
    opacity: 0 !important;
}

/* Noticia de la Xunta disponible aunque la base local aún no contenga el post. */
.roydisa-xunta-project {
    color: #222;
}
.roydisa-xunta-project__hero {
    background: #222 url('../../uploads/2024/10/footer-bg-2.png') center / cover;
    color: #fff;
    padding: clamp(36px, 5vw, 70px) 20px;
}
.roydisa-xunta-project__inner {
    width: min(100% - 32px, 930px);
    margin-inline: auto;
}
.roydisa-xunta-project__hero h1 {
    color: #fff;
    font-size: clamp(25px, 3vw, 38px);
    line-height: 1.15;
    font-weight: 700;
    margin: 0;
    overflow-wrap: anywhere;
}
.roydisa-xunta-project__content {
    padding-block: 40px 64px;
}
.roydisa-xunta-project__intro {
    max-width: 790px;
    margin: 0 auto 32px;
    line-height: 1.7;
}
.roydisa-xunta-project__document {
    display: block;
    width: min(100%, 790px);
    margin-inline: auto;
}
.roydisa-xunta-project__document img {
    display: block;
    width: 100%;
    height: auto;
}
.roydisa-xunta-project__transcript {
    max-width: 790px;
    margin: 32px auto;
    padding: 24px 28px;
    border-left: 3px solid #1689c8;
    background: #f6f9fb;
    line-height: 1.65;
}
.roydisa-xunta-project__transcript h2,
.roydisa-xunta-project__transcript h3 {
    font-size: clamp(18px, 2vw, 22px);
    line-height: 1.35;
    overflow-wrap: anywhere;
}
.roydisa-xunta-project__transcript p:last-child {
    margin-bottom: 0;
}
.postid-12541 .roydisa-xunta-project__transcript--published {
    display: none;
}
.roydisa-xunta-project__button {
    display: table;
    margin: 32px auto 0;
    padding: 12px 24px;
    border-radius: 3px;
    background: #cf0000;
    color: #fff !important;
    font-weight: 700;
    text-decoration: none !important;
}
.roydisa-xunta-project__button:hover,
.roydisa-xunta-project__button:focus-visible {
    background: #a90000;
}
@media (max-width: 767px) {
    .postid-12541 .elementor-element-87b0f0d .elementor-heading-title {
        font-size: clamp(22px, 6vw, 30px) !important;
        line-height: 1.2 !important;
        overflow-wrap: anywhere;
    }
    .postid-12541 .roydisa-xunta-project__transcript--published {
        display: block;
        width: min(100% - 24px, 790px);
        margin: 20px auto;
    }
    .roydisa-xunta-project__hero {
        padding: 96px 16px 32px;
    }
    .roydisa-xunta-project__inner {
        width: min(100% - 24px, 930px);
    }
    .roydisa-xunta-project__hero h1 {
        font-size: clamp(21px, 6vw, 28px);
    }
    .roydisa-xunta-project__content {
        padding-block: 28px 48px;
    }
    .roydisa-xunta-project__intro,
    .roydisa-xunta-project__transcript {
        font-size: 16px;
        line-height: 1.6;
    }
    .roydisa-xunta-project__transcript {
        padding: 18px;
        margin-top: 20px;
    }
    .roydisa-xunta-project__button {
        width: 100%;
        text-align: center;
    }
}

/* --------------------------------------------------------------------------
   9. Prevención Global de Enlaces Blancos en Footer (Fallback de Seguridad)
   -------------------------------------------------------------------------- */
.elementor-330 a:not(.elementor-button),
.elementor-330 .elementor-item,
.elementor-330 .elementor-sub-item,
.elementor-330 .elementor-nav-menu--main a,
.elementor-330 .elementor-nav-menu--dropdown a {
    color: var(--rd-text-dark) !important;
}
.roydisa-festo {
    width: min(1160px, 100%);
    margin: 0 auto;
    padding: 40px 24px 72px;
    color: #172333;
    box-sizing: border-box;
}
.roydisa-festo, .roydisa-festo * { box-sizing: border-box; }
.roydisa-festo__intro { max-width: 850px; margin: 0 auto 54px; text-align: center; }
.roydisa-festo__logo { display: block; width: min(250px, 65%); height: auto; margin: 0 auto 24px; }
.roydisa-festo__intro h1 { margin: 0 0 20px; font-size: clamp(34px, 4vw, 48px); line-height: 1.15; color: #111e30; }
.roydisa-festo__intro p { margin: 0 0 12px; font-size: 17px; line-height: 1.7; text-align: left; }
.roydisa-festo__intro p:last-child { margin-bottom: 0; }
.roydisa-festo__section + .roydisa-festo__section { margin-top: 72px; }
.roydisa-festo__section-head { margin: 0 0 24px; }
.roydisa-festo__section-head h2 { margin: 0 0 6px; font-size: clamp(26px, 3vw, 32px); line-height: 1.2; color: #111e30; }
.roydisa-festo__section-head p { margin: 0; font-size: 15px; line-height: 1.5; color: #536274; }
.roydisa-festo__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.roydisa-festo__family { display: flex; flex-direction: column; min-width: 0; padding: 20px; border: 1px solid #d9e1e9; border-radius: 12px; background: #fff; box-shadow: 0 3px 14px rgba(11, 35, 58, .055); }
.roydisa-festo__family-top { display: flex; align-items: center; gap: 14px; min-height: 80px; margin-bottom: 10px; }
.roydisa-festo__family-top img { flex: 0 0 84px; width: 84px; height: 72px; object-fit: contain; }
.roydisa-festo__family h3 { margin: 0; font-size: 19px; line-height: 1.25; color: #102b4b; overflow-wrap: anywhere; }
.roydisa-festo__family ul { margin: 0 0 18px; padding-left: 19px; list-style: disc; }
.roydisa-festo__family li { margin: 0 0 7px; padding: 0; font-size: 15px; line-height: 1.45; color: #263849; }
.roydisa-festo__family li::marker { color: #0087cd; }
.roydisa-festo__family-link { display: inline-flex; align-items: center; gap: 7px; align-self: flex-start; margin-top: auto; font-size: 15px; font-weight: 700; color: #006da7; text-decoration: none; }
.roydisa-festo__family-link:hover, .roydisa-festo__family-link:focus-visible { color: #005280; text-decoration: underline; }
.roydisa-festo__documents { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.roydisa-festo__document { display: flex; flex-direction: column; align-items: center; min-width: 0; padding: 14px; border: 1px solid #d9e1e9; border-radius: 12px; background: #fff; color: #102b4b; text-align: center; text-decoration: none; box-shadow: 0 3px 14px rgba(11, 35, 58, .055); }
.roydisa-festo__document:hover, .roydisa-festo__document:focus-visible { border-color: #0087cd; box-shadow: 0 5px 18px rgba(0, 99, 157, .14); text-decoration: none; }
.roydisa-festo__document img { width: 100%; height: 175px; object-fit: contain; margin-bottom: 12px; }
.roydisa-festo__document span { font-size: 14px; line-height: 1.35; font-weight: 700; }
.roydisa-festo__document .roydisa-festo__pdf { margin-top: auto; padding-top: 9px; color: #006da7; font-size: 12px; letter-spacing: .04em; }
@media (max-width: 900px) {
    .roydisa-festo__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .roydisa-festo__documents { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .roydisa-festo { padding: 30px 18px 54px; }
    .roydisa-festo__intro { margin-bottom: 42px; }
    .roydisa-festo__intro p { font-size: 16px; line-height: 1.6; }
    .roydisa-festo__section + .roydisa-festo__section { margin-top: 52px; }
    .roydisa-festo__grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .roydisa-festo__family { padding: 17px; }
    .roydisa-festo__family-top { min-height: 68px; }
    .roydisa-festo__family-top img { flex-basis: 74px; width: 74px; height: 64px; }
    .roydisa-festo__family h3 { font-size: 18px; }
    .roydisa-festo__documents { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .roydisa-festo__document { padding: 10px; }
    .roydisa-festo__document img { height: 145px; }
}

/* Fichas Bosch y Duplomatic: contenido propio y documentos de Roydisa. */
.roydisa-brand { width: min(1120px, 100%); margin: 0 auto; padding: 40px 24px 72px; box-sizing: border-box; color: #182636; }
.roydisa-brand, .roydisa-brand * { box-sizing: border-box; }
.roydisa-brand__header { max-width: 850px; margin: 0 auto 56px; text-align: center; }
.roydisa-brand__logo { display: block; width: min(340px, 80%); max-height: 110px; object-fit: contain; margin: 0 auto 22px; }
.roydisa-brand__bosch-image { display: block; width: 100%; max-width: 800px; height: auto; margin: 0 auto 26px; border-radius: 10px; }
.roydisa-brand__header h1 { margin: 0 0 16px; font-size: clamp(32px, 4vw, 46px); line-height: 1.14; color: #10233c; }
.roydisa-brand__header p { margin: 0 auto 22px; font-size: 17px; line-height: 1.65; text-align: left; }
.roydisa-brand__cta { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 46px; padding: 10px 21px; border-radius: 6px; background: #eb1010; color: #fff !important; font-size: 16px; font-weight: 700; text-decoration: none !important; }
.roydisa-brand__cta:hover, .roydisa-brand__cta:focus-visible { background: #bd0000; }
.roydisa-brand__section + .roydisa-brand__section { margin-top: 58px; }
.roydisa-brand__section h2 { margin: 0 0 18px; font-size: clamp(26px, 3vw, 32px); line-height: 1.2; color: #10233c; }
.roydisa-brand__section > p { margin: -7px 0 20px; color: #536274; font-size: 15px; line-height: 1.5; }
.roydisa-brand__products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.roydisa-brand__product, .roydisa-brand__category, .roydisa-brand__feature { min-width: 0; border: 1px solid #d9e1e9; border-radius: 11px; background: #fff; box-shadow: 0 3px 14px rgba(11,35,58,.055); }
.roydisa-brand__product { padding: 18px 14px; text-align: center; }
.roydisa-brand__product img { display: block; width: 100%; height: 150px; object-fit: contain; margin: 0 auto 12px; }
.roydisa-brand__product h3 { margin: 0; font-size: 16px; line-height: 1.35; color: #102b4b; }
.roydisa-brand__documents { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.roydisa-brand__document { display: flex; align-items: center; gap: 14px; min-width: 0; min-height: 67px; padding: 15px 17px; border: 1px solid #d9e1e9; border-radius: 9px; background: #fff; color: #102b4b; font-size: 15px; font-weight: 700; line-height: 1.4; text-decoration: none !important; }
.roydisa-brand__document:hover, .roydisa-brand__document:focus-visible { border-color: #0074ad; box-shadow: 0 4px 16px rgba(0,99,157,.12); color: #005e91; }
.roydisa-brand__document-type { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 39px; height: 39px; border-radius: 6px; background: #e5f4fb; color: #006da7; font-size: 11px; letter-spacing: .04em; }
.roydisa-brand__document-arrow { flex: 0 0 auto; margin-left: auto; color: #006da7; }
.roydisa-brand__categories { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.roydisa-brand__category { padding: 22px; border-top: 3px solid #e01616; }
.roydisa-brand__category h3 { margin: 0 0 7px; font-size: 20px; line-height: 1.3; color: #102b4b; }
.roydisa-brand__category p { margin: 0; font-size: 15px; line-height: 1.5; }
.roydisa-brand__features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.roydisa-brand__feature { padding: 15px; text-align: center; }
.roydisa-brand__feature img { display: block; width: 100%; height: 180px; object-fit: contain; margin: 0 auto 13px; }
.roydisa-brand__feature h3 { margin: 0; font-size: 18px; line-height: 1.35; color: #102b4b; }
.roydisa-brand__documents--covers { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.roydisa-brand__documents--covers .roydisa-brand__document { flex-direction: column; align-items: center; justify-content: flex-start; min-height: 295px; text-align: center; }
.roydisa-brand__documents--covers img { display: block; width: 100%; height: 190px; object-fit: contain; }
.roydisa-brand__documents--covers .roydisa-brand__document-arrow { margin: auto 0 0; font-size: 13px; }
.roydisa-brand__document-cover { display: flex; align-items: center; justify-content: center; width: 100%; height: 190px; border-radius: 5px; background: #edf3f8; color: #b81217; font-size: 24px; font-weight: 800; line-height: 1.1; }
.single-us_portfolio .roydisa-unlinked-external { color: inherit !important; text-decoration: none !important; cursor: default !important; pointer-events: none !important; }
.single-us_portfolio .roydisa-unlinked-external:hover { color: inherit !important; text-decoration: none !important; transform: none !important; }
@media (max-width: 800px) {
    .roydisa-brand__products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .roydisa-brand { padding: 30px 18px 54px; }
    .roydisa-brand__header { margin-bottom: 44px; }
    .roydisa-brand__header p { font-size: 16px; line-height: 1.6; }
    .roydisa-brand__cta { width: 100%; }
    .roydisa-brand__section + .roydisa-brand__section { margin-top: 48px; }
    .roydisa-brand__products { gap: 11px; }
    .roydisa-brand__product { padding: 13px 9px; }
    .roydisa-brand__product img { height: 112px; }
    .roydisa-brand__product h3 { font-size: 14px; }
    .roydisa-brand__documents, .roydisa-brand__categories, .roydisa-brand__features, .roydisa-brand__documents--covers { grid-template-columns: minmax(0, 1fr); }
    .roydisa-brand__category { padding: 18px; }
    .roydisa-brand__feature img { height: 150px; }
    .roydisa-brand__documents--covers .roydisa-brand__document { min-height: 280px; }
}
