:root {
    --asorsan-green: #087f23;
    --asorsan-green-dark: #05651a;
    --asorsan-yellow: #ffd000;
    --asorsan-red: #ef1f2f;
    --asorsan-blue: #073b66;
    --asorsan-ink: #151515;
    --asorsan-soft: #f6f7f6;
    --asorsan-focus: #005fcc;
}
html { scroll-behavior: smooth; }
body { color: #333; }
.asorsan-skip-link { position: fixed; top: 8px; left: 8px; z-index: 100000; padding: 10px 16px; background: #fff; color: #000; border: 3px solid var(--asorsan-focus); transform: translateY(-160%); }
.asorsan-skip-link:focus { transform: translateY(0); }

/* Header ASORSAN con estructura nativa Canvas y Primary Menu Style 4.
   Se conserva el comportamiento original de .primary-menu, .menu-item,
   .menu-link y .sub-menu-container para permitir submenús sin CSS paralelo. */
.asorsan-header .header-row {
    min-height: 88px;
}

/* Logo 25% más pequeño que la versión inicial (72px -> 54px). */
.asorsan-header #logo img {
    height: 54px;
    width: auto;
    max-width: 270px;
    object-fit: contain;
}

/* Menú principal: Canvas 6.5.4 Style 4.
   Se conserva la geometría, espaciado, hover, submenús y responsive nativos.
   ASORSAN únicamente aplica su verde institucional al estado visual. */
.asorsan-header .menu-item.current > .menu-link,
.asorsan-header .menu-link:hover,
.asorsan-header .menu-link:focus {
    color: var(--asorsan-green) !important;
}

/* Canvas Style 4 usa un borde para hover y elemento activo.
   Se cambia solamente el color original de Canvas por el verde ASORSAN. */
.asorsan-header .style-4 .menu-container > .menu-item:hover > .menu-link,
.asorsan-header .style-4 .menu-container > .menu-item.current > .menu-link,
.asorsan-header .style-4 .menu-container > .menu-item > .menu-link:focus-visible {
    border-color: var(--asorsan-green) !important;
}

/* El modo "resaltar enlaces" del panel de accesibilidad sigue funcionando
   en el contenido, pero no subraya el menú principal porque Style 4 ya
   ofrece un indicador visual claro mediante borde. */
body.asorsan-highlight-links .asorsan-header .menu-link {
    text-decoration: none !important;
}

/* Accesibilidad: icono limpio, sin cuadro ni fondo permanente. */
.asorsan-a11y-header {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    min-height: 48px;
    padding: 0 !important;
    margin: 0;
    border: 0 !important;
    border-color: transparent !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #0878c6 !important;
    line-height: 1;
    cursor: pointer;
    text-decoration: none !important;
    transition: color .18s ease, transform .18s ease;
}
.asorsan-a11y-header i {
    display: block;
    font-size: 36px;
    line-height: 1;
    margin: 0;
    color: inherit !important;
}
.asorsan-a11y-header:hover {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #055d9b !important;
    transform: scale(1.06);
}
.asorsan-a11y-header:focus {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
/* Para teclado se mantiene un indicador accesible, circular y azul,
   sin convertir el control en un botón rectangular. */
.asorsan-a11y-header:focus-visible {
    outline: 2px solid #0878c6 !important;
    outline-offset: 3px !important;
    border-radius: 50% !important;
}

/* Slider institucional
   ----------------------------------------------------------
   Estructura estándar para todos los sliders de la web.
   La imagen se aplica directamente al .swiper-slide para evitar
   dependencias del z-index interno de Canvas.
   En el futuro el contenido puede provenir de base de datos sin
   cambiar estas reglas.
*/
:root {
    --asorsan-slider-bg: #3779CA;
}

.asorsan-slider {
    height: clamp(500px, 56vw, 760px) !important;
    background-color: var(--asorsan-slider-bg);
}

.asorsan-slider .swiper-container,
.asorsan-slider .swiper-wrapper,
.asorsan-slider .swiper-slide {
    height: 100% !important;
}

.asorsan-slider .asorsan-hero-slide {
    position: relative;
    background-color: var(--asorsan-slider-bg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
}

/* El slider no oscurece las imágenes por defecto. */
.asorsan-slider .asorsan-hero-slide::after {
    display: none !important;
    content: none !important;
}

.asorsan-slider .asorsan-hero-slide .container {
    position: relative;
    z-index: 3;
    height: 100%;
}

.asorsan-slider .asorsan-hero-caption {
    z-index: 4;
}

.asorsan-slider .asorsan-hero-caption h2 {
    color: #fff;
    text-transform: none;
    letter-spacing: .01em;
    text-shadow: 0 2px 20px rgba(0,0,0,.55);
}

.asorsan-slider .asorsan-hero-caption p {
    color: #fff;
    text-shadow: 0 1px 10px rgba(0,0,0,.65);
}

.asorsan-slide-full-link {
    position: absolute;
    inset: 0;
    z-index: 5;
    cursor: pointer;
}

.asorsan-slider .slider-arrow-left,
.asorsan-slider .slider-arrow-right,
.asorsan-slider .slide-number {
    z-index: 20;
}

/* Home */
.asorsan-home-content { padding-top:64px; }
.asorsan-service-icons .fbox-icon i { color:var(--asorsan-green); }
.asorsan-service-icons .feature-box:hover .fbox-icon i { color:var(--asorsan-red); }
.asorsan-service-icons .fbox-content h3 { font-size:1rem; line-height:1.35; text-transform:none; }
.asorsan-feature-link { color:inherit; text-decoration:none; }
.asorsan-feature-link:hover { color:inherit; }
.asorsan-service-icons .fbox-icon .i-alt { background-image:none !important; background-color:#f1f5f1 !important; color:var(--asorsan-green) !important; border-radius:50%; }
.asorsan-service-icons .feature-box:hover .fbox-icon .i-alt { background-color:var(--asorsan-green) !important; color:#fff !important; }
.asorsan-courses-feature { padding:12px 0; }
.asorsan-course-image img { aspect-ratio:23/15; object-fit:cover; }
.asorsan-course-image .bg-overlay-content { opacity:0; transition:opacity .2s ease; }
.asorsan-course-image:hover .bg-overlay-content,.asorsan-course-image:focus .bg-overlay-content { opacity:1; }
.iconlist-color li i { color:var(--asorsan-green) !important; }
.asorsan-primary-button,.button.asorsan-primary-button { background-color:var(--asorsan-green) !important; color:#fff !important; text-shadow:none; }
.asorsan-primary-button:hover,.asorsan-primary-button:focus { background-color:var(--asorsan-green-dark) !important; }
.asorsan-iwdp-home-callout { background:linear-gradient(110deg,#f4fbff,#fff); border-left:5px solid #0983c5; border-radius:8px; padding:32px; }

/* Internal pages */
.asorsan-page-title { background:var(--asorsan-soft); border-bottom:1px solid #e6e6e6; }
.asorsan-page-title h1 { text-transform:uppercase; }
.asorsan-about-logo { max-width:360px; width:100%; height:auto; }
.asorsan-info-panel { background:#fafafa; border:1px solid #ececec; border-top:4px solid var(--asorsan-green); border-radius:8px; padding:30px; }
.asorsan-contact-card { background:#fff; border:1px solid #ececec; border-radius:10px; padding:30px 20px; box-shadow:0 12px 35px rgba(0,0,0,.06); }

/* Courses */
.asorsan-courses-hero-image { aspect-ratio:23/15; object-fit:cover; box-shadow:0 12px 36px rgba(0,0,0,.12); }
.asorsan-course-card,.asorsan-opening-card { position:relative; background:#fff; border:1px solid #e8e8e8; border-radius:10px; padding:30px; box-shadow:0 12px 32px rgba(0,0,0,.06); transition:transform .2s ease,box-shadow .2s ease; }
.asorsan-course-card:hover,.asorsan-opening-card:hover { transform:translateY(-4px); box-shadow:0 16px 38px rgba(0,0,0,.1); }
.asorsan-course-card__icon { width:64px; height:64px; display:grid; place-items:center; border-radius:50%; background:#eef7f0; color:var(--asorsan-green); font-size:28px; margin-bottom:20px; }
.asorsan-course-card h3,.asorsan-opening-card h3 { text-transform:none; }
.asorsan-opening-status { display:inline-block; background:#eef7f0; color:var(--asorsan-green-dark); border-radius:999px; padding:5px 10px; font-size:.78rem; font-weight:700; margin-bottom:12px; }

/* IWDP 2026 */
.asorsan-iwdp-logo { width:min(340px,100%); height:auto; }
.asorsan-iwdp-day { padding:55px 0; border-top:1px solid #ececec; }
.asorsan-iwdp-day:first-child { border-top:0; }
.asorsan-iwdp-day-image { aspect-ratio:4/3; object-fit:cover; box-shadow:0 14px 40px rgba(0,0,0,.12); }
.asorsan-iwdp-day-copy { padding:15px 18px; }
.asorsan-iwdp-date { display:inline-block; color:#fff; background:var(--asorsan-blue); border-left:5px solid var(--asorsan-yellow); border-radius:4px; padding:8px 12px; margin-bottom:16px; font-weight:700; }
.asorsan-iwdp-day-copy h2 { text-transform:none; font-size:clamp(1.6rem,2.1vw,2.25rem); }
.asorsan-iwdp-day-copy p { font-size:1.06rem; line-height:1.75; }

/* Footer */
.asorsan-footer { border-top:5px solid var(--asorsan-green); }
.asorsan-footer-logo { display:block; width:320px; max-width:100%; height:auto; padding:12px; background:#fff; border-radius:6px; margin-bottom:18px; }
.asorsan-footer-a11y { background:transparent; color:rgba(255,255,255,.8); border:0; text-decoration:none !important; }
.asorsan-footer-a11y:hover,.asorsan-footer-a11y:focus { color:#fff; }

/* Accessibility */
.asorsan-a11y-panel { position:fixed; right:18px; top:92px; z-index:99999; width:min(350px,calc(100vw - 36px)); background:#fff; color:#111; border:1px solid #cfcfcf; border-top:5px solid var(--asorsan-green); border-radius:7px; box-shadow:0 14px 45px rgba(0,0,0,.24); }
.asorsan-a11y-panel__header { display:flex; justify-content:space-between; align-items:center; padding:14px 16px; border-bottom:1px solid #ddd; }
.asorsan-a11y-panel__body { padding:16px; }
.asorsan-a11y-close { width:40px; height:40px; border:0; background:transparent; font-size:28px; line-height:1; }
.asorsan-a11y-row { margin-bottom:14px; }
.asorsan-a11y-row>span { display:block; margin-bottom:8px; font-weight:600; }
.asorsan-a11y-actions { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }
.asorsan-a11y-actions button,.asorsan-a11y-option,.asorsan-a11y-reset { min-height:44px; border:1px solid #aaa; border-radius:4px; background:#fff; color:#111; padding:8px 10px; }
.asorsan-a11y-option,.asorsan-a11y-reset { width:100%; margin-top:8px; text-align:left; }
.asorsan-a11y-option[aria-pressed="true"] { background:var(--asorsan-green); border-color:var(--asorsan-green); color:#fff; }
.asorsan-a11y-reset { text-align:center; background:#f2f2f2; }
a:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible { outline:3px solid var(--asorsan-focus) !important; outline-offset:3px !important; }
button:not(.asorsan-a11y-header):focus-visible { outline:3px solid var(--asorsan-focus) !important; outline-offset:3px !important; }
body.asorsan-highlight-links a:not(.button) {
    text-decoration: none !important;
    text-decoration-thickness: initial !important;
}
body.asorsan-reduce-motion *,body.asorsan-reduce-motion *::before,body.asorsan-reduce-motion *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
body.asorsan-high-contrast { background:#000 !important; color:#fff !important; }
body.asorsan-high-contrast #wrapper,body.asorsan-high-contrast #content,body.asorsan-high-contrast .content-wrap,body.asorsan-high-contrast #header,body.asorsan-high-contrast #header-wrap,body.asorsan-high-contrast .asorsan-page-title,body.asorsan-high-contrast .feature-box,body.asorsan-high-contrast .asorsan-course-card,body.asorsan-high-contrast .asorsan-opening-card,body.asorsan-high-contrast .asorsan-info-panel { background:#000 !important; color:#fff !important; }
body.asorsan-high-contrast a { color:#ffe600 !important; }
body.asorsan-high-contrast .asorsan-a11y-panel { background:#000; color:#fff; border-color:#fff; }
body.asorsan-high-contrast .asorsan-a11y-panel button { background:#000; color:#fff; border-color:#fff; }

@media (max-width:991.98px) {
    .asorsan-header .header-row { min-height:72px; }
    .asorsan-header #logo img { height:44px; max-width:205px; }
    .asorsan-a11y-header { width:46px; height:46px; min-height:46px; }
    .asorsan-a11y-header i { font-size:34px; }
    .asorsan-a11y-panel { top:82px; }
    .asorsan-home-content { padding-top:48px; }
    .asorsan-iwdp-day { padding:42px 0; }
    .asorsan-iwdp-day-copy { padding:22px 0 0; }
    .asorsan-iwdp-day--reverse .asorsan-iwdp-day-copy { padding:0 0 22px; }
}
@media (max-width:575.98px) {
    .asorsan-header #logo img { height:38px; max-width:180px; }
    .asorsan-slider { height:500px !important; }
    .asorsan-slider .slider-caption h2 { font-size:2rem; }
    .asorsan-home-content { padding-top:38px; }
    .asorsan-slider .asorsan-hero-slide { background-size:cover; background-position:center center; }
    .asorsan-iwdp-home-callout { padding:24px; }
}


/* Servicio: Capacitación en LSC para empresas */
.asorsan-training-card {
    background: #fff;
    border: 1px solid #e8e8e8;
    border-top: 4px solid var(--asorsan-green);
    border-radius: 10px;
    padding: 32px;
    box-shadow: 0 12px 32px rgba(0,0,0,.06);
}
.asorsan-training-card__icon {
    width: 64px;
    height: 64px;
    display: grid;
    place-items: center;
    margin-bottom: 20px;
    border-radius: 50%;
    background: #eef7f0;
    color: var(--asorsan-green);
    font-size: 28px;
}
.asorsan-training-card h3 {
    text-transform: none;
}
.asorsan-training-location-icon {
    width: 150px;
    height: 150px;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    background: #eef7f0;
    color: var(--asorsan-green);
    font-size: 62px;
}
.asorsan-service-contact {
    background: var(--asorsan-soft);
    border-left: 5px solid var(--asorsan-green);
    border-radius: 8px;
    padding: 32px;
}
.asorsan-service-contact h2 {
    text-transform: none;
}
.asorsan-whatsapp-text-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--asorsan-green-dark);
    text-decoration: none !important;
}
.asorsan-whatsapp-text-link:hover,
.asorsan-whatsapp-text-link:focus {
    color: var(--asorsan-green);
}
.asorsan-whatsapp-text-link .icon-whatsapp {
    font-size: 1.15em;
}

body.asorsan-high-contrast .asorsan-training-card,
body.asorsan-high-contrast .asorsan-service-contact {
    background: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
}
body.asorsan-high-contrast .asorsan-training-location-icon,
body.asorsan-high-contrast .asorsan-training-card__icon {
    background: #000 !important;
    color: #ffe600 !important;
    border: 2px solid #fff;
}

@media (max-width: 767.98px) {
    .asorsan-training-card {
        padding: 24px;
    }
    .asorsan-training-location-icon {
        width: 120px;
        height: 120px;
        font-size: 50px;
        margin-bottom: 10px;
    }
    .asorsan-service-contact {
        padding: 24px;
    }
}


/* Página pública de Cursos de LSC */
.asorsan-courses-intro {
    max-width: 1100px;
    margin: 0 auto 42px;
}
.asorsan-courses-intro > .heading-block h1 {
    text-transform: none;
}
.asorsan-courses-notice {
    margin-top: 28px;
    padding: 28px 30px;
    border-left: 5px solid var(--asorsan-green);
    border-radius: 8px;
    background: var(--asorsan-soft);
}
.asorsan-courses-notice h2 {
    margin-bottom: 14px;
    font-size: 1.35rem;
    text-transform: none;
}
.asorsan-courses-notice p:last-child {
    margin-bottom: 0;
}
.asorsan-courses-catalog {
    margin-top: 8px;
}

/* En alto contraste el bloque informativo conserva legibilidad. */
body.asorsan-high-contrast .asorsan-courses-notice {
    background: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
}
body.asorsan-high-contrast .asorsan-courses-notice a {
    color: #ffe600 !important;
}

@media (max-width: 767.98px) {
    .asorsan-courses-intro {
        margin-bottom: 30px;
    }
    .asorsan-courses-notice {
        padding: 22px;
    }
}

/* ASORSAN: enlaces y botones sin subrayado.
   El color, borde, fondo o foco visual son suficientes como indicador. */
.asorsan-header a,
.asorsan-header a:hover,
.asorsan-header a:focus,
.asorsan-header a:active,
.asorsan-service-contact a,
.asorsan-service-contact a:hover,
.asorsan-service-contact a:focus,
.asorsan-service-contact a:active,
.asorsan-courses-notice a,
.asorsan-courses-notice a:hover,
.asorsan-courses-notice a:focus,
.asorsan-courses-notice a:active,
.asorsan-whatsapp-text-link,
.asorsan-whatsapp-text-link:hover,
.asorsan-whatsapp-text-link:focus,
.asorsan-whatsapp-text-link:active,
button,
button:hover,
button:focus,
button:active,
.btn,
.btn:hover,
.btn:focus,
.btn:active {
    text-decoration: none !important;
}


/* HOTFIX 1.0.10
   La identidad visual de ASORSAN/Canvas no usa enlaces subrayados.
   Esta regla también neutraliza el estado persistido "Resaltar enlaces". */
body a,
body a:hover,
body a:focus,
body a:active,
body button,
body button:hover,
body button:focus,
body button:active,
body .btn,
body .btn:hover,
body .btn:focus,
body .btn:active,
body.asorsan-highlight-links a,
body.asorsan-highlight-links a:hover,
body.asorsan-highlight-links a:focus,
body.asorsan-highlight-links a:active,
body.asorsan-highlight-links a:not(.button),
body.asorsan-highlight-links a:not(.button):hover,
body.asorsan-highlight-links a:not(.button):focus,
body.asorsan-highlight-links a:not(.button):active {
    text-decoration: none !important;
    text-decoration-line: none !important;
}


/* ================================================================
   ASORSAN WEB FINAL - Servicios, breadcrumbs y contacto por asesor
   ================================================================ */

/* Page Title + Breadcrumb: usa la composición nativa de Canvas. */
.asorsan-page-title .breadcrumb {
    text-transform: uppercase;
    letter-spacing: .01em;
}
.asorsan-page-title .breadcrumb-item.active {
    color: #777;
}
.asorsan-page-title .breadcrumb a {
    color: #555;
}
.asorsan-page-title .breadcrumb a:hover,
.asorsan-page-title .breadcrumb a:focus {
    color: var(--asorsan-green);
}

/* Imágenes principales de servicios */
.asorsan-service-hero-image {
    aspect-ratio: 16 / 9;
    object-fit: cover;
    box-shadow: 0 14px 38px rgba(0,0,0,.10);
}

/* Página general de servicios: 3 columnas en escritorio, escalable. */
.asorsan-service-tile {
    display: flex;
    flex-direction: column;
}
.asorsan-service-tile__image-link {
    display: block;
    overflow: hidden;
    margin-bottom: 24px;
}
.asorsan-service-tile__image {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    transition: transform .25s ease;
}
.asorsan-service-tile__image-link:hover .asorsan-service-tile__image,
.asorsan-service-tile__image-link:focus .asorsan-service-tile__image {
    transform: scale(1.025);
}
.asorsan-service-tile h3 {
    margin-bottom: 6px;
    font-size: 1.05rem;
    text-transform: uppercase;
}
.asorsan-service-tile h3 a {
    color: #222;
}
.asorsan-service-tile__tagline {
    margin-bottom: 17px;
    color: #555;
    font-size: 1rem;
}
.asorsan-inline-service-link {
    margin-top: auto;
    font-weight: 600;
    color: var(--asorsan-green-dark);
}
.asorsan-inline-service-link:hover,
.asorsan-inline-service-link:focus {
    color: var(--asorsan-green);
}

/* Formación en LSC */
.asorsan-formation-card {
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 10px;
    padding: 28px;
    box-shadow: 0 12px 32px rgba(0,0,0,.06);
}
.asorsan-formation-card h3 {
    text-transform: none;
}
.asorsan-formation-card__image {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

/* Señalética */
.asorsan-signage-highlight {
    background: var(--asorsan-soft);
    border-left: 5px solid var(--asorsan-green);
    border-radius: 8px;
    padding: 30px;
}
.asorsan-media-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 10px;
    box-shadow: 0 12px 32px rgba(0,0,0,.06);
}
.asorsan-media-card__image {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.asorsan-media-card__body {
    padding: 24px;
}
.asorsan-media-card__body h3 {
    text-transform: none;
    margin-bottom: 12px;
}
.asorsan-training-benefit {
    background: #fafafa;
    border: 1px solid #ececec;
    border-top: 4px solid var(--asorsan-green);
    border-radius: 10px;
    padding: 30px;
}
.asorsan-training-benefit__icon {
    font-size: 64px;
    color: var(--asorsan-green);
}

/* Botón profesional para el WhatsApp general 3202924055. */
.asorsan-whatsapp-advisor-button,
.button.asorsan-whatsapp-advisor-button {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    background: var(--asorsan-green) !important;
    color: #fff !important;
    border: 0 !important;
    text-shadow: none !important;
}
.asorsan-whatsapp-advisor-button:hover,
.asorsan-whatsapp-advisor-button:focus {
    background: var(--asorsan-green-dark) !important;
    color: #fff !important;
}
.asorsan-whatsapp-advisor-button .icon-whatsapp {
    font-size: 1.15em;
}
.asorsan-contact-advisor-icon {
    width: 72px;
    height: 72px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #eef7f0;
    color: var(--asorsan-green);
    font-size: 34px;
}
.asorsan-advisory-list li {
    margin-bottom: 10px;
}

/* Alto contraste para los componentes nuevos. */
body.asorsan-high-contrast .asorsan-formation-card,
body.asorsan-high-contrast .asorsan-service-tile,
body.asorsan-high-contrast .asorsan-media-card,
body.asorsan-high-contrast .asorsan-signage-highlight,
body.asorsan-high-contrast .asorsan-training-benefit,
body.asorsan-high-contrast .asorsan-contact-card {
    background: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
}
body.asorsan-high-contrast .asorsan-service-tile h3 a,
body.asorsan-high-contrast .asorsan-inline-service-link {
    color: #ffe600 !important;
}
body.asorsan-high-contrast .asorsan-contact-advisor-icon,
body.asorsan-high-contrast .asorsan-training-benefit__icon {
    background: #000 !important;
    color: #ffe600 !important;
}

@media (max-width: 767.98px) {
    .asorsan-signage-highlight,
    .asorsan-training-benefit,
    .asorsan-formation-card {
        padding: 22px;
    }
    .asorsan-service-tile__image {
        aspect-ratio: 16 / 9;
    }
}


/* ASORSAN FIX 1.0.11 - Iconos propios de servicios */
.asorsan-service-icons .asorsan-service-feature {
    height: 100%;
}

.asorsan-custom-service-icon {
    width: 118px;
    height: 118px;
    margin: 0 auto 22px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.asorsan-custom-service-icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    transition: transform .2s ease;
}

.asorsan-feature-link:hover .asorsan-custom-service-icon img,
.asorsan-feature-link:focus-visible .asorsan-custom-service-icon img {
    transform: translateY(-4px);
}

.asorsan-service-icons .asorsan-service-feature .fbox-content h3 {
    margin-top: 0;
}

body.asorsan-reduce-motion .asorsan-custom-service-icon img {
    transition: none !important;
    transform: none !important;
}

body.asorsan-high-contrast .asorsan-custom-service-icon img {
    filter: none !important;
}

@media (max-width: 991.98px) {
    .asorsan-custom-service-icon {
        width: 108px;
        height: 108px;
        margin-bottom: 18px;
    }
}

@media (max-width: 575.98px) {
    .asorsan-custom-service-icon {
        width: 102px;
        height: 102px;
        margin-bottom: 16px;
    }
}


/* ASORSAN HOTFIX 1.0.16 - Caja ajustada al contenido del slider
   IMPORTANTE: no se modifica el posicionamiento de .slider-caption de Canvas. */
.asorsan-slider .asorsan-hero-slide--caption .asorsan-caption-box {
    display: inline-block;
    width: fit-content;
    max-width: min(650px, calc(100vw - 48px));
    padding: 22px 26px 24px;
    background: rgba(0, 0, 0, .56);
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .16);
}

.asorsan-slider .asorsan-caption-box h2 {
    margin-top: 0;
    margin-bottom: 12px;
}

.asorsan-slider .asorsan-caption-box p {
    margin-top: 0;
    margin-bottom: 18px;
}

.asorsan-slider .asorsan-caption-box .button {
    margin-bottom: 0;
}

/* En móvil la caja sigue ajustándose únicamente al contenido visible. */
@media (max-width: 767.98px) {
    .asorsan-slider .asorsan-hero-slide--caption .asorsan-caption-box {
        max-width: calc(100vw - 32px);
        padding: 18px 20px 20px;
        border-radius: 8px;
        background: rgba(0, 0, 0, .60);
    }
}

/* Alto contraste. */
body.asorsan-high-contrast .asorsan-slider .asorsan-caption-box {
    background: #000 !important;
    border: 1px solid #fff;
    box-shadow: none;
}
