/*
 * CRISTALES MITRE — TEMA OSCURO CANÓNICO
 *
 * Esta hoja existe para resolver una causa estructural: base/layout/components
 * nacieron como tema claro y vanguardia convirtió el sitio a oscuro mediante
 * overrides parciales. Cargada última, esta capa define un único contrato de
 * color para el contenido visible sin cambiar los colores internos de inputs,
 * botones blancos ni la firma Dartagnan.
 */

:root{
  --cm-dark-heading:#f7fbff;
  --cm-dark-text:#e3edf6;
  --cm-dark-soft:#cbddeb;
  --cm-dark-accent:#6cc8f6;
  --cm-dark-line:rgba(88,169,222,.16);
  --cm-dark-surface:rgba(7,20,34,.42);
  --cm-dark-surface-strong:rgba(6,18,32,.58);
}

/* Contrato tipográfico general del contenido oscuro. */
main .section,
main .section--soft,
main .section--ink{
  color:var(--cm-dark-text)!important;
}

main .section h1,
main .section h2,
main .section h3,
main .section-head h1,
main .section-head h2,
main .section-head h3,
main .assurance-copy h2,
main .split-showcase__copy h2,
main .locations-layout h2,
main .location-card h2,
main .location-card h3,
main .service-slab h2,
main .service-slab h3,
main .catalog-row h2,
main .catalog-row h3,
main .product-group h2,
main .product-group h3,
main .decision-card h2,
main .decision-card h3,
main .flow-step h2,
main .flow-step h3,
main .contact-facts strong,
main .editorial-card h2,
main .editorial-card h3{
  color:var(--cm-dark-heading)!important;
}

main .section p,
main .section-head>p:last-child,
main .assurance-copy>p:not(.kicker),
main .split-showcase__copy>p:not(.kicker),
main .location-card p,
main .service-slab p,
main .catalog-row p,
main .product-group p,
main .decision-card p,
main .flow-step p,
main .editorial-card p,
main .trust-card span{
  color:var(--cm-dark-text)!important;
}

main .section .kicker,
main .section-head .kicker,
main .assurance-copy .kicker,
main .locations-layout .kicker,
main .product-group .kicker,
main .editorial-card .kicker{
  color:var(--cm-dark-accent)!important;
}

main .location-card .location-card__address,
main .catalog-row__lead{
  color:var(--cm-dark-heading)!important;
}

main .catalog-row>a,
main .text-link,
main .decision-card b,
main .flow-step a{
  color:var(--cm-dark-accent)!important;
}

/* Superficies: sin blancos/plateados heredados del tema claro. */
main .section--soft{
  background:rgba(7,22,38,.42)!important;
  border-color:var(--cm-dark-line)!important;
}

main .service-strip,
main .service-slab,
main .catalog-row,
main .product-group{
  border-color:var(--cm-dark-line)!important;
}

main .service-slab{
  background:transparent!important;
  box-shadow:none!important;
}

main .service-slab:hover,
main .service-slab:active,
main .service-slab:focus-within{
  padding-left:0!important;
  background:rgba(35,105,155,.09)!important;
  box-shadow:none!important;
  transform:none!important;
}

main .product-group__items article{
  background:transparent!important;
  border-color:var(--cm-dark-line)!important;
  box-shadow:none!important;
}

main .location-card,
main .flow-step,
main .decision-card:not(.decision-card--accent),
main .contact-facts>*,
main .editorial-card:not(.editorial-card--wide),
main .premium-form{
  background:var(--cm-dark-surface)!important;
  border-color:var(--cm-dark-line)!important;
}

/* Seguros: los números son pasos, no decoración; deben permanecer visibles. */
main .flow-step>span{
  display:block!important;
  color:var(--cm-dark-accent)!important;
  font-size:1.35rem!important;
  line-height:1!important;
  margin-bottom:10px!important;
}

/* Formulario oscuro por fuera, controles claros por dentro. */
main .premium-form label{
  color:var(--cm-dark-heading)!important;
}

main .premium-form input,
main .premium-form select,
main .premium-form textarea{
  color:#223247!important;
  background:#f8fbfd!important;
  border-color:#c9d6e3!important;
}

main .premium-form input:focus,
main .premium-form select:focus,
main .premium-form textarea:focus{
  color:#223247!important;
  background:#fff!important;
}

main .form-status--ok{color:#67d8a8!important}
main .form-status--error{color:#ff7676!important}

/* Botones blancos conservan texto oscuro por contraste. */
main .btn--outline,
main .btn--white{
  color:var(--cm-blue-900)!important;
}

/* Home: tres aseguradoras apiladas y compactas. */
main .assurance-layout .insurer-cloud[data-insurer-cloud]{
  display:flex!important;
  flex-flow:column nowrap!important;
  align-items:stretch!important;
  justify-content:center!important;
  gap:10px!important;
  width:240px!important;
  max-width:100%!important;
  min-height:0!important;
  margin:0 auto!important;
  overflow:visible!important;
}

main .assurance-layout .insurer-cloud[data-insurer-cloud] .cm-insurer-v4,
main .assurance-layout .insurer-cloud[data-insurer-cloud] .cm-insurer-v4--more{
  flex:0 0 auto!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:auto!important;
  min-height:44px!important;
  aspect-ratio:auto!important;
  margin:0!important;
  padding:9px 16px!important;
  border-radius:999px!important;
}

/* Página Seguros: vuelve a ser una nube horizontal amplia. */
main .insurer-cloud--wide[data-insurer-cloud]{
  display:flex!important;
  flex-flow:row wrap!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  width:100%!important;
  max-width:none!important;
  min-height:46px!important;
  overflow:visible!important;
}

main .insurer-cloud--wide[data-insurer-cloud] .cm-insurer-v4{
  flex:0 0 var(--cm-insurer-v4-width)!important;
  width:var(--cm-insurer-v4-width)!important;
  min-width:var(--cm-insurer-v4-width)!important;
  max-width:var(--cm-insurer-v4-width)!important;
  height:44px!important;
  padding:0 15px!important;
}

/* La transición no debe dejar una cápsula visualmente vacía por casi 2 s. */
main .cm-insurer-v4__label{
  transition:opacity .42s cubic-bezier(.4,0,.2,1),filter .42s cubic-bezier(.4,0,.2,1)!important;
}

@media(max-width:720px){
  main .section h1,
  main .section h2,
  main .section h3,
  main .section p{
    color:inherit;
  }

  main .section h1,
  main .section h2,
  main .section h3{
    color:var(--cm-dark-heading)!important;
  }

  main .section p{
    color:var(--cm-dark-text)!important;
  }

  main .section .kicker{
    color:var(--cm-dark-accent)!important;
  }
}

/* CM_HOME_DENSIDAD_FINAL_V1 */
@media(min-width:721px){

  .hero-premium{
    min-height:500px!important;
  }

  .hero-premium__content{
    padding:38px 0 44px!important;
  }

  .hero-premium__actions{
    margin-top:18px!important;
  }

  .hero-premium__proof{
    margin-top:24px!important;
    gap:12px!important;
  }

  .hero-premium__proof div{
    padding:14px 16px 13px!important;
  }

  .trust-ribbon__grid{
    gap:12px!important;
  }

  .trust-card{
    padding:14px 16px!important;
    gap:14px!important;
  }

  .home-section{
    padding:26px 0!important;
  }

  .home-section .section-head{
    margin-bottom:20px!important;
  }

  .home-section .section-head .kicker{
    margin-bottom:6px!important;
  }

  .home-section .section-head h2{
    margin-bottom:8px!important;
  }

  .home-section .section-head>p:last-child{
    margin-bottom:0!important;
  }

  .decision-grid{
    gap:12px!important;
  }

  .decision-card{
    min-height:220px!important;
    padding:20px!important;
  }

  .decision-card__index{
    top:18px!important;
    left:20px!important;
  }

  .split-showcase{
    gap:36px!important;
  }

  .spec-panel div{
    padding:14px!important;
  }

  .service-slab{
    padding:14px 0!important;
  }

  .section-footer-action{
    margin-top:16px!important;
  }

  .assurance-layout{
    gap:30px!important;
  }

  .location-grid{
    gap:12px!important;
  }

  .location-card{
    padding:18px!important;
  }

  .final-cta{
    padding:34px 0!important;
  }
}

/* CM_SIN_NUMEROS_DECORATIVOS_FINAL */
main .flow-step>span,.decision-card__index,.catalog-row__index,.spec-panel>div>span{display:none!important}
main .flow-step{padding-top:18px!important}main .flow-step h2{margin-top:0!important}
