/* ================================================================
   Phase 8.7.1D — Responsive fixed-route final override
   Purpose: keep the horizontal route fixed without covering the hero.
   Loaded after styles.css.
   ================================================================ */

@media (max-width: 1099px) {
  :root {
    --responsive-navbar-h: 64px;
    --responsive-route-h: 90px;
    --responsive-route-gap: 34px;
    --responsive-route-header-offset: calc(var(--responsive-route-h) + var(--responsive-route-gap));
    --responsive-route-scroll-offset: calc(var(--responsive-navbar-h) + var(--responsive-route-h) + var(--responsive-route-gap));
  }

  .progreso {
    display: none !important;
  }

  .cotizador {
    padding-top: 0 !important;
  }

  .cotizador .cotizador__header {
    padding-top: var(--responsive-route-header-offset) !important;
    padding-right: var(--space-md);
    padding-bottom: clamp(1.25rem, 3vw, 2rem) !important;
    padding-left: var(--space-md);
    margin-bottom: clamp(1.25rem, 3vw, 2rem) !important;
  }

  body.is-post-wizard-active:not(.is-wizard-in-view) .cotizador .cotizador__header {
    padding-top: 0 !important;
  }

  body.is-post-wizard-active.is-wizard-in-view .cotizador .cotizador__header {
    padding-top: var(--responsive-route-header-offset) !important;
  }

  .cotizador .cotizador__titulo {
    font-size: clamp(2.15rem, 6.2vw, 3.2rem);
    line-height: 1.08;
    margin-bottom: 0.7rem;
  }

  .cotizador .cotizador__subtitulo {
    max-width: min(680px, calc(100vw - 2rem));
    margin: 0 auto;
    font-size: clamp(0.92rem, 2.2vw, 1.08rem);
    line-height: 1.55;
  }

  .cotizador__pista {
    position: fixed !important;
    top: var(--responsive-navbar-h) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    min-height: var(--responsive-route-h) !important;
    z-index: var(--z-track) !important;
  }

  body.is-post-wizard-active:not(.is-wizard-in-view) .cotizador__pista {
    display: none !important;
  }

  body.is-post-wizard-active.is-wizard-in-view .cotizador__pista {
    display: flex !important;
  }

  .wizard__paso,
  .liquidacion {
    scroll-margin-top: var(--responsive-route-scroll-offset) !important;
  }
}

@media (min-width: 768px) and (max-width: 1099px) {
  .cotizador__pista .pista {
    height: 78px;
    max-width: min(640px, calc(100vw - 4rem));
  }
}

@media (max-width: 767px) {
  :root {
    --responsive-navbar-h: 56px;
    --responsive-route-h: 72px;
    --responsive-route-gap: 30px;
  }

  .cotizador .cotizador__header {
    padding-right: clamp(0.75rem, 4vw, 1rem);
    padding-left: clamp(0.75rem, 4vw, 1rem);
  }

  .cotizador .cotizador__titulo {
    font-size: clamp(1.8rem, 8.8vw, 2.55rem);
  }

  .cotizador .cotizador__subtitulo {
    font-size: clamp(0.86rem, 3.6vw, 1rem);
  }
}

@media (max-width: 399px) {
  :root {
    --responsive-navbar-h: 56px;
    --responsive-route-h: 64px;
    --responsive-route-gap: 26px;
  }

  .cotizador .cotizador__titulo {
    font-size: clamp(1.45rem, 9.2vw, 1.95rem);
    letter-spacing: -0.25px;
  }

  .cotizador .cotizador__subtitulo {
    font-size: 0.8rem;
    line-height: 1.45;
  }

  .cotizador__pista .pista {
    height: 50px;
    max-width: min(280px, calc(100vw - 2rem));
  }
}

@media (max-width: 319px) {
  :root {
    --responsive-route-h: 58px;
    --responsive-route-gap: 22px;
  }

  body .page-wrapper {
    min-width: 0;
  }

  .cotizador .cotizador__titulo {
    font-size: clamp(1.25rem, 10vw, 1.55rem);
  }

  .cotizador .cotizador__subtitulo {
    font-size: 0.72rem;
  }

  .cotizador__pista .pista {
    max-width: calc(100vw - 1rem);
  }
}
