/* =====================================================================
   CPW — CSS MAESTRO (@cpw/css)
   Consolidado de widgets.css de segurosdesaludyvida.com (#ssv-widget-*).
   - Sin Bootstrap, sin home.css, sin !important, sin @import, sin URLs.
   - Todo color viene de tokens --cpw-* (ver tokens.default.json).
   - Cada bloque lleva una marca [Txx] que se explica en TRAZABILIDAD.md.
   - Contrato de clases/DOM por seccion: CLASSES.md.
   Regla fija heredada: todo el texto alineado a la izquierda; unica
   excepcion autorizada: .cpw-final-cta (centrado).
   ===================================================================== */

/* [T01] origen: widgets.css L57/L76/L172 (variables --blue/--navy/--muted/--line por widget) -> tokens */
:root {
  --cpw-primary: #0076df;
  --cpw-primary-contrast: #ffffff;
  --cpw-text: #071a49;
  --cpw-text-muted: #5f6368;
  --cpw-background: #ffffff;
  --cpw-surface: #ffffff;
  --cpw-soft: #f5f9fd;
  --cpw-border: #e5e7eb;
  --cpw-focus: #0076df;
  --cpw-font: Lato, Arial, sans-serif;
}

/* [T02] origen: L33 (hero: font-family Lato/Arial, color navy, background blanco, text-align left) */
.cpw-page {
  margin: 0;
  background: var(--cpw-background);
  color: var(--cpw-text);
  font-family: var(--cpw-font);
  text-align: left;
}
/* [T03] origen: L32/L58 (box-sizing:border-box en el widget y sus hijos) */
.cpw-page *,
.cpw-page *::before,
.cpw-page *::after {
  box-sizing: border-box;
}
/* [T04] origen: L34 (a: color inherit, sin subrayado). Especificidad 0: el color de un botón o enlace con clase nunca lo pisa esta regla. */
:where(.cpw-page) a {
  color: inherit;
  text-decoration: none;
}
/* [T05] origen: L65/L84 (imagenes block, ancho 100%, object-fit cover) */
.cpw-page img {
  display: block;
  max-width: 100%;
}

/* [T06] origen: requisito accesibilidad del blueprint 4-A y 9 (foco visible); sin regla en widgets.css */
.cpw-page :focus-visible {
  outline: 3px solid var(--cpw-focus);
  outline-offset: 2px;
}
/* [T07] origen: requisito blueprint 4-A (saltar al contenido); usa pastilla de L42 (.ssv-primary) */
.cpw-skip {
  position: absolute;
  left: 16px;
  top: -80px;
  z-index: 60;
  padding: 15px 24px;
  border-radius: var(--cpw-btn-radius, 999px);
  background: var(--cpw-primary);
  color: var(--cpw-primary-contrast);
  font-size: 14px;
  font-weight: 600;
}
.cpw-skip:focus {
  top: 12px;
}

/* ---------- Secciones genericas (contenedor, titulos, grids) ---------- */

/* [T08] origen: L57 (#ssv-widget-02 padding 0 20px, fondo blanco) y L76 (variante soft) */
.cpw-section {
  padding: 0 20px;
  background: var(--cpw-background);
  color: var(--cpw-text);
}
.cpw-section--soft {
  background: var(--cpw-soft);
}
/* [T09] origen: L59 (.ssv02-wrap max-width 1200, margin auto, padding 32px 0) */
.cpw-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 32px 0;
}
/* [T10] origen: L60 y L79 (kicker 12px, uppercase, tracking .25em/.18em; color primary / kicker -> text-muted) */
.cpw-kicker {
  margin: 0 0 12px;
  color: var(--cpw-primary);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
}
.cpw-kicker--muted {
  color: var(--cpw-text-muted);
  font-weight: 700;
  letter-spacing: 0.18em;
}
/* [T11] origen: L61 (h2 38px / 1.12 / 400 / -.025em) */
.cpw-title {
  margin: 0;
  font-size: 38px;
  line-height: 1.12;
  font-weight: 400;
  letter-spacing: -0.025em;
}
.cpw-title--narrow {
  max-width: 650px;
}
/* [T12] origen: L62 (intro 17px / 1.5, muted, margen 10px 0 30px) */
.cpw-intro {
  margin: 10px 0 30px;
  color: var(--cpw-text-muted);
  font-size: 17px;
  line-height: 1.5;
}
.cpw-intro--narrow {
  max-width: 650px;
}
/* [T13] origen: L63 (grid 3 columnas gap 24px) + L72 (<=900: 2 col) + L73 (<=700: 1 col, gap 20px) */
.cpw-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
/* [T14] origen: L123 (.ssv05-grid 3 col gap 20px) + L132 (<=900: 1 col) */
.cpw-grid--tight {
  gap: 20px;
}
.cpw-grid--2 {
  grid-template-columns: repeat(2, 1fr);
}

/* [T15] origen: L64 (card: overflow hidden, borde 1px line, radio 24px, fondo blanco) */
.cpw-card {
  display: block;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--cpw-border);
  border-radius: 24px;
  background: var(--cpw-surface);
  color: var(--cpw-text);
}
/* [T16] origen: L65 (imagen de card: alto 180px, ancho 100%, cover) */
.cpw-card__image {
  display: block;
  width: 100%;
  height: 180px;
  margin: 0;
  object-fit: cover;
}
/* [T17] origen: L84 (imagen cuadrada del grid educativo aspect-ratio 1/1) */
.cpw-card__image--square {
  height: auto;
  aspect-ratio: 1 / 1;
}
/* [T18] origen: L214 (imagen alta del widget 09: 240px) */
.cpw-card__image--tall {
  height: 240px;
}
/* [T19] origen: L66 (body padding 26px 24px 28px) */
.cpw-card__body {
  padding: 26px 24px 28px;
}
.cpw-card__body--roomy {
  padding: 32px;
}
/* [T20] origen: L67/L68 (icono circular 44px superpuesto -52px sobre la imagen, SVG 28px) */
.cpw-card__icon {
  position: relative;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin: -52px 0 18px;
  border-radius: 50%;
  background: var(--cpw-surface);
  color: var(--cpw-primary);
}
.cpw-card__icon svg {
  display: block;
  width: 28px;
  height: 28px;
}
/* [T21] origen: L69 (h3 19px / 1.25 / 500) */
.cpw-card__title {
  margin: 0 0 8px;
  font-size: 19px;
  line-height: 1.25;
  font-weight: 500;
}
/* [T22] origen: L70 (p de card 16px / 1.5, muted, min-height 48px) */
.cpw-card__text {
  min-height: 48px;
  margin: 0 0 16px;
  color: var(--cpw-text-muted);
  font-size: 16px;
  line-height: 1.5;
}
/* [T23] origen: L71 y L90 (enlace "ver mas": primary 15px, inline-flex gap 8px) */
.cpw-card__more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--cpw-primary);
  font-size: 15px;
  font-weight: 500;
}
/* [T24] origen: L91 (flecha dentro del enlace 20px) */
.cpw-card__more span {
  font-size: 20px;
  font-weight: 400;
}

/* ---------- Botones ---------- */

/* [T25] origen: L42 (.ssv-primary: pastilla 999px, padding 15px 24px, 14px/600) y L103/L238 (variantes 15/16px) */
/* [T95] origen: extensión propia sobre L42 (pastilla 999px por defecto); el usuario elige la forma con --cpw-btn-radius (usado también en .cpw-skip y .cpw-fab) */
.cpw-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex: 0 0 auto;
  padding: 15px 24px;
  border: 2px solid var(--cpw-primary);
  border-radius: var(--cpw-btn-radius, 999px);
  background: var(--cpw-primary);
  color: var(--cpw-primary-contrast);
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  cursor: pointer;
}
/* [T26] origen: L43 (.ssv-secondary: borde 2px primary, transparente, padding 12px 20px) */
.cpw-btn--secondary {
  padding: 12px 20px;
  background: var(--cpw-surface);
  color: var(--cpw-primary);
}
/* [T27] origen: L103/L146 (CTA 15px/700 y ancho completo en .ssv06-cta-btn) */
.cpw-btn--lg {
  padding: 14px 22px;
  font-size: 15px;
  font-weight: 700;
}
.cpw-btn--block {
  width: 100%;
}
.cpw-btn span {
  font-size: 20px;
  line-height: 1;
  font-weight: 400;
}
/* [T28] origen: L41 (.ssv-actions flex, gap 24px, wrap) + L50 (<=800: columna, stretch) */
.cpw-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 24px;
}

/* ---------- 1. HEADER ---------- */

/* [T29] origen: L243-L245 (borde 1px line y contenedor 1200) + gen-nav-bar.css (barra sticky, links uppercase); fondo superficie */
.cpw-header {
  position: sticky;
  top: 0;
  z-index: 40;
  padding: 0 20px;
  border-bottom: 1px solid var(--cpw-border);
  background: var(--cpw-surface);
  color: var(--cpw-text);
}
.cpw-header__inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 12px 0;
}
/* [T30] origen: L247 (logo height 76px, auto) -> 56px en header, 52px en <=600 (L266) */
.cpw-header__brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 19px;
  font-weight: 500;
}
.cpw-header__logo {
  width: auto;
  height: 56px;
}
/* [T31] origen: L253 (links 15px, muted) y L254 (hover primary) */
.cpw-header__nav {
  display: flex;
  align-items: center;
  gap: 24px;
}
.cpw-header__link {
  color: var(--cpw-text-muted);
  font-size: 15px;
}
.cpw-header__link:hover,
.cpw-header__link[aria-current="page"] {
  color: var(--cpw-primary);
}
/* [T32] origen: L216 (etiqueta 12px, uppercase, .18em) para selector de idioma */
.cpw-header__lang {
  color: var(--cpw-text-muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
/* [T33] origen: L25 de gen-nav-bar (toggle) + L153 (circulo 24px con icono); boton 44px */
.cpw-header__toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--cpw-border);
  border-radius: 50%;
  background: var(--cpw-surface);
  color: var(--cpw-primary);
  font-size: 20px;
  cursor: pointer;
}

/* ---------- 2. TWO-COLUMN HERO ---------- */

/* [T34] origen: L33 (hero ancho 100%, overflow hidden) */
.cpw-hero {
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: var(--cpw-background);
  color: var(--cpw-text);
}
/* [T35] origen: L35 (inner 1200 max, min-height 540, grid 1fr 1fr) */
.cpw-hero__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 100%;
  max-width: 1200px;
  min-height: 540px;
  margin: 0 auto;
}
/* [T36] origen: L36 (copy flex columna centrada, padding 0 48px) */
.cpw-hero__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 0 48px;
}
/* [T37] origen: L37 (eyebrow 11px, .28em, uppercase, primary) */
.cpw-hero__eyebrow {
  width: 100%;
  margin: 0 0 20px;
  color: var(--cpw-primary);
  font-size: 11px;
  letter-spacing: 0.28em;
  line-height: 1.5;
  text-transform: uppercase;
}
/* [T38] origen: L38/L39 (h1 50px/300/1.08/-.04em, span en primary) */
.cpw-hero__title {
  width: 100%;
  max-width: 530px;
  margin: 0;
  color: var(--cpw-text);
  font-size: 50px;
  font-weight: 300;
  line-height: 1.08;
  letter-spacing: -0.04em;
}
.cpw-hero__title span {
  color: var(--cpw-primary);
}
/* [T39] origen: L40 (descripcion 17px/1.65, max 475px, margen 24px 0 32px) */
.cpw-hero__desc {
  width: 100%;
  max-width: 475px;
  margin: 24px 0 32px;
  color: var(--cpw-text-muted);
  font-size: 17px;
  line-height: 1.65;
}
/* [T40] origen: L44/L45 (foto: radio 24, min-height 540, cover, posicion center 30%) */
.cpw-hero__media {
  height: 100%;
  min-height: 540px;
  margin: 0;
  overflow: hidden;
  border-radius: 24px;
  background: var(--cpw-soft);
}
.cpw-hero__photo {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 540px;
  object-fit: cover;
  object-position: center 30%;
}

/* ---------- 3. EDITORIAL HERO (estructura Yoly; estilos del vocabulario widgets) ---------- */

/* [T41] origen: L35/L36 (mismo grid 1fr 1fr y copy centrada del hero) con padding de wrap L59 */
.cpw-editorial {
  padding: 0 20px;
  background: var(--cpw-background);
  color: var(--cpw-text);
}
.cpw-editorial__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  gap: 64px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 32px 0;
}
/* [T42] origen: L38 (h1 de hero, 300) y L40 (subtitulo muted 17px) */
.cpw-editorial__title {
  max-width: 530px;
  margin: 0;
  font-size: 50px;
  font-weight: 300;
  line-height: 1.08;
  letter-spacing: -0.04em;
}
.cpw-editorial__subtitle {
  max-width: 475px;
  margin: 24px 0 28px;
  color: var(--cpw-text-muted);
  font-size: 17px;
  line-height: 1.65;
}
/* [T43] origen: L105/L106 (foto con radio 24 y cover, max-height 560) */
.cpw-editorial__media {
  min-height: 360px;
  margin: 0;
  overflow: hidden;
  border-radius: 24px;
  background: var(--cpw-soft);
}
.cpw-editorial__photo {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
  object-position: center top;
}
/* [T44] origen: L115 (panel soft radio 16, padding 20px 24px, flex wrap gap 16) -> campo de conversacion */
.cpw-composer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin: 0 0 20px;
  padding: 0;
}
.cpw-composer__input {
  flex: 1 1 220px;
  min-width: 0;
  padding: 14px 18px;
  border: 1px solid var(--cpw-border);
  border-radius: 999px;
  background: var(--cpw-surface);
  color: var(--cpw-text);
  font-family: inherit;
  font-size: 16px;
}
/* [T45] origen: L41 (acciones en fila con gap) + L199 (texto auxiliar 13px muted) -> alternativas WhatsApp/email/llamada */
.cpw-alt {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin: 0;
  padding: 0;
  list-style: none;
  color: var(--cpw-text-muted);
  font-size: 14px;
}
.cpw-alt a,
.cpw-alt button {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--cpw-primary);
  font: inherit;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

/* ---------- 4. TRUST BAND ---------- */

/* [T46] origen: L76 (fondo soft) + L115 (panel radio 16, padding 20px 24px) */
.cpw-trust {
  padding: 0 20px;
  background: var(--cpw-soft);
}
.cpw-trust__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 40px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 32px 0;
}
.cpw-trust__copy {
  flex: 1 1 420px;
}
/* [T47] origen: L119 (score 20px/700) y L129 (texto 15px) */
.cpw-trust__title {
  margin: 0 0 8px;
  font-size: 20px;
  font-weight: 700;
}
.cpw-trust__text {
  max-width: 650px;
  margin: 0;
  color: var(--cpw-text-muted);
  font-size: 17px;
  line-height: 1.55;
}
.cpw-trust__link {
  color: var(--cpw-primary);
  font-size: 15px;
  font-weight: 700;
}

/* ---------- 5. START QUESTIONS ---------- */

/* [T48] origen: L147-L150 (lista FAQ: columna gap 12, items radio 16 fondo soft, padding 18px 22px) */
.cpw-questions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cpw-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 22px;
  border: 1px solid var(--cpw-border);
  border-radius: 24px;
  background: var(--cpw-surface);
  color: var(--cpw-text);
  font-size: 16px;
  font-weight: 500;
}
/* [T49] origen: L153 (indicador circular 24px) + L186 (ruta en primary 15px) */
.cpw-question__route {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 1 auto;
  min-width: 0;
  color: var(--cpw-primary);
  font-size: 15px;
  font-weight: 500;
}
.cpw-question:hover {
  border-color: var(--cpw-primary);
}

/* ---------- 6-9. GRIDS (situaciones, servicios, educativo, publicos) ---------- */
/* Usan .cpw-grid/.cpw-card; solo se agregan las variantes propias de cada widget. */

/* [T50] origen: L179 (card de situaciones es enlace: display block, sin subrayado, color navy) */
.cpw-situations .cpw-card:hover .cpw-card__more,
.cpw-education .cpw-card:hover .cpw-card__more {
  text-decoration: underline;
}
/* [T51] origen: L216 (label 12px/700/.18em) */
.cpw-card__label {
  display: inline-block;
  margin: 0 0 14px;
  color: var(--cpw-primary);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
/* [T52] origen: L217 (h3 24px/1.2/400/-.02em en publicos) */
.cpw-card__title--lg {
  margin: 0 0 10px;
  font-size: 24px;
  line-height: 1.2;
  font-weight: 400;
  letter-spacing: -0.02em;
}
.cpw-card__text--plain {
  min-height: 0;
  margin: 0 0 20px;
}
/* [T53] origen: L219-L221 (lista con check: columna gap 10, svg 18px primary) */
.cpw-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}
.cpw-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-size: 15px;
}
.cpw-list svg {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  color: var(--cpw-primary);
}
/* [T54] origen: L222-L224 (acciones en columna, botones flex 1) */
.cpw-card__actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
}

/* ---------- 10. BRANDS BAND (marquee) ---------- */

/* [T55] origen: L160-L162 (overflow hidden, wrap padding 32px 20px) */
.cpw-brands {
  overflow: hidden;
  background: var(--cpw-background);
  color: var(--cpw-text);
}
.cpw-brands__wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 32px 20px;
}
/* [T56] origen: L163 (unica mascara permitida: linear-gradient en mask-image) */
.cpw-brands__viewport {
  position: relative;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
}
/* [T57] origen: L164/L165/L168 (pista flex width max-content, animacion scroll 40s lineal infinita, pausa en hover) */
.cpw-brands__track {
  display: flex;
  align-items: center;
  width: max-content;
  animation: cpw-brands-scroll 40s linear infinite;
}
.cpw-brands__track:hover {
  animation-play-state: paused;
}
.cpw-brands__set {
  display: flex;
  align-items: center;
}
/* [T58] origen: L166/L167 (logo 44px, max 150, opacidad .75, gris; hover color) */
.cpw-brands__logo {
  flex: 0 0 auto;
  width: auto;
  max-width: 150px;
  height: 44px;
  margin: 0 28px;
  object-fit: contain;
  opacity: 0.75;
  filter: grayscale(100%);
  transition: opacity 0.2s ease, filter 0.2s ease;
}
.cpw-brands__logo:hover {
  opacity: 1;
  filter: grayscale(0%);
}
@keyframes cpw-brands-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
/* [T59] origen: L169 (movil: logo 34px, margen 20px, animacion 28s) */
.cpw-brands__note {
  margin: 16px 0 0;
  color: var(--cpw-text-muted);
  font-size: 13px;
}

/* ---------- 11. HUMAN PROFILE ---------- */

/* [T60] origen: L98 (grid 1fr 1fr, gap 64px, align center) */
.cpw-profile__wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  gap: 64px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 32px 0;
}
/* [T61] origen: L101/L102 (h2 max 540 margen 0 0 18; parrafo 17px/1.55 muted) */
.cpw-profile__title {
  max-width: 540px;
  margin: 0 0 18px;
  font-size: 38px;
  line-height: 1.14;
  font-weight: 400;
  letter-spacing: -0.025em;
}
.cpw-profile__text {
  max-width: 540px;
  margin: 0 0 18px;
  color: var(--cpw-text-muted);
  font-size: 17px;
  line-height: 1.55;
}
/* [T62] origen: L127 (nombre 15px/700) y L129 (cita) -> blockquote del perfil */
.cpw-profile__quote {
  max-width: 540px;
  margin: 0 0 22px;
  padding: 0 0 0 20px;
  border-left: 3px solid var(--cpw-primary);
  color: var(--cpw-text);
  font-size: 19px;
  line-height: 1.45;
}
/* [T63] origen: L105/L106 (foto con radio 24, cover, top) */
.cpw-profile__wrap > div:first-child {
  align-self: center;
}
.cpw-profile__media {
  min-height: 360px;
  margin: 0;
  overflow: hidden;
  border-radius: 24px;
  background: var(--cpw-soft);
}
.cpw-profile__photo {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
  object-position: center top;
}

/* ---------- 12. TESTIMONIALS ---------- */

/* [T64] origen: L115-L121 (resumen: soft, radio 16, padding 20px 24px, flex entre) */
.cpw-reviews__summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 20px;
  padding: 0;
}
.cpw-reviews__source {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--cpw-text-muted);
  font-size: 20px;
  font-weight: 600;
}
.cpw-reviews__score {
  color: var(--cpw-text);
  font-size: 20px;
  font-weight: 700;
}
.cpw-reviews__stars {
  color: var(--cpw-primary);
  font-size: 16px;
  letter-spacing: 2px;
}
.cpw-reviews__count {
  color: var(--cpw-text-muted);
  font-size: 14px;
}
/* [T65] origen: L124 (card sin borde, radio 16, padding 22px, fondo gris -> soft) */
.cpw-review {
  margin: 0;
  padding: 22px;
  border: 1px solid var(--cpw-border);
  border-radius: 24px;
  background: var(--cpw-surface);
}
/* [T66] origen: L125-L128 (cabecera flex, avatar 40px circular primary, nombre 15/700) */
.cpw-review__head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 12px;
}
.cpw-review__avatar {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--cpw-primary);
  color: var(--cpw-primary-contrast);
  font-size: 16px;
  font-weight: 700;
}
.cpw-review__name {
  margin: 0;
  color: var(--cpw-text);
  font-size: 15px;
  font-weight: 700;
}
.cpw-review__stars {
  margin: 2px 0 0;
  color: var(--cpw-primary);
  font-size: 13px;
}
/* [T67] origen: L129/L130 (texto 15/1.5; pie 12px muted con enlace a la fuente) */
.cpw-review__text {
  margin: 0 0 14px;
  color: var(--cpw-text);
  font-size: 15px;
  line-height: 1.5;
}
.cpw-review__foot {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--cpw-text-muted);
  font-size: 12px;
}
.cpw-review__foot a {
  color: var(--cpw-primary);
  text-decoration: underline;
}

/* ---------- 13. PROCESS STEPS (estructura Yoly; estilos de icono/card de widgets) ---------- */

/* [T68] origen: L63/L124 (grid y card suave) */
.cpw-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin: 0 0 30px;
  padding: 0;
  list-style: none;
}
.cpw-step {
  margin: 0;
  padding: 24px;
  border: 1px solid var(--cpw-border);
  border-radius: 24px;
  background: var(--cpw-surface);
}
/* [T69] origen: L126 (circulo 40px primary con numero 16/700) */
.cpw-step__number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin: 0 0 16px;
  border-radius: 50%;
  background: var(--cpw-primary);
  color: var(--cpw-primary-contrast);
  font-size: 16px;
  font-weight: 700;
}
.cpw-step__title {
  margin: 0 0 8px;
  font-size: 19px;
  line-height: 1.25;
  font-weight: 500;
}
.cpw-step__text {
  margin: 0;
  color: var(--cpw-text-muted);
  font-size: 16px;
  line-height: 1.5;
}

/* ---------- 14. FAQ ---------- */

/* [T70] origen: L141 (grid 340px 1fr, gap 32px, align start) */
.cpw-faq__grid {
  display: grid;
  grid-template-columns: 340px 1fr;
  align-items: start;
  gap: 32px;
}
.cpw-faq__title {
  max-width: 420px;
  margin: 0 0 32px;
  font-size: 38px;
  line-height: 1.14;
  font-weight: 400;
  letter-spacing: -0.025em;
}
/* [T71] origen: L142-L146 (tarjeta CTA lateral: soft, radio 20, padding 28, avatar 56, h3 21/500, p 15) */
.cpw-faq__aside {
  padding: 28px;
  border: 1px solid var(--cpw-border);
  border-radius: 24px;
  background: var(--cpw-surface);
}
.cpw-faq__avatar {
  display: block;
  width: 56px;
  height: 56px;
  margin: 0 0 20px;
  border-radius: 50%;
  object-fit: cover;
}
.cpw-faq__aside-title {
  margin: 0 0 10px;
  font-size: 21px;
  font-weight: 500;
  line-height: 1.25;
}
.cpw-faq__aside-text {
  margin: 0 0 22px;
  color: var(--cpw-text-muted);
  font-size: 15px;
  line-height: 1.5;
}
/* [T72] origen: L147-L152 (lista columna gap 12; item details radio 16 soft; summary flex 16px/500; sin marcador) */
.cpw-faq__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.cpw-faq__item {
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--cpw-border);
  border-radius: 24px;
  background: var(--cpw-surface);
}
.cpw-faq__item[open] {
  background: var(--cpw-surface);
  border: 1px solid var(--cpw-border);
}
.cpw-faq__item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 22px;
  color: var(--cpw-text);
  font-size: 16px;
  font-weight: 500;
  list-style: none;
  cursor: pointer;
}
.cpw-faq__item summary::-webkit-details-marker {
  display: none;
}
.cpw-faq__item summary::marker {
  content: "";
}
/* [T73] origen: L153/L154 (icono + circular 24px; rota 45deg abierto, transicion .2s) */
.cpw-faq__icon {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--cpw-surface);
  color: var(--cpw-primary);
  font-size: 16px;
  font-weight: 700;
  transition: transform 0.2s ease;
}
.cpw-faq__item[open] .cpw-faq__icon {
  transform: rotate(45deg);
}
/* [T74] origen: L155 (respuesta 15px/1.6 muted, padding 0 22px 20px) */
.cpw-faq__answer {
  margin: 0;
  padding: 0 22px 20px;
  color: var(--cpw-text-muted);
  font-size: 15px;
  line-height: 1.6;
}

/* ---------- 15. HELP CTA ---------- */

/* [T75] origen: L142 (tarjeta soft radio 20 padding 28) en version horizontal + L197-L199 (QR 96px + texto 13px) */
.cpw-help {
  padding: 0 20px;
  background: var(--cpw-soft);
}
.cpw-help__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px 32px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 0;
}
.cpw-help__title {
  margin: 0 0 6px;
  font-size: 21px;
  font-weight: 500;
  line-height: 1.25;
}
.cpw-help__text {
  margin: 0;
  color: var(--cpw-text-muted);
  font-size: 15px;
  line-height: 1.5;
}
.cpw-qr {
  display: none;
  align-items: center;
  gap: 12px;
  margin: 0;
}
.cpw-qr img {
  display: block;
  width: 96px;
  height: 96px;
  margin: 0;
}
.cpw-qr span {
  max-width: 170px;
  color: var(--cpw-text-muted);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.35;
}

/* ---------- 16. FINAL CTA (unica seccion centrada, excepcion autorizada L229-L233) ---------- */

/* [T76] origen: L234/L236 (centrado, padding 64px 0, flex columna) */
.cpw-final-cta {
  padding: 0 20px;
  background: var(--cpw-background);
  color: var(--cpw-text);
  text-align: center;
}
.cpw-final-cta__wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 64px 0;
}
/* [T77] origen: L237 (h2 38px/1.15, max 650, margen 0 0 28) */
.cpw-final-cta__title {
  max-width: 650px;
  margin: 0 0 28px;
  font-size: 38px;
  line-height: 1.15;
  font-weight: 400;
  letter-spacing: -0.025em;
}
.cpw-final-cta__text {
  max-width: 650px;
  margin: 0 0 28px;
  color: var(--cpw-text-muted);
  font-size: 17px;
  line-height: 1.5;
}
/* [T78] origen: L238 (CTA 16px/700, padding 16px 32px) */
.cpw-btn--xl {
  padding: 16px 32px;
  font-size: 16px;
  font-weight: 700;
}

/* ---------- 17. FOOTER ---------- */

/* [T79] origen: L243 (fondo suave, borde superior 1px line, padding 0 20px) */
.cpw-footer {
  padding: 0 20px;
  border-top: 1px solid var(--cpw-border);
  background: var(--cpw-soft);
  color: var(--cpw-text);
}
/* [T80] origen: L245/L246 (wrap padding 56px 0 28px; grid 1.4fr 1fr 1fr 1fr gap 40px) */
.cpw-footer__wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 56px 0 28px;
}
.cpw-footer__top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 40px;
  padding-bottom: 40px;
}
/* [T81] origen: L247-L250 (logo 76px, tagline 15px max 320, ubicacion 14px con icono primary) */
.cpw-footer__logo {
  display: block;
  width: auto;
  max-width: 100%;
  height: 76px;
  margin: 0 0 16px;
}
.cpw-footer__tagline {
  max-width: 320px;
  margin: 0 0 20px;
  color: var(--cpw-text-muted);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.5;
}
.cpw-footer__location {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: var(--cpw-text-muted);
  font-size: 14px;
}
.cpw-footer__location svg {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  color: var(--cpw-primary);
}
/* [T82] origen: L251 (h4 13px/700/.1em uppercase) */
.cpw-footer__heading {
  margin: 0 0 18px;
  color: var(--cpw-text);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
/* [T83] origen: L252-L254 (lista sin vinetas gap 12; enlaces 15px muted, hover primary) */
.cpw-footer__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cpw-footer__list a {
  color: var(--cpw-text-muted);
  font-size: 15px;
}
.cpw-footer__list a:hover {
  color: var(--cpw-primary);
}
/* [T84] origen: L255-L258 (redes: circulos 36px, hover invierte a primary) */
.cpw-footer__social {
  display: flex;
  gap: 12px;
  margin-top: 20px;
}
.cpw-footer__social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--cpw-border);
  color: var(--cpw-primary);
}
.cpw-footer__social a:hover {
  background: var(--cpw-primary);
  color: var(--cpw-primary-contrast);
}
.cpw-footer__social svg {
  width: 17px;
  height: 17px;
}
/* [T85] origen: L259-L263 (barra inferior: borde superior, flex entre, copy 13px, legales en fila gap 20) */
.cpw-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 24px;
  border-top: 1px solid var(--cpw-border);
}
.cpw-footer__copy {
  margin: 0;
  color: var(--cpw-text-muted);
  font-size: 13px;
}
.cpw-footer__legal {
  display: flex;
  flex-direction: row;
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cpw-footer__legal a {
  color: var(--cpw-text-muted);
  font-size: 13px;
}
.cpw-footer__legal a:hover {
  color: var(--cpw-primary);
}

/* ---------- Boton flotante y formulario flotante (modal simple) ---------- */

/* [T86] origen: L42 (pastilla primaria) fijada al viewport; sin sombra */
.cpw-fab {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 50;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 24px;
  border: 2px solid var(--cpw-primary);
  border-radius: var(--cpw-btn-radius, 999px);
  background: var(--cpw-primary);
  color: var(--cpw-primary-contrast);
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
/* [T87] origen: L291-L293 (overlay fijo inset 0, centrado, padding 24; tarjeta radio 24, padding 36px 28px, max 360) sin sombra */
.cpw-modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: var(--cpw-primary);
}
.cpw-modal[hidden] {
  display: none;
}
.cpw-modal__panel {
  position: relative;
  width: 100%;
  max-width: 420px;
  padding: 36px 28px;
  border-radius: 24px;
  background: var(--cpw-surface);
  color: var(--cpw-text);
}
.cpw-modal__title {
  margin: 0 0 10px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
}
.cpw-modal__text {
  margin: 0 0 20px;
  color: var(--cpw-text-muted);
  font-size: 14.5px;
  line-height: 1.55;
}
.cpw-modal__close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--cpw-border);
  border-radius: 50%;
  background: var(--cpw-surface);
  color: var(--cpw-primary);
  font-size: 20px;
  cursor: pointer;
}
/* [T88] origen: L216 (label 12px/700 uppercase) y L115 (campos sobre panel soft, radio 16) */
.cpw-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.cpw-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.cpw-field__label {
  color: var(--cpw-text);
  font-size: 13px;
  font-weight: 700;
}
.cpw-field__input {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid var(--cpw-border);
  border-radius: 16px;
  background: var(--cpw-surface);
  color: var(--cpw-text);
  font-family: inherit;
  font-size: 16px;
}
.cpw-form__note {
  margin: 0;
  color: var(--cpw-text-muted);
  font-size: 12px;
}

/* ---------- Responsive ---------- */

/* [T89] origen: L72, L92, L156, L187, L226 (<=900: grids a 2 col / 1 col) y L264 (footer 2 col) */
@media (max-width: 900px) {
  .cpw-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .cpw-grid--tight,
  .cpw-grid--audiences {
    grid-template-columns: 1fr;
  }
  .cpw-faq__grid {
    grid-template-columns: 1fr;
  }
  .cpw-steps {
    grid-template-columns: 1fr;
  }
  .cpw-footer__top {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
  .cpw-footer__logo {
    height: 64px;
  }
  .cpw-hero__inner,
  .cpw-editorial__inner,
  .cpw-profile__wrap {
    grid-template-columns: 1fr;
  }
  .cpw-hero__inner {
    display: block;
    min-height: 0;
  }
}
/* [T90] origen: L46-L54 (hero movil), L107 (perfil movil: foto primero), L73/L93/L240 (<=700: wrap 20px, h2 28px, grid 1 col, body 22px, imagen 200px) y L28 */
@media (max-width: 700px) {
  .cpw-wrap,
  .cpw-profile__wrap,
  .cpw-editorial__inner {
    padding: 20px 0;
  }
  .cpw-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .cpw-title,
  .cpw-profile__title,
  .cpw-faq__title,
  .cpw-final-cta__title {
    font-size: 28px;
  }
  .cpw-card__body,
  .cpw-card__body--roomy {
    padding: 22px;
  }
  .cpw-card__image {
    height: 200px;
  }
  .cpw-card__image--square {
    height: auto;
  }
  .cpw-hero__copy {
    align-items: flex-start;
    padding: 20px;
  }
  .cpw-hero__title,
  .cpw-editorial__title {
    font-size: 36px;
  }
  .cpw-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .cpw-actions .cpw-btn {
    width: 100%;
  }
  .cpw-hero__media {
    width: calc(100% - 40px);
    min-height: 300px;
    margin: 0 20px 32px;
  }
  .cpw-hero__photo {
    min-height: 300px;
  }
  .cpw-profile__media {
    order: -1;
  }
  .cpw-brands__wrap {
    padding: 20px;
  }
  .cpw-brands__logo {
    height: 34px;
    margin: 0 20px;
  }
  .cpw-brands__track {
    animation-duration: 28s;
  }
  .cpw-reviews__summary {
    padding: 18px;
  }
  .cpw-faq__item summary {
    padding: 16px 18px;
    font-size: 15px;
  }
  .cpw-final-cta__wrap {
    padding: 44px 0;
  }
  .cpw-footer__top {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .cpw-footer__wrap {
    padding: 40px 0 24px;
  }
  .cpw-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
  }
  .cpw-footer__logo {
    height: 52px;
  }
  .cpw-header__logo {
    height: 44px;
  }
  .cpw-header__toggle {
    display: inline-grid;
    place-items: center;
  }
  .cpw-header__nav {
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    display: none;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 20px;
    border: 1px solid var(--cpw-border);
    border-radius: 0 0 24px 24px;
    background: var(--cpw-surface);
  }
  .cpw-header.is-open .cpw-header__nav {
    display: flex;
  }
  .cpw-fab {
    right: 16px;
    bottom: 16px;
  }
}
/* [T91] origen: L200 (>=701px el CTA de WhatsApp se reemplaza por el QR) */
@media (min-width: 701px) {
  .cpw-qr {
    display: flex;
  }
  .cpw-hide-desktop {
    display: none;
  }
}

/* [T93] origen: MEDIDO en segurosdesaludyvida.com (escritorio >=701px: 32px de separación entre secciones; móvil: 24px). No está en widgets.css: lo aporta la plantilla de la referencia. */
main > * + * {
  margin-top: 32px;
}
@media (max-width: 700px) {
  main > * + * {
    margin-top: 24px;
  }
}

/* [T94] origen: L197-L200 de widgets.css generalizado: todo botón de WhatsApp es botón en móvil y QR en escritorio (>=701px). */
.cpw-wa-qr {
  display: none;
  align-items: center;
  gap: 12px;
  margin: 0;
}
.cpw-wa-qr__svg {
  display: block;
  width: 96px;
  height: 96px;
  margin: 0;
}
.cpw-wa-qr small {
  max-width: 170px;
  color: var(--cpw-text-muted);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.35;
  text-align: left;
}
@media (min-width: 701px) {
  .cpw-wa-qr {
    display: inline-flex;
  }
  .cpw-wa-btn {
    display: none;
  }
}

/* [T92] origen: requisito del blueprint 4-J/9 (no existe en widgets.css): reducir movimiento */
@media (prefers-reduced-motion: reduce) {
  .cpw-brands__track {
    width: auto;
    flex-wrap: wrap;
    animation: none;
  }
  .cpw-brands__viewport {
    -webkit-mask-image: none;
    mask-image: none;
  }
  .cpw-brands__set + .cpw-brands__set {
    display: none;
  }
  .cpw-brands__logo,
  .cpw-faq__icon {
    transition: none;
  }
}

/* [T96] origen: ampliación aprobada por Milton (video, 2026-10-08); radio 24px de .ssv08-card */
.cpw-video__frame {
  position: relative;
  width: 100%;
  margin-top: 28px;
  aspect-ratio: 16 / 9;
  border-radius: 24px;
  overflow: hidden;
  background: var(--cpw-text);
}
.cpw-video__play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--cpw-primary-contrast);
  text-decoration: none;
}
.cpw-video__poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cpw-video__button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--cpw-primary);
  color: var(--cpw-primary-contrast);
  transition: transform 0.18s ease;
}
.cpw-video__play:hover .cpw-video__button,
.cpw-video__play:focus-visible .cpw-video__button {
  transform: scale(1.06);
}
.cpw-video__play:focus-visible {
  outline: 3px solid var(--cpw-focus);
  outline-offset: -3px;
}
.cpw-video__frame--plain {
  background: var(--cpw-text);
}
.cpw-video__iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.cpw-video__transcript {
  margin-top: 16px;
  font-size: 15px;
  color: var(--cpw-text-muted);
}
.cpw-video__transcript summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--cpw-text);
}
.cpw-video__text {
  margin: 10px 0 0;
  line-height: 1.6;
}
@media (max-width: 700px) {
  .cpw-video__frame {
    margin-top: 20px;
    border-radius: 16px;
  }
  .cpw-video__button {
    width: 60px;
    height: 60px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .cpw-video__button {
    transition: none;
  }
}

/* [T97] origen: ampliación aprobada (imagen + texto, 2026-10-08); rejilla 1fr 1fr / gap 64px de .ssv-profile (L98), imagen con radio 24px */
.cpw-split__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  gap: 64px;
}
.cpw-split__text {
  align-self: center;
}
.cpw-split--left .cpw-split__media {
  order: -1;
}
.cpw-split__body {
  max-width: 540px;
  margin: 18px 0 0;
  color: var(--cpw-text-muted);
  font-size: 17px;
  line-height: 1.55;
}
.cpw-split__text .cpw-btn {
  margin-top: 24px;
}
.cpw-split__media {
  min-height: 320px;
  margin: 0;
  overflow: hidden;
  border-radius: 24px;
}
.cpw-split__image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
}
/* [T98] origen: ampliación aprobada (cifras, 2026-10-08); tarjetas 24px de .ssv08-card, cifra en peso 300 como el título del bloque principal */
.cpw-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}
.cpw-stat {
  padding: 28px 24px;
  border: 1px solid var(--cpw-border);
  border-radius: 24px;
  background: var(--cpw-surface);
}
.cpw-stat__value {
  margin: 0;
  color: var(--cpw-primary);
  font-size: 50px;
  line-height: 1.05;
  font-weight: 300;
  letter-spacing: -0.025em;
}
.cpw-stat__label {
  margin: 10px 0 0;
  color: var(--cpw-text);
  font-size: 17px;
  line-height: 1.4;
}
.cpw-stat__source,
.cpw-stats__note {
  margin: 8px 0 0;
  color: var(--cpw-text-muted);
  font-size: 13px;
}
.cpw-statsband {
  overflow: hidden;
}
/* [T99] origen: ampliación aprobada (bloque de contacto, 2026-10-08); panel de 24px con línea fina como las tarjetas de SDSV */
.cpw-contact {
  display: grid;
  gap: 24px;
  margin-top: 28px;
  padding: 28px;
  border: 1px solid var(--cpw-border);
  border-radius: 24px;
}
.cpw-contact__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px 32px;
  margin: 0;
}
.cpw-contact__item dt {
  margin: 0 0 6px;
  color: var(--cpw-text-muted);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
}
.cpw-contact__item dd {
  margin: 0;
  font-size: 17px;
  line-height: 1.5;
}
.cpw-contact__item a {
  color: var(--cpw-text);
  text-decoration-color: var(--cpw-primary);
  text-underline-offset: 3px;
}
.cpw-contact__link {
  font-weight: 600;
}
/* [T100] origen: ampliación aprobada (resumen de opiniones, 2026-10-08) */
.cpw-ratingband .cpw-wrap {
  text-align: center;
}
.cpw-rating {
  margin: 24px auto 0;
}
.cpw-rating__score {
  margin: 0;
  font-size: 64px;
  line-height: 1;
  font-weight: 300;
  letter-spacing: -0.025em;
}
.cpw-rating__stars {
  margin: 8px 0 0;
  color: var(--cpw-primary);
  font-size: 28px;
  letter-spacing: 0.15em;
}
.cpw-rating__text {
  margin: 12px 0 0;
  color: var(--cpw-text-muted);
  font-size: 17px;
}
.cpw-rating__text a {
  color: var(--cpw-text);
  font-weight: 600;
}
.cpw-rating__note {
  max-width: 560px;
  margin: 12px auto 0;
  color: var(--cpw-text-muted);
  font-size: 14px;
}
@media (max-width: 900px) {
  .cpw-split__grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .cpw-split--left .cpw-split__media {
    order: 0;
  }
}
@media (max-width: 700px) {
  .cpw-split__media {
    border-radius: 16px;
  }
  .cpw-stat__value {
    font-size: 40px;
  }
  .cpw-contact {
    padding: 20px;
    border-radius: 16px;
  }
  .cpw-rating__score {
    font-size: 52px;
  }
}

/* [T101] origen: ampliación aprobada (barra de pregunta fija, 2026-10-08); píldora de .ssv-primary (999px) y borde fino; inspirada en la barra «Ask anything» de america.gov */
.cpw-ask {
  position: fixed;
  left: 50%;
  bottom: 16px;
  z-index: 49;
  display: grid;
  gap: 8px;
  width: min(560px, calc(100% - 32px));
  transform: translateX(-50%);
}
.cpw-ask__chips {
  display: none;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cpw-ask:focus-within .cpw-ask__chips {
  display: flex;
}
.cpw-ask__chip {
  display: inline-block;
  padding: 8px 14px;
  border: 1px solid var(--cpw-border);
  border-radius: 999px;
  background: var(--cpw-surface);
  color: var(--cpw-text);
  font-size: 14px;
  text-decoration: none;
}
.cpw-ask__chip:hover,
.cpw-ask__chip:focus-visible {
  border-color: var(--cpw-primary);
}
.cpw-ask__form {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 6px 6px 20px;
  border: 1px solid var(--cpw-border);
  border-radius: 999px;
  background: var(--cpw-surface);
}
.cpw-ask__input {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--cpw-text);
  font: inherit;
  font-size: 16px;
}
.cpw-ask__form:focus-within {
  border-color: var(--cpw-primary);
  outline: 3px solid var(--cpw-focus);
  outline-offset: 2px;
}
.cpw-ask__send {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: var(--cpw-primary);
  color: var(--cpw-primary-contrast);
  cursor: pointer;
}
.cpw-fab--raised {
  bottom: 96px;
}
/* El pie de la página no queda tapado por la barra fija */
.cpw-page:has(.cpw-ask) {
  padding-bottom: 96px;
}
@media (max-width: 700px) {
  .cpw-ask {
    bottom: 12px;
    width: calc(100% - 24px);
  }
  .cpw-fab--raised {
    bottom: 84px;
  }
}

/* [T102] origen: pedido de Milton (2026-10-08). Zonas de botón con aire arriba y abajo; el texto del botón siempre es el color opuesto al del botón. */
.cpw-wrap > .cpw-btn,
.cpw-wrap > .cpw-actions,
.cpw-video__frame + .cpw-btn,
.cpw-video__transcript + .cpw-btn {
  margin-top: 28px;
}
.cpw-editorial__inner > div:first-child {
  align-self: center;
}
@media (max-width: 700px) {
  /* Todos los botones miden lo mismo en móvil: ancho completo, 52 px de alto, misma letra. */
  .cpw-btn,
  .cpw-btn--lg,
  .cpw-btn--xl,
  .cpw-btn--secondary {
    width: 100%;
    min-height: 52px;
    padding: 14px 20px;
    font-size: 16px;
    font-weight: 700;
  }
  .cpw-wrap > .cpw-btn,
  .cpw-wrap > .cpw-actions,
  .cpw-video__frame + .cpw-btn,
  .cpw-video__transcript + .cpw-btn {
    margin-top: 24px;
  }
  .cpw-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .cpw-fab {
    min-height: 52px;
    padding: 14px 22px;
    font-size: 16px;
  }
  .cpw-split__media,
  .cpw-editorial__media,
  .cpw-profile__media {
    min-height: 240px;
  }
  .cpw-split__image,
  .cpw-editorial__photo,
  .cpw-profile__photo {
    min-height: 240px;
  }
}
/* La pregunta del acordeón es un encabezado (h3) dentro del resumen: hereda la letra del resumen */
.cpw-faq__question {
  margin: 0;
  font: inherit;
  letter-spacing: inherit;
}
/* Título de la banda de marcas (h2 pequeño, centrado, como un kicker) */
.cpw-brands__title {
  margin: 0 0 20px;
  color: var(--cpw-text-muted);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-align: center;
  text-transform: uppercase;
}

/* [T103] origen: pedido de Milton (2026-10-08): la imagen acompaña a la altura del texto (nunca la dicta). La foto llena su marco; el marco crece con el texto. */
.cpw-split__media,
.cpw-editorial__media,
.cpw-profile__media {
  position: relative;
}
.cpw-split__media {
  min-height: 280px;
}
.cpw-split__image,
.cpw-editorial__photo,
.cpw-profile__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: none;
  object-fit: cover;
}
@media (max-width: 900px) {
  .cpw-split__media,
  .cpw-editorial__media,
  .cpw-profile__media {
    min-height: 0;
    aspect-ratio: 4 / 3;
  }
}
@media (max-width: 700px) {
  .cpw-split__media,
  .cpw-editorial__media,
  .cpw-profile__media,
  .cpw-split__image,
  .cpw-editorial__photo,
  .cpw-profile__photo {
    min-height: 0;
  }
}
@media (max-width: 700px) {
  /* La pista de cada pregunta baja a su propia línea y se parte; nunca ensancha la página */
  .cpw-question {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .cpw-question__route {
    max-width: 100%;
    white-space: normal;
  }
}

/* [T104] origen: ampliación aprobada (declaración grande y galería de vistas, 2026-10-08); idea de america.gov («uses SI to get simple answers…», «More coming in 2027») con la rejilla y tarjetas de SDSV */
.cpw-statement .cpw-wrap {
  text-align: center;
}
.cpw-statement__text {
  max-width: 980px;
  margin: 0 auto;
  font-size: 38px;
  line-height: 1.18;
  font-weight: 300;
  letter-spacing: -0.025em;
}
.cpw-statement .cpw-btn {
  margin-top: 28px;
}
.cpw-gallery .cpw-wrap {
  text-align: center;
}
.cpw-gallery__track {
  display: flex;
  gap: 20px;
  margin: 28px 0 0;
  padding: 8px max(20px, calc((100vw - 1200px) / 2)) 16px;
  overflow-x: auto;
  list-style: none;
  scroll-snap-type: x mandatory;
}
.cpw-gallery__item {
  flex: 0 0 min(280px, 78vw);
  scroll-snap-align: start;
}
.cpw-gallery__card {
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--cpw-border);
  border-radius: 24px;
  background: var(--cpw-surface);
}
.cpw-gallery__image {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}
.cpw-gallery__caption {
  padding: 16px 18px 20px;
  color: var(--cpw-text);
  font-size: 15px;
  font-weight: 500;
  text-align: left;
}

/* [T105] origen: estilo «Moderno» elegible por proyecto (america.gov, 2026-10-08): titular serif de 96 px con espaciado −6 %, títulos de 40 px / 500, panel principal de 48 px, visuales «squircle», botones suaves, mucho aire (80 px entre bloques). Solo actúa con la clase .cpw-theme-moderno. */
.cpw-theme-moderno {
  --cpw-display: Georgia, "Times New Roman", serif;
}
.cpw-theme-moderno main > * + * {
  margin-top: 80px;
}
.cpw-theme-moderno .cpw-wrap {
  padding: 40px 0;
}
.cpw-theme-moderno .cpw-title,
.cpw-theme-moderno .cpw-faq__title,
.cpw-theme-moderno .cpw-trust__title {
  font-size: 40px;
  line-height: 1.05;
  font-weight: 500;
  letter-spacing: -0.02em;
}
.cpw-theme-moderno .cpw-intro,
.cpw-theme-moderno .cpw-split__body {
  color: var(--cpw-text-muted);
  font-size: 17px;
  line-height: 1.55;
}
.cpw-theme-moderno .cpw-kicker {
  letter-spacing: 0.18em;
}
.cpw-theme-moderno .cpw-hero,
.cpw-theme-moderno .cpw-editorial {
  margin: 16px 16px 0;
  border-radius: 48px;
  background: var(--cpw-soft);
}
.cpw-theme-moderno .cpw-hero__title,
.cpw-theme-moderno .cpw-editorial__title,
.cpw-theme-moderno .cpw-statement__text,
.cpw-theme-moderno .cpw-stat__value,
.cpw-theme-moderno .cpw-rating__score {
  font-family: var(--cpw-display);
  font-weight: 400;
  letter-spacing: -0.06em;
}
.cpw-theme-moderno .cpw-editorial__title,
.cpw-theme-moderno .cpw-hero__title {
  max-width: 880px;
  font-size: clamp(44px, 7.4vw, 96px);
  line-height: 1;
}
.cpw-theme-moderno .cpw-editorial__inner {
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 32px;
  padding: 96px 32px 48px;
  text-align: center;
}
.cpw-theme-moderno .cpw-editorial__title,
.cpw-theme-moderno .cpw-editorial__subtitle {
  margin-right: auto;
  margin-left: auto;
}
.cpw-theme-moderno .cpw-composer,
.cpw-theme-moderno .cpw-alt {
  justify-content: center;
}
.cpw-theme-moderno .cpw-editorial__media {
  width: 100%;
  min-height: 0;
  aspect-ratio: 16 / 9;
  border-radius: 40px;
}
.cpw-theme-moderno .cpw-statement__text {
  font-size: clamp(30px, 4.6vw, 56px);
  line-height: 1.08;
}
.cpw-theme-moderno .cpw-card {
  border: 0;
  border-radius: 40px;
  background: transparent;
}
.cpw-theme-moderno .cpw-card__image {
  border-radius: 40px;
}
.cpw-theme-moderno .cpw-card__body {
  padding: 22px 6px 8px;
}
.cpw-theme-moderno .cpw-split__grid {
  gap: 96px;
}
.cpw-theme-moderno .cpw-split__media {
  min-height: 0;
  aspect-ratio: 1 / 1;
  border-radius: 48px;
}
.cpw-theme-moderno .cpw-split__text .cpw-btn {
  width: auto;
  min-height: 0;
  margin-top: 20px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--cpw-text);
  font-size: 15px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.cpw-theme-moderno .cpw-btn {
  padding: 16px 28px;
}
.cpw-theme-moderno .cpw-btn--secondary {
  border-color: transparent;
  background: color-mix(in srgb, var(--cpw-primary) 8%, transparent);
  color: var(--cpw-primary);
}
.cpw-theme-moderno .cpw-stat {
  padding: 8px 0;
  border: 0;
  background: transparent;
}
.cpw-theme-moderno .cpw-stat__value {
  font-size: 72px;
  color: var(--cpw-text);
}
.cpw-theme-moderno .cpw-gallery__card {
  border: 0;
  border-radius: 40px;
}
.cpw-theme-moderno .cpw-footer {
  padding-top: 96px;
}
@media (max-width: 900px) {
  .cpw-theme-moderno main > * + * {
    margin-top: 56px;
  }
  .cpw-theme-moderno .cpw-split__grid {
    gap: 28px;
  }
}
@media (max-width: 700px) {
  .cpw-theme-moderno .cpw-btn {
    min-height: 52px;
    padding: 14px 20px;
  }
  .cpw-theme-moderno .cpw-hero,
  .cpw-theme-moderno .cpw-editorial {
    margin: 8px 8px 0;
    border-radius: 32px;
  }
  .cpw-theme-moderno .cpw-editorial__inner {
    padding: 56px 20px 28px;
  }
  .cpw-theme-moderno .cpw-split__media,
  .cpw-theme-moderno .cpw-card__image {
    border-radius: 32px;
  }
  .cpw-theme-moderno .cpw-stat__value {
    font-size: 52px;
  }
}

/* [T106] origen: pedido de Milton (2026-10-08). Ritmo vertical único dentro de TODAS las secciones: el título nunca queda pegado al contenido (30 px), y lo que va debajo del contenido (notas, botones) tiene aire (24 px / 28 px). Va al final para ordenar los márgenes sueltos de cada sección. */
.cpw-wrap > :is(.cpw-title, .cpw-faq__title) + :not(.cpw-intro) {
  margin-top: 30px;
}
.cpw-wrap > :is(.cpw-grid, .cpw-stats, .cpw-steps, .cpw-questions, .cpw-faq__list, .cpw-contact, .cpw-rating, .cpw-gallery__track) {
  margin-bottom: 0;
}
.cpw-wrap > :is(.cpw-grid, .cpw-stats, .cpw-steps, .cpw-questions, .cpw-faq__list, .cpw-contact, .cpw-rating) + :is(p, .cpw-intro, .cpw-note, .cpw-stats__note, .cpw-rating__note) {
  margin-top: 24px;
  margin-bottom: 0;
}
.cpw-wrap > :is(.cpw-grid, .cpw-stats, .cpw-steps, .cpw-questions, .cpw-faq__list, .cpw-contact, .cpw-rating) + :is(.cpw-btn, .cpw-actions) {
  margin-top: 28px;
}
.cpw-note {
  margin: 0;
  color: var(--cpw-text-muted);
  font-size: 15px;
  line-height: 1.5;
}
.cpw-trust__text + .cpw-trust__text {
  margin-top: 8px;
}

/* [T107] origen: pedido de Milton (2026-10-08): rediseño de la banda de confianza, ayuda final, opiniones, cifras, bloque de contacto, guías y «para quién es» para que acompañen al resto (tarjetas de 24 px con borde fino, textos de SDSV, estilo moderno con línea fina). */
/* Las rejillas con pocas tarjetas llenan el ancho (2 tarjetas = 2 columnas anchas) */
.cpw-grid {
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
.cpw-stats {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
/* Banda de confianza: título a la izquierda, texto y enlace a la derecha */
.cpw-trust__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 16px 64px;
  align-items: start;
  padding: 56px 0;
}
.cpw-trust__copy {
  display: contents;
}
.cpw-trust__title {
  grid-column: 1;
  grid-row: 1 / span 3;
  margin: 0;
  font-size: 38px;
  line-height: 1.14;
  font-weight: 400;
  letter-spacing: -0.025em;
}
.cpw-trust__text {
  grid-column: 2;
}
.cpw-trust__link {
  grid-column: 2;
  justify-self: start;
  margin-top: 8px;
  font-weight: 500;
}
/* Ayuda final: centrada, con aire, título del tamaño de los demás títulos */
.cpw-help__inner {
  flex-direction: column;
  justify-content: center;
  gap: 24px;
  padding: 56px 0;
  text-align: center;
}
.cpw-help__title {
  margin: 0;
  font-size: 38px;
  font-weight: 400;
  line-height: 1.14;
  letter-spacing: -0.025em;
}
/* Opiniones: tarjetas con más aire */
.cpw-review {
  padding: 26px 28px;
}
.cpw-review__text {
  font-size: 17px;
  line-height: 1.55;
}
/* Cifras */
.cpw-stat__source {
  margin-top: 6px;
}
.cpw-stats__note {
  margin: 24px 0 0;
}
/* Bloque de contacto: caja con la información; el botón va debajo, a su tamaño */
.cpw-contact {
  margin-top: 0;
}
.cpw-contact__link {
  display: inline-block;
  margin-top: 8px;
  color: var(--cpw-primary);
  font-size: 15px;
  font-weight: 500;
}
.cpw-wrap > .cpw-contact + .cpw-btn {
  margin-top: 28px;
}
/* Para quién es: una tarjeta por público; el segundo botón es un enlace de texto */
.cpw-audiences .cpw-card__actions .cpw-btn--secondary {
  justify-content: flex-start;
  min-height: 0;
  padding: 4px 0;
  border: 0;
  background: transparent;
  color: var(--cpw-primary);
  font-size: 15px;
  font-weight: 500;
}
.cpw-audiences .cpw-card__body--roomy {
  padding: 28px 28px 32px;
}
@media (max-width: 900px) {
  .cpw-trust__inner {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 40px 0;
  }
  .cpw-trust__title,
  .cpw-trust__text,
  .cpw-trust__link {
    grid-column: 1;
    grid-row: auto;
  }
}
@media (max-width: 700px) {
  .cpw-trust__title,
  .cpw-help__title {
    font-size: 30px;
  }
  .cpw-help__inner {
    padding: 40px 0;
  }
  .cpw-review {
    padding: 22px;
  }
  .cpw-audiences .cpw-card__actions .cpw-btn--secondary {
    width: auto;
    min-height: 0;
    padding: 4px 0;
    font-size: 15px;
    font-weight: 500;
  }
}
/* Estilo moderno: estas secciones se ordenan con una línea fina, como una publicación */
.cpw-theme-moderno .cpw-education .cpw-card,
.cpw-theme-moderno .cpw-audiences .cpw-card {
  border-top: 1px solid var(--cpw-text);
  border-radius: 0;
}
.cpw-theme-moderno .cpw-education .cpw-card__body,
.cpw-theme-moderno .cpw-audiences .cpw-card__body {
  padding: 24px 0 8px;
}
.cpw-theme-moderno .cpw-stat {
  border-top: 1px solid var(--cpw-text);
  border-radius: 0;
  padding: 20px 0 0;
}
.cpw-theme-moderno .cpw-review {
  border: 0;
  border-top: 1px solid var(--cpw-text);
  border-radius: 0;
  padding: 24px 0 0;
}
.cpw-theme-moderno .cpw-trust__title,
.cpw-theme-moderno .cpw-help__title {
  font-size: 40px;
  font-weight: 500;
  letter-spacing: -0.02em;
}
.cpw-theme-moderno .cpw-help__inner,
.cpw-theme-moderno .cpw-trust__inner {
  padding: 72px 0;
}
.cpw-theme-moderno .cpw-contact {
  border: 0;
  border-top: 1px solid var(--cpw-text);
  border-radius: 0;
  padding: 24px 0 0;
}

/* [T108] origen: ampliación aprobada (propiedades inmobiliarias, 2026-10-08): tarjeta de SDSV (.ssv08-card: imagen 180 px, cuerpo 26/24/28, título 19/500, enlace azul 15/500) con precio, etiqueta de estado sobre la foto, ubicación y datos (habitaciones, baños, área) */
.cpw-property__media {
  position: relative;
}
.cpw-property__badge {
  position: absolute;
  top: 14px;
  left: 14px;
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--cpw-surface);
  color: var(--cpw-text);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
}
.cpw-property__price {
  margin: 0 0 6px;
  color: var(--cpw-text);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.02em;
}
.cpw-property .cpw-card__title {
  margin-bottom: 6px;
}
.cpw-property__place {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 14px;
  color: var(--cpw-text-muted);
  font-size: 15px;
  line-height: 1.4;
}
.cpw-property__place svg,
.cpw-property__facts svg {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  color: var(--cpw-primary);
}
.cpw-property__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin: 0 0 18px;
  padding: 14px 0 0;
  border-top: 1px solid var(--cpw-border);
  list-style: none;
}
.cpw-property__facts li {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--cpw-text);
  font-size: 14px;
}
.cpw-properties .cpw-card__image {
  height: 200px;
}
.cpw-theme-moderno .cpw-property__facts {
  border-top-color: var(--cpw-text);
}
.cpw-theme-moderno .cpw-property__media .cpw-card__image {
  border-radius: 40px;
}

/* [T109] origen: ampliación aprobada (casos de uso, 2026-10-13, imagen de referencia de Milton): tarjeta blanca de SDSV (borde 1 px, esquina 24 px) con icono, título corto y una frase, sin enlace */
.cpw-usecase {
  padding: 28px 24px 30px;
}
.cpw-usecase__icon {
  display: block;
  width: 32px;
  height: 32px;
  margin: 0 0 28px;
  color: var(--cpw-primary);
}
.cpw-usecase__icon svg {
  display: block;
  width: 32px;
  height: 32px;
}
.cpw-usecase__text {
  margin: 0;
  color: var(--cpw-text);
  font-size: 16px;
  line-height: 1.5;
}
.cpw-theme-moderno .cpw-usecase {
  padding: 24px 0 8px;
  border: 0;
  border-top: 1px solid var(--cpw-text);
  border-radius: 0;
  background: transparent;
}

/* [T110] origen: ampliación aprobada por Milton (2026-10-22) a partir del repertorio de referencias (salatoresidences.com, ignaciocubas.com, iqthink.com, america.gov); 10 secciones nuevas con tokens y radios de SDSV, sin sombras, sin degradados y reutilizando la animación del marquee */

/* contact-bar · franja de contacto (ignaciocubas.com): título corto y de 2 a 4 botones en una fila */
.cpw-contactbar {
  background: var(--cpw-soft);
}
.cpw-contactbar .cpw-wrap {
  text-align: center;
}
.cpw-contactbar__title {
  margin: 0;
  font-size: 28px;
  line-height: 1.2;
  font-weight: 400;
  letter-spacing: -0.02em;
}
.cpw-contactbar__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-top: 24px;
}

/* video-hero · portada con video (salatoresidences.com, iqthink.com): video de fondo sin sonido, capa oscura y texto encima */
.cpw-videohero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 560px;
  overflow: hidden;
  background: var(--cpw-text);
  color: var(--cpw-background);
}
.cpw-videohero__media {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.cpw-videohero__media .cpw-video__frame {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: 0;
  border-radius: 0;
  aspect-ratio: auto;
}
.cpw-videohero__media .cpw-video__iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 177.78vh;
  min-width: 100%;
  height: 56.25vw;
  min-height: 100%;
  border: 0;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.cpw-videohero__media .cpw-video__poster {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cpw-videohero::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  content: "";
  background: var(--cpw-text);
  opacity: 0.55;
  pointer-events: none;
}
.cpw-videohero__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 64px 20px;
}
.cpw-videohero .cpw-hero__eyebrow {
  color: var(--cpw-background);
}
.cpw-videohero__title {
  max-width: 820px;
  margin: 0;
  font-size: 56px;
  line-height: 1.05;
  font-weight: 400;
  letter-spacing: -0.03em;
}
.cpw-videohero__desc {
  max-width: 620px;
  margin: 18px 0 0;
  font-size: 19px;
  line-height: 1.5;
}
.cpw-videohero .cpw-actions {
  margin-top: 28px;
}
.cpw-videohero .cpw-video__button {
  display: none;
}

/* text-hero · portada solo de texto (ignaciocubas.com): título grande centrado sobre el fondo de la marca */
.cpw-texthero {
  padding: 0 20px;
  background: var(--cpw-soft);
  color: var(--cpw-text);
}
.cpw-texthero .cpw-wrap {
  padding: 72px 0;
  text-align: center;
}
.cpw-texthero__title {
  max-width: 900px;
  margin: 0 auto;
  font-size: 52px;
  line-height: 1.08;
  font-weight: 400;
  letter-spacing: -0.03em;
}
.cpw-texthero__desc {
  max-width: 680px;
  margin: 18px auto 0;
  color: var(--cpw-text-muted);
  font-size: 19px;
  line-height: 1.5;
}
.cpw-texthero .cpw-actions {
  justify-content: center;
  margin-top: 28px;
}

/* embed-tool · herramienta incrustada (ignaciocubas.com): recuadro con enlace; el script del sitio carga el marco */
.cpw-embed__frame {
  min-height: 320px;
  margin-top: 8px;
  padding: 28px;
  border: 1px solid var(--cpw-border);
  border-radius: 24px;
  background: var(--cpw-surface);
}
.cpw-embed__hint {
  margin: 0 0 12px;
  font-size: 18px;
  font-weight: 500;
}
.cpw-embed__open {
  color: var(--cpw-primary);
  font-size: 16px;
  font-weight: 500;
}
.cpw-embed__iframe {
  display: block;
  width: 100%;
  border: 0;
  border-radius: 16px;
}
.cpw-embed__frame.is-loaded {
  padding: 0;
  overflow: hidden;
}

/* image-band · banda de imagen (salatoresidences.com): imagen a todo el ancho que separa bloques */
.cpw-imageband {
  background: var(--cpw-background);
}
.cpw-imageband__figure {
  position: relative;
  margin: 0;
}
.cpw-imageband__image {
  display: block;
  width: 100%;
  height: 420px;
  object-fit: cover;
}
.cpw-imageband__caption {
  padding: 10px 20px;
  color: var(--cpw-text-muted);
  font-size: 13px;
  text-align: center;
}

/* ticker-band · frases en movimiento (iqthink.com): reutiliza la animación del marquee de marcas; se detiene al pasar el cursor */
.cpw-ticker {
  overflow: hidden;
  background: var(--cpw-text);
  color: var(--cpw-background);
}
.cpw-ticker__viewport {
  position: relative;
  padding: 22px 0;
}
.cpw-ticker__track {
  display: flex;
  align-items: center;
  width: max-content;
  animation: cpw-brands-scroll 40s linear infinite;
}
.cpw-ticker__track:hover {
  animation-play-state: paused;
}
.cpw-ticker__set {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cpw-ticker__item {
  flex: 0 0 auto;
  margin: 0 36px;
  font-size: 24px;
  font-weight: 300;
  letter-spacing: -0.01em;
  white-space: nowrap;
}

/* portfolio-grid · portafolio (iqthink.com): tarjeta con imagen, categoría y nombre */
.cpw-portfolio__card {
  overflow: hidden;
}
.cpw-portfolio__media {
  overflow: hidden;
  border-radius: 20px 20px 0 0;
}
.cpw-portfolio__media .cpw-card__image {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.cpw-portfolio__category {
  margin: 0 0 6px;
  color: var(--cpw-text-muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* services-accordion · servicios desplegables (iqthink.com): cada fila se abre con detalle e imagen */
.cpw-svcacc {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.cpw-svcacc__item {
  overflow: hidden;
  border: 1px solid var(--cpw-border);
  border-radius: 24px;
  background: var(--cpw-surface);
}
.cpw-svcacc__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 26px;
  font-size: 22px;
  font-weight: 400;
  list-style: none;
  cursor: pointer;
}
.cpw-svcacc__summary::-webkit-details-marker {
  display: none;
}
.cpw-svcacc__summary::marker {
  content: "";
}
.cpw-svcacc__title {
  min-width: 0;
}
.cpw-svcacc__icon {
  position: relative;
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  color: var(--cpw-primary);
}
.cpw-svcacc__icon::before,
.cpw-svcacc__icon::after {
  position: absolute;
  top: 11px;
  left: 3px;
  width: 18px;
  height: 2px;
  content: "";
  background: currentColor;
  transition: transform 0.2s ease;
}
.cpw-svcacc__icon::after {
  transform: rotate(90deg);
}
.cpw-svcacc__item[open] .cpw-svcacc__icon::after {
  transform: rotate(0deg);
}
.cpw-svcacc__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
  padding: 0 26px 26px;
}
.cpw-svcacc__text {
  min-width: 0;
}
.cpw-svcacc__p {
  margin: 0 0 12px;
  color: var(--cpw-text-muted);
  font-size: 16px;
  line-height: 1.6;
}
.cpw-svcacc__image {
  display: block;
  width: 100%;
  max-height: 280px;
  aspect-ratio: 4 / 3;
  border-radius: 16px;
  object-fit: cover;
}
.cpw-svcacc__media {
  min-width: 0;
  max-width: 420px;
}

/* timeline · línea de tiempo (america.gov): hitos en orden con una línea fina a la izquierda */
.cpw-timeline {
  margin: 0;
  padding: 0;
  list-style: none;
  border-left: 1px solid var(--cpw-border);
}
.cpw-timeline__item {
  position: relative;
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  gap: 20px;
  padding: 0 0 32px 28px;
}
.cpw-timeline__item::before {
  position: absolute;
  top: 6px;
  left: -6px;
  width: 11px;
  height: 11px;
  content: "";
  border-radius: 50%;
  background: var(--cpw-primary);
}
.cpw-timeline__when {
  margin: 0;
  color: var(--cpw-primary);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.cpw-timeline__body {
  min-width: 0;
}
.cpw-timeline__title {
  margin: 0;
  font-size: 22px;
  font-weight: 500;
}
.cpw-timeline__text {
  margin: 6px 0 0;
  color: var(--cpw-text-muted);
  font-size: 16px;
  line-height: 1.5;
}

/* legal-notice · aviso legal extenso (salatoresidences.com): letra pequeña y tono apagado */
.cpw-legal {
  padding: 0 20px;
  background: var(--cpw-soft);
  color: var(--cpw-text-muted);
}
.cpw-legal .cpw-wrap {
  padding: 40px 0;
}
.cpw-legal__title {
  margin: 0 0 14px;
  color: var(--cpw-text);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.cpw-legal__text {
  margin: 0 0 12px;
  font-size: 12px;
  line-height: 1.6;
}

/* estilo «Moderno» y móvil de las secciones nuevas */
.cpw-theme-moderno .cpw-contactbar__title,
.cpw-theme-moderno .cpw-texthero__title,
.cpw-theme-moderno .cpw-videohero__title {
  font-weight: 500;
}
.cpw-theme-moderno .cpw-svcacc__item,
.cpw-theme-moderno .cpw-embed__frame {
  border-radius: 40px;
}
@media (max-width: 900px) {
  .cpw-videohero__title,
  .cpw-texthero__title {
    font-size: 40px;
  }
  .cpw-imageband__image {
    height: 300px;
  }
}
@media (max-width: 700px) {
  .cpw-videohero {
    min-height: 480px;
  }
  .cpw-videohero__title,
  .cpw-texthero__title {
    font-size: 32px;
  }
  .cpw-contactbar__actions {
    flex-direction: column;
  }
  .cpw-timeline__item {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }
  .cpw-ticker__item {
    font-size: 18px;
    margin: 0 24px;
  }
  .cpw-imageband__image {
    height: 220px;
  }
}
@media (min-width: 901px) {
  .cpw-svcacc__body {
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  }
}
@media (prefers-reduced-motion: reduce) {
  .cpw-ticker__track {
    width: auto;
    flex-wrap: wrap;
    animation: none;
  }
  .cpw-ticker__set + .cpw-ticker__set {
    display: none;
  }
  .cpw-svcacc__icon::before,
  .cpw-svcacc__icon::after {
    transition: none;
  }
}
