.section-py {
   padding: 12rem 0;
 }
 @media (max-width: 1199.98px) {
   .section-py {
     padding: 5rem 0;
   }
 }
 @media (max-width: 767.98px) {
   .section-py {
     padding: 3rem 0;
   }
 }

 .landing-hero {
   border-radius: 0 0 30px 30px;
   padding-top: 10.2rem;
 }
 .landing-hero::after {
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   z-index: -1;
 }
 @media (min-width: 992px) {
   .landing-hero .hero-text-box {
     max-width: 34.375rem;
     margin: 0 auto;
   }
 }
 .landing-hero .hero-title {
   background: linear-gradient(to right, #99b572 0%, #99b572 47.92%, #3e5234 100%);
   background-size: 200% auto;
   color: #000000;
   background-clip: text;
   line-height: 1.2;
   text-fill-color: transparent;
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
   animation: shine 2s ease-in-out infinite alternate;
 }
 .landing-hero .landing-hero-btn .hero-btn-item {
   inset-inline-start: -86%;
   top: 80%;
 }
 .landing-hero .hero-animation-img {
   margin-bottom: -32rem;
 }
 @media (max-width: 1199.98px) {
   .landing-hero .hero-animation-img {
     margin-bottom: -20rem;
   }
 }
 @media (max-width: 575.98px) {
   .landing-hero .hero-animation-img {
     margin-bottom: -10rem;
   }
 }
 .landing-hero .hero-animation-img .hero-dashboard-img {
   width: 80%;
   margin: 0 auto;
   will-change: transform;
   transform-style: preserve-3d;
   transition: all 0.1s;
 }
 .landing-hero .hero-animation-img .hero-dashboard-img img {
   width: 100%;
 }

 .landing-hero-blank {
   padding-top: 26rem;
 }
 @media (max-width: 1199.98px) {
   .landing-hero-blank {
     padding-top: 15rem;
   }
 }
 @media (max-width: 575.98px) {
   .landing-hero-blank {
     padding-top: 7rem;
   }
 }

 @keyframes shine {
   0% {
     background-position: 0% 50%;
   }
   80% {
     background-position: 50% 90%;
   }
   100% {
     background-position: 91% 100%;
   }
 }

 .landing-features .features-icon-wrapper .features-icon-box .features-icon-description {
   max-width: 19.25rem;
   margin: 0 auto;
 }

 /* main.css convierte todas las imágenes en elementos block; se mantiene
    el centrado de los iconos dentro de cada tarjeta de servicios. */
 .landing-features .features-icon-box img {
   margin-left: auto;
   margin-right: auto;
 }

 .landing-reviews {
   border-top-left-radius: 3.75rem;
   border-top-right-radius: 3.75rem;
 }
 .landing-reviews .landing-reviews-btns .reviews-btn {
   padding: 0.45rem;
 }
 .landing-reviews .swiper-reviews-carousel .swiper-button-prev,
 .landing-reviews .swiper-reviews-carousel .swiper-button-next {
   display: none;
 }
 .landing-reviews .swiper-reviews-carousel .swiper-slide {
   height: auto;
   padding: 0.8125rem;
 }
 .landing-reviews .swiper-reviews-carousel .client-logo {
   height: 1.375rem;
   object-fit: contain;
 }
 .landing-reviews .swiper-logo-carousel .swiper {
   max-width: 45rem;
 }
 .landing-reviews .swiper-logo-carousel .swiper .swiper-slide {
   display: flex;
   justify-content: center;
 }
 .landing-reviews .swiper-logo-carousel .swiper .client-logo {
   max-height: 2.5rem;
   max-width: 95%;
   object-fit: contain;
 }

 .landing-team .card,
 .landing-team .card .team-image-box {
   border-top-left-radius: 5.625rem;
   border-top-right-radius: 1.25rem;
 }
 .landing-team .card .card-body {
   border-bottom-left-radius: 0.375rem;
   border-bottom-right-radius: 0.375rem;
 }
 .landing-team .team-image-box {
   height: 11.5625rem;
 }
 .landing-team .team-image-box .card-img-position {
   height: 15rem;
   transform: translateX(-50%);
   max-width: 100%;
   object-fit: cover;
 }
 @media (max-width: 991.98px) {
   .landing-team .team-image-box .card-img-position {
     height: 13rem;
   }
 }
 @media (max-width: 575.98px) {
   .landing-team .team-image-box {
     height: 11rem;
   }
 }
 .landing-team .card .team-media-icons i {
   transition: all 0.2s ease-in-out;
 }

 .landing-pricing {
   border-radius: 3.75rem;
 }
 .landing-pricing .pricing-plans-item {
   inset-inline-end: -56%;
   bottom: -0.5rem;
 }
 @media (max-width: 767.98px) {
   .landing-pricing .pricing-plans-item {
     inset-inline-end: 0;
     bottom: 1rem;
   }
 }
 .landing-pricing .pricing-list .badge.badge-center {
   width: 1rem;
   height: 1rem;
 }
 .landing-pricing .pricing-list .badge.badge-center i {
   margin-top: -3px;
 }
 .landing-pricing .price-yearly-toggle {
   position: absolute;
   top: 0;
   left: 50%;
   transform: translateX(-50%);
 }
 .landing-pricing .card .card-header,
 .landing-pricing .card .card-body {
   padding: 2rem;
   padding-top: 3rem;
 }

 .landing-faq {
   border-top-left-radius: 3.75rem;
   border-top-right-radius: 3.75rem;
 }
 .landing-faq .faq-image {
   max-width: 20rem;
   width: 80%;
 }

 .landing-cta .cta-title {
   font-size: 2.125rem;
 }
 @media (max-width: 767.98px) {
   .landing-cta .cta-title {
     font-size: 1.8rem;
   }
 }

 .landing-contact .text-heading {
   overflow-wrap: anywhere;
 }
 .landing-contact .contact-img-box,
 .landing-contact .contact-img-box .contact-img {
   border-radius: 3.75rem 0.375rem 0.375rem 0.375rem;
 }
 .landing-contact .contact-img-box .contact-border-img {
   inset-block-start: -2.5rem;
   inset-inline-start: -2.8125rem;
 }

 .light-style .landing-hero {
   background: linear-gradient(138.18deg, #dde5d0 0%, #dde5d0 94.44%);
 }
 .light-style .landing-hero::after {
   background-color: #fff;
 }
 .dark-style .landing-hero {
   background: #1e2130;
 }
 .dark-style .landing-hero::after {
   background-color: #2f3349;
 }
 [dir=rtl] .landing-team .team-image-box .card-img-position {
   transform: translateX(50%) !important;
 }
 [dir=rtl] .landing-pricing .switch .switch-label {
   padding-right: 0;
 }
 [dir=rtl] .landing-pricing .switch .switch-label:first-child {
   padding-left: 0.5rem;
 }
 [dir=rtl] .landing-pricing .switch .switch-input ~ .switch-label {
   padding-right: 3rem;
 }
 [dir=rtl] .landing-contact .contact-img-box {
   border-radius: 0.375rem 3.75rem 0.375rem 0.375rem;
 }
 [dir=rtl] .landing-contact .contact-img-box::before {
   inset-block-start: -1.875rem;
   inset-inline-start: -3.125rem;
   transform: rotate(90deg);
 }

 /* ============================================================== */
 /* SECCIÓN: Formulario de Solicitud de Póliza                     */
 /* Elementos afectados: <section id="landingFeatures">            */
 /* (contenedor del formulario de solicitud de póliza)            */
 /* ============================================================== */

 /* Fondo gris claro del contenedor del formulario de solicitud de
    póliza. Color #f0f0f0 solicitado explícitamente por el usuario:
    excepción cromática documentada en la auditoría, fuera de la
    paleta de COLORES.md. */
 .bg-form-solicitud-poliza {
   background-color: #ffffff;
 }

 /* ============================================================== */
 /* SECCIÓN: Contenedor Superior (bloque previo al banner)          */
 /* Elementos afectados: <div id="superiorUM"> y sus dos           */
 /* contenedores internos (.contenedor-superior-item-um)           */
 /* ============================================================== */

 /* Contenedor principal: ocupa todo el ancho de la pantalla con
    altura automática y sin fondo (transparente). Los dos
    contenedores internos se disponen en horizontal (Flexbox). */
 .contenedor-superior-um {
   display: flex;
   width: 100%;
   max-width: 1440px;
   margin-left: auto;
   margin-right: auto;
   height: auto;
 }

 /* Contenedores internos: 50% de ancho cada uno (flex-grow reparte
    el espacio disponible a partes iguales), uno al lado del otro.
    position: relative convierte a cada subcontenedor en el ancestro
    de posicionamiento (containing block) de los elementos absolutos
    de su interior — requisito para que el botón de solicitud de
    póliza pueda superponerse a la imagen con coordenadas relativas
    al subcontenedor (ver la regla del botón al final de la
    sección). Separación de 20px respecto al contenedor principal
    en los cuatro lados como base; los lados interiores (la
    separación central) se reducen a 10px por contenedor mediante
    las dos reglas siguientes, de modo que el hueco central
    resultante (10px + 10px = 20px) queda homologado visualmente
    con el resto de los márgenes. Fondo #f0f0f0 y radio de borde
    25px solicitados explícitamente por el usuario: el #f0f0f0 está
    fuera de la paleta de COLORES.md (excepción cromática autorizada
    por instrucción directa, documentada en la auditoría). */
 .contenedor-superior-item-um {
   flex: 1 1 0;
   position: relative;
   min-width: 0;
   margin: 20px;
   background-color: #f0f0f0;
   border-radius: 25px;
 }

 /* Columna izquierda (primer contenedor interno): su lado interior
    es el derecho; margen de 10px solicitado explícitamente por el
    usuario. La especificidad del selector descendente (0,3,0) gana
    a la regla base .contenedor-superior-item-um (0,1,0). */
 .contenedor-superior-um .contenedor-superior-item-um:first-child {
   margin-right: 10px;
 }

 /* Columna derecha (último contenedor interno): su lado interior es
    el izquierdo; margen de 10px solicitado explícitamente por el
    usuario. La suma de ambos márgenes interiores (20px) iguala el
    margen exterior de 20px, homologando la separación central. */
 .contenedor-superior-um .contenedor-superior-item-um:last-child {
   margin-left: 10px;
 }

 @media (max-width: 900px) {
   .contenedor-superior-um {
     flex-direction: column;
   }

   .contenedor-superior-um .contenedor-superior-item-um:first-child,
   .contenedor-superior-um .contenedor-superior-item-um:last-child {
     flex: 0 0 auto;
     width: auto;
     margin: 20px;
   }

   .contenedor-superior-um .contenedor-superior-img-um {
     height: calc((100vw - 40px) * 0.6);
     object-fit: cover;
   }
 }

 @media (max-width: 690px) {
   .contenedor-superior-um .contenedor-superior-img-um {
     height: calc((100vw - 40px) * 0.7);
   }
 }

 @media (max-width: 600px) {
   .contenedor-superior-um .contenedor-superior-img-um {
     height: calc((100vw - 40px) * 0.8);
   }

   .contenedor-superior-um .contenedor-superior-item-um:last-child {
     display: none;
   }
 }

 @media (max-width: 560px) {
   .contenedor-superior-um .contenedor-superior-item-um:first-child .contenedor-superior-img-um {
     height: calc((100vw - 40px) * 1);
   }
 }

 /* Imágenes dentro de los contenedores internos: ocupan todo el
    ancho de su contenedor y mantienen la proporción original de
    la fotografía (height: auto), de modo que la altura del
    contenedor principal (height: auto) crece con el contenido.
    El radio de 25px coincide con el del contenedor interno para
    que la imagen no sobresalga de las esquinas redondeadas del
    fondo #f0f0f0. display: block elimina el hueco de línea base
    que deja una imagen inline dentro de un contenedor de bloque. */
 .contenedor-superior-img-um {
   display: block;
   width: 100%;
   height: auto;
   border-radius: 25px;
 }

 /* Botón de solicitud de póliza: permanece dentro del bloque textual,
    inmediatamente después de la descripción, con 30px de separación. */
 .contenedor-superior-um .contenedor-superior-item-um .landing-hero-btn {
   margin-top: 30px;
 }
 .contenedor-superior-um .contenedor-superior-item-um .landing-hero_btn a {
   font-size: 28px;         /* btn-lg is usually 18px, 18+10 = 28px */
 }

 /* Etiqueta de producto dentro del subcontenedor izquierdo: recuadro
    superpuesto a la imagen (position: absolute, con coordenadas
    relativas al subcontenedor, que es position: relative), situado
    en la esquina superior izquierda y separado 30px del borde
    superior y del borde izquierdo — desplazamiento solicitado
    explícitamente por el usuario, homólogo al del botón (30px). La
    especificidad del selector descendente (0,3,0) gana a cualquier
    regla de menor especificidad. El fondo blanco corresponde al
    tema light (COLORES.md) y #555555 es uno de los dos tonos
    tipográficos autorizados. text-transform: uppercase garantiza la
    tipografía en mayúsculas del texto de la etiqueta con
    independencia de la grafía fuente del HTML. El ancho se ajusta al
    contenido (shrink-to-fit propio de los elementos posicionados
    absolutos sin width declarada). */
 .contenedor-superior-um .contenedor-superior-item-um .contenedor-superior-tag-um {
   position: absolute;
   top: 30px;
   left: 30px;
   z-index: 1;
   padding: 12px 15px;
   border-radius: 10px;  /* esquinas redondeadas del recuadro */
   background-color: #ffffff;
   color: #555555;
   text-transform: uppercase;
 }

 /* Textos descriptivos debajo de la etiqueta del banner:
    Posicionamiento absoluto respecto al subcontenedor. El
    desplazamiento right: 30px (homólogo al left: 30px) encaja el
    ancho del bloque entre los dos bordes laterales con el mismo
    padding de 30px, de modo que el texto largo de la tercera línea
    fluye en varias líneas y se mantiene dentro del contenedor sin
    tocar sus bordes.
    Fuente Panton SemiBold (peso 600), color verde institucional #4F6841. */
 .contenedor-superior-um .contenedor-superior-item-um .contenedor-superior-banner-text-um {
   position: absolute;
   top: 72px;             /* 30px (top tag) + 12px (padding tag) + 30px (margen solicitado) = 72px */
   left: 30px;
   right: 30px;           /* padding de 30px respecto al borde derecho del contenedor */
   z-index: 1;
   color: #4F6841;        /* Verde institucional (COLORES.md) */
   font-weight: 600;      /* Panton SemiBold */
 }

 .contenedor-superior-um .contenedor-superior-item-um .contenedor-superior-banner-text-um .banner-text-line-1 {
   font-size: 40px;
   margin-top: 25px;
 }
 .contenedor-superior-um .contenedor-superior-item-um .contenedor-superior-banner-text-um .banner-text-line-2 {
   font-size: 75px;
   margin-top: -14px;      /* Margen top ajustado (-11px - 3px = -14px) */
 }
 .contenedor-superior-um .contenedor-superior-item-um .contenedor-superior-banner-text-um .banner-text-line-3 {
   font-size: 16px;        /* Tamaño ajustado (20px - 4px = 16px) */
   font-weight: 600;       /* Panton SemiBold */
   color: #444444;
   line-height: 22.5px;    /* Interlineado ajustado: 24.5px - 2px = 22.5px */
 }

 /* Mantiene el mismo espaciado de cabecera en las subcards del tomador y del asegurado. */
 :is(#tomadorAccordion, #aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .accordion-button {
   padding-top: 0.5rem;
   padding-bottom: 0.5rem;
 }
 :is(#tomadorAccordion, #aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .accordion-button > span {
   display: flex;
   flex-direction: column;
   gap: 0;
   line-height: 1.2;
 }
 :is(#tomadorAccordion, #aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .accordion-button > span > small {
   margin-top: 0;
   line-height: 1.2;
 }
 .insured-subtitle {
   font-size: 11px;
 }
 :is(#tomadorAccordion, #aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .accordion-button:not(.collapsed) {
   box-shadow: none;
 }
 .required-label {
   display: block;
   margin-top: 5px;
   font-size: 10px;
   line-height: 1;
   text-align: right;
 }
 .document-validation-message {
   display: none;
   margin-top: 2px;
   color: #555555;
   padding: 2px 4px;
   font-size: 10px;
   line-height: 1;
   border: 1px #999999 solid;
   border-radius: 7px;
 }
 .iban-help-text {
   display: block;
   margin-top: 3px;
   font-size: 10px;
   line-height: 1.2;
 }
 .postal-same-address-message {
   display: none;
   width: fit-content;
   margin-top: 6px;
   color: #555555;
   padding: 2px 4px;
   font-size: 10px;
   line-height: 1;
   border: 1px #999999 solid;
   border-radius: 7px;
 }
 .required-fields-notice {
   display: block;
   width: fit-content;
   padding: 12px;
   color: #555555;
   font-size: 11px;
   line-height: 1.3;
   border: 1px #999999 solid;
   border-radius: 7px;
   max-height: 100px;
   overflow: hidden;
   opacity: 1;
   visibility: visible;
   transition: opacity 0.35s ease-in-out, max-height 0.35s ease-in-out, padding 0.35s ease-in-out, border-width 0.35s ease-in-out;
 }
 .required-fields-notice.is-hidden {
   max-height: 0;
   padding-top: 0;
   padding-bottom: 0;
   border-width: 0;
   opacity: 0 !important;
   visibility: hidden !important;
   pointer-events: none;
 }
 .field-has-value {
   background-color: #f0f0f0 !important;
 }
 :is(#tomadorAccordion, #aseguradosAccordion, [data-template-id="aseguradosAccordion"]) > .accordion-item.subcard-complete {
   border: 2px #4F6841 solid;
 }
 :is(#tomadorAccordion, #aseguradosAccordion, [data-template-id="aseguradosAccordion"]) > .accordion-item.subcard-incomplete {
   border: 2px #D8AC0C solid;
 }
 :is(#tomadorAccordion, #aseguradosAccordion, [data-template-id="aseguradosAccordion"]) > .accordion-item .required-field-incomplete {
   border: 2px #D8AC0C solid;
 }
 :is(#tomadorAccordion, #aseguradosAccordion, [data-template-id="aseguradosAccordion"]) > .accordion-item {
   border-radius: 15px;
   overflow: hidden;
 }
 :is(#tomadorAccordion, #aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .accordion-complete-icon {
   position: absolute;
   right: 3.25rem;
   top: 50%;
   display: none;
   color: #555555;
   font-size: 1.1rem;
   transform: translateY(-50%);
 }
 :is(#tomadorAccordion, #aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .accordion-complete-icon.is-visible {
   display: inline-block;
 }
 :is(#tomadorAccordion, #aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .accordion-complete-icon::before {
   content: '✓';
   font-style: normal;
 }
 .policy-questionnaire-title {
   position: absolute;
   top: 1.25rem;
   left: 1.5rem;
   z-index: 4;
   margin: 0;
   pointer-events: none;
 }
 .policy-questionnaire-title h5 {
   text-align: left;
 }
 .policy-questionnaire-stepper {
   position: relative;
   overflow: visible;
   transition: all 0.35s ease-in-out;
 }
 .policy-questionnaire-stepper .policy-sidebar-toggle {
   position: absolute;
   top: 0.75rem;
   right: 1.25rem;
   left: auto;
   z-index: 3;
 }
 .policy-questionnaire-stepper .policy-sidebar-toggle button {
   border: 1px #999999 solid;
 }
 .policy-questionnaire-stepper .policy-sidebar-toggle .bi-layout-sidebar::before {
   content: '◫';
   font-style: normal;
 }
 .policy-questionnaire-stepper > .bs-stepper-header {
   flex: 0 0 18rem;
   width: 18rem;
   min-width: 18rem;
   padding-top: 7rem;
   overflow: hidden;
   transition: flex-basis 0.35s ease-in-out, width 0.35s ease-in-out, min-width 0.35s ease-in-out, padding 0.35s ease-in-out, opacity 0.2s ease-in-out;
 }
 .policy-questionnaire-stepper > .bs-stepper-content {
   flex: 1 1 auto;
   min-width: 0;
   padding-top: 5rem;
   transition: flex-basis 0.35s ease-in-out, width 0.35s ease-in-out;
 }
 .policy-questionnaire-stepper .sidebar-required-fields-warning {
   width: 100%;
   margin: 40px 0 0;
   font-size: 14px;
   color: #A66B33;
 }
 .policy-questionnaire-stepper.sidebar-collapsed > .bs-stepper-header {
   flex-basis: 0;
   width: 0;
   min-width: 0;
   padding-left: 0;
   padding-right: 0;
   opacity: 0;
   pointer-events: none;
 }
 .policy-questionnaire-stepper.sidebar-collapsed > .bs-stepper-content {
   padding-top: 5rem;
 }


 /* ============================================================== */
 /* SECCIÓN: Tipografía de la Landing (familia Panton)              */
 /* Elementos afectados: <body> (todos los textos), títulos         */
 /* h1–h6, subtítulos de sección y títulos del asistente de pasos   */
 /* ============================================================== */

 /* Declaración de las dos fuentes exclusivas de la landing, servidas
    localmente desde assets/fonts/ (formato WOFF). Cada cara se
    registra con un rango de pesos para que la resolución del
    navegador sea determinista, sin recurrir al algoritmo de
    aproximación: la cara Regular cubre 400–500 (los font-weight 400
    y 500 del template resuelven a Regular) y la cara Semibold cubre
    600–900 (los pesos 600, 700 "bold" y 800 "extrabold" del template
    resuelven a Semibold). Así ninguna regla vendor necesita
    modificarse y no se producen negritas sintéticas. */
 @font-face {
   font-family: "Panton";
   src: url("../../../fonts/Panton-Regular.woff") format("woff");
   font-weight: 400 500;
   font-style: normal;
   font-display: block;
 }
 @font-face {
   font-family: "Panton";
   src: url("../../../fonts/Panton-SemiBold.woff") format("woff");
   font-weight: 600 900;
   font-style: normal;
   font-display: block;
 }
 /* Texto base de toda la landing: Panton Regular (peso 400). Se
    sobrescriben en el ámbito de <body> las variables del template
    (--bs-font-sans-serif y --bs-body-font-family), ya alineadas con
    la familia Panton en las hojas core del template: todo el texto
    de la página y los componentes que consumen esas variables
    (tooltips, popovers) heredan la familia Panton. */
 body {
   --bs-font-sans-serif: "Panton", -apple-system, BlinkMacSystemFont, "Segoe UI", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
   --bs-body-font-family: var(--bs-font-sans-serif);
   font-family: var(--bs-body-font-family);
 }
 /* Títulos de la landing (h1–h6 y sus equivalencias .h1–.h6):
    Panton Semibold (peso 600). La regla del reboot del template
    (core.css: font-weight: 500) queda sobrescrita por orden de
    cascada, ya que esta hoja se carga en último lugar. Las
    utilidades fw-bold (700) y fw-extrabold (800) presentes en la
    landing resuelven igualmente a la cara Semibold por su rango
    600–900. */
 h1, h2, h3, h4, h5, h6,
 .h1, .h2, .h3, .h4, .h5, .h6 {
   font-weight: 600;
 }
 /* Subtítulos de sección: el párrafo introductorio que acompaña
    inmediatamente a cada título principal (los subtítulos de las
    cuatro secciones bajo sus h4 y el de la tarjeta de contacto
    "Envíanos un mensaje"). Panton Semibold, peso 600. Los párrafos
    de descripción de las tarjetas de características (h5 + p) y los
    textos auxiliares de formulario no se ven afectados. */
 h1 + p,
 h2 + p,
 h3 + p,
 h4 + p {
   font-weight: 600;
 }
 /* Título de cada paso del asistente de solicitud (bs-stepper):
    Panton Semibold, coherente con el h6 del encabezado de contenido
    de cada paso ("Datos de la cuenta", etc.), que ya recibe peso 600
    por la regla de títulos. El subtítulo del paso
    (bs-stepper-subtitle, peso 400 del plugin) se mantiene en Panton
    Regular por ser texto auxiliar del formulario. La cadena de
    selectores replica la del plugin (bs-stepper.css) para igualar
    su especificidad (0,6,0) y superar el peso 500 que este le asigna
    por orden de cascada. */
 .bs-stepper .bs-stepper-header .step .step-trigger .bs-stepper-label .bs-stepper-title {
   font-weight: 600;
 }

 .policy-questionnaire-stepper .bs-stepper-header .step[data-target="#account-details-vertical"].has-empty-required .step-trigger .bs-stepper-circle {
   background-color: #DDAB00 !important;
   color: #fff !important;
 }

 .policy-questionnaire-stepper .bs-stepper-header .step[data-target="#personal-info-vertical"] .step-trigger .bs-stepper-circle {
   background-color: #4F6841 !important;
   color: #fff !important;
 }

 .policy-questionnaire-stepper .bs-stepper-header .step[data-target="#personal-info-vertical"].has-empty-required .step-trigger .bs-stepper-circle {
   background-color: #DDAB00 !important;
 }

 #insuredNavigation :is(.insured-step-action-button, .insured-delete-button) {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   padding: 0.25rem;
   border: 0;
   background: transparent;
   color: #ffffff;
   font-size: 1.25rem;
   line-height: 1;
   cursor: pointer;
 }

 #insuredNavigation .insured-step-action-button {
   margin-left: auto;
 }

 #insuredNavigation .insured-delete-button {
   margin-left: 0.5rem;
 }

 #insuredNavigation :is(.insured-step-action-button, .insured-delete-button):focus-visible {
   outline: 2px solid #ffffff;
   outline-offset: 2px;
 }

 #insuredNavigation .insured-bubble {
   margin-bottom: 10px;
   cursor: pointer;
   flex-wrap: wrap;
 }

 #insuredNavigation .insured-delete-confirmation {
   flex-basis: 100%;
   max-height: 0;
   opacity: 0;
   overflow: hidden;
   pointer-events: none;
   transition: max-height 0.25s ease, opacity 0.2s ease, margin-top 0.25s ease;
 }

 #insuredNavigation .insured-delete-confirmation.is-open {
   max-height: 14rem;
   margin-top: 0.75rem;
   opacity: 1;
   pointer-events: auto;
 }

 #insuredNavigation .insured-delete-confirmation-inner {
   padding: 0.75rem;
   border: 1px solid rgba(255, 255, 255, 0.35);
   border-radius: 0.5rem;
   background-color: rgba(0, 0, 0, 0.16);
 }

 #insuredNavigation .insured-delete-confirmation-message {
   margin: 0;
   color: #fff;
   font-size: 14px;
 }

 #insuredNavigation .insured-delete-confirmation-actions {
   display: flex;
   justify-content: flex-end;
   gap: 0.5rem;
   margin-top: 0.75rem;
 }

 #insuredNavigation .insured-delete-cancel {
   color: #555555;
 }

 #insuredNavigation .insured-bubble:not(.is-active) {
   background-color: #555555;
 }

 #insuredNavigation .insured-bubble.is-active {
   background-color: #4F6841;
   outline: 2px solid #4F6841;
   outline-offset: 2px;
 }

 #social-links-vertical .summary-status {
   background-color: #4F6841 !important;
   color: #fff;
 }

 #social-links-vertical .summary-status.summary-status-incomplete {
   background-color: #DDAB00 !important;
 }

 #social-links-vertical .summary-status.summary-status-incomplete .alert-icon i {
   color: #DDAB00 !important;
 }

 /* ============================================================== */
 /* SECCIÓN: Banner CTA de Atención (sección atencion)              */
 /* Elementos afectados: <section class="landing-cta">, su          */
 /* titular <h3 class="cta-title"> y su imagen de fondo <img>.      */
 /* ============================================================== */

 /* Color del titular del banner CTA ("Cobertura médica completa
    adaptada a ti"): #f0f0f0 solicitado explícitamente por el
    usuario. El #f0f0f0 está fuera de la paleta de COLORES.md
    (excepción cromática autorizada por instrucción directa,
    documentada en la auditoría). El elemento ya no lleva la utilidad
    vendor text-primary (que declaraba su color con !important en
    core.css): retirada del HTML, esta regla declara el color sin
    competir con ninguna otra declaración y sin necesidad de
    !important. La especificidad (0,2,0) iguala la de la regla vendor
    .landing-cta .cta-title (tamaño de fuente, líneas 208-215) y la
    complementa por orden de cascada. Sobre el fondo verde del
    banner-landing-1.jpg el gris claro #f0f0f0 garantiza el contraste
    de legibilidad del titular. */
 .landing-cta .cta-title {
   color: #f0f0f0;
 }

 /* Dimensionamiento de la imagen de fondo del banner CTA
    (banner-landing-1.jpg, 1920x402 px): height fijo de 400px y
    width auto para conservar la proporcion original de la imagen
    (el ancho derivado es ~1910 px, sin deformacion ni recorte).
    La imagen ya no lleva las utilidades vendor w-100 (width: 100%
    con !important, que la estiraba al ancho de la seccion
    deformando su proporcion) ni h-100/end-0: se posiciona anclada
    al borde izquierdo (start-0) y al borde inferior (bottom-0), con
    la misma clase scaleX-n1-rtl (efecto espejo solo en modo RTL).
    Al superar su ancho el de la seccion, el excedente se extiende
    hacia la derecha y queda recortado por la propia seccion; para
    que ese excedente no genere scroll horizontal en la pagina, la
    seccion se declara overflow-x: clip (recorte del eje X sin
    crear contenedor de scroll, imprescindible aqui porque con
    height 400px la imagen sobresale por encima de la seccion: con
    overflow-x: hidden el eje Y computaria a auto, la seccion se
    volveria contenedor de scroll y recortaria ese tramo superior de
    la imagen). Se mantiene overflow-x: hidden como fallback para
    navegadores sin soporte de clip. La especificidad (0,2,0) de
    .landing-cta .cta-bg-img iguala la de la regla vendor del
    titular (.landing-cta .cta-title) y la acompana en cascada. */
 .landing-cta {
   /* Contexto de apilamiento propio: al declarar z-index sobre un
      elemento que ya es position-relative, la seccion crea un contexto
      de apilamiento y confina la imagen de fondo (clase z-n1, es decir
      z-index -1) dentro de esta seccion. Sin este contexto, el
      z-index -1 de la imagen escapa al contexto de apilamiento raiz y
      se pinta detras del contenido de la seccion anterior (nosotros),
      que queda "montada" encima del banner. */
   z-index: 100;
   /* Recorte de la imagen en ambos ejes: la imagen (height 400px,
      weight auto ~1910px) supera el ancho de la seccion y, sin recorte,
      generaria scroll horizontal o se solaparia con las secciones
      vecinis. overflow: hidden recorta ambos ejes sin dejar que la
      imagen sobresalga ni por arriba ni por la derecha. */
   overflow: hidden;
   /* La imagen de fondo mide 400px de alto y esta anclada al borde
      inferior (bottom-0) de la seccion. min-height iguala la altura de
      la seccion a la de la imagen para que esta no sobresalga por
      encima del borde superior ni se solape con la seccion anterior
      (nosotros). */
   min-height: 400px;
   /* Espaciado superior para separar de la sección anterior */
   margin-top: 4rem;
   /* Centrado vertical del contenido respecto a los bordes superior
      e inferior de la imagen (mismos margenes arriba y abajo): la
      seccion pasa a contenedor flex y su unico hijo en flujo
      (.container) se centra en el eje transversal. */
   display: flex;
   align-items: center;
 }
 .landing-cta .cta-bg-img {
   height: 400px;
   width: 100%;
   object-fit: cover;
   object-position: left center;
 }
  /* Color del subtítulo del banner CTA ("Disfruta de acceso a un
     completo cuadro médico, ..."): #f0f0f0 solicitado explícitamente
     por el usuario, en coherencia con el titular del mismo banner. El
     #f0f0f0 está fuera de la paleta de COLORES.md (excepción cromática
     autorizada por instrucción directa, documentada en la auditoría).
     El elemento ya no lleva la utilidad vendor text-body (que en
     core.css habría fijado su color): retirada del HTML, esta regla
     declara el color sin competir con ninguna otra declaración y sin
     necesidad de !important. Sobre el fondo verde del
     banner-landing-1.jpg el gris claro #f0f0f0 garantiza el contraste
     de legibilidad del subtítulo. */
  .landing-cta .cta-subtitle {
    color: #f0f0f0;
  }
  /* Separador horizontal al final de las dos columnas del paso 1 del
     formulario de solicitud (elemento <hr> insertado como último hijo
     del div.row.g-6, tras el campo «Nacionalidad» y antes de la fila de
     botones). Se declara con las medidas exactas solicitadas por el
     usuario: ancho 100% de la fila (las dos columnas) y altura 2px. El
     color #999999 es el exigido por REGLAS.md, sección 4, para los
     separadores internos de tarjetas, único color admitido ahí. Al
     fijar background-color y border: 0 se dibuja la línea de 2px con
     color sólido, sin depender del color de borde heredado de la regla
     hr de core.css (que aporta el borde de 1px #e6e6e8); no se añade
     margen para conservar el ritmo vertical del propio div.row.g-6. */
  .form-separator {
    width: 100%;
    height: 2px;
    color: #999999;
    background-color: #999999;
    border: 0;
  }
  /* Subtítulo de sección de las tarjetas del formulario de solicitud
     (rótulos «Domicilio del tomador» y «Datos bancarios del tomador»
     del paso 1, ambos h6.mb-0). Anula el margen superior que el tema
     aplica por defecto a los encabezados para que el rótulo quede
     pegado al separador que lo precede, conservando la utilidad mb-0
     para el margen inferior. Sin color ni tipografía propios: hereda
     los del tema y respeta las restricciones visuales de REGLAS.md. */
  .subtitle-card-content {
    margin-top: 0px;
  }

  @media (max-width: 460px) {
    .contenedor-superior-um .contenedor-superior-item-um .contenedor-superior-banner-text-um .banner-text-line-1 {
      font-size: 32px;
    }

    .contenedor-superior-um .contenedor-superior-item-um .contenedor-superior-banner-text-um .banner-text-line-2 {
      font-size: 60px;
    }

    .contenedor-superior-um .contenedor-superior-item-um .contenedor-superior-banner-text-um .banner-text-line-3 {
      font-size: 15px;
      line-height: 19.5px;
    }
  }

  @media (max-width: 380px) {
    .landing-cta .cta-title {
      font-size: 25px;
      line-height: 30px;
      margin-top: -100px;
    }

    .landing-cta .cta-subtitle {
      font-size: 16px;
      margin-top: 14px;
    }
  }

  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .accordion-body .row.g-6 > .col-6,
  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .accordion-body .row.g-6 > .col-sm-6 {
    display: flex;
    flex-direction: column;
  }

  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .accordion-body .row.g-6 > .col-6 > .form-label,
  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .accordion-body .row.g-6 > .col-sm-6 > .form-label {
    min-height: 2.5rem;
  }

  [id^="dental"] {
    position: relative;
    z-index: 2;
    pointer-events: auto;
    cursor: pointer;
    accent-color: #4f6841;
  }

  [id^="dental"]:checked {
    background-color: #4f6841 !important;
    border-color: #4f6841 !important;
  }

  .complement-option-container {
    height: 100%;
    padding: 1rem;
    border: 1px #999999 solid;
    border-radius: 7px;
  }

  .medical-questionnaire-card .medical-questionnaire-title {
    font-size: 20px;
  }

  .medical-questionnaire-card .medical-questionnaire-insured {
    margin-top: -17px;
    font-size: 14px;
  }

  .medical-questionnaire-card .medical-questionnaire-instructions,
  .medical-questionnaire-card .card-text {
    font-size: 12px;
  }

  .medical-questionnaire-card > .card {
    overflow: hidden;
    border-radius: 15px;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) > .card,
  :is(#additionalMedicalQuestionnaireCard, [data-template-id="additionalMedicalQuestionnaireCard"]) > .card,
  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) > .card {
    overflow: hidden;
    border: 0;
    border-radius: 15px;
    box-shadow: 0 0.0625rem 0.375rem 0 rgba(0, 0, 0, 0.1);
    padding: 20px;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"], #additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) > .card.medical-form-complete {
    border: 2px #4F6841 solid;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"], #additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) > .card.medical-form-incomplete-collapsed {
    border: 2px solid #D8AC0C;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"], #additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .required-field-incomplete {
    border: 2px solid #D8AC0C;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) > .card > .card-body,
  :is(#additionalMedicalQuestionnaireCard, [data-template-id="additionalMedicalQuestionnaireCard"]) > .card > .card-body,
  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) > .card > .card-body {
    padding: 0;
  }

  :is(#additionalMedicalQuestionnaireCard, [data-template-id="additionalMedicalQuestionnaireCard"]) {
    margin-top: 10px;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) {
    margin-top: 10px;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-insured {
    margin: -20px 0 1.5rem;
    font-size: 14px;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-heading {
    margin: 0;
    padding: 0.75rem 1rem;
    border-radius: 6px;
    background-color: #4f6841;
    color: #fff;
    font-size: 16px;
    line-height: 1.4;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-help {
    margin: 0.75rem 0 0;
    font-size: 12px;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-notice-divider {
    margin: 1.5rem 0;
    border: 0;
    border-top: 1px solid #c9c9c9;
    opacity: 1;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-notice {
    margin: 0;
    padding: 1rem;
    border-radius: 6px;
    background-color: #f0f0f0;
    color: #4f6841;
    font-size: 14px;
    line-height: 1.5;
    text-align: justify;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-aspect,
  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-section {
    min-width: 0;
    margin: 1.5rem 0 0;
    padding: 1.5rem 0 0;
    border: 0;
    border-top: 1px solid #c9c9c9;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-aspect > summary,
  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-section > summary {
    float: none;
    width: auto;
    margin: 0 0 1.25rem;
    padding: 0;
    color: #4f6841;
    font-size: 16px;
    font-weight: 600;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-aspect > summary,
  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-section > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0;
    cursor: pointer;
    list-style: none;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-aspect-title {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-aspect-required {
    color: #6c757d;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.2;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-aspect > summary::-webkit-details-marker,
  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-section > summary::-webkit-details-marker {
    display: none;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-aspect[open] > summary,
  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-section[open] > summary {
    margin-bottom: 1.25rem;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-aspect > summary .ti,
  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-section > summary .ti {
    transition: transform 0.2s ease;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-aspect[open] > summary .ti,
  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-section[open] > summary .ti {
    transform: rotate(90deg);
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-assistance {
    min-width: 0;
    border: 0;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-assistance legend {
    float: none;
    width: auto;
    margin: 0 0 0.5rem;
    font-size: inherit;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .form-check-input:checked {
    background-color: #4f6841;
    border-color: #4f6841;
  }

  #personal-info-vertical .additional-insured-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
  }

  #personal-info-vertical .additional-insured-actions > .btn {
    width: 100%;
  }

  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .additional-medical-assistance input[type="checkbox"]:checked {
    accent-color: #4F6841;
    background-color: #4F6841 !important;
    border-color: #4F6841 !important;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) input[type="radio"],
  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) input[type="radio"] {
    accent-color: #4F6841;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) input[type="radio"]:checked,
  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) input[type="radio"]:checked {
    background-color: #fff;
    background-image: radial-gradient(circle, #4F6841 0 2.5px, transparent 2.6px);
    background-size: 100% 100%;
    border-color: #4F6841;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-questionnaire-insured-label {
    margin-top: -17px;
    font-size: 14px;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-questionnaire-card-header,
  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .medical-questionnaire-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-questionnaire-card-toggle,
  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .medical-questionnaire-card-toggle {
    flex: 0 0 auto;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    line-height: 1;
    cursor: pointer;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-questionnaire-card-toggle i,
  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .medical-questionnaire-card-toggle i {
    display: block;
    transition: transform 0.2s ease-in-out;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-questionnaire-card-toggle[aria-expanded="false"] i,
  :is(#additionalMedicalQuestionnaireFormCard, [data-template-id="additionalMedicalQuestionnaireFormCard"]) .medical-questionnaire-card-toggle[aria-expanded="false"] i {
    transform: rotate(-90deg);
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-questionnaire-question {
    min-width: 0;
    margin: 0 0 1.5rem;
    padding: 0;
    border: 0;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-questionnaire-question legend {
    float: none;
    width: 100%;
    margin: 0 0 0.25rem;
    padding: 0.65rem 0.85rem;
    border-radius: 6px;
    background-color: #f0f0f0;
    color: #4f6841;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-questionnaire-required-label {
    margin: 0 0 1rem;
    color: #6c757d;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-questionnaire-answer {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 1rem;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-questionnaire-options {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding-top: 2rem;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-questionnaire-options .form-check {
    margin-right: 0;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-questionnaire-options .form-check-input:checked {
    background-color: #4f6841;
    border-color: #4f6841;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-questionnaire-detail {
    min-width: 0;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-conditions-section {
    margin-top: 2rem;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-conditions-divider {
    margin: 0 0 1.5rem;
    border: 0;
    border-top: 1px solid #999999;
    opacity: 1;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-conditions-heading {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1rem;
    padding: 0.9rem 1rem;
    border-radius: 6px;
    background-color: #f0f0f0;
    color: #4f6841;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-conditions-heading h6,
  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-conditions-heading p {
    margin: 0;
    color: inherit;
    font-size: 14px;
    line-height: 1.4;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-conditions-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
    gap: 1.25rem;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-conditions-column {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 0;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-conditions-choice-heading,
  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-condition-options {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    width: 3.5rem;
    text-align: center;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-conditions-choice-heading {
    color: #4f6841;
    font-size: 12px;
    font-weight: 600;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-condition {
    display: grid;
    grid-template-columns: 3.5rem minmax(0, 1fr);
    align-items: start;
    gap: 0.5rem;
    color: #4f6841;
    font-size: 12px;
    line-height: 1.35;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-condition-choice {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    cursor: pointer;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-condition-choice .form-check-input {
    float: none;
    margin: 0;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-condition-choice .form-check-input:checked {
    background-color: #4f6841;
    border-color: #4f6841;
  }

  :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-conditions-notice {
    margin: 1.5rem 0 0;
    padding: 1rem;
    border-top: 2px solid #4f6841;
    background-color: #f0f0f0;
    color: #4f6841;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
  }

  @media (max-width: 600px) {
    :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-questionnaire-answer {
      grid-template-columns: 1fr;
      gap: 0.75rem;
    }

    :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-questionnaire-options {
      padding-top: 0;
    }

    :is(#medicalQuestionnaireFormCard, [data-template-id="medicalQuestionnaireFormCard"]) .medical-conditions-heading {
      grid-template-columns: 1fr;
    }
  }

  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-personal-header,
  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-contact-header,
  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-policy-header,
  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-complements-header {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-personal-toggle,
  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-contact-toggle,
  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-policy-toggle,
  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-complements-toggle {
    flex: 0 0 auto;
    margin: 20px 0 20px 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    line-height: 1;
    cursor: pointer;
  }

  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-personal-toggle i:not(.insured-inner-complete-icon),
  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-contact-toggle i:not(.insured-inner-complete-icon),
  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-policy-toggle i:not(.insured-inner-complete-icon),
  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-complements-toggle i:not(.insured-inner-complete-icon) {
    display: block;
    transition: transform 0.2s ease-in-out;
  }

  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-inner-complete-icon {
    position: absolute;
    top: 22px;
    right: 25px;
    display: none;
    margin-right: 0;
    color: #555555;
    font-size: 1.1rem;
    transform: none !important;
    transition: none !important;
  }

  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-inner-complete-icon.is-visible {
    display: block;
  }

  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-inner-complete-icon::before {
    content: '✓';
    font-style: normal;
    font-family: inherit;
  }

  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-personal-toggle[aria-expanded="false"] i:not(.insured-inner-complete-icon),
  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-contact-toggle[aria-expanded="false"] i:not(.insured-inner-complete-icon),
  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-policy-toggle[aria-expanded="false"] i:not(.insured-inner-complete-icon),
  :is(#aseguradosAccordion, [data-template-id="aseguradosAccordion"]) .insured-complements-toggle[aria-expanded="false"] i:not(.insured-inner-complete-icon) {
    transform: rotate(-90deg);
  }

  @media (min-width: 430px) {
    .contenedor-superior-um .contenedor-superior-item-um .contenedor-superior-tag-um {
      font-size: 12px;
    }

    .contenedor-superior-um .contenedor-superior-item-um .landing-hero-btn a {
      font-size: 15px !important;
    }

  }

  @media (max-width: 430px) {
    .contenedor-superior-um .contenedor-superior-item-um .contenedor-superior-banner-text-um .banner-text-line-3 {
      display: none;
    }
  }

  @media (max-width: 360px) {
    .contenedor-superior-um .contenedor-superior-item-um .contenedor-superior-tag-um {
      font-size: 12px;
    }

    .contenedor-superior-um .contenedor-superior-item-um .landing-hero-btn a {
      font-size: 15px !important;
    }
  }

  @media (max-width: 506px) {
    .pricing-faqs .text-center h4 {
      line-height: 30px;
    }
  }

  @media (max-width: 460px) {
    .policy-questionnaire-title {
      width: 60%;
    }
  }

  @media (max-width: 991px) {
    .policy-questionnaire-stepper .policy-sidebar-toggle,
    .policy-questionnaire-stepper > .bs-stepper-header {
      display: none;
    }

    .policy-questionnaire-stepper > .bs-stepper-content {
      flex: 1 1 100%;
      width: 100%;
    }
  }

  .selector-edad .bootstrap-select > .dropdown-toggle:focus,
  .selector-edad .bootstrap-select:focus-within > .dropdown-toggle,
  #selectpickerLiveSearch:focus {
    border: 2px #4F6841 solid;
  }

/* Mantener el texto del CTA en la zona verde, separado de la fotografía. */
.landing-cta .cta-content {
  max-width: 640px;
  padding-top: 32px;
  padding-bottom: 32px;
}
.landing-cta .cta-subtitle {
  margin-top: 16px;
  line-height: 1.5;
  white-space: normal;
  overflow-wrap: break-word;
}
@media (max-width: 991.98px) {
  .landing-cta .cta-content {
    max-width: 600px;
  }
}
@media (max-width: 380px) {
  .landing-cta .cta-title {
    margin-top: 0;
  }
}
