/* ============================================================
   PAGES — Page-specific styles
   Each page section gets its own block here until it grows
   large enough to justify its own file.
   ============================================================ */

/* ── Home placeholder ── */
/* Full home styles will be built in Phase 2 */

/* ── Model page ── */
/* Will be built per model in Phase 2+ */

/* ── Generic interior page ── */
.page-interior {
  padding-block: var(--space-10);
}

.page-interior__header {
  padding-block: var(--space-8);
  background: var(--bg-dark);
  color: var(--text-inverse);
  text-align: center;
}

.page-interior__header h1 {
  color: var(--text-inverse);
  font-size: var(--text-2xl);
  margin-bottom: var(--space-2);
}

.page-interior__header p {
  color: rgba(255,255,255,.65);
  font-size: var(--text-lg);
}

/* ============================================================
   PRUEBA DE MANEJO
   ============================================================ */

/* ── Hero ── */
.td-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 340px;
  padding: var(--header-height-desktop, 80px) 0 56px;
  overflow: hidden;
}

.td-hero__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
}

.td-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.td-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.7) 0%, rgba(0,0,0,.3) 60%, rgba(0,0,0,.15) 100%);
}

.td-hero__content {
  position: relative;
  z-index: 1;
}

.td-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5em;
  font-size: var(--text-xs);
  color: rgba(255,255,255,.6);
  margin-top: 64px;
  margin-bottom: var(--space-3);
}

.td-breadcrumb a {
  color: rgba(255,255,255,.6);
  text-decoration: none;
  transition: color var(--duration-fast) var(--ease-out);
}@media (hover: hover){

.td-breadcrumb a:hover { color: var(--color-white); }}

.td-breadcrumb [aria-current] { color: var(--color-white); }

.td-hero__title {
  font-size: var(--text-2xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-white);
  line-height: var(--leading-tight);
  margin-bottom: var(--space-1);
}

.td-hero__subtitle {
  font-size: var(--text-md);
  color: rgba(255,255,255,.75);
  max-width: 540px;
}

/* ── Form section ── */
.td-form-section {
  padding-block: var(--space-10);
  background: var(--bg-subtle);
}

.td-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-8);
}

@media (min-width: 1200px) {
  .td-layout {
    grid-template-columns: 1fr 340px;
    align-items: start;
  }}

/* ── Form ── */
.td-form-wrap {
  background: var(--color-white);
  border-radius: var(--radius-md);
  padding: var(--space-5);
  box-shadow: var(--shadow-xs);
}

.td-fieldset {
  border: none;
  padding: 0;
  margin: 0 0 var(--space-5) 0;
}

.td-fieldset__legend {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  font-size: var(--text-md);
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
  margin-bottom: var(--space-3);
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--border-default);
  width: 100%;
}

.td-fieldset__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--color-red);
  color: var(--color-white);
  font-size: 13px;
  font-weight: var(--font-weight-bold);
  flex-shrink: 0;
}

.td-fields-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2);
}

@media (min-width: 768px) {
  .td-fields-grid {
    grid-template-columns: 1fr 1fr;
  }}

@media (min-width: 1200px) {
  .td-fields-grid {
    grid-template-columns: 1fr 1fr 1fr;
  }}

/* ── Form fields — reuses cotiza-input / cotiza-label from home.css ── */
.td-form .form__group {
  display: flex;
  flex-direction: column;
  margin: 0;
}

/* ── Checkboxes — reuses form__check from home.css ── */
.td-checkbox-group {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
}

.td-form .form__check { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.td-form .form__check input[type="checkbox"] { width: 16px; height: 16px; flex-shrink: 0; margin-top: 2px; accent-color: var(--color-red); }
.td-form .form__check-label { font-size: var(--text-sm); color: var(--text-secondary); line-height: 1.4; }
.td-form .form__check-label a { color: var(--color-red); }

.td-required-mark { color: var(--color-red); font-weight: var(--font-weight-bold); }

/* ── Tooltip ── */
.td-info-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  padding: 0;
  margin-left: 4px;
  cursor: pointer;
  color: var(--text-muted);
  vertical-align: middle;
  transition: color var(--duration-fast) var(--ease-out);
}@media (hover: hover){

.td-info-trigger:hover { color: var(--text-primary); }}

.td-tooltip {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 0;
  right: 0;
  background: var(--bg-dark);
  color: var(--text-inverse);
  font-size: var(--text-sm);
  line-height: 1.5;
  padding: 12px 16px;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-medium);
  z-index: var(--z-dropdown);
  animation: td-tooltip-in var(--duration-fast) var(--ease-out);
}

@keyframes td-tooltip-in {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}

.td-form .form__check-label {
  position: relative;
}

.td-form__footer {
  padding-top: var(--space-3);
  border-top: 1px solid var(--border-default);
}

/* ── Sidebar ── */
.td-sidebar {
  background: var(--color-white);
  border-radius: var(--radius-md);
  padding: var(--space-4);
  box-shadow: var(--shadow-xs);
}

@media (min-width: 1200px) {
  .td-sidebar { position: sticky; top: calc(var(--header-height-desktop) + var(--space-3)); }}

.td-sidebar__title {
  font-size: var(--text-lg);
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
  margin-bottom: var(--space-3);
}

.td-sidebar__items {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.td-sidebar__item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
}

.td-sidebar__icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--surface-2);
  color: var(--color-red);
}

.td-sidebar__item-title {
  font-size: 14px;
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
  display: block;
}

.td-sidebar__item-desc {
  font-size: 13px;
  color: var(--text-muted);
  margin-top: 2px;
  line-height: 1.4;
}

.td-sidebar__help {
  margin-top: var(--space-4);
  padding-top: var(--space-3);
  border-top: 1px solid var(--border-default);
}

.td-sidebar__help p {
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: var(--space-1);
}

.td-sidebar__phone {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 15px;
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
  text-decoration: none;
  transition: color var(--duration-fast) var(--ease-out);
}@media (hover: hover){

.td-sidebar__phone:hover { color: var(--color-red); }}

/* ── Entrance animations ── */
.td-breadcrumb {
  animation: tdSlideUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.15s both;
}

.td-hero__title {
  animation: tdSlideUp 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.35s both;
}

.td-hero__subtitle {
  animation: tdSlideUp 0.65s cubic-bezier(0.16, 1, 0.3, 1) 0.55s both;
}

.td-form-wrap {
  animation: tdSlideUp 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.6s both;
}

.td-sidebar {
  animation: tdSlideUp 0.65s cubic-bezier(0.16, 1, 0.3, 1) 0.8s both;
}

@keyframes tdSlideUp {
  from { opacity: 0; transform: translateY(32px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .td-breadcrumb, .td-hero__title, .td-hero__subtitle,
  .td-form-wrap, .td-sidebar { animation: none; }}

/* ── Responsive ── */
@media (max-width: 767px) {
  .td-hero {
    min-height: 260px;
    padding-top: var(--header-height-mobile);
    padding-bottom: var(--space-5);
  }

  .td-breadcrumb {
    margin-top: 56px;
  }

  .td-hero__title { font-size: var(--text-xl); }

  .td-form-section { padding-block: var(--space-5); }

  .td-form-wrap { padding: var(--space-3); }

  .td-form__footer .btn { width: 100%; }

  .td-sidebar { padding: var(--space-3); }
}

@media (min-width: 768px) and (max-width: 1199px) {
  .td-hero {
    padding-top: var(--header-height-mobile);
    min-height: 300px;
  }

  .td-layout {
    grid-template-columns: 1fr;
  }}

/* ── Form validation errors ── */
.td-error {
  display: block;
  color: var(--color-error, #d32f2f);
  font-size: 0.8125rem;
  margin-top: 0.25rem;
}

.cotiza-input.is-invalid,
.cotiza-select.is-invalid {
  border-color: var(--color-error, #d32f2f);
}

/* ============================================================
   GRACIAS — Thank You Page
   ============================================================ */

.ty-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  min-height: 100dvh;
  padding: var(--space-10) var(--space-3);
  text-align: center;
  overflow: hidden;
}

.ty-hero__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
}

.ty-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ty-hero__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.65);
}

.ty-hero__content {
  position: relative;
  z-index: 1;
  max-width: 600px;
}

.ty-hero__badge {
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  color: rgba(255,255,255,.6);
  margin-bottom: var(--space-2);
}

.ty-hero__title {
  font-size: var(--text-2xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-white);
  line-height: var(--leading-tight);
  margin-bottom: var(--space-2);
}

.ty-hero__check {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--color-red);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto var(--space-4);
  animation: ty-circle-pulse 4s cubic-bezier(0.34, 1.56, 0.64, 1) infinite;
}

.ty-hero__check polyline {
  stroke-dasharray: 28;
  animation: ty-check-loop 4s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}

@keyframes ty-circle-pulse {
  0%    { transform: scale(0); opacity: 0; }
  12%   { transform: scale(1); opacity: 1; }
  75%   { transform: scale(1); opacity: 1; }
  85%   { transform: scale(0); opacity: 0; }
  100%  { transform: scale(0); opacity: 0; }
}

@keyframes ty-check-loop {
  0%    { stroke-dashoffset: 28; }
  15%   { stroke-dashoffset: 28; }
  25%   { stroke-dashoffset: 0; }
  75%   { stroke-dashoffset: 0; }
  85%   { stroke-dashoffset: 28; }
  100%  { stroke-dashoffset: 28; }
}

@media (prefers-reduced-motion: reduce) {
  .ty-hero__check { animation: none; }
  .ty-hero__check polyline { animation: none; stroke-dashoffset: 0; }}

.ty-hero__text {
  font-size: var(--text-md);
  color: rgba(255,255,255,.8);
  line-height: var(--leading-normal);
  margin-bottom: var(--space-5);
}

.ty-hero__actions {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  align-items: stretch;
}

.ty-hero__actions .btn { width: 100%; justify-content: center; }

@media (min-width: 768px) {
  .ty-hero__actions {
    flex-direction: row;
    justify-content: center;
    align-items: center;
  }

  .ty-hero__actions .btn { width: auto; }}

/* ── 404 (reutiliza .ty-hero) ── */
.ty-404__brand {
  position: absolute;
  top: var(--space-5);
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  display: inline-flex;
  opacity: .92;
  transition: opacity var(--duration-fast) var(--ease-default);
}@media (hover: hover){
.ty-404__brand:hover { opacity: 1; }}
.ty-404__brand img { width: 56px; height: auto; }

.ty-404__code {
  font-size: clamp(5.5rem, 20vw, 12rem);
  font-weight: var(--font-weight-bold);
  line-height: 0.9;
  letter-spacing: -0.05em;
  color: var(--color-white);
  margin-bottom: var(--space-3);
  text-shadow: 0 10px 44px rgba(0,0,0,.45);
}

@media (min-width: 768px) {
  .ty-404__brand { left: var(--space-8); transform: none; }
  .ty-404__brand img { width: 64px; }}

/* ── Animación de entrada ── */
/* 1) El "404" se pinta dígito por dígito (protagonista, entra primero) */
.ty-404__code span {
  display: inline-block;
  opacity: 0;
  transform: translateY(26px);
  animation: ty404Digit 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.ty-404__code span:nth-child(1) { animation-delay: 0.15s; }
.ty-404__code span:nth-child(2) { animation-delay: 0.30s; }

/* El último "4" entra y, al terminar toda la cascada, se recarga hacia
   adentro (pivota desde su base con un leve overshoot) — remate sutil */
.ty-404__code span:nth-child(3) {
  transform-origin: 50% 100%;
  animation:
    ty404Digit 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.45s forwards,
    ty404Lean 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) 1.9s forwards;
}

@keyframes ty404Digit {
  to { opacity: 1; transform: translateY(0); }
}

@keyframes ty404Lean {
  from { transform: rotate(0deg); }
  to   { transform: rotate(-8deg); }
}

/* 2) El resto del stack entra en cascada después del número */
.ty-404 .ty-hero__badge,
.ty-404 .ty-hero__title,
.ty-404 .ty-hero__text,
.ty-404 .ty-hero__actions {
  opacity: 0;
  animation: ty404Rise 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.ty-404 .ty-hero__badge   { animation-delay: 0.55s; }
.ty-404 .ty-hero__title   { animation-delay: 0.68s; }
.ty-404 .ty-hero__text    { animation-delay: 0.81s; }
.ty-404 .ty-hero__actions { animation-delay: 0.94s; }

@keyframes ty404Rise {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* 3) Ken Burns sutil del fondo */
.ty-404 .ty-hero__bg img {
  animation: ty404KenBurns 22s ease-in-out infinite alternate;
  will-change: transform;
}
@keyframes ty404KenBurns {
  from { transform: scale(1); }
  to   { transform: scale(1.06); }
}

@media (prefers-reduced-motion: reduce) {
  .ty-404__code span,
  .ty-404__code span:nth-child(3),
  .ty-404 .ty-hero__badge,
  .ty-404 .ty-hero__title,
  .ty-404 .ty-hero__text,
  .ty-404 .ty-hero__actions {
    animation: none;
    opacity: 1;
    transform: none;
  }
  .ty-404 .ty-hero__bg img { animation: none; }}


/* ============================================================
   LEGAL PAGES — Aviso de privacidad, Términos, Cookies
   Prefix: .lg-
   ============================================================ */

.lg-page {
  padding: calc(var(--header-height, 80px) + 48px) 0 80px;
}

.lg-page .container {
  max-width: 800px;
}

.lg-breadcrumb {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--text-sm);
  color: var(--text-muted);
  margin-bottom: 24px;
}

.lg-breadcrumb a {
  color: var(--text-muted);
  text-decoration: none;
}@media (hover: hover){

.lg-breadcrumb a:hover {
  color: var(--text-primary);
}}

.lg-breadcrumb__sep {
  font-size: 10px;
  opacity: 0.5;
}

.lg-title {
  font-size: var(--text-2xl, 30px);
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
  margin-bottom: 32px;
  text-wrap: balance;
}

.lg-updated {
  font-size: var(--text-sm);
  color: var(--text-muted);
  margin-bottom: 40px;
}

.lg-content h2 {
  font-size: var(--text-lg, 18px);
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
  margin: 40px 0 16px;
}

.lg-content h2:first-child {
  margin-top: 0;
}

.lg-content h3 {
  font-size: var(--text-base, 16px);
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
  margin: 24px 0 12px;
}

.lg-content p {
  font-size: var(--text-base, 16px);
  line-height: 1.7;
  color: var(--text-secondary);
  margin-bottom: 16px;
}

.lg-content ul,
.lg-content ol {
  padding-left: 24px;
  margin-bottom: 16px;
}

.lg-content li {
  font-size: var(--text-base, 16px);
  line-height: 1.7;
  color: var(--text-secondary);
  margin-bottom: 8px;
}

.lg-content strong {
  color: var(--text-primary);
  font-weight: var(--font-weight-medium);
}

.lg-content a {
  color: var(--cta-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}@media (hover: hover){

.lg-content a:hover {
  color: var(--cta-primary-hover);
}}

.lg-content .lg-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 16px 0 24px;
}

.lg-content table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--text-sm);
}

.lg-content th {
  text-align: left;
  font-weight: var(--font-weight-medium);
  color: var(--text-primary);
  padding: 12px 16px;
  background: var(--bg-subtle);
  border-bottom: 1px solid var(--border-default);
}

.lg-content td {
  padding: 12px 16px;
  color: var(--text-secondary);
  border-bottom: 1px solid var(--border-subtle);
  vertical-align: top;
  line-height: 1.6;
}

.lg-content .lg-warning {
  background: var(--color-warning-bg);
  border-radius: 8px;
  padding: 16px 20px;
  margin: 16px 0 24px;
  font-size: var(--text-sm);
  line-height: 1.6;
  color: var(--color-warning);
  font-weight: var(--font-weight-medium);
}

.lg-email-box {
  border: 1px solid var(--border-default);
  border-radius: 8px;
  padding: 24px;
  margin-top: 24px;
}

.lg-email-box p {
  margin-bottom: 20px;
}

.lg-email-box__field {
  margin-bottom: 16px;
}

.lg-email-box .btn {
  width: 100%;
}

@media (max-width: 767px) {
  .lg-page {
    padding: var(--header-height, 64px) 0 56px;
  }

  .lg-breadcrumb {
    margin-top: 32px;
  }

  .lg-title {
    font-size: var(--text-xl, 24px);
  }

  .lg-content table {
    min-width: 540px;
  }}


/* ── Legal / Sitemap page entrance animations ── */
@keyframes lgFadeUp {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

html.js-ready .lg-page .lg-breadcrumb,
html.js-ready .sm-page .lg-breadcrumb {
  animation: lgFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.1s both;
}

html.js-ready .lg-page .lg-title,
html.js-ready .sm-page .sm-title {
  animation: lgFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.25s both;
}

html.js-ready .lg-page .lg-updated,
html.js-ready .sm-page .sm-subtitle {
  animation: lgFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.4s both;
}

html.js-ready .lg-page .lg-content,
html.js-ready .sm-page .sm-rows {
  animation: lgFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.55s both;
}

@media (prefers-reduced-motion: reduce) {
  html.js-ready .lg-page .lg-breadcrumb,
  html.js-ready .lg-page .lg-title,
  html.js-ready .lg-page .lg-updated,
  html.js-ready .lg-page .lg-content,
  html.js-ready .sm-page .lg-breadcrumb,
  html.js-ready .sm-page .sm-title,
  html.js-ready .sm-page .sm-subtitle,
  html.js-ready .sm-page .sm-rows {
    animation: none;
  }}

/* ============================================================
   MAPA DEL SITIO
   Prefix: .sm-
   ============================================================ */

.sm-page {
  padding: calc(var(--header-height, 80px) + 48px) 0 80px;
}

.sm-title {
  font-size: var(--text-2xl, 30px);
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
  margin-bottom: 8px;
  text-wrap: balance;
}

.sm-subtitle {
  font-size: var(--text-base, 16px);
  color: var(--text-muted);
  margin-bottom: 48px;
}

.sm-rows {
  display: flex;
  flex-direction: column;
}

.sm-row {
  padding: 28px 0;
  border-top: 1px solid var(--border-default);
}

.sm-row:last-child {
  padding-bottom: 0;
}

.sm-row__header {
  display: flex;
  align-items: center;
  margin-bottom: 16px;
}

.sm-row__toggle { display: none; }

.sm-row__title {
  font-size: var(--text-lg, 18px);
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
  margin: 0;
}

.sm-row__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px 32px;
}

.sm-row__list a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  font-size: var(--text-sm);
  color: var(--text-secondary);
  text-decoration: none;
  transition: color 0.15s ease;
}

.sm-row__list a::before {
  content: '';
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--border-default);
  flex-shrink: 0;
  transition: background 0.15s ease;
}@media (hover: hover){

.sm-row__list a:hover {
  color: var(--cta-primary);
}}@media (hover: hover){

.sm-row__list a:hover::before {
  background: var(--cta-primary);
}}

@media (max-width: 767px) {
  .sm-page {
    padding: var(--header-height, 64px) 0 56px;
  }

  .sm-title {
    font-size: var(--text-xl, 24px);
  }

  .sm-row__header {
    cursor: pointer;
    justify-content: space-between;
    margin-bottom: 0;
    padding: 4px 0;
  }

  .sm-row__toggle {
    display: block;
    width: 20px;
    height: 20px;
    color: var(--text-tertiary, #999);
    transition: transform 0.2s ease;
    flex-shrink: 0;
  }

  .sm-row.is-open .sm-row__toggle {
    transform: rotate(180deg);
  }

  .sm-row__list {
    grid-template-columns: 1fr;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.25s ease, margin 0.25s ease;
    margin-top: 0;
  }

  .sm-row.is-open .sm-row__list {
    max-height: 600px;
    margin-top: 12px;
  }}


/* ============================================================
   FINANCIAMIENTO
   Prefix: .fin-
   ============================================================ */

.fin-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 340px;
  padding: var(--header-height, 80px) 0 56px;
  overflow: hidden;
}

.fin-hero__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
}

.fin-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fin-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.4) 100%);
}

.fin-hero__content {
  max-width: 600px;
}

.fin-hero__title {
  font-size: var(--text-3xl, 36px);
  font-weight: var(--font-weight-bold);
  color: #fff;
  margin-bottom: 12px;
  text-wrap: balance;
}

.fin-hero__text {
  font-size: var(--text-base, 16px);
  color: rgba(255,255,255,0.85);
  line-height: 1.6;
}

/* Plans grid */
.fin-plans {
  padding: 72px 0;
}

.fin-plans__title {
  font-size: var(--text-2xl, 30px);
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
  text-align: center;
  margin-bottom: 48px;
}

.fin-plans__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 32px;
}

.fin-card {
  border: 1px solid var(--border-default);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}@media (hover: hover){

.fin-card:hover {
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
  transform: translateY(-2px);
}}

.fin-card__img {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--surface-secondary, #f5f5f5);
}

.fin-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fin-card__body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.fin-card__title {
  font-size: var(--text-lg, 18px);
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
  margin-bottom: 8px;
}

.fin-card__text {
  font-size: var(--text-sm, 14px);
  color: var(--text-secondary);
  line-height: 1.6;
  margin-bottom: 44px;
  flex: 1;
}

.fin-card__actions {
  display: flex;
  gap: 12px;
}

.fin-card__actions .btn {
  flex: 1;
  text-align: center;
}

/* Modal */
.fin-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  visibility: hidden;
  pointer-events: none;
  transition: visibility 0.4s ease;
}

.fin-modal.is-open {
  visibility: visible;
  pointer-events: auto;
}

.fin-modal.is-closing {
  visibility: visible;
  pointer-events: none;
}

/* El backdrop anima su PROPIA opacidad (color + blur juntos), no la del
   contenedor: así el desenfoque entra parejo, sin el paso negro previo. */
.fin-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.6);
  backdrop-filter: blur(8px) saturate(0.8);
  -webkit-backdrop-filter: blur(8px) saturate(0.8);
  opacity: 0;
  will-change: opacity;
  transition: opacity 0.4s ease;
}

.fin-modal.is-open .fin-modal__backdrop { opacity: 1; }

.fin-modal.is-closing .fin-modal__backdrop {
  opacity: 0;
  transition: opacity 0.35s ease;
}

.fin-modal__panel {
  position: relative;
  background: #fff;
  border-radius: 12px;
  width: 100%;
  max-width: 960px;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  transform: translateY(20px);
  opacity: 0;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
}

.fin-modal.is-open .fin-modal__panel {
  transform: translateY(0);
  opacity: 1;
}

.fin-modal.is-closing .fin-modal__panel {
  transform: translateY(20px);
  opacity: 0;
}

.fin-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid var(--border-default);
  flex-shrink: 0;
}

.fin-modal__title {
  font-size: var(--text-lg, 18px);
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
}

.fin-modal__close {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-secondary);
  padding: 4px;
  border-radius: 4px;
  transition: color 0.15s ease;
}@media (hover: hover){

.fin-modal__close:hover {
  color: var(--text-primary);
}}

.fin-modal__body {
  padding: 24px;
  overflow-y: auto;
  flex: 1;
}

/* Tabs inside modal */
.fin-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--border-default);
  margin-bottom: 20px;
}

.fin-tabs__btn {
  background: none;
  border: none;
  padding: 10px 16px;
  font-size: var(--text-sm, 14px);
  font-weight: var(--font-weight-medium, 500);
  color: var(--text-secondary);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: color 0.15s ease, border-color 0.15s ease;
  margin-bottom: -1px;
}

.fin-tabs__btn.is-active {
  color: var(--cta-primary);
  border-bottom-color: var(--cta-primary);
}

.fin-tabs__panel {
  display: none;
}

.fin-tabs__panel.is-active {
  display: block;
}

/* Sub-tabs for requerimientos */
.fin-subtabs {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
}

.fin-subtabs__btn {
  background: var(--surface-secondary, #f5f5f5);
  border: 1px solid var(--border-default);
  border-radius: 6px;
  padding: 6px 14px;
  font-size: var(--text-xs, 12px);
  font-weight: var(--font-weight-medium, 500);
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.15s ease;
}

.fin-subtabs__btn.is-active {
  background: var(--cta-primary);
  border-color: var(--cta-primary);
  color: #fff;
}

.fin-subtabs__panel {
  display: none;
}

.fin-subtabs__panel.is-active {
  display: block;
}

/* Modal content typography */
.fin-modal__body h3 {
  font-size: var(--text-base, 16px);
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
  margin: 16px 0 8px;
}

.fin-modal__body h3:first-child {
  margin-top: 0;
}

.fin-modal__body ul {
  list-style: disc;
  padding-left: 20px;
  margin: 0 0 16px;
}

.fin-modal__body li {
  font-size: var(--text-sm, 14px);
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 4px;
}

.fin-modal__body p {
  font-size: var(--text-sm, 14px);
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 12px;
}

.fin-modal__body table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 16px;
  font-size: var(--text-sm, 14px);
}

.fin-modal__body th,
.fin-modal__body td {
  padding: 8px 12px;
  text-align: left;
  border-bottom: 1px solid var(--border-default);
}

.fin-modal__body th {
  font-weight: var(--font-weight-medium, 500);
  color: var(--text-primary);
  background: var(--surface-secondary, #f9f9f9);
}

.fin-modal__body td {
  color: var(--text-secondary);
}

.fin-modal__intro {
  font-size: var(--text-sm, 14px);
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 20px;
}

.fin-modal__subtitle {
  font-size: var(--text-base, 16px);
  font-weight: var(--font-weight-semibold, 600);
  color: var(--text-primary);
  margin-bottom: 12px;
}

.fin-disclaimer--modal {
  margin-top: 24px;
  padding: 16px;
  background: var(--surface-secondary, #f5f5f5);
  border-radius: 8px;
  font-size: 0.6875rem;
  color: var(--text-muted);
  line-height: 1.5;
}

.fin-disclaimer--modal p {
  margin-bottom: 4px;
}

.fin-disclaimer--modal p:first-child {
  font-size: 0.5625rem;
}

.fin-disclaimer--modal p:last-child {
  font-size: 0.625rem;
}

.fin-subtabs__panel ul {
  columns: 2;
  column-gap: 48px;
}

.fin-subtabs__panel li {
  break-inside: avoid;
}

/* Disclaimer */
.fin-disclaimer {
  padding: 56px 0;
  background: var(--surface-secondary, #f9f9f9);
}

.fin-disclaimer__text {
  font-size: var(--text-xs, 12px);
  color: var(--text-muted);
  line-height: 1.6;
}

/* Entry animations for financiamiento */
html.js-ready .fin-hero__content {
  animation: lgFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.15s both;
}

html.js-ready .fin-plans__title {
  animation: lgFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.25s both;
}

html.js-ready .fin-card {
  animation: lgFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
}

html.js-ready .fin-card:nth-child(1) { animation-delay: 0.35s; }
html.js-ready .fin-card:nth-child(2) { animation-delay: 0.45s; }
html.js-ready .fin-card:nth-child(3) { animation-delay: 0.55s; }
html.js-ready .fin-card:nth-child(4) { animation-delay: 0.65s; }
html.js-ready .fin-card:nth-child(5) { animation-delay: 0.75s; }

@media (prefers-reduced-motion: reduce) {
  html.js-ready .fin-hero__content,
  html.js-ready .fin-plans__title,
  html.js-ready .fin-card {
    animation: none;
  }}

@media (max-width: 767px) {
  .fin-hero {
    min-height: 260px;
    padding: calc(var(--header-height, 64px) + 32px) 0 40px;
  }

  .fin-hero__title {
    font-size: var(--text-2xl, 30px);
  }

  .fin-plans {
    padding: 48px 0;
  }

  .fin-plans__title {
    font-size: var(--text-xl, 24px);
    margin-bottom: 32px;
    text-align: left;
  }

  .fin-plans__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .fin-modal {
    padding: 24px 0 0;
    align-items: flex-end;
  }

  .fin-modal__panel {
    max-width: 100%;
    height: calc(100vh - 24px);
    max-height: calc(100vh - 24px);
    border-radius: 20px 20px 0 0;
    transform: translateY(100%);
    opacity: 1;
    transition: transform 0.55s cubic-bezier(0.32, 0.72, 0, 1);
  }

  .fin-modal.is-open .fin-modal__panel {
    transform: translateY(0);
    opacity: 1;
  }

  .fin-modal.is-closing .fin-modal__panel {
    transform: translateY(100%);
    opacity: 1;
    transition: transform 0.45s cubic-bezier(0.32, 0.72, 0, 1);
  }

  .fin-modal__header {
    padding: 16px 20px;
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
    border-radius: 20px 20px 0 0;
  }

  .fin-modal__body {
    padding: 20px;
  }

  .fin-tabs {
    flex-wrap: wrap;
    gap: 4px;
  }

  .fin-tabs__btn {
    font-size: 0.8125rem;
    padding: 8px 12px;
  }

  .fin-subtabs {
    flex-wrap: wrap;
    gap: 4px;
  }

  .fin-subtabs__btn {
    font-size: 0.75rem;
    padding: 6px 10px;
  }

  .fin-subtabs__panel ul {
    columns: 1;
  }

  .fin-modal__body table {
    font-size: 0.8125rem;
  }

  .fin-modal__body th,
  .fin-modal__body td {
    padding: 8px 10px;
  }}


/* ── Fichas Técnicas (ft-) ── */

.ft-section {
  padding: var(--space-12, 96px) 0;
}

.ft-section__title {
  font-size: var(--text-h2, 40px);
  font-weight: var(--font-weight-bold, 700);
  color: var(--text-primary);
  margin-bottom: 48px;
}

.ft-filters {
  display: flex;
  gap: 8px;
  margin-bottom: 32px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 4px;
}

.ft-filters::-webkit-scrollbar {
  display: none;
}

.ft-filter {
  padding: 8px 20px;
  border: 1px solid var(--border-light, #e5e5e5);
  border-radius: var(--radius-pill, 999px);
  background: transparent;
  color: var(--text-secondary);
  font-size: var(--text-sm, 14px);
  font-weight: var(--font-weight-medium, 500);
  cursor: pointer;
  transition: all 0.2s ease;
  flex-shrink: 0;
  white-space: nowrap;
}@media (hover: hover){

.ft-filter:hover {
  border-color: var(--text-primary);
  color: var(--text-primary);
}}

.ft-filter.is-active {
  background: var(--color-red, #ED0000);
  border-color: var(--color-red, #ED0000);
  color: #fff;
}

.ft-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.ft-card {
  border-radius: 12px;
  overflow: hidden;
  background: var(--surface-primary, #fff);
  border: 1px solid var(--border-light, #e5e5e5);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}@media (hover: hover){

.ft-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1);
}}

.ft-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

.ft-card__img-wrap {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--surface-secondary, #f5f5f5);
}

.ft-card__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}@media (hover: hover){

.ft-card:hover .ft-card__img-wrap img {
  transform: scale(1.04);
}}

.ft-card__body {
  padding: 16px 20px 20px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  gap: 4px;
}

.ft-card__name {
  font-size: var(--text-h3, 18px);
  font-weight: var(--font-weight-semibold, 600);
  color: var(--text-primary);
  margin: 0;
}

.ft-card__year {
  font-size: var(--text-sm, 14px);
  color: var(--text-muted);
  font-weight: var(--font-weight-medium, 500);
}

.ft-card__action {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  margin-top: auto;
  padding-top: 8px;
  font-size: var(--text-sm, 14px);
  font-weight: var(--font-weight-semibold, 600);
  color: var(--color-red, #ED0000);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  transition: gap 0.3s ease;
}@media (hover: hover){

.ft-card:hover .ft-card__action {
  gap: 10px;
}}

@media (max-width: 1023px) {
  .ft-grid {
    grid-template-columns: repeat(3, 1fr);
  }}

@media (max-width: 767px) {
  .ft-section {
    padding: var(--space-10, 80px) 0;
  }

  .ft-section__title {
    font-size: 24px;
    margin-bottom: 32px;
  }

  .ft-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .ft-card__body {
    padding: 12px 14px 16px;
  }

  .ft-card__name {
    font-size: 15px;
  }

  .ft-card__action {
    font-size: 12px;
  }}


/* ── Flotillas (fl-) ── */

.fl-intro {
  padding: var(--space-12, 96px) 0;
}

.fl-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}

.fl-split--reverse {
  direction: rtl;
}

.fl-split--reverse > * {
  direction: ltr;
}

.fl-split__media {
  border-radius: 16px;
  overflow: hidden;
}

.fl-split__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.fl-split__tag {
  display: inline-block;
  font-size: var(--text-xs, 12px);
  font-weight: var(--font-weight-semibold, 600);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-red, #ED0000);
  margin-bottom: 12px;
}

.fl-split__title {
  font-size: 24px;
  font-weight: var(--font-weight-bold, 700);
  color: var(--text-primary);
  line-height: 1.25;
  margin-bottom: 16px;
}

.fl-split__text {
  font-size: var(--text-sm, 14px);
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 12px;
  max-width: 55ch;
}

.fl-split__content .btn {
  margin-top: 16px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.fl-planes {
  padding: var(--space-14, 112px) 0;
  background: var(--surface-secondary, #f7f7f7);
}

.fl-plan-card {
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 4px 32px rgba(0,0,0,0.06), 0 1px 4px rgba(0,0,0,0.04);
  transition: box-shadow 0.4s ease, transform 0.4s ease;
}@media (hover: hover){

.fl-plan-card:hover {
  box-shadow: 0 12px 48px rgba(0,0,0,0.1), 0 2px 8px rgba(0,0,0,0.06);
  transform: translateY(-4px);
}}

.fl-plan-card .fl-split__media {
  border-radius: 0;
  aspect-ratio: 16/10;
}

.fl-plan-card .fl-split {
  gap: 0;
}

.fl-plan-card .fl-split__content {
  padding: 48px;
}

.fl-planes .fl-plan-card {
  margin-bottom: 48px;
}

.fl-planes .fl-plan-card:last-child {
  margin-bottom: 0;
}

.fl-planes .fl-split {
  margin-bottom: 80px;
}

.fl-planes .fl-split:last-child {
  margin-bottom: 0;
}

/* Seguridad — dark band */
.fl-seguridad {
  padding: var(--space-14, 112px) 0 var(--space-10, 80px);
  background: var(--bg-dark, #0a0a0a);
  color: #fff;
}

.fl-seguridad__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}

.fl-seguridad__title {
  font-size: 28px;
  font-weight: var(--font-weight-bold, 700);
  color: #fff;
  line-height: 1.25;
  margin-bottom: 32px;
}

.fl-seguridad__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.fl-seguridad__list li {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  font-size: var(--text-base, 16px);
  color: rgba(255,255,255,0.85);
  line-height: 1.6;
}

.fl-seguridad__check-icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--color-red, #ED0000);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}

.fl-seguridad__check-icon svg {
  width: 16px;
  height: 16px;
}

.fl-seguridad__media {
  border-radius: 16px;
  overflow: hidden;
}

.fl-seguridad__media img {
  width: 100%;
  display: block;
  object-fit: cover;
}

/* Above-the-fold stagger entrance */
@keyframes flFadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
.fl-stagger {
  opacity: 0;
  animation: flFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.fl-stagger--1 { animation-delay: 0.15s; }
.fl-stagger--2 { animation-delay: 0.35s; }
.fl-stagger--3 { animation-delay: 0.5s; }
.fl-stagger--4 { animation-delay: 0.7s; }

/* Modelos strip */
.fl-modelos {
  padding: var(--space-12, 96px) 0;
  background: var(--surface-secondary, #f7f7f7);
}

.fl-modelos__header {
  text-align: center;
  margin-bottom: 32px;
  position: relative;
}

.fl-modelos__title {
  font-size: 28px;
  font-weight: var(--font-weight-bold, 700);
  margin-bottom: 12px;
  color: var(--text-primary);
}

.fl-modelos__subtitle {
  font-size: var(--text-base, 16px);
  color: var(--text-secondary);
}

.fl-modelos__nav {
  display: flex;
  align-items: center;
  gap: 8px;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}
.fl-modelos__nav--mobile {
  display: none;
}

.fl-modelos__btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #fff;
  border: 1.5px solid rgba(0,0,0,0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(0,0,0,0.08);
  color: var(--text-primary);
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}@media (hover: hover){

.fl-modelos__btn:hover:not(:disabled) {
  background: var(--color-red, #ED0000);
  border-color: var(--color-red, #ED0000);
  color: #fff;
}}

.fl-modelos__btn:disabled {
  opacity: 0.25;
  cursor: default;
  pointer-events: none;
}

.fl-modelos__strip {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  padding-bottom: 12px;
  scrollbar-width: none;
}

.fl-modelos__strip::-webkit-scrollbar {
  display: none;
}

.fl-modelo {
  flex: 0 0 auto;
  width: 190px;
  text-align: center;
  padding: 24px 16px 20px;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
  transition: transform 0.4s cubic-bezier(0.16,1,0.3,1), box-shadow 0.4s ease;
  cursor: default;
  position: relative;
  overflow: hidden;
}@media (hover: hover){

.fl-modelo:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0,0,0,0.1);
}}

.fl-modelo img {
  width: 100%;
  height: auto;
  margin-bottom: 12px;
  transition: transform 0.4s cubic-bezier(0.16,1,0.3,1);
}@media (hover: hover){

.fl-modelo:hover img {
  transform: scale(1.06);
}}

.fl-modelo__name {
  font-size: var(--text-sm, 14px);
  font-weight: var(--font-weight-semibold, 600);
  color: var(--text-primary);
  margin-bottom: 0;
  transition: margin-bottom 0.3s ease;
}

.fl-modelo__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-red, #ED0000);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.3s ease, transform 0.3s ease;
  margin-top: 10px;
}@media (hover: hover){

.fl-modelo:hover .fl-modelo__name {
  margin-bottom: 0;
}}@media (hover: hover){

.fl-modelo:hover .fl-modelo__cta {
  opacity: 1;
  transform: translateY(0);
}}

/* WhatsApp button */
.btn--whatsapp {
  background-color: #25D366;
  color: #fff;
  border-color: #25D366;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.btn--whatsapp::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: #1a9e4a;
  transform: scaleX(1); transform-origin: left center;
  opacity: 0;
  transition: opacity 400ms ease-out;
}@media (hover: hover){
.btn--whatsapp:hover {
  background-color: transparent;
  border-color: #1a9e4a;
  color: #fff;
  box-shadow: none;
}}@media (hover: hover){
.btn--whatsapp:hover::before {
  opacity: 1;
  animation: btnSlideIn 680ms cubic-bezier(0.16, 1, 0.3, 1) both;
  transition: none;
}}
.btn--whatsapp:visited,
.btn--whatsapp:active {
  color: #fff;
}

/* Form section */
.fl-form-layout {
  max-width: 720px;
  margin: 0 auto;
}

.fl-form-section {
  padding: var(--space-8, 48px) 0 var(--space-12, 96px);
}

.fl-form-section__title {
  font-size: 28px;
  font-weight: var(--font-weight-bold, 700);
  color: var(--text-primary);
  margin-bottom: 32px;
  line-height: 1.25;
}

/* Flotillas enhanced reveals */
html.js-ready .reveal--blur {
  opacity: 0;
  transform: translateY(32px);
  filter: blur(6px);
  transition:
    opacity 0.8s cubic-bezier(0.16,1,0.3,1),
    transform 0.8s cubic-bezier(0.16,1,0.3,1),
    filter 0.8s cubic-bezier(0.16,1,0.3,1);
}

html.js-ready .reveal--blur.is-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

html.js-ready .reveal--lift {
  opacity: 0;
  transform: translateY(48px) scale(0.97);
  transition:
    opacity 0.9s cubic-bezier(0.16,1,0.3,1),
    transform 0.9s cubic-bezier(0.16,1,0.3,1);
}

html.js-ready .reveal--lift.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.reveal--delay-5 { transition-delay: 500ms; }
.reveal--delay-6 { transition-delay: 600ms; }

/* Stagger modelo cards on reveal */
.fl-modelo.reveal { --modelo-delay: 0ms; transition-delay: var(--modelo-delay); }
.fl-modelo.reveal:nth-child(2) { --modelo-delay: 60ms; }
.fl-modelo.reveal:nth-child(3) { --modelo-delay: 120ms; }
.fl-modelo.reveal:nth-child(4) { --modelo-delay: 180ms; }
.fl-modelo.reveal:nth-child(5) { --modelo-delay: 240ms; }
.fl-modelo.reveal:nth-child(6) { --modelo-delay: 300ms; }
.fl-modelo.reveal:nth-child(7) { --modelo-delay: 360ms; }
.fl-modelo.reveal:nth-child(8) { --modelo-delay: 420ms; }
.fl-modelo.reveal:nth-child(9) { --modelo-delay: 480ms; }

@media (prefers-reduced-motion: reduce) {
  html.js-ready .reveal--blur,
  html.js-ready .reveal--lift {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
  }}

/* Radio group for fleet size */
.fl-radio-group {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 8px;
  margin-bottom: 28px;
}

.fl-radio {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  padding: 14px 20px;
  border: 1px solid var(--border-light, #e5e5e5);
  border-radius: 10px;
  transition: border-color 0.2s, background 0.2s;
}@media (hover: hover){

.fl-radio:hover {
  border-color: var(--text-primary);
}}

.fl-radio input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.fl-radio__mark {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border: 2px solid var(--border-light, #ccc);
  border-radius: 50%;
  position: relative;
  transition: border-color 0.2s;
}

.fl-radio__mark::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-red, #ED0000);
  transform: scale(0);
  transition: transform 0.2s ease;
}

.fl-radio input:checked ~ .fl-radio__mark {
  border-color: var(--color-red, #ED0000);
}

.fl-radio input:checked ~ .fl-radio__mark::after {
  transform: scale(1);
}

.fl-radio input:checked ~ .fl-radio__label {
  font-weight: var(--font-weight-semibold, 600);
}

.fl-radio__label {
  font-size: var(--text-base, 16px);
  color: var(--text-primary);
}

.fl-radio__sub {
  color: var(--text-muted);
  font-weight: var(--font-weight-normal, 400);
}

/* Responsive — Tablet */
@media (max-width: 1023px) {
  .fl-split {
    gap: 40px;
  }
  .fl-split__title {
    font-size: 22px;
  }
  .fl-seguridad__title {
    font-size: 24px;
  }
  .fl-modelos__title {
    font-size: 24px;
  }
  .fl-plan-card .fl-split__content {
    padding: 32px;
  }
  .fl-form-section__title {
    font-size: 24px;
  }
}

/* Responsive — Mobile */
@media (max-width: 767px) {
  .fl-intro {
    padding: 40px 0;
  }
  .fl-split {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .fl-split--reverse {
    direction: ltr;
  }
  .fl-split__media {
    border-radius: 12px;
    aspect-ratio: 4/3;
  }
  .fl-split__title {
    font-size: 20px;
  }
  .fl-planes {
    padding: 40px 0;
  }
  .fl-planes .fl-split {
    margin-bottom: 40px;
  }
  .fl-seguridad {
    padding: 40px 0 0;
  }
  .fl-seguridad__media {
    border-radius: 0;
    aspect-ratio: 16/9;
    margin: 0 -24px;
    width: calc(100% + 48px);
  }
  .fl-seguridad__inner {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .fl-seguridad__title {
    font-size: 22px;
    margin-bottom: 24px;
  }
  .fl-modelos {
    padding: 40px 0;
  }
  .fl-modelos__header {
    text-align: left;
  }
  .fl-modelos__header .fl-modelos__nav {
    display: none;
  }
  .fl-modelos__nav--mobile {
    display: flex;
    position: static;
    transform: none;
    justify-content: flex-start;
    margin-top: 24px;
  }
  .fl-modelos__title {
    font-size: 22px;
  }
  .fl-modelo {
    width: 155px;
    padding: 16px 12px 14px;
  }
  .fl-modelo__cta {
    opacity: 1;
    transform: translateY(0);
  }
  .fl-plan-card .fl-split {
    grid-template-columns: 1fr;
  }
  .fl-plan-card .fl-split--reverse {
    direction: ltr;
  }
  .fl-plan-card .fl-split__content {
    padding: 24px 20px 28px;
  }
  .fl-plan-card .fl-split__media {
    aspect-ratio: 16/9;
  }
  .fl-form-section {
    padding: 40px 0;
  }
  .fl-form-section__title {
    font-size: 22px;
    margin-bottom: 24px;
  }
  .fl-radio {
    padding: 12px 16px;
  }
  .fl-plan-card .btn--whatsapp {
    width: 100%;
    justify-content: center;
  }
}

/* ────────────────────────────────────────────────────────────
   PROMOCIONES PAGE — pr-*
   ──────────────────────────────────────────────────────────── */
.pr-section {
  padding: 24px 0 var(--space-10, 80px);
}
.pr-section__header {
  margin-bottom: 32px;
}
.pr-section__title {
  font-size: var(--text-xl, 22px);
  font-weight: var(--font-weight-bold, 700);
  color: var(--text-primary);
  margin-bottom: 6px;
}
.pr-section__subtitle {
  font-size: var(--text-md, 16px);
  color: var(--text-secondary, #666);
}
.pr-form__row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.promo-banner__vigencia {
  font-size: 12px;
  color: var(--text-tertiary, #999);
  margin-top: 4px;
  margin-bottom: 8px;
}

.pr-disclaimer {
  font-size: var(--text-xs, 12px);
  color: var(--text-tertiary, #999);
  margin-top: var(--space-8, 64px);
  line-height: 1.5;
}

/* Empty state */
.pr-empty {
  text-align: center;
  padding: var(--space-12, 96px) var(--space-4, 32px);
}
.pr-empty__icon {
  color: var(--text-tertiary, #999);
  margin-bottom: var(--space-4, 32px);
}
.pr-empty__title {
  font-size: var(--text-xl, 22px);
  font-weight: var(--font-weight-bold, 700);
  color: var(--text-primary);
  margin-bottom: 12px;
}
.pr-empty__text {
  font-size: var(--text-base, 16px);
  color: var(--text-secondary);
  margin-bottom: var(--space-6, 48px);
  max-width: 480px;
  margin-inline: auto;
}
.pr-empty__actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

/* Modal — reuses fin-modal pattern */
.pr-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  visibility: hidden;
  pointer-events: none;
}
.pr-modal.is-open {
  visibility: visible;
  pointer-events: auto;
}
.pr-modal.is-closing {
  visibility: visible;
  pointer-events: none;
}
.pr-modal__backdrop {
  position: absolute;
  inset: 0;
  /* Mismo efecto blur del mega-menú / buscador */
  background: rgba(0,0,0,0.6);
  backdrop-filter: blur(8px) saturate(0.8);
  -webkit-backdrop-filter: blur(8px) saturate(0.8);
  will-change: opacity;
  opacity: 0;
  transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.pr-modal.is-open .pr-modal__backdrop {
  opacity: 1;
}
.pr-modal.is-closing .pr-modal__backdrop {
  opacity: 0;
  transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1) 0.05s;
}
.pr-modal__panel {
  position: relative;
  background: #fff;
  border-radius: 12px;
  width: 100%;
  max-width: 900px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  transform: translateY(20px);
  opacity: 0;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s ease;
}
.pr-modal__panel--form {
  max-width: 800px;
}

/* Desktop sidebar for cotizador */
@media (min-width: 768px) {
  .pr-modal--sidebar {
    padding: 0;
    justify-content: flex-end;
  }
  .pr-modal--sidebar .pr-modal__panel {
    max-width: 480px;
    max-height: 100vh;
    height: 100vh;
    border-radius: 0;
    transform: translateX(100%);
    opacity: 1;
    transition: transform 0.55s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .pr-modal--sidebar .pr-modal__header {
    padding: 12px 24px;
  }
  .pr-modal--sidebar .pr-modal__body {
    overflow-y: auto;
    flex: 1;
    padding: 16px 24px;
  }
  .pr-modal--sidebar .td-fields-grid {
    grid-template-columns: 1fr !important;
    gap: 6px;
  }
  .pr-modal--sidebar .cotiza-label {
    font-size: 10px;
    margin-bottom: 1px;
  }
  .pr-modal--sidebar .cotiza-input {
    padding: 6px 10px;
    font-size: 13px;
  }
  .pr-modal--sidebar .td-form__footer {
    margin-top: 12px;
    padding-top: 12px;
  }
  .pr-modal--sidebar .td-checkbox-group {
    gap: 4px;
    margin-bottom: 10px;
  }
  .pr-modal--sidebar .form__check-label {
    font-size: 11px;
  }
  .pr-modal--sidebar .td-form__footer .btn {
    margin-top: 0;
    padding: 9px 28px;
  }
  .pr-modal--sidebar .pr-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
}
.pr-modal.is-open .pr-modal__panel {
  transform: translateY(0);
  opacity: 1;
}
.pr-modal.is-closing .pr-modal__panel {
  transform: translateY(20px);
  opacity: 0;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.35s ease;
}
@media (min-width: 768px) {
  .pr-modal--sidebar.is-open .pr-modal__panel {
    transform: translateX(0);
    opacity: 1;
  }
  .pr-modal--sidebar.is-closing .pr-modal__panel {
    transform: translateX(100%);
    opacity: 1;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  }}
.pr-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  border-bottom: 1px solid var(--border-default, #e5e5e5);
  flex-shrink: 0;
}
.pr-modal__title {
  font-size: 16px;
  font-weight: var(--font-weight-bold, 700);
  color: var(--text-primary);
}
.pr-modal__subtitle {
  font-size: 13px;
  font-weight: 400;
  color: var(--text-secondary, #666);
  margin-top: 2px;
}
.pr-modal__close {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-secondary);
  padding: 4px;
  border-radius: 4px;
  transition: color 0.15s ease;
}@media (hover: hover){
.pr-modal__close:hover {
  color: var(--text-primary);
}}
.pr-modal__body {
  padding: 20px 24px;
  overflow-y: auto;
  flex: 1;
}
.pr-modal__body p {
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.5;
  margin-bottom: 10px;
}
.pr-modal__body ol {
  padding-left: 18px;
  margin-bottom: 10px;
}
.pr-modal__body li {
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.5;
  margin-bottom: 8px;
}

/* Compact form inside modal */
.pr-modal .td-fields-grid {
  grid-template-columns: 1fr 1fr 1fr;
  gap: 16px 20px;
}
.pr-modal .cotiza-label {
  font-size: 11px;
  margin-bottom: 4px;
}
.pr-modal .cotiza-input {
  padding: 9px 12px;
  font-size: 13px;
}
.pr-modal .td-form__footer {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--border-default, #e5e5e5);
}
.pr-modal .td-checkbox-group {
  gap: 10px;
  margin-bottom: 20px;
}
.pr-modal .td-form__footer .btn {
  margin-top: 4px;
}

/* Tablet + Mobile — vigencia spacing */
@media (max-width: 1023px) {
  .promo-banner__vigencia {
    margin-bottom: 24px;
  }
}

/* Mobile modal — Apple sheet */
@media (max-width: 767px) {
  .pr-section {
    padding: 16px 0 40px;
  }
  .pr-modal {
    padding: 0;
    align-items: flex-end;
  }
  .pr-modal__panel {
    max-width: 100%;
    max-height: 90vh;
    border-radius: 16px 16px 0 0;
    transform: translateY(100%);
  }
  .pr-modal.is-open .pr-modal__panel {
    transform: translateY(0);
  }
  .pr-modal.is-closing .pr-modal__panel {
    transform: translateY(100%);
  }
  .pr-modal .td-fields-grid {
    grid-template-columns: 1fr;
  }
  .pr-section {
    padding: 16px 0 40px;
  }
  .pr-empty {
    padding: var(--space-8, 64px) 16px;
  }
  .pr-empty__actions {
    flex-direction: column;
  }
  .pr-empty__actions .btn {
    width: 100%;
    justify-content: center;
  }
  .pr-disclaimer {
    margin-top: 32px;
  }
}

/* ── Manuales — staggered entrance (keyframes, no flash) ── */
@keyframes mn-fade-up {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

.mn-stagger {
  opacity: 0;
  animation: mn-fade-up 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  animation-delay: calc(var(--stagger, 0) * 120ms + 200ms);
}

@media (prefers-reduced-motion: reduce) {
  .mn-stagger {
    opacity: 1;
    animation: none;
  }}

/* ── Manuales — buscador ── */
.mn-finder {
  padding: 48px 0;
  background: var(--bg-secondary, #f7f7f7);
  border-bottom: 1px solid var(--border-light, #eee);
}
.mn-finder .ft-section__title {
  font-size: 24px;
  margin-bottom: 8px;
}
.mn-finder__lead {
  font-size: 14px;
  color: var(--text-secondary, #666);
  margin-bottom: 24px;
  max-width: 60ch;
}
.mn-finder__controls {
  display: flex;
  gap: 16px;
  max-width: 560px;
  margin-bottom: 24px;
}
.mn-finder__controls .form__group {
  flex: 1;
}
.mn-finder__controls .cotiza-input {
  background: #fff;
}
.mn-finder__hint {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--text-tertiary, #999);
}
.mn-finder__hint svg {
  flex-shrink: 0;
}
#mn-finder-results {
  margin-top: 8px;
}

@media (max-width: 767px) {
  .mn-finder {
    padding: 32px 0;
  }
  .mn-finder__controls {
    flex-direction: column;
    gap: 12px;
    max-width: none;
  }}

/* ── Manuales — miniaturas apaisadas (376×183 como producción) ── */
#mn-finder-results .ft-card__img-wrap,
#mn-grid-propietario .ft-card__img-wrap,
#mn-grid-estereo .ft-card__img-wrap {
  aspect-ratio: 376 / 183;
  background: #1a1a1a;
}

#mn-finder-results .ft-card__img-wrap img,
#mn-grid-propietario .ft-card__img-wrap img,
#mn-grid-estereo .ft-card__img-wrap img {
  object-fit: contain;
}

/* ── Manuales — icon cards ── */
.ft-card__icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: var(--bg-secondary, #f5f5f5);
  color: var(--text-tertiary, #999);
  border-bottom: 1px solid var(--border-light, #eee);
}
.ft-card__icon-wrap--alt {
  color: var(--brand-primary, #ED0000);
}
.ft-card__tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--brand-primary, #ED0000);
  background: rgba(237, 0, 0, 0.08);
  padding: 2px 6px;
  border-radius: 4px;
  margin-left: 4px;
  vertical-align: middle;
}
.ft-section + .ft-section {
  padding-top: 0;
}


/* ════════════════════════════════════════════════════════════
   GARANTÍA (ga-)
   ════════════════════════════════════════════════════════════ */

/* ── Highlights — cifras clave ── */
.ga-highlights {
  background: var(--bg-secondary, #f7f7f7);
  border-bottom: 1px solid var(--border-light, #eee);
  padding: 40px 0;
}

.ga-highlights__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.ga-highlight {
  display: flex;
  align-items: center;
  gap: 16px;
}

.ga-highlight__number {
  font-size: 48px;
  font-weight: var(--font-weight-bold, 700);
  color: var(--color-red, #ED0000);
  line-height: 1;
  flex-shrink: 0;
}

.ga-highlight__label {
  font-size: var(--text-sm, 14px);
  color: var(--text-secondary);
  line-height: 1.4;
  max-width: 22ch;
}

/* ── Coberturas — bento ── */
.ga-coberturas {
  padding: 72px 0 48px;
}

.ga-coberturas .ft-section__title {
  margin-bottom: 32px;
}

.ga-cob__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.ga-cob {
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--border-light, #e5e5e5);
  background: var(--surface-primary, #fff);
}

/* Destacado full-width: imagen de fondo + overlay */
.ga-cob--featured {
  grid-column: 1 / -1;
  position: relative;
  min-height: 420px;
  display: flex;
  align-items: flex-end;
  border: none;
}

.ga-cob__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ga-cob__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.35) 55%, rgba(0,0,0,.15) 100%);
}

.ga-cob--featured .ga-cob__content {
  position: relative;
  padding: 40px;
  max-width: 640px;
}

.ga-cob--featured .ga-cob__title {
  color: #fff;
  font-size: 28px;
}

.ga-cob--featured .ga-cob__text {
  color: rgba(255,255,255,.85);
}

.ga-cob--featured .btn {
  margin-top: 8px;
}

/* Cards verticales: imagen completa arriba (proporción nativa 750×550) */
.ga-cob--card {
  display: flex;
  flex-direction: column;
}

.ga-cob__media {
  overflow: hidden;
  aspect-ratio: 750 / 415;
}

.ga-cob__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ga-cob--card .ga-cob__content {
  padding: 28px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  align-items: flex-start;
}

.ga-cob--card .btn {
  margin-top: auto;
}

.ga-cob--card .ga-cob__text {
  margin-bottom: 24px;
}

.ga-cob__tag {
  display: inline-block;
  font-size: var(--text-xs, 12px);
  font-weight: var(--font-weight-semibold, 600);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-red, #ED0000);
  margin-bottom: 10px;
}

.ga-cob__title {
  font-size: 20px;
  font-weight: var(--font-weight-bold, 700);
  color: var(--text-primary);
  line-height: 1.25;
  margin-bottom: 10px;
}

.ga-cob__text {
  font-size: var(--text-sm, 14px);
  color: var(--text-secondary);
  line-height: 1.65;
  margin-bottom: 16px;
}


/* ── Timeline comparativa ── */
.ga-timeline {
  padding: 72px 0;
  background: var(--bg-secondary, #f7f7f7);
  border-top: 1px solid var(--border-light, #eee);
  border-bottom: 1px solid var(--border-light, #eee);
  margin-top: 24px;
}

.ga-timeline .ft-section__title {
  margin-bottom: 8px;
}

.ga-timeline__lead {
  font-size: var(--text-sm, 14px);
  color: var(--text-secondary);
  margin-bottom: 40px;
}

.ga-timeline__chart {
  width: 100%;
}

.ga-timeline__row {
  display: grid;
  grid-template-columns: 180px 1fr;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
}

.ga-timeline__brand {
  font-size: var(--text-sm, 14px);
  font-weight: var(--font-weight-semibold, 600);
  color: var(--text-primary);
  text-align: right;
}

.ga-timeline__track {
  background: var(--border-light, #e5e5e5);
  border-radius: var(--radius-pill, 999px);
  overflow: hidden;
}

.ga-timeline__bar {
  width: var(--bar-w, 50%);
  background: var(--text-muted, #999);
  border-radius: var(--radius-pill, 999px);
  padding: 8px 16px;
  display: flex;
  justify-content: flex-end;
  transition: width 1.4s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Barras crecen desde 0 al entrar al viewport (via sistema reveal) */
html.js-ready .ga-timeline__chart.reveal .ga-timeline__bar {
  width: 40px;
}

html.js-ready .ga-timeline__chart.reveal .ga-timeline__bar span {
  opacity: 0;
  transition: opacity 0.4s ease-out;
}

html.js-ready .ga-timeline__chart.reveal.is-visible .ga-timeline__bar {
  width: var(--bar-w, 50%);
}

html.js-ready .ga-timeline__chart.reveal.is-visible .ga-timeline__bar span {
  opacity: 1;
  transition-delay: 0.9s;
}

/* La barra de la industria arranca con un pequeño delay */
html.js-ready .ga-timeline__chart.reveal.is-visible .ga-timeline__row:nth-child(2) .ga-timeline__bar {
  transition-delay: 0.25s;
}

@media (prefers-reduced-motion: reduce) {
  html.js-ready .ga-timeline__chart.reveal .ga-timeline__bar {
    width: var(--bar-w, 50%);
  }
  html.js-ready .ga-timeline__chart.reveal .ga-timeline__bar span {
    opacity: 1;
  }}

.ga-timeline__bar--mitsubishi {
  background: var(--color-red, #ED0000);
}

.ga-timeline__bar span {
  font-size: var(--text-xs, 12px);
  font-weight: var(--font-weight-semibold, 600);
  color: #fff;
  white-space: nowrap;
}

.ga-timeline__scale {
  display: flex;
  justify-content: space-between;
  margin-left: 196px;
  font-size: var(--text-xs, 12px);
  color: var(--text-muted);
}

/* ── Requisitos ── */
.ga-requisitos {
  padding: 72px 0;
}

.ga-requisitos .ft-section__title {
  margin-bottom: 8px;
}

.ga-requisitos__lead {
  font-size: var(--text-sm, 14px);
  color: var(--text-secondary);
  margin-bottom: 40px;
}

.ga-requisitos__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  list-style: none;
  padding: 0;
  margin: 0 0 40px;
  counter-reset: requisito;
}

.ga-requisito {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

.ga-requisito__num {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--color-red, #ED0000);
  color: #fff;
  font-size: var(--text-sm, 14px);
  font-weight: var(--font-weight-bold, 700);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ga-requisito__title {
  font-size: 16px;
  font-weight: var(--font-weight-semibold, 600);
  color: var(--text-primary);
  margin: 6px 0 8px;
}

.ga-requisito__text {
  font-size: var(--text-sm, 14px);
  color: var(--text-secondary);
  line-height: 1.6;
}

/* ── FAQ — usa el componente accordion del home ── */
.ga-faq {
  padding: 72px 0;
  background: var(--bg-secondary, #f7f7f7);
  border-top: 1px solid var(--border-light, #eee);
}

.ga-faq .section-header {
  margin-bottom: 40px;
}

.ga-faq .faq-section {
  max-width: 820px;
  margin-inline: auto;
}

.ga-faq .faq-section__title {
  display: none;
}

/* ── CTA final ── */
.ga-cta {
  padding: 72px 0;
}

.ga-cta__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  background: var(--color-black, #111);
  border-radius: 16px;
  padding: 48px;
}

.ga-cta__title {
  font-size: 24px;
  font-weight: var(--font-weight-bold, 700);
  color: #fff;
  margin-bottom: 8px;
}

.ga-cta__subtitle {
  font-size: var(--text-sm, 14px);
  color: rgba(255, 255, 255, 0.7);
  max-width: 44ch;
}

.ga-cta__actions {
  display: flex;
  gap: 16px;
  flex-shrink: 0;
}

/* Banda oscura: primary hace hover a blanco (no negro-sobre-negro) */
.ga-cta__inner .btn--primary::before {
  background: #FFFFFF;
}@media (hover: hover){

.ga-cta__inner .btn--primary:hover {
  background-color: transparent;
  border-color: #FFFFFF;
  color: #000000;
  box-shadow: none;
}}

.ga-disclaimer {
  font-size: var(--text-xs, 12px);
  color: var(--text-muted);
  line-height: 1.6;
  margin-top: 32px;
  text-align: center;
}

/* ── Responsive ── */
@media (max-width: 1023px) {
  .ga-highlights__list {
    gap: 24px;
  }

  .ga-requisitos__list {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .ga-cta__inner {
    flex-direction: column;
    align-items: flex-start;
    padding: 40px 32px;
  }

}

@media (max-width: 767px) {
  /* Highlights compactos: 3 columnas verticales */
  .ga-highlights {
    padding: 28px 0;
  }

  .ga-highlights__list {
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
  }

  .ga-highlight {
    flex-direction: column;
    text-align: center;
    gap: 6px;
  }

  .ga-highlight__number {
    font-size: 32px;
  }

  .ga-highlight__label {
    font-size: 12px;
    max-width: none;
  }

  /* Botones de cards y requisitos full-width */
  .ga-cob .btn,
  .ga-requisitos__cta .btn {
    width: 100%;
    text-align: center;
    justify-content: center;
  }

  /* Cards → una columna */
  .ga-cob__grid {
    grid-template-columns: 1fr;
  }

  /* Featured → misma estructura que las demás cards: imagen arriba, texto abajo */
  .ga-cob--featured {
    min-height: 0;
    flex-direction: column;
    align-items: stretch;
    border: 1px solid var(--border-light, #e5e5e5);
  }

  .ga-cob--featured .ga-cob__bg {
    position: static;
    aspect-ratio: 750 / 415;
    height: auto;
  }

  .ga-cob--featured .ga-cob__overlay {
    display: none;
  }

  .ga-cob--featured .ga-cob__content {
    padding: 20px;
    max-width: none;
  }

  .ga-cob--featured .ga-cob__title {
    font-size: 20px;
    color: var(--text-primary);
  }

  .ga-cob--featured .ga-cob__text {
    color: var(--text-secondary);
  }

  /* Botón ghost-light → variante oscura sobre fondo blanco */
  .ga-cob--featured .btn--ghost-light {
    color: #000000;
    border-color: #000000;
  }

  .ga-cob--featured .btn--ghost-light::before {
    background: #000000;
  }@media (hover: hover){

  .ga-cob--featured .btn--ghost-light:hover {
    border-color: #000000;
    color: #FFFFFF;
  }}

  .ga-cob--card .ga-cob__content {
    padding: 20px;
  }

  .ga-disclaimer {
    text-align: left;
  }

  .ga-timeline__row {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .ga-timeline__brand {
    text-align: left;
  }

  .ga-timeline__scale {
    margin-left: 0;
  }

  .ga-cta__actions {
    flex-direction: column;
    width: 100%;
  }

  .ga-cta__actions .btn {
    width: 100%;
    text-align: center;
  }}


/* ════════════════════════════════════════════════════════════
   MANTENIMIENTO (mnt-)
   ════════════════════════════════════════════════════════════ */

/* ── Finder ── */
.mnt-finder {
  padding: 48px 0;
  background: var(--bg-secondary, #f7f7f7);
  border-bottom: 1px solid var(--border-light, #eee);
}

.mnt-finder .ft-section__title {
  font-size: 24px;
  margin-bottom: 8px;
}

.mnt-finder__row {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 24px;
}

.mnt-finder__select {
  flex: 0 0 280px;
}

.mnt-finder__cta {
  flex-shrink: 0;
  white-space: nowrap;
}

/* ── Secciones ── */
.mnt-section {
  padding: 56px 0;
}

/* Legal del mantenimiento preventivo: banda propia que cierra
   las dos gamas (actual + no actual), sin pertenecer a ninguna */
.mnt-legal-section {
  padding: 0 0 56px;
}

@media (max-width: 767px) {
  .mnt-legal-section { padding-bottom: 40px; }}

.mnt-section--alt {
  background: var(--bg-secondary, #f7f7f7);
  border-top: 1px solid var(--border-light, #eee);
  border-bottom: 1px solid var(--border-light, #eee);
}

.mnt-section .ft-section__title {
  margin-bottom: 8px;
}

.mnt-section__lead {
  font-size: var(--text-sm, 14px);
  color: var(--text-secondary);
  margin-bottom: 24px;
}

/* ── Bloques de tabla ── */
.mnt-block {
  margin-top: 56px;
  /* Aire para que el header fijo no tape el chip del modelo al hacer scroll */
  scroll-margin-top: calc(var(--header-height-desktop) + 40px);
}

@media (max-width: 767px) {
  .mnt-block {
    scroll-margin-top: calc(var(--header-height-mobile) + 32px);
  }}

.mnt-block:first-of-type {
  margin-top: 40px;
}

/* Chip identificador del modelo de cada tabla */
.mnt-block__title {
  display: inline-block;
  font-size: 18px;
  font-weight: var(--font-weight-bold);
  color: #fff;
  background: var(--color-red);
  padding: 8px 18px;
  border-radius: var(--radius-xs);
  margin-bottom: 16px;
  letter-spacing: 0.01em;
  line-height: 1.3;
}

/* ── Botón borrar filtro (mantenimiento + manuales) ── */
.finder-clear {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-end;
  padding: 12px 20px;
  border: 1px solid var(--text-primary);
  border-radius: var(--radius-pill);
  background: transparent;
  font-family: inherit;
  font-size: var(--text-btn);
  font-weight: var(--font-weight-medium);
  color: var(--text-primary);
  cursor: pointer;
  white-space: nowrap;
  transition: color var(--duration-fast), border-color var(--duration-fast), background var(--duration-fast);
}@media (hover: hover){

.finder-clear:hover {
  color: var(--color-red);
  border-color: var(--color-red);
  background: rgba(237, 0, 0, 0.05);
}}

.finder-clear svg { flex-shrink: 0; }

.finder-clear[hidden] { display: none; }

@media (max-width: 767px) {
  .finder-clear {
    align-self: stretch;
    justify-content: center;
    width: 100%;
  }}

.mnt-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--border-light, #e5e5e5);
  border-radius: 12px;
  background:
    linear-gradient(to right, #fff 30%, rgba(255,255,255,0)) left/40px 100% no-repeat local,
    linear-gradient(to left, #fff 30%, rgba(255,255,255,0)) right/40px 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%, rgba(0,0,0,.12), transparent) left/14px 100% no-repeat scroll,
    radial-gradient(farthest-side at 100% 50%, rgba(0,0,0,.12), transparent) right/14px 100% no-repeat scroll;
}

.mnt-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--text-sm, 14px);
  background: transparent;
}

.mnt-table thead th {
  background: var(--color-black, #111);
  color: #fff;
  font-weight: var(--font-weight-semibold, 600);
  text-align: left;
  padding: 14px 16px;
  font-size: 13px;
  line-height: 1.35;
  vertical-align: top;
}

.mnt-table thead th span {
  font-weight: var(--font-weight-regular, 400);
  font-size: 11px;
  color: rgba(255,255,255,.65);
}

.mnt-table thead .mnt-th--km {
  background: #2a2a2a;
}

.mnt-fcam-ref {
  color: var(--color-red, #ED0000);
  margin-left: 2px;
}

.mnt-table tbody td,
.mnt-table tbody th {
  padding: 12px 16px;
  color: var(--text-primary);
  border-top: 1px solid var(--border-light, #eee);
  text-align: left;
  font-weight: var(--font-weight-regular, 400);
  min-width: 120px;
}

.mnt-table tbody th[scope="row"] {
  font-weight: var(--font-weight-bold);
  font-size: 15px;
  color: var(--text-primary);
}

.mnt-table tbody th[scope="row"] .mnt-year {
  font-weight: var(--font-weight-regular);
  font-size: 12px;
  color: var(--text-muted);
}

/* Nombres de modelo en encabezados de columna más notorios */
.mnt-table thead th:not(.mnt-th--km) {
  font-size: 14px;
}

.mnt-table tbody tr {
  background: var(--surface-primary, #fff);
}

.mnt-table tbody tr:nth-child(even) {
  background: var(--bg-secondary, #f7f7f7);
}

.mnt-note {
  font-size: var(--text-xs, 12px);
  color: var(--text-muted);
  margin-top: 8px;
}

.mnt-cta-float {
  text-align: center;
  margin-top: var(--space-4);
  margin-bottom: var(--space-2);
  animation: mn-fade-up 0.4s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.mnt-cta-float .btn { display: inline-flex; }
@media (max-width: 767px) {
  .mnt-cta-float .btn { display: flex; width: 100%; justify-content: center; }}

/* ── Legales colapsables ── */
.mnt-legal {
  margin-top: 24px;
  border: 1px solid var(--border-light, #e5e5e5);
  border-radius: 12px;
  background: var(--surface-primary, #fff);
  overflow: hidden;
}

.mnt-legal__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
  font-size: var(--text-sm, 14px);
  font-weight: var(--font-weight-semibold, 600);
  color: var(--text-primary);
  cursor: pointer;
  list-style: none;
}

.mnt-legal__summary::-webkit-details-marker {
  display: none;
}

.mnt-legal__summary svg {
  flex-shrink: 0;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.mnt-legal[open] .mnt-legal__summary svg {
  transform: rotate(180deg);
}

.mnt-legal__body {
  padding: 0 20px 20px;
}

.mnt-legal__body p {
  font-size: var(--text-xs, 12px);
  color: var(--text-muted);
  line-height: 1.7;
  margin-bottom: 12px;
}

/* ── Responsive ── */
@media (max-width: 767px) {
  .mnt-finder__row {
    flex-direction: column;
    align-items: stretch;
    max-width: none;
  }

  .mnt-finder__select {
    flex: 0 0 auto;
  }

  .mnt-section {
    padding: 40px 0;
  }

  .mnt-table tbody td,
  .mnt-table tbody th {
    min-width: 165px;
    padding: 16px 20px;
  }

  .mnt-table thead th {
    padding: 16px 20px;
  }
}

/* Mantenimiento: lead en una línea y hint con más aire */
.mnt-finder .mn-finder__lead {
  max-width: none;
}

.mnt-finder .mn-finder__hint {
  margin-top: 20px;
}

/* Resaltado del modelo seleccionado en el finder */
.mnt-table thead th.is-hl {
  background: var(--color-red, #ED0000);
}

.mnt-table tbody td.is-hl {
  background: rgba(237, 0, 0, 0.06);
  font-weight: var(--font-weight-semibold, 600);
}

.mnt-table tbody tr.is-hl th,
.mnt-table tbody tr.is-hl td {
  background: rgba(237, 0, 0, 0.06);
  font-weight: var(--font-weight-semibold, 600);
}

/* Frenos: modelo en bold, año en regular */
.mnt-year {
  font-weight: var(--font-weight-regular, 400);
  color: var(--text-secondary, #666);
  font-size: 13px;
}

/* Primera columna fija durante el scroll horizontal (contexto siempre visible) */
.mnt-table thead th:first-child,
.mnt-table tbody tr > *:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
}

.mnt-table tbody tr > td:first-child,
.mnt-table tbody tr > th:first-child {
  background: #fff;
  box-shadow: 1px 0 0 var(--border-light, #eee);
}

.mnt-table tbody tr:nth-child(even) > td:first-child,
.mnt-table tbody tr:nth-child(even) > th:first-child {
  background: var(--bg-secondary, #f7f7f7);
}

.mnt-table tbody tr.is-hl > td:first-child {
  background: #fdeeee;
}

/* Nombre del modelo de la fila resaltada: mismo tratamiento que la
   columna resaltada de gama actual (fondo rojo, texto blanco) */
.mnt-table tbody tr.is-hl th[scope="row"] {
  background: var(--color-red, #ED0000);
  color: #fff;
  box-shadow: none;
}

.mnt-table tbody tr.is-hl th[scope="row"] .mnt-year {
  color: rgba(255, 255, 255, 0.78);
}


/* ════════════════════════════════════════════════════════════
   HORARIOS Y UBICACIÓN (hu-)
   ════════════════════════════════════════════════════════════ */

.hu-section {
  padding: 64px 0;
}

.hu-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 48px;
  align-items: start;
}

/* ── Mapa + dirección ── */
.hu-map-col {
  position: sticky;
  top: 96px;
}

.hu-map {
  aspect-ratio: 4 / 3;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--border-light, #e5e5e5);
  background: var(--bg-secondary, #f7f7f7);
}

.hu-map iframe {
  display: block;
  width: 100%;
  height: 100%;
}

.hu-address {
  margin-top: 20px;
}

.hu-address__name {
  font-size: 20px;
  font-weight: var(--font-weight-bold, 700);
  color: var(--text-primary);
  margin-bottom: 4px;
}

.hu-address__text {
  font-size: var(--text-sm, 14px);
  color: var(--text-secondary);
  margin-bottom: 16px;
}

.hu-address__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

/* ── Horarios ── */
.hu-hours__title {
  font-size: 24px;
  font-weight: var(--font-weight-bold, 700);
  color: var(--text-primary);
  margin-bottom: 20px;
}

.hu-hours__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.hu-dept {
  border: 1px solid var(--border-light, #e5e5e5);
  border-radius: 12px;
  padding: 20px 24px;
  background: var(--surface-primary, #fff);
}

.hu-dept__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.hu-dept__name {
  font-size: 16px;
  font-weight: var(--font-weight-semibold, 600);
  color: var(--text-primary);
}

.hu-dept__badge {
  font-size: 12px;
  font-weight: var(--font-weight-semibold, 600);
  padding: 4px 12px;
  border-radius: var(--radius-pill, 999px);
}

.hu-dept__badge.is-open {
  background: #e7f6ec;
  color: #1a7f37;
}

.hu-dept__badge.is-closed {
  background: #f6e7e7;
  color: #b42318;
}

.hu-dept__rows {
  margin: 0;
}

.hu-dept__row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 6px 0;
  font-size: var(--text-sm, 14px);
}

.hu-dept__row dt {
  color: var(--text-secondary);
}

.hu-dept__row dd {
  color: var(--text-primary);
  font-weight: var(--font-weight-medium, 500);
  margin: 0;
}

.hu-dept__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  font-size: var(--text-sm, 14px);
  font-weight: var(--font-weight-semibold, 600);
  color: var(--color-red, #ED0000);
  text-decoration: none;
  transition: gap 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}@media (hover: hover){

.hu-dept__cta:hover {
  gap: 12px;
}}

/* ── Teléfonos ── */
.hu-phones {
  padding: 64px 0;
  background: var(--bg-secondary, #f7f7f7);
  border-top: 1px solid var(--border-light, #eee);
  border-bottom: 1px solid var(--border-light, #eee);
}

.hu-phones .ft-section__title {
  margin-bottom: 8px;
}

.hu-phones__lead {
  font-size: var(--text-sm, 14px);
  color: var(--text-secondary);
  margin-bottom: 32px;
}

.hu-phones__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.hu-phone {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 20px 24px;
  background: var(--surface-primary, #fff);
  border: 1px solid var(--border-light, #e5e5e5);
  border-radius: 12px;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}@media (hover: hover){

.hu-phone:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}}

.hu-phone__dept {
  font-size: 14px;
  font-weight: var(--font-weight-bold, 700);
  color: var(--text-secondary);
  margin-bottom: 2px;
}

/* Línea de contacto: ícono + número (teléfono directo / WhatsApp) */
.hu-phone__line {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--color-red, #ED0000);
  width: fit-content;
}

.hu-phone__line svg { flex-shrink: 0; }@media (hover: hover){

.hu-phone__line:hover .hu-phone__number { text-decoration: underline; text-underline-offset: 3px; }}@media (hover: hover){

.hu-phone__line:hover { color: var(--cta-primary-hover, #C80000); }}

.hu-phone__line--wa { color: #25D366; }@media (hover: hover){

/* Hover de WhatsApp: verde más oscuro (no rojo) */
.hu-phone__line--wa:hover { color: #1DA851; }}

.hu-phone__number {
  font-size: 18px;
  font-weight: var(--font-weight-bold, 700);
  color: inherit;
}

/* ── Responsive ── */
@media (max-width: 1023px) {
  .hu-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .hu-map-col {
    position: static;
  }

  .hu-phones__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  .hu-section,
  .hu-phones {
    padding: 40px 0;
  }

  .hu-map {
    aspect-ratio: 4 / 3.4;
  }

  .hu-address__actions .btn {
    flex: 1;
    text-align: center;
    justify-content: center;
  }

  .hu-phones__grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .hu-dept {
    padding: 16px 18px;
  }}


/* ════════════════════════════════════════════════════════════
   PREGUNTAS FRECUENTES (faqp-)
   ════════════════════════════════════════════════════════════ */

.faqp-finder {
  padding: 40px 0 8px;
  background: var(--bg-secondary, #f7f7f7);
  border-bottom: 1px solid var(--border-light, #eee);
}

.faqp-search {
  position: relative;
  max-width: 560px;
  margin-bottom: 20px;
}

.faqp-search__icon {
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-muted);
  pointer-events: none;
}

.faqp-search__clear {
  position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
  display: none; place-items: center; width: 30px; height: 30px;
  border: 0; border-radius: 50%; background: var(--surface-2, #f2f2f2);
  color: var(--text-secondary); cursor: pointer;
  transition: background var(--transition-fast), color var(--transition-fast);
}
.faqp-search__clear.is-visible { display: grid; }
.faqp-search__clear:hover { background: var(--border-subtle); color: var(--text-primary); }
.faqp-search__input {
  width: 100%;
  padding: 14px 48px 14px 48px;
  font-size: var(--text-sm, 14px);
  border: 1px solid var(--border-light, #e5e5e5);
  border-radius: var(--radius-pill, 999px);
  background: var(--surface-primary, #fff);
  color: var(--text-primary);
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.faqp-search__input:focus {
  border-color: var(--color-red, #ED0000);
  box-shadow: 0 0 0 3px rgba(237, 0, 0, 0.08);
}

.faqp-tabs {
  margin-bottom: 12px;
}

.faqp-tabs .ft-filter.is-muted {
  opacity: 0.45;
}

.faqp-count {
  font-size: 13px;
  color: var(--text-tertiary, #999);
  padding-bottom: 16px;
}

/* ── Listado ── */
.faqp-list {
  padding: 48px 0 72px;
}

.faqp-list .faq-section {
  max-width: 820px;
  margin-inline: auto;
}

/* ── Estado vacío ── */
.faqp-empty {
  max-width: 480px;
  margin: 24px auto 0;
  text-align: center;
  padding: 40px 24px;
}

.faqp-empty__title {
  font-size: 18px;
  font-weight: var(--font-weight-semibold, 600);
  color: var(--text-primary);
  margin-bottom: 8px;
}

.faqp-empty__text {
  font-size: var(--text-sm, 14px);
  color: var(--text-secondary);
  margin-bottom: 24px;
}

/* ── CTA contextual ── */
.faqp-cta {
  max-width: 820px;
  margin: 40px auto 0;
  padding: 32px;
  background: var(--bg-secondary, #f7f7f7);
  border: 1px solid var(--border-light, #eee);
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.faqp-cta__text {
  font-size: 16px;
  font-weight: var(--font-weight-semibold, 600);
  color: var(--text-primary);
  flex: 1 1 220px;
  min-width: 0;
}

.faqp-cta__actions {
  display: flex;
  gap: 12px;
  flex-shrink: 0;
}

/* ── Responsive ── */
@media (max-width: 767px) {
  .faqp-finder {
    padding-top: 28px;
  }

  .faqp-list {
    padding: 32px 0 56px;
  }

  .faqp-cta {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    text-align: left;
    padding: 24px 20px;
    gap: 16px;
  }

  .faqp-cta__text {
    flex: 0 0 auto;
  }

  .faqp-cta__actions {
    flex-direction: column;
  }

  .faqp-cta__actions .btn {
    width: 100%;
    text-align: center;
  }

  /* Estado vacío: alineado a la izquierda y CTA full-width */
  .faqp-empty {
    text-align: left;
    padding: 32px 0;
    margin-inline: 0;
    max-width: none;
  }

  .faqp-empty .btn {
    width: 100%;
    text-align: center;
  }
}


/* ════════════════════════════════════════════════════════════
   CONTACTO (ct-)
   ════════════════════════════════════════════════════════════ */

/* ── Vías rápidas ── */
.ct-quick {
  padding: 40px 0;
  background: var(--bg-secondary, #f7f7f7);
  border-bottom: 1px solid var(--border-light, #eee);
}

.ct-quick__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.ct-quick__card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 24px;
  background: var(--surface-primary, #fff);
  border: 1px solid var(--border-light, #e5e5e5);
  border-radius: 12px;
  text-decoration: none;
  height: 100%;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}@media (hover: hover){

.ct-quick__card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}}

.ct-quick__icon {
  color: var(--color-red, #ED0000);
  margin-bottom: 8px;
}

.ct-quick__label {
  font-size: var(--text-xs, 12px);
  font-weight: var(--font-weight-semibold, 600);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-secondary);
}

.ct-quick__value {
  font-size: 17px;
  font-weight: var(--font-weight-bold, 700);
  color: var(--text-primary);
}

/* ── Header del formulario ── */
.ct-form-header {
  margin-bottom: 40px;
}

.ct-form-header .ft-section__title {
  margin-bottom: 8px;
}

.ct-form-header__lead {
  font-size: var(--text-sm, 14px);
  color: var(--text-secondary);
}

/* ── Campos ── */
.td-fieldset > .form__group + .form__group {
  margin-top: var(--space-2);
}

.ct-textarea {
  resize: vertical;
  min-height: 110px;
}

.ct-optional {
  font-weight: var(--font-weight-regular, 400);
  color: var(--text-muted);
  text-transform: none;
}

.ct-shortcut {
  margin-top: 8px;
  font-size: 13px;
  color: var(--text-secondary);
}

.ct-shortcut a {
  color: var(--color-red, #ED0000);
  font-weight: var(--font-weight-semibold, 600);
}

/* ── Responsive ── */
@media (max-width: 767px) {
  .ct-quick {
    padding: 28px 0;
  }

  .ct-quick__grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .ct-quick__card {
    flex-direction: row;
    align-items: center;
    gap: 14px;
    padding: 18px 20px;
  }

  .ct-quick__icon {
    margin-bottom: 0;
  }

  .ct-quick__label {
    flex: 1;
  }
}

/* FAQ CTA: en tablet/mobile el texto va arriba y los botones full-width */
@media (max-width: 1023px) {
  .faqp-cta {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 20px;
  }

  .faqp-cta__text {
    flex: 0 0 auto;
  }

  .faqp-cta__actions {
    flex-direction: column;
    flex-shrink: 1;
  }

  .faqp-cta__actions .btn {
    width: 100%;
    text-align: center;
  }
}