/* Roydisa: composicion aprobada de Inicio, cabecera movil, Neumatica y servicios. */

/* Un mismo formato de documentos en todos los portfolios y anchos de pantalla. */
body.single-us_portfolio .elementor-widget-theme-post-content :is(a.catalogo-boton, a.catalogo-card:not(:has(img)), a.roydisa-doc-card:not(:has(img))) {
    display: flex !important; flex-direction: row !important; align-items: center !important;
    justify-content: center !important; gap: 12px !important; width: 100% !important;
    min-width: 0; min-height: 64px !important; padding: 14px 18px !important; margin: 0 !important;
    border: 1px solid #dfe5ec !important;
    border-radius: 14px !important; background: #fff !important; color: #000 !important;
    text-align: center !important; text-decoration: none !important;
    font-size: 15px !important; font-weight: 600 !important; line-height: 1.45 !important;
    box-shadow: none !important;
    transition: transform .15s ease, background .15s ease, box-shadow .15s ease !important;
}
body.single-us_portfolio .elementor-widget-theme-post-content :is(a.catalogo-boton, a.catalogo-card:not(:has(img)), a.roydisa-doc-card:not(:has(img))) :is(span, h4) {
    margin: 0 !important; padding: 0 !important; color: inherit !important;
    font: inherit !important; text-align: inherit !important;
}
body.single-us_portfolio .elementor-widget-theme-post-content :is(a.catalogo-boton, a.catalogo-card:not(:has(img)), a.roydisa-doc-card:not(:has(img))):is(:hover, :focus-visible) {
    background: #fff !important; color: #00baff !important;
    border-color: #dfe5ec !important; transform: translateY(-1px);
    box-shadow: 0 8px 24px #17233314 !important;
}
body.single-us_portfolio .elementor-widget-theme-post-content :is(a.catalogo-boton, a.catalogo-card:not(:has(img)), a.roydisa-doc-card:not(:has(img))):focus-visible {
    outline: 2px solid #004b87; outline-offset: 3px;
}

/* Fichas: jerarquia de titulos, hero completo y documentacion compacta. */
.single-us_portfolio .elementor-element-59db8aa .elementor-heading-title {
    font-size: clamp(34px, 3.5vw, 46px) !important;
    line-height: 1.15 !important;
}
.single-us_portfolio .catalogo-producto .catalogo-hero img {
    /* Recuperar la portada rectangular anterior, sin modificar la imagen original. */
    width: 80% !important;
    max-width: min(100%, 1100px) !important;
    height: auto !important;
    max-height: 420px !important;
    object-fit: cover !important;
    border-radius: 14px !important;
    margin: 0 auto 28px !important;
}
.single-us_portfolio .catalogo-producto .catalogo-header { margin: 36px 0 24px !important; }
.single-us_portfolio .catalogo-producto .catalogo-header h1 {
    font-size: 32px !important;
    line-height: 1.25 !important;
}
.single-us_portfolio .catalogo-producto .catalogo-header h2 {
    font-size: 26px !important;
    line-height: 1.3 !important;
}
.single-us_portfolio .catalogo-producto .catalogos-grid {
    grid-template-columns: repeat(auto-fit, minmax(0, 220px)) !important;
    justify-content: start;
    gap: 20px !important;
}
.single-us_portfolio .catalogo-producto .roydisa-festo-interest-links {
    margin-top: 0 !important;
    padding-top: clamp(32px, 4vw, 48px) !important;
}
.single-us_portfolio .catalogo-producto .roydisa-festo-interest-links > h2 {
    margin: 0 0 12px !important;
}
.single-us_portfolio .catalogo-producto .catalogo-card {
    width: 100% !important;
    min-width: 0;
    padding: 14px !important;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}
.single-us_portfolio .catalogo-producto .catalogo-card img {
    width: 100% !important;
    max-width: 150px !important;
    height: 190px !important;
    max-height: 190px !important;
    object-fit: contain !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border-radius: 0 !important;
}
/* Marco suave para delimitar las portadas de catalogos con fondo blanco. */
body.single-us_portfolio .catalogos-grid > a.catalogo-card > img,
body.single-us_portfolio.roydisa-portfolio-review .catalogos-grid > a.catalogo-card > img {
    box-sizing: border-box !important;
    padding: 10px !important;
    background: #f4f5f7 !important;
    border-radius: 8px !important;
}
.single-us_portfolio .catalogo-producto .catalogo-card span { line-height: 1.4; }
@media (max-width: 767px) {
    .single-us_portfolio .elementor-element-59db8aa .elementor-heading-title { font-size: 32px !important; }
    .single-us_portfolio .catalogo-producto { margin: 24px auto !important; }
    .single-us_portfolio .catalogo-producto .bloque-generico { padding: 20px !important; }
    .single-us_portfolio .catalogo-producto .catalogo-header { margin: 26px 0 20px !important; }
    .single-us_portfolio .catalogo-producto .catalogo-header h1 { font-size: 25px !important; }
    .single-us_portfolio .catalogo-producto .catalogo-header h2 { font-size: 22px !important; }
    .single-us_portfolio .catalogo-producto .catalogo-hero img { width: 100% !important; max-height: 360px !important; margin-bottom: 24px !important; }
    .single-us_portfolio .catalogo-producto .catalogos-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 14px !important; }
    .single-us_portfolio .catalogo-producto .catalogo-card {
        flex-direction: row;
        text-align: left;
        gap: 14px;
        min-height: 132px;
    }
    .single-us_portfolio .catalogo-producto .catalogo-card img {
        flex: 0 0 78px;
        width: 78px !important;
        max-width: 78px !important;
        height: 104px !important;
        max-height: 104px !important;
    }
    body.single-us_portfolio .catalogos-grid > a.catalogo-card > img,
    body.single-us_portfolio.roydisa-portfolio-review .catalogos-grid > a.catalogo-card > img {
        padding: 6px !important;
    }
    .single-us_portfolio .catalogo-producto .catalogo-card span { flex: 1; min-width: 0; font-size: 14px; }
}

/* Presupuesto: cabecera breve y formulario con etiquetas visibles. */
.elementor.elementor-537 { gap: 0 !important; }
.elementor-537 .elementor-element-8707eb3 {
    min-height: 140px !important; --min-height: 140px;
    background: #172333 !important;
}
.elementor-537 .elementor-element-83c9a7b {
    min-height: 140px !important; --min-height: 140px;
    padding: 32px 24px !important;
    background-color: #172333 !important;
    background-blend-mode: luminosity;
}
.elementor-537 .elementor-element-83c9a7b::before { background: #172333 !important; opacity: .65 !important; }
.elementor-537 .elementor-element-fab6d5f { width: 100% !important; max-width: 840px !important; padding: 0 !important; margin: 0 auto !important; }
.elementor-537 .elementor-element-fab6d5f > .e-con-inner { padding: 0 !important; }
.elementor-537 .elementor-element-e4251d3 .elementor-heading-title { font-size: 36px !important; line-height: 1.2 !important; color: #fff !important; }
.elementor-537 .elementor-element-4b92881 {
    min-height: 0 !important; --min-height: 0;
    padding: 36px 24px 20px !important; margin: 0 !important;
}
.elementor-537 .elementor-element-4b92881 > .e-con-inner { max-width: 840px !important; padding: 0 !important; }
.elementor-537 .elementor-element-7c06c72 { width: 100% !important; margin: 0 !important; text-align: left !important; }
.elementor-537 .elementor-element-7c06c72 > .elementor-widget-container { margin: 0 !important; padding: 0 !important; }
.elementor-537 .elementor-element-7c06c72 .elementor-heading-title { font-size: 30px !important; line-height: 1.25 !important; color: #172333 !important; }
.elementor-537 .rd-budget-intro { max-width: 660px; margin: 12px 0 0; color: #52606d; font-size: 17px; line-height: 1.6; font-weight: 400; }
.elementor-537 .elementor-element-b4a85b5 { padding: 0 24px 56px !important; margin: 0 !important; }
.elementor-537 .elementor-element-b4a85b5 > .e-con-inner { max-width: 840px !important; padding: 0 !important; }
.elementor-537 .elementor-element-5ad4511 { width: 100% !important; padding: 0 !important; margin: 0 !important; }
.elementor-537 .elementor-element-c028dc5 { width: 100% !important; max-width: none !important; }
.elementor-537 .elementor-element-c028dc5 > .elementor-widget-container {
    padding: 28px 32px !important; background: #f8fafb !important;
    border: 1px solid #e2e6ea; border-radius: 14px !important;
    box-shadow: 0 8px 28px #17233308;
}
:is(.elementor-537, .elementor-542) .elementor-form-fields-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; margin: 0 !important; }
:is(.elementor-537, .elementor-542) .elementor-form .elementor-field-group { width: 100% !important; padding: 0 !important; margin: 0 !important; min-width: 0; }
:is(.elementor-537, .elementor-542) .elementor-form .elementor-col-100 { grid-column: 1 / -1; }
:is(.elementor-537, .elementor-542) .elementor-form .elementor-field-label {
    position: static !important; width: auto !important; height: auto !important;
    margin: 0 0 6px !important; padding: 0 !important; overflow: visible !important;
    clip: auto !important; clip-path: none !important; white-space: normal !important;
    color: #172333 !important; font-size: 14px !important; font-weight: 600; line-height: 1.4;
}
:is(.elementor-537, .elementor-542) .elementor-field-required > .elementor-field-label::after { content: ' *'; color: #c90000; }
:is(.elementor-537, .elementor-542) .elementor-form .elementor-field-textual {
    width: 100%; min-height: 46px; padding: 11px 14px !important;
    background: #fff !important; border: 1px solid #d7dfe7 !important;
    border-radius: 7px !important; color: #172333 !important;
    font-size: 16px !important; line-height: 1.5 !important; box-shadow: none;
}
:is(.elementor-537, .elementor-542) .elementor-form .elementor-field-textual::placeholder { color: #77828d; opacity: 1; }
:is(.elementor-537, .elementor-542) .elementor-form .elementor-field-textual:focus { border-color: #9cabb9 !important; outline: 2px solid #17233324; outline-offset: 2px; }
:is(.elementor-537, .elementor-542) .elementor-form textarea.elementor-field-textual { min-height: 110px; resize: vertical; }
:is(.elementor-537, .elementor-542) .elementor-field-type-html p { margin: 0; font-size: 13px; line-height: 1.65; color: #52606d; }
:is(.elementor-537, .elementor-542) .elementor-field-type-html a { color: #172333; text-decoration: underline; text-underline-offset: 2px; }
:is(.elementor-537, .elementor-542) .elementor-field-type-submit { justify-content: flex-end; }
:is(.elementor-537, .elementor-542) .elementor-field-type-submit .elementor-button {
    flex: 0 1 210px !important; width: 210px !important; min-height: 46px; padding: 12px 24px;
    background: #c90000 !important; border-radius: 7px !important;
    color: #fff !important; font-size: 16px !important; font-weight: 600;
    text-transform: none !important; letter-spacing: 0 !important;
    box-shadow: none !important;
}
:is(.elementor-537, .elementor-542) .elementor-field-type-submit .elementor-button:hover { background: #a00000 !important; }
@media (max-width: 767px) {
    .page-id-537 .elementor-537 .elementor-element-e4251d3 .elementor-heading-title { font-size: 28px !important; }
    .page-id-537 .elementor-537 .elementor-element-7c06c72 .elementor-heading-title { font-size: 26px !important; }
    .elementor-537 .elementor-element-8707eb3,
    .elementor-537 .elementor-element-83c9a7b { min-height: 112px !important; --min-height: 112px; }
    .elementor-537 .elementor-element-83c9a7b { padding: 28px 20px !important; }
    .elementor-537 .elementor-element-4b92881 { padding: 28px 20px 18px !important; }
    .elementor-537 .rd-budget-intro { font-size: 16px; }
    .elementor-537 .elementor-element-b4a85b5 { padding: 0 20px 36px !important; }
    .elementor-537 .elementor-element-c028dc5 > .elementor-widget-container { padding: 22px 18px !important; }
    :is(.elementor-537, .elementor-542) .elementor-form-fields-wrapper { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    :is(.elementor-537, .elementor-542) .elementor-field-type-submit .elementor-button { flex-basis: 100% !important; width: 100% !important; }
}

/* Contacto: la misma jerarquia y campos que Presupuesto, con contacto directo. */
.elementor.elementor-542 { gap: 0 !important; }
.elementor-542 .elementor-element-2a96a76,
.elementor-542 .elementor-element-637dba5 { min-height: 140px !important; --min-height: 140px; background-color: #172333 !important; }
.elementor-542 .elementor-element-637dba5 { padding: 32px 24px !important; background-blend-mode: luminosity; }
.elementor-542 .elementor-element-637dba5::before { background: #172333 !important; opacity: .65 !important; }
.elementor-542 .elementor-element-335546f { width: 100% !important; max-width: 1200px !important; padding: 0 !important; margin: 0 auto !important; }
.elementor-542 .elementor-element-335546f > .e-con-inner { padding: 0 !important; }
.elementor-542 .elementor-element-db5f491 .elementor-heading-title { font-size: 36px !important; line-height: 1.2 !important; color: #fff !important; }
.elementor-542 .elementor-element-f3b43f1 { min-height: 0 !important; --min-height: 0; padding: 36px 24px 20px !important; margin: 0 !important; }
.elementor-542 .elementor-element-f3b43f1 > .e-con-inner { max-width: 1200px !important; padding: 0 !important; }
.elementor-542 .elementor-element-1b2a617 { width: 100% !important; margin: 0 !important; text-align: left !important; }
.elementor-542 .elementor-element-1b2a617 > .elementor-widget-container { padding: 0 !important; margin: 0 !important; }
.elementor-542 .elementor-element-1b2a617 .elementor-heading-title { font-size: 30px !important; line-height: 1.25 !important; color: #172333 !important; }
.elementor-542 .rd-contact-intro { margin: 12px 0 0; color: #52606d; font-size: 17px; line-height: 1.6; }
.elementor-542 .elementor-element-c0d9d09 { padding: 0 24px 48px !important; margin: 0 !important; }
.elementor-542 .elementor-element-c0d9d09 > .e-con-inner {
    display: grid !important; grid-template-columns: minmax(0, 1fr) 360px;
    align-items: start !important; gap: 32px !important; max-width: 1200px !important; padding: 0 !important;
}
.elementor-542 .elementor-element-0fb67f9,
.elementor-542 .elementor-element-e051fc5 { width: 100% !important; min-width: 0; padding: 0 !important; margin: 0 !important; }
.elementor-542 .elementor-element-0110e4a { width: 100% !important; max-width: none !important; }
.elementor-542 .elementor-element-0fb67f9 { background: transparent !important; }
.elementor-542 .elementor-element-0110e4a > .elementor-widget-container {
    padding: 28px 32px !important; background: #f8fafb !important;
    border: 1px solid #e2e6ea; border-radius: 14px !important; box-shadow: 0 8px 28px #17233308;
}
.elementor-542 .elementor-element-e051fc5 { padding: 28px !important; gap: 22px !important; border: 1px solid #e2e6ea; border-radius: 14px; background: #fff; }
.elementor-542 .elementor-element-5d207fb .elementor-heading-title { color: #172333 !important; font-size: 24px !important; line-height: 1.3; }
.elementor-542 .elementor-element-e051fc5 .elementor-widget-container { padding: 0 !important; margin: 0 !important; }
.elementor-542 .elementor-element-e051fc5 .elementor-icon-box-wrapper { display: flex !important; flex-direction: row !important; gap: 14px; align-items: flex-start !important; text-align: left !important; }
.elementor-542 .elementor-element-e051fc5 .elementor-icon-box-icon { flex: 0 0 38px; margin: 0 !important; }
.elementor-542 .elementor-element-e051fc5 .elementor-icon { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 9px !important; border: 1px solid #f0d4d4; background: #fff7f7; color: #c90000; }
.elementor-542 .elementor-element-e051fc5 .elementor-icon svg { width: 18px; height: 18px; fill: #c90000; }
.elementor-542 .elementor-element-e051fc5 .elementor-icon-box-content { min-width: 0; padding-top: 5px; }
.elementor-542 .elementor-element-e051fc5 .elementor-icon-box-title { margin: 0 !important; color: #344150 !important; font-size: 16px !important; font-weight: 400 !important; line-height: 1.6 !important; overflow-wrap: anywhere; }
.elementor-542 .elementor-element-6ef5359 .elementor-icon-box-title { font-size: 20px !important; font-weight: 600 !important; color: #172333 !important; }
.elementor-542 .elementor-element-e051fc5 a:hover { color: #c90000; }
@media (max-width: 1023px) {
    .elementor-542 .elementor-element-c0d9d09 > .e-con-inner { grid-template-columns: minmax(0, 1fr); gap: 24px !important; }
}
@media (max-width: 767px) {
    .elementor-542 .elementor-element-2a96a76,
    .elementor-542 .elementor-element-637dba5 { min-height: 112px !important; --min-height: 112px; }
    .elementor-542 .elementor-element-637dba5 { padding: 28px 20px !important; }
    .elementor-542 .elementor-element-db5f491 .elementor-heading-title { font-size: 28px !important; }
    .elementor-542 .elementor-element-1b2a617 .elementor-heading-title { font-size: 26px !important; }
    .elementor-542 .elementor-element-f3b43f1 { padding: 28px 20px 18px !important; }
    .elementor-542 .rd-contact-intro { font-size: 16px; }
    .elementor-542 .elementor-element-c0d9d09 { padding: 0 20px 32px !important; }
    .elementor-542 .elementor-element-0110e4a > .elementor-widget-container { padding: 22px 18px !important; }
    .elementor-542 .elementor-element-e051fc5 { padding: 22px 18px !important; }
}

/* Marcas: banner compacto exclusivamente en movil. */
@media (max-width: 767px) {
    .elementor-464 .elementor-element-4537edc { padding: 20px 16px !important; }
    .elementor-464 .elementor-element-4537edc > .e-con-inner {
        flex-direction: column !important;
        gap: 12px !important;
        padding: 0 !important;
    }
    .elementor-464 .elementor-element-17a574c { width: 100% !important; margin: 0 !important; }
    .elementor-464 .elementor-element-17a574c .elementor-heading-title {
        font-size: 18px !important;
        line-height: 1.3 !important;
        margin: 0 !important;
    }
    .elementor-464 .elementor-element-8c3e67b {
        position: relative;
        width: 100% !important;
        min-width: 0;
        padding: 0 !important;
        filter: none !important;
        opacity: 1 !important;
    }
    .elementor-464 .elementor-element-8c3e67b .swiper {
        height: 64px;
        cursor: grab;
        touch-action: pan-y;
        filter: grayscale(1);
        opacity: .6;
    }
    .elementor-464 .elementor-element-8c3e67b .swiper:active { cursor: grabbing; }
    .elementor-464 .elementor-element-8c3e67b .swiper-slide-inner {
        height: 64px;
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 0;
    }
    .elementor-464 .elementor-element-8c3e67b .swiper-slide-image {
        width: 100% !important;
        max-width: 140px !important;
        height: 56px !important;
        object-fit: contain;
        user-select: none;
        -webkit-user-drag: none;
    }

}

/* Portada: fotografías a todo el ancho y lectura sobre la zona clara. */
.elementor-464 .elementor-element.rd-home-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: 0 !important;
    height: auto !important;
    padding: 0 48px !important;
    background: #e8e9e9 !important;
    border-bottom: 1px solid #dce1e5;
}
.rd-home-hero::before,
.rd-home-hero > .elementor-background-overlay,
.rd-home-hero > .elementor-background-slideshow { display: none !important; }
.elementor-464 .rd-home-hero .elementor-element-8b9db47 {
    width: 100% !important;
    max-width: 1440px !important;
    position: static !important;
    padding: 0 !important;
    margin: 0 auto !important;
}
.elementor-464 .rd-home-hero .rd-hero-grid {
    display: grid !important;
    position: static !important;
    min-height: clamp(620px, 52.2vw, 900px);
    grid-template-columns: minmax(0, .44fr) minmax(0, .56fr);
    grid-template-rows: minmax(0, 1fr) auto auto auto minmax(0, 1fr);
    grid-template-areas: ". ." "partners ." "title ." "description ." ". .";
    align-items: start !important;
    gap: 20px 32px !important;
    width: 100% !important;
    max-width: none !important;
    padding: 48px 0 !important;
}
.elementor-464 .rd-hero-grid > .elementor-element { position: relative; z-index: 1; }
.elementor-464 .rd-home-hero .elementor-element-16f1381 {
    grid-area: partners;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    box-shadow: none !important;
}
.elementor-464 .rd-home-hero .elementor-element-16f1381 img { max-height: 56px !important; width: auto !important; }
.elementor-464 .rd-home-hero .elementor-element-d865afb { width: 56px !important; flex: 0 0 56px !important; }
.elementor-464 .rd-home-hero .elementor-element-d9dfd7d { width: 230px !important; flex: 0 1 230px !important; }
.elementor-464 .rd-home-hero .elementor-element-d9dfd7d img { width: 100% !important; }
.elementor-464 .rd-home-hero .elementor-element-a85ffd2 {
    grid-area: title;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 16px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
.elementor-464 .rd-home-hero .elementor-element-a653a70,
.elementor-464 .rd-home-hero .elementor-element-a653a70 > .elementor-widget-container {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    --e-transform-rotateZ: 0deg;
    width: auto !important;
    margin: 0 !important;
}
.elementor-464 .rd-home-hero .elementor-element-a653a70 { order: -1 !important; }
.elementor-464 .rd-home-hero .elementor-element-a653a70 .elementor-heading-title {
    color: #c90000 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: .13em !important;
    line-height: 1.4 !important;
}
.elementor-464 .rd-home-hero .elementor-element-7f8c60e { width: 100% !important; }
.elementor-464 .rd-home-hero .elementor-element-7f8c60e .elementor-heading-title {
    color: #172333 !important;
    font-size: clamp(44px, 4.2vw, 68px) !important;
    font-weight: 700 !important;
    line-height: 1.08 !important;
    text-shadow: none !important;
    letter-spacing: -.025em;
}
.elementor-464 .rd-home-hero .elementor-element-61eea37 { display: none !important; }
.elementor-464 .rd-home-hero .elementor-element-fd0003c {
    grid-area: description;
    width: 100% !important;
    max-width: 550px !important;
    padding: 0 !important;
    margin: 0 !important;
}
.elementor-464 .rd-home-hero .elementor-element-fd0003c .elementor-heading-title {
    color: #344150 !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    line-height: 1.6 !important;
    text-shadow: none !important;
}
.elementor-464 .rd-hero-media { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.elementor-464 .rd-hero-media img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center bottom; }
.elementor-464 .rd-hero-media .rd-hero-slide {
    position: absolute; inset: 0; opacity: 0; z-index: 0;
    transition: opacity var(--rd-hero-transition, 3000ms) ease-in-out !important;
}
/* La foto anterior permanece opaca debajo durante toda la disolución. */
.elementor-464 .rd-hero-media .rd-hero-slide.is-previous { opacity: 1; z-index: 1; }
.elementor-464 .rd-hero-media .rd-hero-slide.is-active { opacity: 1; z-index: 2; }
.elementor-464 .rd-hero-pause {
    position: absolute; right: 16px; bottom: 16px; z-index: 4;
    min-width: 88px; min-height: 44px; padding: 8px 14px;
    border: 1px solid #ffffff80; border-radius: 22px;
    background: #172333e6; color: #fff; font: 600 13px/1.4 sans-serif;
    pointer-events: auto; cursor: pointer;
}
.elementor-464 .rd-hero-pause[hidden] { display: none; }
.elementor-464 .rd-hero-pause:hover { background: #172333; }
.elementor-464 .rd-hero-pause:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.elementor-464 .rd-hero-media::after {
    content: '';
    position: absolute;
    z-index: 3;
    inset: 0;
    background: linear-gradient(90deg, #f5f6f7f2 0%, #f5f6f7e6 23%, #f5f6f7b8 36%, #f5f6f721 51%, transparent 62%);
}

/* Productos de Inicio: escala y tarjetas coherentes con el catalogo. */
.elementor-464 .elementor-element.rd-home-products {
    width: calc(100% - 40px) !important;
    max-width: 1240px !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 44px 0 40px !important;
    gap: 24px !important;
    align-items: stretch !important;
}
.rd-home-products .elementor-element-7e33c9f,
.rd-home-products .elementor-element-7e33c9f > .e-con-inner {
    width: 100% !important; max-width: none !important;
    min-height: 0 !important; height: auto !important;
    padding: 0 !important; margin: 0 !important;
    display: flex !important; flex-direction: column !important;
    align-items: flex-start !important; gap: 8px !important;
}
.rd-home-products :is(.elementor-element-14bc7b0, .elementor-element-9fa3c9e),
.rd-home-products :is(.elementor-element-14bc7b0, .elementor-element-9fa3c9e) > .elementor-widget-container {
    position: static !important; inset: auto !important; transform: none !important;
    width: auto !important; max-width: 100% !important;
    padding: 0 !important; margin: 0 !important;
    visibility: visible !important; opacity: 1 !important; animation: none !important;
}
.rd-home-products .elementor-element-9fa3c9e { order: -1; }
.rd-home-products .elementor-element-9fa3c9e .elementor-heading-title {
    color: #c90000 !important; font-size: 11px !important;
    font-weight: 700 !important; line-height: 1.4 !important; letter-spacing: .13em !important;
}
.rd-home-products .elementor-element-14bc7b0 .elementor-heading-title {
    color: #172333 !important; font-size: 34px !important;
    line-height: 1.15 !important; font-weight: 700 !important;
}
.rd-home-products .elementor-element-86226e1 {
    width: 100% !important;
    --e-n-carousel-swiper-offset-size: 20px !important;
    --e-n-carousel-swiper-slides-gap: 24px !important;
}
.rd-home-products .e-n-carousel { padding-top: 4px; padding-bottom: 8px; }
.rd-home-products .swiper-wrapper { align-items: stretch; }
.rd-home-products .swiper-slide > a.elementor-element {
    display: flex !important; flex-direction: column !important;
    align-items: center !important; justify-content: flex-start !important;
    width: 100% !important; height: 100% !important; min-height: 0 !important;
    padding: 12px !important; gap: 12px !important;
    background: #fff !important; border: 1px solid #e2e6ea;
    border-radius: 10px !important; box-shadow: none;
}
.rd-home-products .swiper-slide > a::before { display: none !important; }
.rd-home-products .swiper-slide > a::after {
    content: none; display: none !important;
}
.rd-home-products .swiper-slide .elementor-widget-icon { display: none !important; }
.rd-home-products .swiper-slide :is(.elementor-widget-heading, .elementor-widget-image) {
    width: 100% !important; margin: 0 !important; padding: 0 !important;
}
.rd-home-products .swiper-slide :is(.elementor-widget-heading, .elementor-widget-image) > .elementor-widget-container {
    margin: 0 !important; padding: 0 !important; background: transparent !important;
}
.rd-home-products .swiper-slide .elementor-widget-image { order: 0; }
.rd-home-products .swiper-slide .elementor-widget-heading { order: 1; }
.rd-home-products .swiper-slide img {
    display: block; width: 100% !important; height: 240px !important;
    max-height: none !important; object-fit: contain;
    border-radius: 0 !important; background: transparent !important;
}
.rd-home-products [data-rd-category="rodamientos"] img {
    transform: scale(.88);
    transform-origin: center;
}
/* Neumatica: ampliar solo la foto dentro del mismo marco. */
.elementor-464 .rd-home-products [data-rd-category="neumatica"] .elementor-widget-image > .elementor-widget-container {
    overflow: hidden;
}
.elementor-464 .rd-home-products [data-rd-category="neumatica"] img {
    transform: scale(1.25);
    transform-origin: center;
}
.rd-home-products .swiper-slide .elementor-heading-title {
    display: flex; align-items: center; justify-content: center;
    min-height: 45px; margin: 0 !important; text-align: center;
    font-size: 18px !important; line-height: 1.25 !important;
    font-weight: 600 !important; color: #172333 !important;
}
.rd-home-products .swiper-slide > a:hover,
.rd-home-products .swiper-slide > a:focus-visible {
    transform: translateY(-3px) !important; border-color: #c9ced5;
    box-shadow: 0 8px 20px #1723330d;
}
.rd-home-products .swiper-pagination-fraction { margin-top: 12px; font-size: 13px; color: #52606d; }
@media (max-width: 767px) {
    .elementor-464 .elementor-element.rd-home-products { padding: 30px 0 !important; gap: 20px !important; }
    .rd-home-products .elementor-element-14bc7b0 .elementor-heading-title { font-size: 28px !important; }
    .rd-home-products .swiper-slide img { height: 170px !important; }
}
@media (prefers-reduced-motion: reduce) {
    .rd-home-products .swiper-slide > a:hover,
    .rd-home-products .swiper-slide > a:focus-visible { transform: none !important; }
}

/* Noticias: portada, fecha y titular con una estructura comun. */
.elementor-464 .elementor-element-7c0558a .elementor-677 { height: auto !important; }
.elementor-464 .elementor-element-7c0558a .elementor-element-e56cbac {
    --display: flex;
    min-height: 0 !important;
    height: 100% !important;
    padding: 0 !important;
    border: 1px solid #e2e6ea;
    border-radius: 10px;
    background: #fff !important;
    overflow: hidden;
}
.elementor-464 .elementor-element-7c0558a .elementor-element-e56cbac > .e-con-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 190px 1fr;
    gap: 0 !important;
    width: 100% !important;
    padding: 0 !important;
    position: relative;
}
.elementor-464 .elementor-element-7c0558a .elementor-element-e56cbac > .e-con-inner::before {
    content: "";
    grid-area: 1 / 1;
    width: 100%;
    background: #f5f6f7 url('../../uploads/2024/10/Logo-Roydisa-muy-PEQUE.png') center / 160px auto no-repeat;
}
.elementor-464 .elementor-element-7c0558a .elementor-element-f5011dd { grid-area: 1 / 1; width: 100% !important; height: 190px !important; }
.elementor-464 .elementor-element-7c0558a .elementor-element-f5011dd .elementor-widget-container { height: 100%; }
.elementor-464 .elementor-element-7c0558a .elementor-element-f5011dd img {
    display: block;
    width: 100% !important;
    height: 190px !important;
    object-fit: cover;
    border-radius: 0 !important;
}
.elementor-464 .elementor-element-7c0558a .e-loop-item-12541 .elementor-element-f5011dd img { object-fit: contain; background: #f5f6f7; }
.elementor-464 .elementor-element-7c0558a .elementor-element-a037edf {
    position: absolute !important;
    inset: 14px auto auto 14px !important;
    width: auto !important;
    min-width: 44px;
    gap: 0 !important;
    z-index: 2;
    box-shadow: 0 2px 8px #00000018;
}
.elementor-464 .elementor-element-7c0558a .elementor-element-cc2cc96 {
    grid-area: 2 / 1;
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    min-height: 178px !important;
    padding: 22px !important;
    gap: 16px !important;
    background: #fff !important;
    display: flex !important;
    flex-direction: column !important;
}
.elementor-464 .elementor-element-7c0558a .elementor-element-b4b04f5 .elementor-heading-title {
    margin: 0 !important;
    font-size: 21px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    min-height: 82px;
}
.elementor-464 .elementor-element-7c0558a .elementor-element-b4b04f5 a {
    color: #172333 !important;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}
.elementor-464 .elementor-element-7c0558a .elementor-element-b4b04f5 a:hover,
.elementor-464 .elementor-element-7c0558a .elementor-element-b4b04f5 a:focus-visible { color: #c90000 !important; }
.elementor-464 .elementor-element-7c0558a .elementor-element-e0604b3 { margin-top: auto !important; }
.elementor-464 .elementor-element-7c0558a .elementor-element-e0604b3 .elementor-heading-title { font-size: 13px !important; color: #687583 !important; }
.elementor-464 .elementor-element-7c0558a .elementor-element-f042983 { display: none !important; }

/* Todas las categorias: misma tarjeta y marco de imagen, originales intactos. */
.rd-catalog-page .rd-catalog-card {
    position: relative;
    display: flex !important;
    flex-direction: column !important;
    height: 100%;
    padding: 14px !important;
    border: 1px solid #e2e6ea;
    border-radius: 9px;
    background: #fff;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.rd-catalog-page .rd-catalog-card > .e-con-inner { width: 100%; padding: 0 !important; gap: 18px !important; }
.rd-catalog-page .rd-catalog-card .elementor-widget-image { width: 100% !important; max-width: 100% !important; }
.rd-catalog-page .rd-catalog-card img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: clamp(230px, 21vw, 300px) !important;
    object-fit: contain;
    object-position: center;
    margin: 0 auto !important;
    border-radius: 0 !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
}
.rd-catalog-page .rd-catalog-card :is(.elementor-heading-title, .subcategory-title h3) {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    font-size: 19px !important;
    line-height: 1.3 !important;
    color: #172333 !important;
}
.rd-catalog-page .rd-catalog-card::after {
    content: none;
    display: none;
}
.rd-catalog-page .rd-catalog-card:hover,
.rd-catalog-page .rd-catalog-card:focus-visible,
.rd-catalog-page .rd-catalog-card:focus-within { transform: translateY(-4px); border-color: #c9ced5; box-shadow: 0 8px 20px #1723330d; }
.rd-catalog-page .subcategories-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 24px; align-items: stretch; }
.rd-catalog-page .subcategories-grid .subcategory-item { width: 100%; height: auto !important; min-height: 0 !important; padding: 0 !important; border-radius: 0; background: transparent; }
.rd-catalog-page .subcategories-grid .subcategory-inner { display: flex; flex-direction: column !important; align-items: center; gap: 18px; height: auto !important; }
.rd-catalog-page .subcategories-grid .subcategory-image { display: block !important; flex: 0 0 auto; width: 100%; max-width: none; margin: 0; }
.rd-catalog-page .subcategory-title { flex: 0 0 auto; width: 100%; }
.rd-catalog-page .rd-catalog-card .elementor-widget-heading { width: 100% !important; }

/* Servicios: ancho, cabecera y documentos acordes a las fichas del portfolio. */
.rd-service-page .rd-service-hero { background: #18232e !important; min-height: 190px !important; --min-height: 190px; }
.rd-service-page .rd-service-banner { min-height: 190px !important; padding: 48px 24px !important; }
.rd-service-page .rd-service-banner { background-color: #292929 !important; background-blend-mode: luminosity !important; }
.rd-service-page .rd-service-banner::before { background: #14212c !important; opacity: .6 !important; }
.rd-service-page .rd-service-banner > .elementor-background-overlay { background: #14212c !important; opacity: .6 !important; }
.rd-service-page .rd-service-banner .e-con-inner { max-width: 1200px !important; }
.rd-service-page .rd-service-banner .elementor-heading-title { font-size: clamp(30px, 3.4vw, 46px) !important; line-height: 1.15 !important; }
.rd-service-page .rd-service-layout {
    width: 100% !important;
    max-width: 1200px !important;
    padding: 48px 24px 64px !important;
    margin: 0 auto !important;
}
.rd-service-page .rd-service-layout > .e-con-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 285px;
    align-items: start !important;
    gap: 40px !important;
    padding: 0 !important;
    max-width: none !important;
}
.rd-service-page .rd-service-article,
.rd-service-page .rd-service-aside { min-width: 0 !important; padding: 0 !important; gap: 24px !important; }
/* Al fijarse, Elementor calcula el ancho en px: conservarlo durante el scroll. */
.rd-service-page .rd-service-article,
.rd-service-page .rd-service-aside:not(.elementor-sticky--active) { width: 100% !important; }
.rd-service-page .rd-service-photo { width: 100% !important; margin: 0 !important; }
.rd-service-page .rd-service-photo img { display: block; width: 100% !important; max-height: 390px; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 9px; }
/* Montaje: mostrar el esquema completo con su proporcion original. */
.elementor-7101 .rd-service-photo img {
    height: auto !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
}
.rd-service-page .rd-service-copy { width: 100% !important; color: #344150; font-size: 17px; line-height: 1.7; }
.rd-service-page .rd-service-copy p { margin-bottom: 18px; }
.rd-service-page .rd-service-extra img { display: block; width: 100% !important; height: auto; border-radius: 9px; }
/* El logotipo de montaje no debe ampliarse como una fotografia. */
.elementor-7101 .elementor-element-57732fe img {
    width: 240px !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 auto;
    border-radius: 0;
}
.rd-service-page .rd-service-aside > .e-con { width: 100% !important; padding: 22px !important; border: 1px solid #e2e6ea; border-radius: 9px; background: #f8fafb !important; }
.rd-service-page .rd-service-aside > .e-con::before { background: none !important; opacity: 0 !important; }
.rd-service-page .rd-service-aside .elementor-heading-title { font-size: 23px !important; line-height: 1.3 !important; color: #172333 !important; }
.rd-service-page .rd-service-aside .elementor-widget-button,
.rd-service-page .rd-service-aside .elementor-widget-button .elementor-widget-container { width: 100% !important; }
.rd-service-page .elementor-widget-button .elementor-button,
.rd-service-page .rd-service-documents .elementor-widget-text-editor a {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 68px;
    margin: 0 !important;
    padding: 14px 18px !important;
    border: 1px solid #dfe5ec !important;
    border-radius: 14px !important;
    background: #fff !important;
    color: #000 !important;
    font-family: var(--rd-reading-font) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.45 !important;
    text-align: center !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transform: none !important;
    transition: color .15s ease, box-shadow .15s ease !important;
}
.rd-service-page .elementor-widget-button .elementor-button:hover,
.rd-service-page .elementor-widget-button .elementor-button:focus-visible,
.rd-service-page .rd-service-documents .elementor-widget-text-editor a:hover,
.rd-service-page .rd-service-documents .elementor-widget-text-editor a:focus-visible {
    color: #00baff !important;
    border-color: #dfe5ec !important;
    box-shadow: 0 8px 24px #17233314 !important;
}
.rd-service-page .elementor-widget-button .elementor-button-content-wrapper { justify-content: center; }
.rd-service-page .elementor-widget-button .elementor-button-icon { display: none; }
.rd-service-page .rd-service-aside .elementor-blockquote { padding: 0 !important; border: 0 !important; }
.rd-service-page .rd-service-aside .elementor-blockquote__content { font-size: 17px !important; line-height: 1.5 !important; color: #344150 !important; }
.rd-service-page .rd-service-aside .elementor-widget-spacer { display: none; }
.rd-service-page .rd-service-aside .elementor-widget-image img { width: 100%; height: auto; border-radius: 7px; }
.rd-service-page .rd-service-aside > .elementor-widget-image img { display: block; max-width: 170px !important; margin: 0 auto; }
.rd-service-page .rd-service-documents { width: 100% !important; padding: 24px !important; margin-top: 6px !important; border: 1px solid #e2e6ea; border-radius: 9px; background: #fff; gap: 18px !important; }
.rd-service-page .rd-service-documents .elementor-widget-image img { max-height: 65px; max-width: 220px; object-fit: contain; }
.rd-service-page .rd-service-documents .elementor-widget-text-editor { width: 100% !important; }
.rd-service-index .rd-service-tile { padding: 0 !important; overflow: hidden; border: 1px solid #e2e6ea; border-radius: 12px; background: #fff; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.rd-service-index .rd-service-tile > .e-con-inner { gap: 0 !important; padding: 0 !important; }
.rd-service-index .rd-service-tile .elementor-widget-image { width: 100% !important; max-width: 100% !important; }
.rd-service-index .rd-service-tile img { display: block; width: 100% !important; height: auto !important; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 0; }
.rd-service-index .rd-service-tile img { -webkit-mask-image: none !important; mask-image: none !important; }
.rd-service-index .rd-service-tile .elementor-widget-heading {
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 76px;
    text-align: left !important;
}
.rd-service-index .rd-service-tile .elementor-widget-heading > .elementor-widget-container {
    padding: 20px 22px !important;
    margin: 0 !important;
    background: none !important;
    border-radius: 0 !important;
}
.rd-service-index .rd-service-tile .elementor-heading-title { font-size: 23px !important; line-height: 1.25 !important; color: #172333 !important; }
.rd-service-index .rd-service-tile:is(:hover, :focus-visible) { transform: translateY(-3px); border-color: #004b87; box-shadow: 0 8px 20px #1723330d; }

@media (max-width: 1023px) and (min-width: 768px) {
    .rd-service-page .rd-service-layout > .e-con-inner { grid-template-columns: minmax(0, 1fr) 240px; gap: 24px !important; }
}
@media (max-width: 767px) {
    /* Logo, presupuesto y menu en una sola fila de 64px. */
    .elementor.elementor-17 .elementor-element.elementor-element-ff01f96 > .e-con-inner {
        display: flex !important;
        flex-flow: row nowrap !important;
        align-items: center !important;
        justify-content: space-between !important;
        width: 100% !important;
        height: 64px !important;
        min-height: 64px !important;
        gap: 10px !important;
        padding: 0 12px !important;
    }
    .elementor.elementor-17 .elementor-element.elementor-element-2f293e6 { flex: 0 1 126px !important; width: 126px !important; min-width: 0 !important; padding: 0 !important; }
    .elementor.elementor-17 .elementor-element.elementor-element-2f293e6 img { display: block; width: 126px !important; max-width: 100% !important; height: auto !important; max-height: 38px !important; }
    .elementor.elementor-17 .elementor-element.elementor-element-a8a2002 { flex: 0 0 auto !important; width: auto !important; flex-flow: row nowrap !important; align-items: center !important; gap: 6px !important; margin: 0 !important; padding: 0 !important; }
    .elementor.elementor-17 .elementor-element.elementor-element-557f9d9 { width: auto !important; padding: 0 !important; }
    .elementor.elementor-17 .elementor-element-557f9d9 .elementor-button { min-height: 44px !important; padding: 8px 10px !important; font-size: 11px !important; letter-spacing: 0 !important; border-radius: 5px !important; box-shadow: none !important; }
    .elementor-17 .elementor-element-557f9d9 .elementor-button-icon { display: none; }
    .elementor-17 .roydisa-mobile-menu-toggle { width: 44px !important; min-width: 44px !important; height: 44px !important; padding: 0 !important; }
    .elementor-17 .roydisa-mobile-menu-toggle > span { display: none; }
    .elementor-464 .rd-home-hero .elementor-element-16f1381 { gap: 10px !important; margin-top: 0 !important; }
    .elementor-464 .rd-home-hero .elementor-element-16f1381 img { max-height: 36px !important; }
    .elementor-464 .rd-home-hero .elementor-element-d865afb { flex-basis: 34px !important; width: 34px !important; }
    .elementor-464 .rd-home-hero .elementor-element-d9dfd7d { flex: 1 1 150px !important; width: auto !important; }
    .elementor-464 .rd-home-hero .roydisa-xunta-mobile-link { flex-basis: 70px; }
    .elementor-464 .rd-home-hero .elementor-element-a85ffd2 { gap: 10px !important; }
    .elementor-464 .rd-home-hero .elementor-element-7f8c60e .elementor-heading-title { font-size: clamp(35px, 9.5vw, 44px) !important; line-height: 1.1 !important; }
    .elementor-464 .rd-home-hero .elementor-element-fd0003c .elementor-heading-title { font-size: 16px !important; line-height: 1.55 !important; }
    .elementor-464 .elementor-element-7c0558a .elementor-element-b4b04f5 .elementor-heading-title { font-size: 20px !important; }
    .rd-catalog-page .rd-catalog-card { padding: 12px !important; }
    .rd-catalog-page .rd-catalog-card img { width: 100% !important; height: 250px !important; }
    .rd-catalog-page .subcategories-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 20px; }
    .rd-service-page .rd-service-banner { min-height: 145px !important; padding: 32px 20px !important; }
    .rd-service-page .rd-service-hero { min-height: 145px !important; --min-height: 145px; }
    .rd-service-page .rd-service-layout { padding: 28px 20px 44px !important; }
    .rd-service-page .rd-service-layout > .e-con-inner { grid-template-columns: minmax(0, 1fr); gap: 32px !important; }
    .rd-service-page .rd-service-copy { font-size: 16px; line-height: 1.65; }
    .rd-service-page .rd-service-documents { padding: 18px !important; }
    .rd-service-index .rd-service-tile img { height: auto !important; }
}
@media (prefers-reduced-motion: reduce) {
    .rd-catalog-page .rd-catalog-card,
    .rd-service-index .rd-service-tile { transition: none; }
    .rd-catalog-page .rd-catalog-card:hover,
    .rd-catalog-page .rd-catalog-card:focus-within,
    .rd-service-index .rd-service-tile:is(:hover, :focus-visible) { transform: none; }
}
@media (min-width: 768px) and (max-width: 1023px) {
    .rd-catalog-page .subcategories-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (min-width: 768px) and (max-width: 1199px) {
    .rd-catalog-page.elementor-10 :is(.elementor-element-fea9315, .elementor-element-c84473a) > .e-con-inner { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (min-width: 1024px) and (max-width: 1199px) {
    .rd-catalog-page :is(.subcategories-grid, .elementor-loop-container) { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

/* Productos, Soluciones y Novedades: controles y arrastre comunes. */
:is(.elementor-464 .elementor-element-86226e1,
    .elementor-464 .elementor-element-3779896,
    .elementor-464 .elementor-element-7c0558a,
    .elementor-536 .elementor-element-e20ea00) .elementor-swiper-button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 44px !important;
    height: 44px !important;
    padding: 10px !important;
    border: 1px solid #c90000;
    border-radius: 6px;
    background: #c90000 !important;
    color: #fff !important;
    opacity: 1 !important;
    box-shadow: 0 2px 8px #00000020;
    z-index: 5;
    cursor: pointer;
    touch-action: manipulation;
}
:is(.elementor-464 .elementor-element-86226e1,
    .elementor-464 .elementor-element-3779896,
    .elementor-464 .elementor-element-7c0558a,
    .elementor-536 .elementor-element-e20ea00) .elementor-swiper-button svg {
    width: 22px !important;
    height: 22px !important;
    fill: currentColor !important;
}
:is(.elementor-464 .elementor-element-86226e1,
    .elementor-464 .elementor-element-3779896,
    .elementor-464 .elementor-element-7c0558a,
    .elementor-536 .elementor-element-e20ea00) .elementor-swiper-button-prev { left: 12px !important; }
:is(.elementor-464 .elementor-element-86226e1,
    .elementor-464 .elementor-element-3779896,
    .elementor-464 .elementor-element-7c0558a,
    .elementor-536 .elementor-element-e20ea00) .elementor-swiper-button-next { right: 12px !important; }
:is(.elementor-464 .elementor-element-86226e1,
    .elementor-464 .elementor-element-3779896,
    .elementor-464 .elementor-element-7c0558a,
    .elementor-536 .elementor-element-e20ea00) .elementor-swiper-button:hover { background: #a00000 !important; }
:is(.elementor-464 .elementor-element-86226e1,
    .elementor-464 .elementor-element-3779896,
    .elementor-464 .elementor-element-7c0558a,
    .elementor-536 .elementor-element-e20ea00) .elementor-swiper-button:focus-visible { outline: 3px solid #172333; outline-offset: 3px; }
:is(.elementor-464 .elementor-element-86226e1,
    .elementor-464 .elementor-element-3779896,
    .elementor-464 .elementor-element-7c0558a,
    .elementor-536 .elementor-element-e20ea00) :is(.e-n-carousel, .elementor-loop-container.swiper) { cursor: grab; touch-action: pan-y; }
:is(.elementor-464 .elementor-element-86226e1,
    .elementor-464 .elementor-element-3779896,
    .elementor-464 .elementor-element-7c0558a,
    .elementor-536 .elementor-element-e20ea00) :is(.e-n-carousel, .elementor-loop-container.swiper):active { cursor: grabbing; }
:is(.elementor-464 .elementor-element-86226e1,
    .elementor-464 .elementor-element-3779896,
    .elementor-464 .elementor-element-7c0558a,
    .elementor-536 .elementor-element-e20ea00) .swiper-slide {
    user-select: none;
    -webkit-user-select: none;
}
:is(.elementor-464 .elementor-element-86226e1,
    .elementor-464 .elementor-element-3779896,
    .elementor-464 .elementor-element-7c0558a,
    .elementor-536 .elementor-element-e20ea00) .swiper-slide :is(img, a) { -webkit-user-drag: none; }

/* Inicio: profundidad suave, superficies claras y acentos de marca. */
.elementor-464 { background-color: #f3f6f9; }
.elementor-464 .rd-home-hero .rd-hero-media {
    background: transparent;
    border-radius: 0;
    outline: none;
    box-shadow: none;
}
.elementor-464 .rd-home-hero .elementor-element-a653a70 .elementor-heading-title::before {
    content: '';
    display: inline-block;
    width: 24px;
    height: 2px;
    margin-right: 10px;
    vertical-align: middle;
    background: #c90000;
}
.elementor-464 > .elementor-element-4537edc {
    background: #fff;
    border-bottom: 1px solid #e5eaf0;
}
.elementor-464 .rd-home-products .swiper-slide > a.elementor-element {
    border-color: #dde4ec;
    box-shadow: 0 8px 22px #1b304312;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.elementor-464 .rd-home-products .swiper-slide > a:hover,
.elementor-464 .rd-home-products .swiper-slide > a:focus-visible {
    border-color: #ca7777;
    box-shadow: 0 16px 32px #1b304323, 0 2px 8px #c900000a;
}
.elementor-464 > .elementor-element-deadabd { background: #fff; }
.elementor-464 > .elementor-element-4eacc81 {
    background: radial-gradient(ellipse at 100% 0, #b9d4ed59, transparent 65%),
        linear-gradient(135deg, #edf2f7, #e4edf5);
    border-top: 1px solid #e2e8ef;
}
.elementor-464 .elementor-element-7c0558a .elementor-element-e56cbac {
    border-color: #dde4ec !important;
    box-shadow: 0 5px 18px #1b30430b;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.elementor-464 .elementor-element-7c0558a .elementor-element-e56cbac:hover,
.elementor-464 .elementor-element-7c0558a .elementor-element-e56cbac:focus-within {
    border-color: #d5a5a5 !important;
    box-shadow: 0 10px 24px #1b304317;
}
@media (prefers-reduced-motion: reduce) {
    .elementor-464 .rd-home-products .swiper-slide > a.elementor-element,
    .elementor-464 .elementor-element-7c0558a .elementor-element-e56cbac { transition: none; }
}

/* Pulido general: lectura, alineaciones y ritmo entre las secciones de Inicio. */
.elementor-464, .elementor-17, .elementor-330 {
    --rd-reading-font: "Inter", Arial, sans-serif;
}
.elementor-464 .rd-home-hero .elementor-element-fd0003c .elementor-heading-title {
    font-family: var(--rd-reading-font) !important;
    font-size: 20px !important;
    line-height: 1.65 !important;
    text-wrap: pretty;
}
.elementor-464 .rd-home-hero .elementor-element-7f8c60e .elementor-heading-title { text-wrap: balance; }

/* En pantallas estrechas el texto precede a la foto para no tapar el motor. */
@media (max-width: 1023px) {
    .elementor-464 .elementor-element.rd-home-hero { padding: 0 !important; background: #f5f6f7 !important; }
    .elementor-464 .rd-home-hero .rd-hero-grid {
        min-height: 0;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto;
        grid-template-areas: "partners" "title" "description" "photo";
        gap: 20px !important;
        padding: 32px 24px 0 !important;
    }
    .elementor-464 .rd-home-hero .elementor-element-fd0003c { max-width: 650px !important; }
    .elementor-464 .rd-home-hero .rd-hero-media {
        grid-area: photo;
        position: relative;
        inset: auto;
        width: calc(100% + 48px);
        height: clamp(280px, 55vw, 480px);
        margin: 0 -24px;
    }
    .elementor-464 .rd-home-hero .rd-hero-media img { object-position: 72% bottom; }
    .elementor-464 .rd-home-hero .rd-hero-media::after {
        background: linear-gradient(180deg, #f5f6f7 0%, #f5f6f700 26%);
    }
}
.elementor-464 .rd-home-products .swiper-slide .elementor-heading-title {
    font-family: var(--rd-reading-font) !important;
    font-size: 15px !important;
    line-height: 1.45 !important;
}
.elementor-464 :is(.elementor-element-14bc7b0, .elementor-element-b393fdf,
    .elementor-element-7f1ad39, .elementor-element-9e46f11) .elementor-heading-title {
    font-size: 36px !important;
    line-height: 1.15 !important;
    font-weight: 700 !important;
    letter-spacing: -.02em;
    text-wrap: balance;
}
.elementor-464 .elementor-element-4537edc > .e-con-inner {
    max-width: 1240px !important;
    align-items: center !important;
    gap: 28px !important;
}
.elementor-464 .elementor-element-17a574c { flex-shrink: 0; }
.elementor-464 .elementor-element-17a574c .elementor-heading-title {
    font-size: 16px !important;
    line-height: 1.35 !important;
    font-weight: 600;
    color: #52606d !important;
}

/* Sobre nosotros: el fondo acompana a la informacion, con cuatro columnas legibles. */
.elementor-464 .elementor-element.elementor-element-25182c8 {
    min-height: 0 !important;
    filter: none !important;
    padding: 56px 28px !important;
    background-color: #172333 !important;
    background-image: linear-gradient(90deg, #102235b3, #142a3e66),
        url('../../uploads/roydisa-sobre-nosotros/motor-industrial.png') !important;
    background-size: cover !important;
    background-position: center !important;
    background-attachment: scroll !important;
}
/* Recuperar el desplazamiento del fondo original en escritorio. */
@media (min-width: 1025px) and (prefers-reduced-motion: no-preference) {
    .elementor-464 .elementor-element.elementor-element-25182c8 {
        background-attachment: fixed !important;
    }
}
.elementor-464 .elementor-element-25182c8::before { background: none !important; }
.elementor-464 .elementor-element-25182c8 .elementor-element-f13e24e {
    width: 100% !important; max-width: 1240px !important;
    margin: 0 auto !important; padding: 0 !important;
}
.elementor-464 .elementor-element-25182c8 .elementor-element-f13e24e > .e-con-inner {
    padding: 0 !important; gap: 12px !important; max-width: none !important;
}
.elementor-464 .elementor-element-25182c8 .elementor-element-bd725cd .elementor-heading-title {
    color: #c3d0de !important; font-size: 12px !important;
    font-weight: 600 !important; letter-spacing: .12em !important;
    line-height: 1.5 !important; margin: 0 !important;
}
.elementor-464 .elementor-element-25182c8 .elementor-element-b393fdf .elementor-heading-title {
    color: #fff !important; margin: 0 !important;
}
.elementor-464 .elementor-element-25182c8 .elementor-element-656498d {
    display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100% !important; gap: 20px !important;
    margin: 20px 0 0 !important; padding: 0 !important;
}
.elementor-464 .elementor-element-25182c8 .elementor-widget-image-box {
    width: 100% !important; max-width: none !important; margin: 0 !important;
}
.elementor-464 .elementor-element-25182c8 .elementor-widget-image-box > .elementor-widget-container { height: 100%; }
.elementor-464 .elementor-element-25182c8 .elementor-image-box-wrapper {
    display: flex !important; flex-direction: column !important;
    height: 100% !important; min-height: 0 !important; padding: 24px !important;
    border: 1px solid #ffffff24 !important; border-radius: 12px !important;
    position: relative;
    background: linear-gradient(145deg, #17344df5, #10283df5) !important;
    box-shadow: 0 12px 32px #020b1324 !important;
    text-align: left !important;
    transition: translate .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.elementor-464 .elementor-element-25182c8 .elementor-image-box-img {
    display: block !important; width: 40px !important;
    margin: 0 0 18px !important;
}
.elementor-464 .elementor-element-25182c8 .elementor-image-box-img img {
    width: 40px !important; height: 40px !important; object-fit: contain;
}
.elementor-464 .elementor-element-25182c8 .elementor-image-box-title {
    display: block !important; color: #fff !important;
    font-size: 24px !important; font-weight: 600 !important;
    line-height: 1.25 !important; margin: 0 0 12px !important;
}
.elementor-464 .elementor-element-25182c8 .elementor-image-box-description {
    color: #d3dde7 !important; font-family: var(--rd-reading-font) !important;
    font-size: 14px !important; font-weight: 400 !important;
    line-height: 1.75 !important; margin: 0 !important;
}

/* Soluciones y noticias comparten el ancho y la jerarquia del catalogo. */
.elementor-464 > :is(.elementor-element-deadabd, .elementor-element-4eacc81) {
    padding: 56px 28px !important;
    margin-block: 0 !important;
    gap: 12px !important;
}
.elementor-464 > :is(.elementor-element-deadabd, .elementor-element-4eacc81) > .elementor-widget {
    width: 100% !important; max-width: 1240px !important;
    margin-inline: auto !important;
}
.elementor-464 > :is(.elementor-element-deadabd, .elementor-element-4eacc81) > .e-con-inner {
    width: 100% !important; max-width: 1240px !important;
    margin: 0 auto !important; padding: 0 !important; gap: 12px !important;
}
/* Inicio: aprovechar los laterales de Productos y Soluciones en escritorio. */
@media (min-width: 1024px) {
    .elementor-464 .elementor-element.rd-home-products,
    .elementor-464 > .elementor-element-deadabd > :is(.elementor-widget, .e-con-inner) {
        max-width: 1440px !important;
    }
}
.elementor-464 :is(.elementor-element-7403808, .elementor-element-7f1ad39, .elementor-element-9e46f11) {
    width: 100% !important; margin: 0 !important; text-align: left !important;
}
.elementor-464 :is(.elementor-element-7403808, .elementor-element-7f1ad39, .elementor-element-9e46f11) > .elementor-widget-container {
    margin: 0 !important; padding: 0 !important;
}
.elementor-464 .elementor-element-7403808 .elementor-heading-title {
    font-family: var(--rd-reading-font) !important;
    font-size: 15px !important; line-height: 1.6 !important; color: #52606d !important;
}
.elementor-464 .elementor-element-deadabd .elementor-element-7f1ad39 { margin-top: 0 !important; }
.elementor-464 :is(.elementor-element-7f1ad39, .elementor-element-9e46f11) .elementor-heading-title { color: #172333 !important; }
.elementor-464 .elementor-element-3779896 {
    width: 100% !important;
    --e-n-carousel-swiper-offset-size: 40px !important;
    --e-n-carousel-swiper-slides-gap: 24px !important;
}
.elementor-464 :is(.elementor-element-3779896, .elementor-element-7c0558a) { margin-top: 16px !important; }
.elementor-464 .elementor-element-3779896 .elementor-flip-box {
    height: 390px !important; border-radius: 12px; overflow: hidden;
    box-shadow: 0 8px 20px #14213017;
    transition: translate .22s ease, box-shadow .22s ease;
}
.elementor-464 .elementor-element-3779896 .elementor-flip-box__layer { border-radius: 12px !important; }
.elementor-464 .elementor-element-3779896 .elementor-flip-box__front .elementor-flip-box__layer__overlay {
    background: linear-gradient(180deg, #14213000 25%, #142130db 100%);
    padding: 22px 18px !important; text-align: left !important;
}
.elementor-464 .elementor-element-3779896 .elementor-flip-box__front .elementor-flip-box__layer__title {
    font-size: 26px !important; line-height: 1.15 !important;
    font-weight: 600 !important; overflow-wrap: normal; word-break: normal;
}
.elementor-464 .elementor-element-3779896 .elementor-flip-box__back {
    background: radial-gradient(ellipse at 100% 0, #2b587580, transparent 70%),
        linear-gradient(145deg, #15334b, #142130) !important;
    color: #e2ecf5 !important;
    border: 1px solid #57728a;
}
.elementor-464 .elementor-element-3779896 .elementor-flip-box__back .elementor-flip-box__layer__overlay {
    padding: 20px 16px !important; text-align: left !important;
}
/* El boton ocupa el pie del reverso, con la misma posicion en las cinco tarjetas. */
.elementor-464 .elementor-element-3779896 .elementor-flip-box__back .elementor-flip-box__layer__inner {
    display: flex; flex-direction: column; align-items: flex-start; height: 100%;
}
.elementor-464 .elementor-element-3779896 .elementor-flip-box__back .elementor-flip-box__layer__inner > * {
    flex-shrink: 0;
}
.elementor-464 .elementor-element-3779896 .elementor-flip-box__back .elementor-flip-box__layer__title {
    color: #fff !important;
    font-size: 19px !important; line-height: 1.3 !important; margin-bottom: 12px;
}
.elementor-464 .elementor-element-3779896 .elementor-flip-box__layer__description {
    color: #e2ecf5 !important;
    font-family: var(--rd-reading-font) !important; font-size: 14px !important; line-height: 1.6 !important;
}
.elementor-464 .elementor-element-3779896 .elementor-flip-box__button {
    color: #fff !important; background: #c90000 !important; border: 1px solid #f9b0b0 !important;
    margin-top: auto !important; margin-inline: 0 !important; padding: 10px 12px !important;
    align-self: flex-start;
    border-radius: 5px !important; font-size: 13px !important; min-height: 44px;
    display: inline-flex; align-items: center; justify-content: center;
}
.elementor-464 :is(.elementor-element-86226e1, .elementor-element-3779896) .swiper-pagination-fraction {
    font-family: var(--rd-reading-font); font-size: 12px; color: #52606d;
    margin-top: 16px;
}
.elementor-464 .elementor-element-7c0558a .elementor-element-b4b04f5 .elementor-heading-title {
    font-size: 20px !important; line-height: 1.4 !important; font-weight: 600 !important;
}
.elementor-464 .elementor-element-7c0558a .elementor-element-e0604b3 .elementor-heading-title {
    font-family: var(--rd-reading-font) !important; font-size: 12px !important;
}

/* Cabecera y pie compartidos: superficies opacas, botones y lectura coherentes. */
.elementor-17 .elementor-element-ff01f96 { background: #fff !important; border-bottom: 1px solid #e5eaf0; }
.elementor-17 .elementor-element-557f9d9 .elementor-button,
.elementor-330 .elementor-element-2802706 .elementor-button {
    background: #c90000 !important; border-radius: 6px !important;
    min-height: 44px; display: inline-flex; align-items: center; justify-content: center;
}
.elementor-17 .elementor-element-557f9d9 .elementor-button:hover,
.elementor-330 .elementor-element-2802706 .elementor-button:hover { background: #a00000 !important; }
.elementor-330 .elementor-element-107b1f2 { padding: 40px 20px !important; margin: 0 !important; }
.elementor-330 .elementor-element-107b1f2 > .e-con-inner { max-width: 1240px !important; padding: 0 !important; }
.elementor-330 .elementor-element.elementor-element-e5efd30 {
    width: 100% !important; margin: 0 !important; padding: 36px 40px !important;
    border-radius: 12px !important; overflow: hidden;
}
.elementor-330 .elementor-element-df7c496 .elementor-heading-title { font-size: 32px !important; line-height: 1.2 !important; }
.elementor-330 .elementor-element-ed7b177 { padding: 48px 28px 32px !important; background: #f3f6f9 !important; }
.elementor-330 .elementor-element-ed7b177 > .e-con-inner {
    max-width: 1240px !important; padding: 0 !important;
    display: grid !important; grid-template-columns: 1.6fr 1fr 1fr; gap: 72px !important;
}
.elementor-330 :is(.elementor-element-ec3d4cd, .elementor-element-c9e53a4, .elementor-element-68fc050) { width: 100% !important; padding: 0 !important; }
.elementor-330 .elementor-element-f7866ca {
    font-family: var(--rd-reading-font) !important; font-size: 14px !important;
    line-height: 1.75 !important; color: #52606d !important;
}
.elementor-330 :is(.elementor-element-c9a1f9e, .elementor-element-af33ced) .elementor-heading-title {
    font-size: 20px !important; font-weight: 600 !important; color: #172333 !important;
    text-transform: none !important; letter-spacing: 0 !important;
}
.elementor-330 .elementor-nav-menu--main .elementor-item { font-family: var(--rd-reading-font) !important; font-size: 14px !important; }
.elementor-330 .elementor-element-ca193b2 { background: #f3f6f9 !important; border-top: 1px solid #e2e8ef !important; padding: 20px 28px !important; }
.elementor-330 .elementor-element-ca193b2 > .e-con-inner { max-width: 1240px !important; padding: 0 !important; }
.elementor-330 .elementor-element-f7a6076 p { font-family: var(--rd-reading-font) !important; font-size: 12px !important; color: #52606d !important; margin: 0 !important; }
:is(.elementor-17, .elementor-330) a:focus-visible { outline: 2px solid #c90000; outline-offset: 4px; }
/* Observaciones de Pablo: cabecera mas ancha y tipografia como la web anterior. */
@media (min-width: 768px) {
    .elementor-17 :is(.elementor-element-ff01f96, .elementor-element-97786e5) > .e-con-inner {
        max-width: 1544px !important; padding-inline: 32px !important;
    }
    .elementor-17 .elementor-element-2f293e6 img { height: 64px !important; max-height: 64px !important; }
    .elementor-17 .elementor-element-06ba647 { max-width: 140px !important; }
    .elementor-17 :is(.elementor-element-06ba647, .elementor-element-d06505b) img {
        height: 42px !important; max-height: 42px !important; max-width: 140px !important;
    }
    .elementor-17 .elementor-nav-menu--main .elementor-item {
        font-family: var(--rd-reading-font) !important; font-size: 16px !important;
        font-weight: 600 !important; padding-inline: 16px !important;
    }
    .elementor-17 .elementor-element-557f9d9 .elementor-button {
        font-family: var(--rd-reading-font) !important; font-size: 16px !important;
    }
}
@media (min-width: 1025px) and (max-width: 1279px) {
    .elementor-17 .elementor-element-ff01f96 > .e-con-inner {
        display: grid !important; grid-template-columns: auto auto 1fr;
        gap: 12px 20px !important; padding-inline: 24px !important;
    }
    .elementor-17 .elementor-element-2f293e6 { margin-right: 0 !important; }
    .elementor-17 .elementor-element-a8a2002 { display: contents !important; }
    .elementor-17 .elementor-element-74e4f7a { grid-column: 1 / -1; grid-row: 2; justify-self: center; }
    .elementor-17 .elementor-element-557f9d9 { grid-column: 3; grid-row: 1; justify-self: end; }
    .elementor-17 .elementor-nav-menu--main .elementor-item { font-size: 16px !important; padding-inline: 14px !important; }
}
@media (min-width: 1200px) and (max-width: 1399px) {
    .elementor-17 .elementor-element-2f293e6 img { height: 58px !important; max-height: 58px !important; }
    .elementor-17 :is(.elementor-element-06ba647, .elementor-element-d06505b) img { height: 38px !important; max-height: 38px !important; }
    .elementor-17 .elementor-nav-menu--main .elementor-item { font-size: 16px !important; padding-inline: 12px !important; }
}
@media (min-width: 768px) and (max-width: 1100px) {
    .elementor-464 .elementor-element-25182c8 .elementor-element-656498d { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .elementor-330 .elementor-element-ed7b177 > .e-con-inner { gap: 28px !important; }
}
@media (max-width: 767px) {
    .elementor-464 :is(.elementor-element-14bc7b0, .elementor-element-b393fdf,
        .elementor-element-7f1ad39, .elementor-element-9e46f11) .elementor-heading-title { font-size: 29px !important; }
    .elementor-464 .rd-home-hero .elementor-element-fd0003c .elementor-heading-title { font-size: 17px !important; line-height: 1.6 !important; }
    .elementor-464 .elementor-element-4537edc > .e-con-inner { gap: 12px !important; }
    .elementor-464 .elementor-element.elementor-element-25182c8,
    .elementor-464 > :is(.elementor-element-deadabd, .elementor-element-4eacc81) { padding: 36px 20px !important; }
    .elementor-464 .elementor-element-25182c8 .elementor-element-656498d { grid-template-columns: minmax(0, 1fr); gap: 12px !important; margin-top: 12px !important; }
    .elementor-464 .elementor-element-25182c8 .elementor-image-box-wrapper {
        display: grid !important; grid-template-columns: 32px minmax(0, 1fr); gap: 16px;
        padding: 20px !important; align-items: start;
    }
    .elementor-464 .elementor-element-25182c8 .elementor-image-box-img,
    .elementor-464 .elementor-element-25182c8 .elementor-image-box-img img { width: 32px !important; height: 32px !important; margin: 0 !important; }
    .elementor-464 .elementor-element-25182c8 .elementor-image-box-title { font-size: 22px !important; }
    .elementor-464 .elementor-element-25182c8 .elementor-image-box-description { font-size: 13px !important; line-height: 1.7 !important; }
    .elementor-464 .elementor-element-3779896 .elementor-flip-box { height: 370px !important; }
    .elementor-464 .elementor-element-7403808 .elementor-heading-title { font-size: 14px !important; }
    .elementor-330 .elementor-element-107b1f2 { padding: 28px 20px !important; }
    .elementor-330 .elementor-element.elementor-element-e5efd30 { padding: 28px 20px !important; }
    .elementor-330 .elementor-element-df7c496 .elementor-heading-title { font-size: 25px !important; }
    .elementor-330 .elementor-element-ed7b177 { padding: 32px 20px !important; }
    .elementor-330 .elementor-element-ed7b177 > .e-con-inner { grid-template-columns: minmax(0, 1fr); gap: 28px !important; }
    .elementor-330 .elementor-element-f7866ca { font-size: 13px !important; }
    .elementor-330 .elementor-element-ca193b2 { padding-inline: 64px !important; }
    .elementor-330 .roydisa-mobile-footer a {
        font-family: var(--rd-reading-font) !important; font-size: 13px !important;
        border: 1px solid #dce3ea !important; box-shadow: none !important; font-weight: 500 !important;
    }
    .elementor-330 .roydisa-mobile-footer a:hover,
    .elementor-330 .roydisa-mobile-footer a:focus-visible { background: #172333 !important; color: #fff !important; border-color: #172333 !important; transform: none; }
}

/* Detalles de marca y profundidad, sin interferir con la rotacion de las fotos. */
.elementor-464 :is(.elementor-element-14bc7b0, .elementor-element-b393fdf,
    .elementor-element-7f1ad39, .elementor-element-9e46f11) .elementor-heading-title::after {
    content: ''; display: block; width: 48px; height: 3px; margin-top: 12px;
    border-radius: 3px; background: linear-gradient(90deg, #c90000, #ed5757);
}
.elementor-464 .elementor-element-25182c8 .elementor-image-box-wrapper::after {
    content: ''; position: absolute; top: -1px; left: 24px; width: 32px; height: 3px;
    background: #e64444; border-radius: 0 0 3px 3px;
}
.elementor-464 .elementor-element-25182c8 .elementor-image-box-wrapper:hover {
    border-color: #a6c7df80 !important; box-shadow: 0 18px 36px #020b1345 !important;
}
.elementor-464 .elementor-element-3779896 .elementor-flip-box:focus-within {
    outline: 2px solid #c90000; outline-offset: 3px;
}
.elementor-464 .elementor-element-3779896 .elementor-flip-box:hover {
    box-shadow: 0 16px 32px #14213030;
}
/* Soluciones: contador inferior y flechas laterales, como en Novedades. */
.elementor-464 .elementor-element-3779896 .swiper-pagination-fraction {
    position: static !important; width: 100% !important; transform: none !important;
    display: flex; align-items: center; justify-content: center; gap: 4px;
    min-height: 44px; margin-top: 16px; line-height: 1.4;
}
.elementor-464 .elementor-element-3779896 .elementor-swiper-button {
    top: calc(50% - 30px) !important; bottom: auto !important; transform: translateY(-50%) !important;
}
.elementor-464 .elementor-element-3779896 .elementor-swiper-button-prev { left: 12px !important; }
.elementor-464 .elementor-element-3779896 .elementor-swiper-button-next { right: 12px !important; }
.elementor-17 .elementor-element-557f9d9 .elementor-button,
.elementor-330 .elementor-element-2802706 .elementor-button {
    background-image: linear-gradient(135deg, #e00606, #b60000) !important;
    box-shadow: 0 5px 14px #c9000026;
    transition: translate .2s ease, box-shadow .2s ease;
}
.elementor-17 .elementor-element-557f9d9 .elementor-button:hover,
.elementor-330 .elementor-element-2802706 .elementor-button:hover { box-shadow: 0 8px 20px #c9000038; }
.elementor-330 .elementor-element.elementor-element-e5efd30 {
    border: 1px solid #9bb6cc; box-shadow: 0 12px 30px #14213022;
}
@media (hover: hover) and (pointer: fine) {
    .elementor-464 .elementor-element-25182c8 .elementor-image-box-wrapper:hover { translate: 0 -4px; }
    .elementor-464 .elementor-element-3779896 .elementor-flip-box:hover { translate: 0 -3px; }
    .elementor-17 .elementor-element-557f9d9 .elementor-button:hover,
    .elementor-330 .elementor-element-2802706 .elementor-button:hover { translate: 0 -2px; }

}
@media (min-width: 768px) and (max-width: 1199px), (max-width: 374px) {
    .elementor-464 .elementor-element-3779896 .elementor-flip-box__layer__description { font-size: 13px !important; }
}
@media (prefers-reduced-motion: reduce) {
    .elementor-464 .elementor-element-25182c8 .elementor-image-box-wrapper,
    .elementor-464 .elementor-element-3779896 .elementor-flip-box,
    .elementor-464 .rd-home-products .swiper-slide > a::after,
    .elementor-17 .elementor-element-557f9d9 .elementor-button,
    .elementor-330 .elementor-element-2802706 .elementor-button { transition: none !important; translate: none !important; }
}
@media (forced-colors: active) {
    .elementor-464 .elementor-element-3779896 .elementor-flip-box__back { background: Canvas !important; border-color: CanvasText; }
    .elementor-464 .elementor-element-3779896 .elementor-flip-box__back :is(.elementor-flip-box__layer__title, .elementor-flip-box__layer__description) { color: CanvasText !important; }
}

/* Inter comun para los textos de toda la web; conservar fuentes de iconos. */
:root {
    --rd-reading-font: "Inter", Arial, sans-serif;
}
body {
    font-family: var(--rd-reading-font) !important;
}
body #outer-wrap :is(h1, h2, h3, h4, h5, h6, p, a, span, div, li, dt, dd,
    label, input, textarea, select, option, button, table, th, td, blockquote,
    figcaption, summary, strong, em, b, small, time, cite, address, legend):not(
    .fa, .fas, .far, .fab, .fal, .fad, .eicon, .dashicons,
    [class^="fa-"], [class*=" fa-"], [class^="eicon-"], [class*=" eicon-"],
    [class^="dashicons-"], [class*=" dashicons-"], [class^="icon-"], [class*=" icon-"]),
body #roydisa-mobile-menu :is(a, span, summary, button) {
    font-family: var(--rd-reading-font) !important;
}

/* Menu de navegacion: Inter en negrita y un punto mas, sin cambiar el contenido. */
.elementor-17 .elementor-nav-menu :is(.elementor-item, .elementor-sub-item) {
    font-weight: 700 !important;
}
.elementor-17 .elementor-nav-menu .elementor-item {
    font-size: calc(16px + 1pt) !important;
}
.elementor-17 nav.elementor-nav-menu--main .elementor-sub-item {
    font-size: calc(13px + 1pt) !important;
}
.elementor-17 nav.elementor-nav-menu--dropdown .elementor-sub-item {
    font-size: calc(11.05px + 1pt) !important;
}
@media (max-width: 767px) {
    #roydisa-mobile-menu :is(a, summary) {
        font-size: calc(15px + 1pt) !important;
        font-weight: 700 !important;
    }
}
