/**
 * Anchura de contenido unificada en toda la web (1180px).
 * Cargar al final de la cascada CSS para alinear grillas, cards y CTAs.
 */
:root {
  --content-max: 1180px;
}

/* Grillas y bloques de cards */
.sw-prods-grid,
.sw-prods-grid--seo,
.sw-cases-wrap,
.plans-grid,
.addons-grid,
.sw-support-grid,
.seo-anim,
.sw-intro-split,
.pricing,
.proof-stats,
.testis,
.how-flow,
.why-grid,
.bento,
.why-band,
.values-grid,
.oneshot-grid,
.addons-grid--complementos,
.oneshot-section,
.addons-oneshot-section,
.carousel,
.carousel-wrap,
.kd-next-plans,
.mem-flow,
.sol-grid,
.pts-carousel,
.faq-list,
.mission-grid,
.od-highlights-grid,
.od-related-grid,
.od-overview-card,
.od-asesoria-card,
.od-nosabes-card,
.od-video-grid,
.od-specs-table,
.kd-cta-card,
.od-cta-card,
.pricing-extra-card {
  width: 100%;
  max-width: var(--content-max);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* Producto único (SEO, facturación…): ancho completo del contenedor */
.sw-prods-grid--seo {
  grid-template-columns: minmax(0, 1fr);
  justify-content: stretch;
}

/* Soporte / asesoramiento: mismo ancho; 2 columnas (Web), 1 tarjeta a ancho completo */
.sw-support-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: var(--content-max);
}

.sw-support-grid > .sw-supp-card:only-child {
  grid-column: 1 / -1;
}

@media (max-width: 780px) {
  .sw-support-grid {
    grid-template-columns: 1fr;
  }
}

/* CTA final y bandas CTA */
.sw-cta-card,
.cta-band {
  width: 100%;
  max-width: var(--content-max);
  margin-inline: auto;
  box-sizing: border-box;
}

.sec .cta-band {
  max-width: var(--content-max);
}

/* Conservar estrechamiento intencional en móvil */
@media (max-width: 1080px) {
  .plans-grid {
    max-width: min(560px, 100%);
  }
}

@media (max-width: 980px) {
  .pricing {
    max-width: min(480px, 100%);
  }

  .od-highlights-grid {
    max-width: min(520px, 100%);
  }
}

@media (max-width: 720px) {
  .kd-next-plans {
    max-width: min(420px, 100%);
  }
}
