/* Fuente global por defecto */
body {
  font-family: 'Urbanist', sans-serif;
}

/* Fuente para títulos y subtítulos */
.font-urbanist {
  font-family: 'Urbanist', sans-serif;
}

/* Fuente para textos normales o secundarios */
.font-jost {
  font-family: 'Jost', sans-serif;
}

/* Fuente cursiva/decorativa */
.font-rambler {
  font-family: 'The Rambler', cursive;
}


/* style header.php */
.imgCarrousel {
  background-size: cover;
  background-repeat: no-repeat;
  height: 100vh;
}

.paddingCarrousel {
  padding-left: 11%;
  padding-top: 32%;
}

.paddingCarrousel2 {
  padding-left: 11%;
  padding-top: 32%;
}

.banner img {
  max-height: 100vh;
  /* La imagen no excede la altura de la pantalla */
  object-fit: cover;
  /* La imagen se adapta sin deformarse */
}


/* end header.php  */

.imgBg2 {
  background-image: url(../images/servicios_autoffice.png);
  height: 100vh;
  background-size: cover;
  background-repeat: no-repeat;
  /* background-position: center; */
}

.imgReferido {
  margin: 0;
  /* Elimina el margen */
  padding: 0;
  /* Elimina el padding */
  width: 100%;
  /* Asegúrate de que el contenedor ocupe todo el ancho */
  overflow: hidden;
  /* Oculta cualquier contenido desbordado */
}

.img-fluid {
  width: 100%;
  /* Asegura que la imagen ocupe todo el ancho del contenedor */
  height: auto;
  /* Mantiene la proporción de la imagen */
}

.containerMain {
  height: 100vh;
}

:root {
  --color-blanco: #ffffff;
  --color-green: #0f9347;
  --color-green-light: #6aaa72;
  --color-green-secondary: #5cc860;
  --color-purple: #3a498c;
  --color-purple-light: rgba(58, 73, 140, 0.6);
  --color-dark: #333333;
  --color-grey: #e0e0e0;
  --color-grey2: #efefef;
  --color-grey3: #444444;
  --color-black: #000000;
  --color-grey-bg: #f8f9fa;
}

.section-grey {
  background: var(--color-grey-bg);
}

.color-white {
  color: var(--color-blanco);
}

.color-black {
  color: var(--color-black);
}

.color-green-primary {
  color: var(--color-green);
}

.color-dark {
  color: var(--color-dark);
}

.color-grey {
  color: var(--color-grey);
}

.color-grey3 {
  color: var(--color-grey3);
}

.color-green {
  color: var(--color-green-light);
}

.color-green-secondary {
  color: var(--color-green-secondary);
}

.color-purple {
  color: var(--color-purple);
}

.bgc-black {
  background-color: var(--color-black);
}

.bgc-grey2 {
  background-color: var(--color-grey2);
}

.bgc-purple {
  background-color: var(--color-purple);
}

.bgc-purple-light {
  background-color: var(--color-purple-light);
}

.bgc-green {
  background-color: var(--color-green-light);
}

.bgc-green-secondary {
  background-color: var(--color-green-secondary);
  color: white;
}

.bgc-green-secondary:hover {
  background-color: var(--color-green);
  color: white;
}

.button-green {
  background-color: var(--color-green-light);
  color: var(--color-blanco);
  border: none;
  padding: 1% 2%;
  border-radius: 25px;
}

.button-green:hover {
  background-color: var(--color-green);
}

.button-style {
  color: var(--color-blanco);
  border: none;
  padding: 5px 60px;
  border-radius: 8px;
}

.word-break {
  display: block;
  /* Cada palabra se mostrará en una nueva línea */
}

.width-icons {
  width: 40px;
}

.width-icons-services {
  width: 40%;
  transition: transform 0.7s ease, box-shadow 0.3s ease;
}

.width-icons-services:hover {
  transform: scale(1.1);
}

.width-icons-s:hover {
  transform: scale(1.1);
}

.width-icons-s {
  transition: transform 0.7s ease, box-shadow 0.3s ease;
}

.widthImage {
  width: 70%;
  height: 70%;
}

.widthImageAbout {
  display: block;
  width: 80%;
  /* se ajusta al contenedor */
  transform: scale(1.2) translateX(-5%);
  /* crece 20% visualmente sin expandir caja */
  transform-origin: center;
  /* el punto de escala está centrado */
}

@media (max-width: 991px) {
  .widthImageAbout {
    width: 100%;
    /* vuelve a normal en pantallas pequeñas */
    transform: none;
  }
}

.pt-cs {
  padding-top: 8%;
}

.pr-cs {
  padding-right: 6%;
}

.fs-80 {
  font-size: 80px;
}

.fs-42 {
  font-size: 42px;
}

.fs-38 {
  font-size: 38px;
}

.fs-36 {
  font-size: 36px;
}

.fs-32 {
  font-size: 32px;
}

.fs-28 {
  font-size: 28px;
}

.fs-26 {
  font-size: 26px;
}

.fs-24 {
  font-size: 24px;
}

.fs-22 {
  font-size: 22px;
}

.fs-20 {
  font-size: 20px;
}

.fs-18 {
  font-size: 18px;
}

.fs-16 {
  font-size: 16px;
}

.fs-15 {
  font-size: 15px;
}

.fs-14 {
  font-size: 14px;
}

.fs-13 {
  font-size: 13px;
}

.fs-12 {
  font-size: 12px;
}

.fs-11 {
  font-size: 11px;
}

.fs-10 {
  font-size: 10px;
}

.fs-9 {
  font-size: 9px;
}

.container-border {
  border: 1px solid #ccc;
  border-radius: 8px;
  position: relative;
  height: 90%;
}

.container-border2 {
  border-radius: 20px;
  position: relative;
  height: 95%;
  width: 60%;
}

.icon-container {
  width: 40px;
  height: 40px;
  padding: 8px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.hr-class {
  width: 70%;
  margin: auto;
}


/* style descuento */

.discount-value {
  font-size: 3rem;
  color: var(--color-green-light);
  font-weight: bold;
  line-height: 1;
}

.discount-percent {
  font-size: 1.2rem;
  color: var(--color-green-light);
  font-weight: bold;
  margin-left: 5px;
  line-height: 1;
}

.discount-text {
  background-color: var(--color-green-light);
  color: white;
  padding: 1px 4px;
  font-weight: bold;
  font-size: 12px;
  border-radius: 25px;
  display: inline-block;
}

.lh {
  line-height: 9px;
}

.lh1 {
  line-height: 40px;
}

.lh2 {
  line-height: 0px;
}

.lh-100 {
  line-height: 100%;
}

.input-info {
  height: auto;
}

.txtarea {
  border: 1px solid var(--color-purple);
  border-radius: 8px;
  padding: 10px;
}

.imgEquipo {
  /* width: 70%; */
  width: 100%;
}

a {
  text-decoration: none;
  /* Elimina el subrayado de los enlaces */
}

.imgMantente {
  width: 130px;
  height: 130px;
  border-radius: 70px;
  border: 1px solid #ffffff;
  background-color: #ffffff;
  padding: 10px;
  background-size: cover;
}

.cntInfo {
  margin-top: 7%;
  gap: 5px;
}

.containerContactInfo {
  padding-top: 90px;
}


/* ---- Animación de fade-in-up ---- */

.fade-in-up {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-in-up.visible {
  opacity: 1;
  transform: translateY(0);
}


/* ----------- bara de navegacion -------------  */

.dropdown-submenu .dropdown-menu {
  display: none;
}

.dropdown-submenu .dropdown-menu.show {
  display: block;
}

.dropdown-item {
  color: white;
}

.dropdown-item:hover {
  background-color: var(--color-purple);
  color: white;
}

.btn.bgc-purple:hover {
  opacity: 1 !important;
  background-color: var(--color-purple-light);
  transform: scale(1.03);
  transition: all 0.2s ease-in-out;
}

.bg-transparent-dark {
  background-color: rgba(0, 0, 0, 0.5);
}


/* Estilos personalizados para el menú hamburguesa */

.navbar-collapse.show {
  background-color: var(--color-purple);
}


/* -----------contactanos --------    */

.containerContactInfo {
  text-align: center;
}

.icon {
  font-size: 1.5rem;
}

.social-icon {
  font-size: 2rem;
}

.imgDisfruta {
  width: 50%;
  margin-top: -12%;
}


/* ------------- estilos de landing page -------------  */

.formGana {
  padding: 0 11%;
}

.imgBgLanding {
  background-image: url(../images/landing/banner_servicios_autoffice.png);
  height: 100vh;
  background-size: cover;
  background-repeat: no-repeat;
}

.imgFormRef {
  top: 4%;
  right: 13%;
  width: 30%;
}


/* estilo formulario  */


/* Estilo del botón deshabilitado */

button:disabled {
  background-color: #ccc;
  /* Color gris para deshabilitado */
  cursor: not-allowed;
  /* Cursor no permitido */
}


/* Estilo del botón habilitado */

button {
  background-color: var(--color-purple);
  color: white;
  transition: background-color 0.3s ease;
}


/* Estilo adicional cuando el botón está en hover */

button:hover:enabled {
  background-color: var(--color-purple-light);
}


/* referir.php  */

.py-ref {
  padding: 10% 0%;
}

.br-ref {
  border-radius: 8px;
  border: #f0eeee solid 2px;
  width: 48%;
}

.margin-ref {
  margin-right: 3%;
}

.margin-ref2 {
  margin-top: 3%;
}

.img-ref {
  width: 20%;
}

.login-ref {
  background-color: #f2f2f2;
  border: 1px solid #cdcccc;
}

.nav-item.dropdown:hover .dropdown-menu {
  display: block;
  margin-top: 0;
}

.nav-item.dropdown>a.nav-link::after {
  content: " ▼";
  font-size: 0.65em;
  margin-left: 4px;
  vertical-align: middle;
  opacity: 0.7;
  transition: transform 0.2s ease;
}

/* Rotación al hacer hover (efecto visual sutil) */
.nav-item.dropdown:hover>a.nav-link::after {
  transform: rotate(180deg);
  opacity: 1;
}

/* Servicios */
.service-card {
  width: 80%;
  margin: 0 auto;
  border: 2px solid var(--color-dark);
  border-radius: 10px;
  padding: 30px;
  /* más separación interna que el p-3 */
  background-color: var(--color-blanco);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.service-card a {
  display: inline-block;
  margin-top: 15px;
  /* distancia con el texto */
  margin-bottom: 15px;
  /* respiro inferior */
}

.service-card:hover {
  border-color: var(--color-green);
  /* usa tu verde global */
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.ins-icon {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 12px;
}

.ins-icon img {
  width: 85px;
  height: 85px;
  object-fit: contain;
}

.ins-icon2 img {
  width: 64px;
  height: 64px;
  object-fit: contain;
  justify-content: center;
  display: flex;
  margin-bottom: 10px;
}

/* Banner DMV */
.banner-dmv {
  background-color: var(--color-purple);
  color: var(--color-blanco);
}

.icon-circle {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background-color: var(--color-blanco);
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  color: var(--color-green);
  text-align: start;
  margin-bottom: 5%;
}

.icon-circle img {
  display: block;
  margin: 0 auto;
  width: 120%;
  height: 120%;
  margin-right: 5%;
}

/* ===== Sección de planes ===== */
#plans .container {
  max-width: 1100px;
}

/* tarjeta */
.plan-card {
  background: var(--color-blanco);
  border: 1px solid #e6e6e6;
  border-radius: 18px;
  padding: 26px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  /* fuerza que todas midan lo mismo */
  transition: all 0.3s ease;
  color: var(--color-dark);
}

/* precio */
.plan-price {
  font-weight: 700;
  font-size: 30px;
  line-height: 1;
  color: var(--color-dark);
}


/* excepción para "Cotización personalizada" */
.plan-price .custom-price {
  font-size: 20px;
  /* más pequeño que los precios normales */
  font-weight: 700;
  /* un poco más ligero */
}

.plan-price .price-note {
  font-size: 16px;
  font-weight: 500;
  color: var(--color-grey3);
  margin-left: 8px;
}

/* título y descripción */
.plan-name {
  margin-top: 10px;
  font-size: 18px;
  color: var(--color-dark);
}

.plan-desc {
  margin-top: 10px;
  color: var(--color-grey3);
}

/* línea separadora por defecto */
.plan-divider {
  border: 0;
  border-top: 1px solid #999;
  /* gris más oscuro en estado normal */
  margin: 18px 0;
  transition: border-color 0.3s ease;
  /* animación suave */
}

/* en hover de la tarjeta, línea verde */
.plan-card:hover .plan-divider {
  border-top: 1px solid var(--color-green) !important;
}

/* lista de features */
.plan-features li {
  position: relative;
  padding-left: 26px;
  margin-bottom: 10px;
  color: var(--color-dark);
  font-size: 16px;
  line-height: 1.4;
}

.plan-features li::before {
  content: "";
  width: 10px;
  height: 10px;
  background: var(--color-green);
  border-radius: 50%;
  position: absolute;
  left: 0;
  top: 6px;
}

/* botón */
a.btn-quote {
  background: var(--color-green);
  color: var(--color-blanco);
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  line-height: 1 !important;
  padding: 12px 24px;
  font-weight: 600;
  text-decoration: none;
  border-radius: 8px;
  border: none;
  vertical-align: middle;
  transition: background 0.3s ease;
}

a.btn-quote i {
  position: relative;
  top: 0.5px;
  /* opcional: ajusta fino el ícono si queda descentrado */
}

/* hover */
.plan-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
  background-color: var(--color-purple);
  border-color: var(--color-purple);
  color: #fff;
}

.plan-card:hover .plan-price,
.plan-card:hover .plan-price .price-note,
.plan-card:hover .plan-name,
.plan-card:hover .plan-desc,
.plan-card:hover .plan-features li {
  color: #fff;
}

.plan-card:hover .plan-features li::before {
  background: var(--color-green);
}

.plan-card:hover .plan-divider {
  border-top-color: rgba(255, 255, 255, 0.6);
  /* línea clara visible en hover */
}

.plan-card:hover .btn-quote {
  background: var(--color-green);
  color: var(--color-blanco);
}

/* ===== Sección Por Qué Elegirnos ===== */
#why-choose {
  background: var(--color-purple);
  color: var(--color-blanco);
  padding: 100px 0;
  /* agrega más espacio vertical si quieres más respiro */
}

#why-choose .container {
  max-width: 1600px;
  /* o 1400px si quieres aún más ancho */
}

#why-choose .why-item {
  display: flex;
  align-items: flex-start;
  margin-left: 15px;
  gap: 10px;
  /* separa más el ícono del texto */
}

#why-choose .why-icon {
  width: 80px;
  /* antes 52px */
  height: 80px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  color: #fff;
  flex-shrink: 0;
}

#why-choose .why-icon img {
  width: 100px !important;
  /* antes 64px */
  height: 100px !important;
}

#why-choose .why-title {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 6px;
  color: #fff;
}

#why-choose .why-text {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.9);
  margin: 0;
  line-height: 1.4;
}

@media (max-width: 992px) {
  #why-choose .container {
    max-width: 95%;
    /* mantiene proporción en pantallas medianas */
  }
}

@media (max-width: 768px) {
  #why-choose .why-item {
    flex-direction: row;
    text-align: left;
    gap: 12px;
  }
}

/* ===== Team section (cards) ===== */
#team .container {
  max-width: 1100px;
}

/* Header */
#team .section-sub {
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: none;
}

#team .section-title {
  margin-top: .2rem;
  margin-bottom: 1.6rem;
}

/* Card base */
.team-card {
  background: var(--color-blanco);
  border-radius: 18px;
  border: 1px solid #f0f0f0;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.04);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0;
  /* el padding lo controla el interior */
  height: 100%;
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

/* Foto */
.team-photo {
  width: 100%;
  max-width: 320px;
  /* controla el ancho de la foto dentro de la tarjeta */
  margin: 22px auto 6px;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: none;
}

.team-photo img {
  display: block;
  width: 100%;
  height: 240px;
  /* altura visual parecida a la imagen de referencia */
  object-fit: cover;
}

/* Cuerpo (nombre, rol, botones) */
.team-body {
  padding: 18px 22px 28px;
  /* separación interior generosa */
  text-align: center;
  width: 100%;
  box-sizing: border-box;
}

/* social buttons */
.team-social {
  display: flex;
  gap: 12px;
  justify-content: center;
}

.social-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--color-green);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  font-size: 18px;
  box-shadow: 0 6px 14px rgba(15, 23, 42, 0.06);
  transition: transform .18s ease, box-shadow .18s ease;
}

.social-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.10);
}

/* Hover en tarjeta: elevación y borde verde */
.team-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 22px 46px rgba(15, 23, 42, 0.09);
  border-color: var(--color-green);
}

/* Mantener iconos blancos cuando la tarjeta está en hover */
.team-card:hover .social-btn {
  background: var(--color-green);
  color: #fff;
}

/* Forzar que las columnas con d-flex se estiren igual */
.row.align-items-stretch>.col-lg-4.d-flex,
.row.align-items-stretch>.col-md-6.d-flex {
  display: flex;
}

/* responsive */
@media (max-width: 992px) {
  .team-photo img {
    height: 220px;
  }

  .team-name {
    font-size: 17px;
  }
}

@media (max-width: 576px) {
  #team .container {
    padding-left: 18px;
    padding-right: 18px;
  }

  .team-photo img {
    height: 200px;
  }

  .team-card {
    border-radius: 12px;
  }

  .social-btn {
    width: 40px;
    height: 40px;
  }
}


/* ==== Sección de Testimonios ==== */
#testimonios .section-sub {
  font-weight: 600;
  letter-spacing: 0.06em;
}

#testimonios .section-title {
  margin-top: 0.2rem;
  margin-bottom: 1.6rem;
}

/* Contenedor principal */
.testimonial-content {
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
  position: relative;
  transition: opacity 0.6s ease;
  padding: 40px 20px;
}

/* Comilla decorativa flotante a la izquierda */
.quote-icon {
  position: absolute;
  top: 20px;
  left: 0;
  font-size: 64px;
  color: var(--color-purple);
  opacity: 0.9;
  animation: floatQuote 4s ease-in-out infinite;
  pointer-events: none;
}

/* Animación flotante suave */
@keyframes floatQuote {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-6px);
  }
}

/* Contenido textual centrado */
.testimonial-text-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

/* Estrellas */
.testimonial-stars i {
  font-size: 20px;
  color: var(--color-green);
  margin-bottom: 12px;
}

/* Texto del testimonio */
#testimonial-text {
  font-size: 17px;
  font-style: italic;
  line-height: 1.6;
  color: var(--color-dark);
  margin-bottom: 18px;
  max-width: 80%;
}

/* Autor */
#testimonial-author {
  font-size: 18px;
  font-weight: 700;
  color: #111;
  margin-bottom: 4px;
}

/* Rol */
#testimonial-role {
  font-size: 14px;
  color: var(--color-grey3);
}

/* Navegación con puntos */
.testimonial-dots {
  margin-top: 28px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  font-size: 18px;
}


.testimonial-dots .dot {
  width: 12px;
  height: 12px;
  background-color: #ccc;
  border-radius: 50%;
  display: inline-block;
  cursor: pointer;
  transition: all 0.3s ease;
  font-size: 18px;
}

.testimonial-dots .dot:hover {
  background-color: var(--color-green);
  transform: scale(1.15);
}

.testimonial-dots .dot.active {
  background-color: var(--color-green);
  transform: scale(1.25);
}

/* Animaciones de cambio */
.testimonial-content.fade-out {
  opacity: 0;
}

.testimonial-content.fade-in {
  opacity: 1;
}

/* Responsive */
@media (max-width: 768px) {
  .quote-icon {
    font-size: 44px;
    top: 10px;
    left: 10px;
  }

  #testimonial-text {
    font-size: 15px;
    max-width: 90%;
  }

  #testimonial-author {
    font-size: 16px;
  }

  #testimonial-role {
    font-size: 13px;
  }

  .testimonial-dots .dot {
    width: 10px;
    height: 10px;
  }
}


/* ==== Sección de Cotización ==== */
.quote-section {
  background: var(--color-white);
}

.quote-form .form-control,
.quote-form .form-select {
  border-radius: 12px;
  border: 1px solid var(--color-grey2);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  transition: all 0.2s ease;
  padding: 10px 14px;
  font-size: 14px;
}

.quote-form .form-control:focus,
.quote-form .form-select:focus {
  border-color: var(--color-green);
  box-shadow: 0 0 0 0.25rem rgba(0, 200, 83, 0.25);
}

/* Botón */
.quote-form .btn-success {
  background: var(--color-green);
  border-radius: 10px;
  font-weight: 600;
  border: none;
  transition: all 0.3s ease;
}

.quote-form .btn-success:hover {
  background: var(--color-green-secondary);
  transform: translateY(-2px);
}

/* Checkbox alineado */
.quote-form input[type="checkbox"] {
  width: 18px;
  height: 18px;
  cursor: pointer;
}

.quote-form label {
  margin: 0;
}

.quote-form .form-control,
.quote-form .form-select,
.quote-form textarea {
  padding: 14px 18px;
  /* más espacio interno */
  font-size: 16px;
  /* texto más grande */
}

.quote-section {
  padding: 80px 40px;
  /* arriba/abajo 80px, lados 40px */
}

/* Más espacio dentro del formulario */
.quote-form {
  padding: 40px;
  /* aumenta el relleno interno del formulario */
}

/* Modal */
.modal-content {
  border-radius: 16px;
}

.modal-body {
  line-height: 1.6;
}

/* Responsivo */
@media (max-width: 768px) {
  .quote-form .col-md-4 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .quote-form .d-flex.justify-content-between {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ==== Footer ==== */
.site-footer {
  background-color: var(--color-purple);
  /* azul */
  color: var(--color-blanco);
}

.site-footer h5 {
  font-size: 22px;
  margin-bottom: 16px;
  font-weight: 700;
  color: var(--color-blanco);
}

/* Texto general */
.site-footer p,
.site-footer li,
.site-footer a {
  font-size: 16px;
  color: var(--color-blanco);
  line-height: 1.8;
  transition: color 0.3s ease;
}

.copy-footer {
  font-size: 14px !important;
}

.site-footer a {
  text-decoration: none;
}

.site-footer a:hover {
  color: var(--color-green);
}

/* Useful Links con viñetas */
.footer-links {
  padding-left: 0;
  list-style: none;
}

.footer-links li {
  margin-bottom: 8px;
  display: flex;
  align-items: center;
}

.footer-links .bullet {
  display: inline-block;
  width: 6px;
  height: 6px;
  background: var(--color-blanco);
  border-radius: 50%;
  margin-right: 10px;
  flex-shrink: 0;
}

/* Contacto */
.footer-contact {
  padding-left: 0;
  list-style: none;
}

.footer-contact li {
  margin-bottom: 10px;
  display: flex;
  align-items: flex-start;
  color: var(--color-blanco);
}

.footer-contact i {
  color: var(--color-green);
  font-size: 18px;
  margin-right: 8px;
  margin-top: 3px;
}

/* Redes sociales */
.social-icon {
  background: var(--color-green);
  color: var(--color-blanco);
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: all 0.3s ease;
  font-size: 18px;
}

.social-icon:hover {
  background: var(--color-blanco);
  color: var(--color-green);
}

/* Línea separadora */
.footer-divider {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  margin-top: 30px;
}

/* Copyright */
.footer-bottom {
  background-color: var(--color-purple);
  /* mismo fondo */
  color: var(--color-blanco);
  font-size: 13px;
}

/* Responsividad */
@media (max-width: 992px) {
  .footer-links {
    justify-content: center;
  }

  .site-footer {
    text-align: center;
    /* centrado solo en móvil */
  }

  .footer-contact li {
    justify-content: center;
  }

  .social-icon {
    margin: 0 auto;
  }
}

/* ==== Ajustes de distribución para el footer ==== */
.site-footer .row {
  justify-content: space-between;
  align-items: flex-start;
}

.site-footer .col-lg-2,
.site-footer .col-lg-3 {
  min-width: 220px;
  /* asegura ancho mínimo uniforme */
}

.site-footer .col-lg-2 p {
  max-width: 250px;
  /* evita que el texto se desborde */
}

/* Ajuste de espaciado horizontal */
.site-footer .col-lg-3:not(:last-child) {
  margin-right: 20px;
}

/* Centrado de íconos en la última columna */
.site-footer .social-icon {
  margin-right: 10px;
}

/* ==== Footer Responsive: alinear todo a la izquierda excepto el copyright ==== */
@media (max-width: 992px) {
  .site-footer {
    text-align: start;
  }

  .site-footer .col-lg-2,
  .site-footer .col-lg-3 {
    text-align: start;
  }

  .site-footer .footer-links,
  .site-footer .footer-contact {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    padding-left: 0;
    margin: 0;
  }

  .site-footer .footer-links li,
  .site-footer .footer-contact li {
    justify-content: flex-start;
  }

  .site-footer .social-icon {
    margin: 0;
  }

  .footer-bottom {
    text-align: center;
  }
}



/* ==== Estilos del carrusel con texto en posición original ==== */
.carousel-caption-custom {
  position: absolute;
  top: 50%;
  left: 11%;
  transform: translateY(-50%);
  width: 45%;
  text-align: left;
  z-index: 5;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.carousel-caption-custom {
  margin: 0;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: none;
  font-weight: 600;
  line-height: 1;
}

.carousel-caption-custom h1 {
  margin: 0;
  font-size: 60px;
  line-height: 1.08;
  letter-spacing: -0.01em;
  font-weight: 800;
  margin-top: 6px;
  margin-bottom: 6px;
}

.carousel-caption-custom p {
  margin: 0;
  font-size: 18px;
  line-height: 1.5;
  max-width: 70%;
  margin-bottom: 12px;
}

.carousel-caption-custom .cta-btn-responsive {
  margin-top: 0;
  display: flex;
  gap: 12px;
}

.carousel-caption-custom .btn-quote {
  padding: 12px 18px;
  font-size: 16px;
  border-radius: 8px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  white-space: nowrap;
  line-height: 1.2;
}

@media (max-width: 992px) {
  .carousel-caption-custom {
    top: 50%;
    left: 7%;
    width: 75%;
    transform: translateY(-50%);
  }

  .carousel-caption-custom h1 {
    font-size: 34px;
  }

  .carousel-caption-custom p {
    font-size: 15px;
    max-width: 100%;
  }

  .carousel-caption-custom h6 {
    font-size: 12px;
  }
}

@media (max-width: 576px) {
  .carousel-caption-custom {
    top: 55%;
    left: 6%;
    width: 88%;
    transform: translateY(-50%);
    padding-right: 6%;
  }

  .carousel-caption-custom h1 {
    font-size: 26px;
    line-height: 1.12;
  }

  .carousel-caption-custom p {
    font-size: 14px;
    margin-bottom: 10px;
  }

  .carousel-caption-custom .btn-quote {
    padding: 10px 14px;
    font-size: 15px;
  }
}

.carousel-item.imgCarrousel {
  min-height: 520px;
  background-size: cover;
  background-position: center;
}

/* ==== Banner flotante sobre el carrusel ==== */
.banner-flotante {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  width: 70%;
}

button.btn-quote {
  background: var(--color-green);
  color: var(--color-blanco);
  padding: 12px 18px;
  border-radius: 8px;
  font-weight: 600;
  border: none;
  transition: background 0.3s ease;
  cursor: pointer;
}

button.btn-quote:hover {
  background: var(--color-green-secondary);
  color: var(--color-blanco);
}

/* === Selector de idioma === */
.btn-lang {
  background-color: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: var(--color-blanco);
  padding: 6px 14px;
  border-radius: 30px;
  font-weight: 500;
  font-size: 0.9rem;
  transition: all 0.3s ease;
}

.btn-lang:hover {
  background-color: rgba(255, 255, 255, 0.25);
  border-color: rgba(255, 255, 255, 0.5);
  color: var(--color-blanco);
}

.btn-lang i.fa-globe {
  font-size: 1.1rem;
}

.btn-lang i.fa-chevron-down {
  font-size: 0.7rem;
  opacity: 0.8;
}

/* Dropdown */
.lang-menu {
  border: none;
  border-radius: 12px;
  overflow: hidden;
  min-width: 150px;
}

.lang-menu .dropdown-item {
  color: var(--color-blanco);
  font-weight: 500;
  padding: 8px 14px;
}

.lang-menu .dropdown-item:hover {
  background-color: rgba(255, 255, 255, 0.15);
}

.lang-menu img {
  border-radius: 3px;
}

.lang-dropdown.show>.btn-lang,
.lang-dropdown.show>.btn-lang:focus,
.lang-dropdown.show>.btn-lang:active,
.lang-dropdown.show>.btn-lang[aria-expanded="true"] {
  color: var(--color-blanco) !important;
  background-color: rgba(255, 255, 255, 0.15) !important;
  border-color: rgba(255, 255, 255, 0.3) !important;
  box-shadow: none !important;
}

/* Alternativa / adicional: cuando el botón tenga aria-expanded="true" (accesibilidad / keyboard) */
.btn-lang[aria-expanded="true"] {
  color: var(--color-blanco) !important;
  background-color: rgba(255, 255, 255, 0.15) !important;
  border-color: rgba(255, 255, 255, 0.3) !important;
}

/* Asegurar que el texto interno (span.lang-text y iconos) hereden el color */
.lang-dropdown.show .btn-lang .lang-text,
.lang-dropdown.show .btn-lang i {
  color: var(--color-blanco) !important;
}

/* Rotar la flecha cuando el menú está abierto (agradito visual) */
.lang-dropdown .fa-chevron-down {
  transition: transform 0.22s ease, opacity 0.22s;
  transform-origin: center;
}

.lang-dropdown.show .fa-chevron-down,
.btn-lang[aria-expanded="true"] .fa-chevron-down {
  transform: rotate(180deg);
  opacity: 1;
}

/* Opcional: mantener la misma apariencia en foco/hover mientras está abierto */
.lang-dropdown.show>.btn-lang:hover,
.btn-lang[aria-expanded="true"]:hover {
  background-color: rgba(255, 255, 255, 0.18) !important;
  border-color: rgba(255, 255, 255, 0.35) !important;
}

/* Seguridad extra: evitar que Bootstrap cambie color mediante reglas muy específicas */
.dropdown.show .btn-lang,
.dropdown.show .btn-lang * {
  color: var(--color-blanco) !important;
}


.section-spacing {
  padding-top: 5rem;
  padding-bottom: 5rem;

  @media (min-width: 992px) {
    padding-top: 7rem;
    padding-bottom: 7rem;
  }
}

/* === OUR BLOG SECTION === */
#blog_index {
  background: var(--color-blanco);
}

/* Contenedor de tarjetas */
#blog_index .blog-card {
  background: var(--color-blanco);
  border: 1px solid #e6e6e6;
  border-radius: 18px;
  padding: 26px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  /* fuerza que todas midan lo mismo */
  transition: all 0.3s ease;
  color: var(--color-dark);
}

/* Hover */
#blog_index .blog-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
  background-color: var(--color-purple);
  border-color: var(--color-purple);
  color: var(--color-blanco);
}

/* Autor y avatar */
#blog_index .blog-author {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 1rem;
}

#blog_index .author-img {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
}

#blog_index .author-info {
  display: flex;
  flex-direction: column;
  font-size: 0.9rem;
  color: var(--color-dark);
}

#blog_index .author-name {
  color: var(--color-dark);
  font-weight: 600;
}

#blog_index .author-date {
  color: var(--color-dark);
  font-weight: 500;
}

/* Hover: cambia color de texto interno */
#blog_index .blog-card:hover .author-name,
#blog_index .blog-card:hover .author-date {
  color: #fff;
}

/* Títulos y texto */
#blog_index .blog-title {
  color: var(--color-dark);
  margin-bottom: 0.7rem;
}

#blog_index .blog-text {
  color: var(--color-dark);
  line-height: 1.6;
}

#blog_index .blog-card:hover .blog-title,
#blog_index .blog-card:hover .blog-text {
  color: var(--color-blanco);
}

/* Responsive */
@media (max-width: 992px) {
  #blog_index .col-md-3 {
    max-width: 100%;
    margin-bottom: 15px;
  }

  #blog_index .col-md-3:last-child {
    margin-bottom: 0;
  }
}


/* Estilos para los íconos del banner "why choose" */
#why-choose .why-item {
  background: transparent;
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0.5rem 0;
}

/* Íconos más grandes y alineados a la izquierda */
#why-choose .why-icon img {
  width: 70px;
  /* tamaño grande del ícono */
  height: 70px;
  object-fit: contain;
}

/* Ajuste del texto */
#why-choose .why-item h3 {
  margin-bottom: 0.25rem;
  line-height: 1.2;
}

#why-choose .why-item p {
  line-height: 1.3;
  color: var(--color-blanco);
}

/* Asegurar que todos los ítems tengan la misma altura */
#why-choose .col-md-4 {
  display: flex;
  align-items: stretch;
}

/* Responsivo: íconos más pequeños en móvil */
@media (max-width: 768px) {
  #why-choose .why-icon img {
    width: 45px;
    height: 45px;
  }

  #why-choose .why-item {
    align-items: flex-start;
  }
}

.carousel-caption-custom .btn-quote {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  background: var(--color-green);
  color: var(--color-blanco);
  padding: 12px 24px !important;
  font-size: 16px;
  font-weight: 600;
  border: none;
  border-radius: 8px;
  line-height: 1.2 !important;
  text-align: center !important;
  vertical-align: middle !important;
  cursor: pointer;
  transition: background 0.3s ease;
}

/* Hover */
.carousel-caption-custom .btn-quote:hover {
  background: var(--color-green-secondary);
  color: var(--color-blanco);
}

/* Asegura que el contenedor no lo desplace */
.carousel-caption-custom .cta-btn-responsive {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* === Checkbox fijo, alineado con el botón, mensaje debajo sin mover nada === */
.form-check {
  position: relative;
  /* base para colocar el mensaje en posición absoluta */
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  /* no empuja otros elementos */
}

/* Checkbox y label en línea */
.form-check-input {
  width: 1.05rem;
  height: 1.05rem;
  margin: 0;
  flex-shrink: 0;
  vertical-align: middle;
}

.form-check-label {
  margin: 0;
  color: var(--color-dark);
  vertical-align: middle;
}

/* Evita que Bootstrap pinte el label al validar */
.was-validated .form-check-input:invalid+.form-check-label,
.was-validated .form-check-input:valid+.form-check-label,
.form-check-input:checked+.form-check-label {
  color: var(--color-dark) !important;
}

/* Mensaje de error debajo del checkbox sin afectar layout */
.form-check .invalid-feedback {
  position: absolute;
  bottom: -2rem;
  /* coloca el mensaje justo debajo del checkbox */
  left: calc(1.05rem + 0.5rem);
  display: none;
  font-size: 0.85rem;
  color: #dc3545;
  white-space: normal;
  line-height: 1.2;
}

/* Mostrar mensaje solo si es inválido */
.was-validated .form-check-input:invalid~.invalid-feedback {
  display: block;
}


.subtitle-line {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.subtitle-line::before {
  content: "";
  display: inline-block;
  width: 75px;
  height: 2px;
  background-color: var(--color-green-secondary);
}


/* ESTILOS RESPONSIVE UNIFICADOS DE LOS BANNERS */
@media (max-width: 992px) {
  .banner-dmv .col-md-4 {
    text-align: center !important;
  }

  .banner-dmv .icon-circle {
    margin: 0 auto 15px auto;
  }
}

/* ====== NAVBAR ====== */

.nav-item.dropdown {
  position: relative;
}

/* Ocultar todos los submenus anidados por defecto */
.dropdown-menu .dropdown-menu {
  display: none !important;
  visibility: hidden;
  opacity: 0;
  position: absolute;
  top: 0;
  left: 100%;
  margin-left: 0;
  transition: opacity 0.2s ease;
  background: rgba(0, 0, 0, 0.4);
  min-width: 220px;
  z-index: 2000;
}

/* Mostrar solo el submenu del item actualmente en hover */
.dropdown-submenu:hover>.dropdown-menu,
.dropdown-submenu.show-submenu>.dropdown-menu {
  display: block !important;
  visibility: visible;
  opacity: 1;
}

/* Fondo del dropdown principal */
.dropdown-menu.bg-transparent-dark {
  background: rgba(0, 0, 0, 0.4);
  border: none;
}

/* Mejora visual: highlight del item activo */
.dropdown-submenu:hover>a {
  background-color: rgba(255, 255, 255, 0.1);
}

/* Corrige el z-index para evitar solapamiento */
.dropdown-menu>li {
  position: relative;
  z-index: 1000;
}

/* ====== RESPONSIVE ====== */
@media (max-width: 992px) {

  /* En móvil, los submenus se mostrarán en bloque al hacer click */
  .dropdown-menu .dropdown-menu {
    position: static;
    display: none !important;
    opacity: 1;
    visibility: visible;
    background: rgba(0, 0, 0, 0.85);
    margin-left: 1rem;
  }

  .dropdown-submenu.open>.dropdown-menu {
    display: block !important;
  }
}

/* ====== NAVBAR EXISTENTE ====== */
@media (max-width: 992px) {
  .navbar {
    background-color: var(--color-purple) !important;
    padding: 0.6rem 1rem;
  }

  .navbar-brand img {
    width: 85px;
  }

  .navbar-toggler {
    border: none;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 8px;
  }

  .navbar-toggler-icon {
    filter: invert(1);
    background-size: 60%;
  }

  .navbar-collapse.show {
    background-color: var(--color-purple);
    padding: 1rem 0;
  }

  .mobile-extra .btn,
  .mobile-extra .btn-lang {
    background: rgba(255, 255, 255, 0.15);
    color: white;
  }

  .mobile-extra .btn:hover,
  .mobile-extra .btn-lang:hover {
    background: rgba(255, 255, 255, 0.25);
  }
}