:root {
  /* Variables de color */
  --color-principal: #FF0054;
  --color-secundario: #343454;
  --color-acento: #ff006a;
  --color-amarillo: #FFB835;
}

/* --- TIPOGRAFÍA --- */
.title, .subtitle, .form-btn {
  font-family: "Zilla Slab", serif;
}

/* --- HEADER PRINCIPAL --- */
.header {
  min-height: 100vh;
  background: var(--img) center no-repeat;
  background-color: #cbfbfb; 
  background-size: cover;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: auto;
}

.navbar {
  z-index: 10;
  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
}

.hero-content {
  color: white;
  text-shadow: 6px 6px 10px rgba(0, 0, 0, 0.25);
  padding: 50px 0;
  z-index: 1;
  width: 50%;
}

.hero-content.d-block ul {
  background: #2aafe8;
  color: white;
  border-radius: 4px;
  padding: 1rem;
  padding-inline: 2rem;
}

.header h1 {
  font-size: 4rem;
  font-weight: bold;
}

.header h1 > span {
  background: var(--color-acento);
  padding-inline: 4px;
}

.header h2 {
  color: var(--color-secundario);
  background-color: white;
  text-shadow: none;
  font-weight: 800;
  display: inline;
  padding: 0.15rem;
  line-height: 1.5;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.header p {
  font-size: 2rem;
}

.description-img {
  min-width: 500px;
  max-width: 100%;
}

/* --- FORMULARIO (DESKTOP) --- */
#form-anc {
  position: absolute; 
  max-width: 450px;
  width: 100%;
  top: 10%;
  left: 55%;
  z-index: 20;
}

#form-anc.stopped {
  position: absolute !important;
}

.card-form .card-header {
  margin: 16px;
  text-align: center;
  background-color: white;
  color: var(--color-acento);
  font-weight: bold;
}

.input-group-text {
  height: 100%;
  border-radius: 4px 0px 0 4px;
}

.form-control-lg {
  font-size: 1rem;
  padding: 12px 16px;
}

label.error {
  color: red;
  font-size: 12px;
}

/* Estilos inputs form */
.input-line {
    border: none !important;
    border-bottom: 1px solid #ccc !important;
    border-radius: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-shadow: none !important;
}

.input-line:focus {
    border-bottom: 2px solid var(--color-principal) !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Botón del formulario */
.form-btn {
  background-color: var(--color-principal) !important;
  color: white;
  border-radius: 25px !important;
  width: 100%;
  max-width: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  font-size: 1.5rem;
  font-weight: 500;
  border: 0;
}

/* Textos pequeños del form */
form .form-check label a {
  color: var(--color-secundario);
  text-decoration: underline !important;
}

form label {
  color: var(--color-secundario);
  font-size: 12px;
}

form input[type="checkbox"] {
  border-radius: 2px !important;
}

form select {
  appearance: none;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  padding: 10px 40px 10px 15px !important;
  font-size: 16px !important;
  background-image: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 20 20'><polygon fill='%23961B61' points='0,0 20,0 10,10'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 10px center !important;
  background-size: 12px !important;
}

/* --- SECCIONES CONTENIDO --- */

/* Colores y Utilidades */
.bg-dark-blue { background-color: #343454; color: white; }
.text-dark-blue { color: #343454; }
.bg-yellow { background-color: #FFB81C; }
.bg-light-gray { background-color: #F6F6F6; }
.text-pink { color: var(--color-principal) !important; }

section h2 {
  color: var(--color-acento);
  font-size: 36px;
  font-weight: bolder;
}

.bullet-title {
  color: var(--color-secundario);
  font-weight: 600;
}

/* Sección 1: Características */
.text-underline-custom {
    border-bottom: 3px solid var(--color-principal);
    padding-bottom: 2px;
}

.card-image {
    background: var(--img) center no-repeat;
    background-size: cover;
    max-height: 310px;
    max-width: 380px;
    width: 380px;
    height: 310px;
}


/* Sección 2: Dark Blue */
.section-dark-blue .feature-list .icon-wrap {
    background-color: var(--color-secundario);
    min-width: 50px;
    display: flex;
    justify-content: center;
}

.section-3-title {
  font-size: 55px;
}

.feature-list{
  font-size: 20px;
}

.section-dark-blue{
  background-color: var(--color-secundario);
}

.section-yellow{
  background-color: var(--color-amarillo);
}

/* Sección 3: Yellow */
.custom-list-arrow i { color: #343454; }
.section-yellow h2 { color: #343454 !important; }

/* Sección 4: Innovación */
.section-innovation {
    position: relative;
}
.section-innovation .overlay {
    background: linear-gradient(90deg, rgba(52,52,84,0.9) 0%, rgba(52,52,84,0.6) 100%);
}

/* Sección 5: FAQ */
.accordion-item { border-bottom: 1px solid #ccc !important; }
.accordion-button:not(.collapsed) {
    color: var(--color-principal) !important;
    background-color: transparent !important;
    box-shadow: none !important;
}
.accordion-button:focus { box-shadow: none !important; }
.accordion-button::after { filter: grayscale(100%); }
.accordion-button:not(.collapsed)::after {
    filter: invert(18%) sepia(88%) saturate(2869%) hue-rotate(326deg) brightness(97%) contrast(106%);
}

/* --- FOOTER --- */
.footer {
    background: var(--color-secundario);
    color: #ffffff;
    padding: 10px 20px 30px;
    font-size: 13px;
}
.footer-content {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-end;
    gap: 20px;
}
.footer-links { display: flex; gap: 20px; flex-wrap: wrap; }
.footer-links a { color: #ffffff; text-decoration: none; }
.footer-links a:hover { color: #bdc3c7; }
.footer-logo-container { display: flex; justify-content: end; }
.footer-left { align-items: flex-end; }
.footer-left img { height: 50px; }
.footer-right { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; }
.footer-descuentate { display: flex; flex-wrap: wrap; padding: 8px 5px; }
.footer-logo { display: flex; align-items: center; gap: 10px; color: white; font-weight: 600; }

/* Cookie Consent */
.freeprivacypolicy-com---palette-light .cc-nb-okagree,
.freeprivacypolicy-com---palette-light .cc-nb-reject,
.freeprivacypolicy-com---palette-light .cc-cp-foot-save {
  background-color: var(--color-principal) !important;
  color: #fff;
}

/* Elementos ocultos por defecto en Desktop */
.mobile-header, .mobile {
  display: none;
}
.mid-left {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  text-align: left;
  width: 50%;
}


/* =========================================
   MEDIA QUERIES - ADAPTACIÓN MÓVIL
   ========================================= */

/* --- TABLET / PANTALLAS MEDIANAS ( < 1200px ) --- */
@media screen and (max-width: 1200px) {
  .description-img {
    max-width: 500px;
  }
  .hero-content {
      width: 60%;
  }
  #form-anc {
      left: 60%;
      max-width: 400px;
  }
}

/* --- MÓVIL Y TABLET VERTICAL ( < 1100px ) - PUNTO DE RUPTURA PRINCIPAL --- */
@media screen and (max-width: 1100px) {
  
  /* 1. ESTRUCTURA GENERAL Y FONDO */
  .desktop, .desktop-header { display: none !important; }
  .mobile, .mobile-header { display: block; }
  
  /* Header Layout Móvil */
  .header {
      min-height: auto;
      padding-bottom: 0;
      align-items: flex-start;
      background-color: white !important; 
  }
  
  .mobile-header {
    display: flex;
    flex-direction: column;
    padding: 40px 20px 20px 20px;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 100%;
  }

  .hero-content {
    width: 100%;
  }

  .description-img {
    min-width: 0;
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
  }

  /* 2. FORMULARIO EN MÓVIL */
  #form-anc {
    position: relative !important;
    top: auto;
    left: auto;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0;
    padding: 0;
    z-index: 10;
    transform: none !important;
  }

  .card-form {
    box-shadow: none !important;
    border-radius: 0 !important;
    border: none !important; 
    border-top: 1px solid #eee !important; 
    margin-bottom: 0 !important;
    background-color: white;
  }

  .form-btn {
      width: 100%;
      max-width: none;
  }

  form label {
    font-size: 16px;
  }

  /* 3. SECCIÓN CARACTERÍSTICAS (SOLUCIÓN DEL DESCUADRE) */
  
  /* Añadimos padding para separar del form y color de fondo */
  .section-features {
      padding-top: 50px; 
      padding-bottom: 40px;
      background-color: #f9f9f9; /* Diferenciar un poco el fondo */
  }

  /* Forzamos que las columnas ocupen todo el ancho */
  .section-features .col-md-4 {
      width: 100% !important;
      max-width: 100% !important;
      flex: 0 0 100%;
      margin-bottom: 40px;
      display: block;
  }

  .feature-card {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: white; /* Tarjeta blanca sobre fondo gris suave */
    padding: 20px;
    border-radius: 8px; /* Un poco de borde para que se vea bonito */
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
  }
  
  .feature-card img {
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0 auto 15px auto;
    display: block;
    object-fit: cover;
  }

  .section-3-title {
    text-align: left;
    font-size: 40px;
}

  /* 4. OTRAS SECCIONES */
  .section-dark-blue {
    text-align: left;
    padding: 40px 20px;
  }
  .section-dark-blue h2 {
    font-size: 2rem;
    margin-bottom: 30px;
  }
  .feature-list .d-flex {
    margin-bottom: 25px;
  }
  .feature-list .icon-wrap {
    min-width: 60px;
  }
  .feature-list img {
    width: 45px;
  }

  .section-yellow {
    padding: 40px 20px;
  }
  .section-yellow h2 {
    font-size: 1.8rem;
    margin-bottom: 25px;
  }
  .custom-list-arrow li {
    margin-bottom: 15px;
  }
  .section-yellow img.img-fluid {
    margin-top: 30px;
    width: 100%;
  }
  
  .bullet-title { font-size: 2rem; }
  .section-cta-footer h3 { font-size: 1.5rem !important; }
}

/* --- MÓVIL PEQUEÑO ( < 578px ) --- */
@media screen and (max-width: 578px) {
  
  .header {
    background-size: 300%;
    background-position: center top;
  }

  .header .hero-content {
    text-shadow: none;
  }

  .header h1 { font-size: 2rem; }
  .header p { font-size: 1.3rem; }

  .mobil-logo {
    max-width: 200px;
  }

  .mobile-header {
    padding: 20px 15px;
  }

  .card-form .card-header {
    font-size: 1.2rem !important;
  }
}

/* ===============================
    MODAL PROTECCIÓN DE DATOS
   =============================== */

:root {
    --gdpr-link: var(--color-acento);
}
