/* CAME — promoción y regularización en el carrusel principal. */
#header-carousel.came-campaign-carousel { position: relative; }
#header-carousel.came-campaign-carousel .carousel-item { position: relative; min-height: 740px; }
#header-carousel.came-campaign-carousel .bann-main { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
#header-carousel.came-campaign-carousel .carousel-caption { position: relative; inset: auto; display: flex; align-items: center; min-height: 740px; box-sizing: border-box; padding: 38px 52px 76px; color: #3e3e3e; }
#header-carousel .came-campaign-column { width: 52%; min-width: 0; }
#header-carousel .came-campaign-card { box-sizing: border-box; width: 100%; max-width: 550px; margin: 0; padding: 28px; border: 1px solid #e4dced; border-radius: 20px; background: rgb(255 255 255 / 97%); box-shadow: 0 8px 32px rgb(37 23 62 / 9%); text-align: left; }
#header-carousel .came-campaign-card p { margin: 0 0 14px; color: #3e3e3e; font: 400 16px/1.5 'Open Sans', Arial, sans-serif; text-align: left; }
#header-carousel .came-campaign-card h2 { margin: 0 0 14px; color: #492f7b; font: 600 clamp(28px, 2.6vw, 38px)/1.15 'Jost', Arial, sans-serif; text-align: left; }
#header-carousel .came-campaign-card .came-campaign-eyebrow { display: inline-flex; align-items: center; gap: 7px; margin: 0 0 14px; padding: 6px 10px; border-radius: 6px; background: #fff1f2; color: #b40010; font: 600 12px/1.5 'Open Sans', Arial, sans-serif; }
.came-campaign-eyebrow svg { width: 17px; height: 17px; flex-shrink: 0; }
.came-promotion-value { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; margin: 0 0 10px; color: #e30613; }
.came-promotion-value > span { color: #492f7b; font: 600 17px/1.5 'Open Sans', Arial, sans-serif; }
.came-promotion-value strong { font: 700 clamp(64px, 5.3vw, 82px)/1 'Jost', Arial, sans-serif; letter-spacing: -3px; }
#header-carousel .came-promotion-card .came-promotion-benefit { margin-bottom: 16px; color: #492f7b; font: 600 20px/1.35 'Jost', Arial, sans-serif; }
.came-campaign-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 18px 0 14px; }
.came-campaign-button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 46px; box-sizing: border-box; padding: 11px 16px; border: 1px solid #e30613; border-radius: 8px; background: #e30613; color: #fff; font: 600 14px/1.5 'Open Sans', Arial, sans-serif; text-decoration: none; cursor: pointer; }
.came-campaign-button svg { width: 20px; height: 20px; flex-shrink: 0; }
.came-campaign-button:hover { border-color: #bd0010; background: #bd0010; color: #fff; }
.came-campaign-link { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; color: #492f7b; font: 600 14px/1.5 'Open Sans', Arial, sans-serif; text-decoration: underline; text-underline-offset: 3px; }
.came-campaign-link:hover { color: #bd0010; }
.came-campaign-phones { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; margin: 0 0 12px; }
.came-campaign-phones a { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; color: #492f7b; font: 700 15px/1.4 'Open Sans', Arial, sans-serif; text-decoration: none; }
.came-campaign-phones svg { width: 16px; height: 16px; flex-shrink: 0; }
#header-carousel .came-campaign-card .came-campaign-email { margin-bottom: 12px; font-size: 12px; overflow-wrap: anywhere; }
.came-campaign-email a { color: #492f7b; text-decoration: underline; text-underline-offset: 2px; }
#header-carousel .came-campaign-card .came-campaign-conditions { margin: 0; padding-top: 12px; border-top: 1px solid #e8e2ee; color: #625270; font-size: 12px; line-height: 1.55; }
#header-carousel .came-campaign-card .came-campaign-credit { margin-bottom: 12px; color: #625270; font-size: 12px; }
#header-carousel .came-regularize-card .came-regularize-lead { margin-bottom: 20px; color: #3e3e3e; font: 600 20px/1.4 'Jost', Arial, sans-serif; }
.came-term-story { margin-bottom: 20px; padding: 18px; border: 1px solid #e6e0ed; border-radius: 12px; background: #faf8fc; }
.came-term-label { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; color: #492f7b; font: 600 14px/1.5 'Open Sans', Arial, sans-serif; }
.came-term-label svg { width: 22px; height: 22px; flex-shrink: 0; }
.came-months { --came-month-width: clamp(18px, 3vw, 34px); display: flex; align-items: center; min-height: 34px; overflow: hidden; }
.came-month { display: block; flex-shrink: 0; width: var(--came-month-width); height: 32px; box-sizing: border-box; margin-right: 6px; border: 1px solid #dbacb4; border-top: 7px solid #e30613; border-radius: 4px; background: #fff; }
.came-month::after { content: ''; display: block; width: 16px; height: 9px; margin: 7px auto; border-top: 2px solid #e8d3d9; border-bottom: 2px solid #e8d3d9; }
.came-month-extra { width: 0; margin-right: 0; border-width: 0; opacity: 0; }
.came-month-extra::after { opacity: 0; }
.came-term-connection { display: flex; align-items: center; justify-content: flex-start; gap: 8px; margin: 14px 0; color: #8d819b; font: 500 12px/1.4 'Open Sans', Arial, sans-serif; }
.came-term-connection svg { width: 17px; height: 17px; }
.came-interest-track { height: 12px; border-radius: 12px; background: #e6e0ed; overflow: hidden; }
.came-interest-fill { display: block; width: 100%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #492f7b, #8262ad); transform: scaleX(.36); transform-origin: left center; }
#header-carousel .active .came-month-extra { animation-duration: 4.8s; animation-timing-function: ease-in-out; animation-fill-mode: both; }
#header-carousel .active .came-month-8 { animation-name: came-month-fold-8; }
#header-carousel .active .came-month-7 { animation-name: came-month-fold-7; }
#header-carousel .active .came-month-6 { animation-name: came-month-fold-6; }
#header-carousel .active .came-month-5 { animation-name: came-month-fold-5; }
#header-carousel .active .came-month-extra::after { animation: came-month-marks 4.8s both; }
#header-carousel .active .came-interest-fill { animation: came-interest-follows 4.8s ease-in-out both; }
#header-carousel[data-came-motion="paused"] .active .came-month-extra,
#header-carousel[data-came-motion="paused"] .active .came-month-extra::after,
#header-carousel[data-came-motion="paused"] .active .came-interest-fill { animation-play-state: paused; }
@keyframes came-month-fold-8 { 0%, 20% { width: var(--came-month-width); margin-right: 6px; border-width: 1px; border-top-width: 7px; opacity: 1; } 35%, 100% { width: 0; margin-right: 0; border-width: 0; opacity: 0; } }
@keyframes came-month-fold-7 { 0%, 30% { width: var(--came-month-width); margin-right: 6px; border-width: 1px; border-top-width: 7px; opacity: 1; } 45%, 100% { width: 0; margin-right: 0; border-width: 0; opacity: 0; } }
@keyframes came-month-fold-6 { 0%, 40% { width: var(--came-month-width); margin-right: 6px; border-width: 1px; border-top-width: 7px; opacity: 1; } 55%, 100% { width: 0; margin-right: 0; border-width: 0; opacity: 0; } }
@keyframes came-month-fold-5 { 0%, 50% { width: var(--came-month-width); margin-right: 6px; border-width: 1px; border-top-width: 7px; opacity: 1; } 65%, 100% { width: 0; margin-right: 0; border-width: 0; opacity: 0; } }
@keyframes came-month-marks { 0%, 50% { opacity: 1; } 66%, 100% { opacity: 0; } }
@keyframes came-interest-follows { 0%, 48% { transform: scaleX(1); } 92%, 100% { transform: scaleX(.36); } }
.came-carousel-controls { position: absolute; inset: auto 0 12px; z-index: 2; display: flex; align-items: center; justify-content: center; gap: 2px; min-height: 44px; padding: 0; border: 0; background: transparent; pointer-events: none; }
.came-carousel-controls [data-came-slide-to] { display: grid; place-items: center; width: 44px; height: 44px; box-sizing: border-box; margin: 0; padding: 0; border: 0; border-radius: 50%; background: transparent; cursor: pointer; pointer-events: auto; }
.came-carousel-controls [data-came-slide-to]::before { content: ''; display: block; width: 12px; height: 12px; box-sizing: border-box; border: 1px solid rgb(73 47 123 / 55%); border-radius: 50%; background: rgb(255 255 255 / 16%); box-shadow: 0 0 0 1px rgb(255 255 255 / 45%); }
.came-carousel-controls [data-came-slide-to]:hover::before { background: rgb(73 47 123 / 35%); }
.came-carousel-controls [data-came-slide-to][aria-current="true"]::before { background: rgb(73 47 123 / 78%); border-color: rgb(73 47 123 / 78%); }
.came-campaign-button:focus-visible, .came-campaign-link:focus-visible, .came-campaign-phones a:focus-visible, .came-campaign-email a:focus-visible, .came-carousel-controls button:focus-visible { outline: 3px solid #492f7b; outline-offset: 3px; }
#header-carousel .carousel-item[hidden] { display: none !important; }
@media (max-width: 1199.98px) {
  #header-carousel.came-campaign-carousel .carousel-caption { padding: 30px 24px 76px; }
  #header-carousel .came-campaign-column { width: 56%; }
}
@media (max-width: 991.98px) {
  #header-carousel .came-campaign-column { width: 70%; }
  #header-carousel .came-campaign-card { padding: 24px; }
}
@media (max-width: 767.98px) {
  #header-carousel.came-campaign-carousel .carousel-item { min-height: 0; }
  #header-carousel.came-campaign-carousel .bann-main { opacity: .12; object-position: 65% center; }
  #header-carousel.came-campaign-carousel .carousel-caption { min-height: 0; padding: 24px 0 72px; }
  #header-carousel .came-campaign-column { width: 100%; }
  #header-carousel .came-campaign-card { max-width: none; padding: 22px; border-radius: 16px; }
}
@media (max-width: 359.98px) {
  #header-carousel .came-campaign-card { padding: 18px; }
  .came-term-story { padding: 14px; }
  .came-months { --came-month-width: 18px; }
  .came-month-extra { width: 0; margin-right: 0; }
}
@media (prefers-reduced-motion: reduce) {
  #header-carousel .active .came-month-extra,
  #header-carousel .active .came-month-extra::after,
  #header-carousel .active .came-interest-fill { animation: none; }
}

/* Banners de entrada: imagen completa, sin marco ni barra de acciones. */
.came-welcome-dialog {
  inset: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 12px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: hidden;
}
.came-welcome-dialog[open] { display: grid; place-items: center; }
.came-welcome-dialog::backdrop { background: rgb(0 0 0 / 70%); }
.came-welcome-dialog .came-welcome-content { position: relative; width: fit-content; max-width: 100%; max-height: 100%; background: transparent; }
.came-welcome-dialog .banner-image-came {
  display: block;
  width: auto;
  height: auto;
  max-width: min(760px, calc(100vw - 24px));
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - 24px);
  border-radius: 8px;
  background: transparent;
  object-fit: contain;
  box-shadow: 0 5px 24px rgb(0 0 0 / 25%);
}
.came-welcome-dialog .came-dismiss { position: absolute; top: 10px; right: 10px; width: 44px; height: 44px; min-width: 44px; min-height: 44px; padding: 10px; border: 0; border-radius: 50%; background: rgb(0 0 0 / 58%); color: #fff; box-shadow: none; }
.came-welcome-dialog .came-dismiss svg { width: 24px; height: 24px; }
.came-welcome-dialog .came-dismiss:hover { background: rgb(0 0 0 / 78%); }
.came-welcome-dialog .came-dismiss:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
