/* Home modules from CCA Homepage.png. Loaded only with the CCA v2 template. */
.cca-v2 .cca-v2__surface-gray {
  --cca-v2-surface: var(--cca-v2-gray-200); --cca-v2-ink: #000;
  color: var(--cca-v2-ink); background: var(--cca-v2-surface);
}
.cca-v2 .cca-v2__home-section { scroll-margin-top: 100px; overflow-wrap: anywhere; }
.cca-v2 .cca-v2__section-heading { display: flex; align-items: center; gap: 40px; margin-bottom: 64px; }
.cca-v2 .cca-v2__section-heading > div { min-width: 0; }
.cca-v2 .cca-v2__section-heading .cca-v2__headline-1 { max-width: 960px; }
.cca-v2 .cca-v2__section-heading .cca-v2__label { margin-bottom: 40px; }
.cca-v2 .cca-v2__section-heading > .cca-v2__button { flex-shrink: 0; }
.cca-v2 .cca-v2__section-label { margin-bottom: 40px; }
.cca-v2 .cca-v2__post-grid { --cca-posts-active-columns: var(--cca-posts-desktop, 4); --cca-posts-active-span: var(--cca-posts-span-desktop, 2); display: grid; grid-template-columns: repeat(var(--cca-posts-active-columns), minmax(0, 1fr)); gap: 40px 8px; align-items: start; }
.cca-v2 .cca-v2__post-card { grid-column: span 1; min-width: 0; }
.cca-v2 :is(.cca-v2__post-card--large, .cca-v2__post-card--wide) { grid-column: span var(--cca-posts-active-span); }
.cca-v2 .cca-v2__post-card--right { grid-column: var(--cca-posts-active-columns) / span 1; }
/* Cuadrada grande con texto al lado: una fila completa de 12 columnas; la card ocupa 6 (la mitad) y el texto, 4, desde la columna 9. */
.cca-v2 .cca-v2__post-card--aside { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 8px; align-items: start; }
.cca-v2 .cca-v2__post-card--aside > .cca-v2__post-card-link { grid-column: 1 / span 6; }
.cca-v2 .cca-v2__post-card-aside { grid-column: 9 / span 4; font-family: var(--cca-v2-font-text); font-size: 16px; font-weight: var(--cca-v2-weight-light); line-height: 1.4; overflow-wrap: anywhere; }
.cca-v2 .cca-v2__post-card-aside p { margin: 0 0 1em; }
.cca-v2 .cca-v2__post-card-aside .cca-v2__post-card-title { margin: 0 0 8px; }
.cca-v2 .cca-v2__post-card-aside .cca-v2__post-card-title a { color: inherit; text-decoration: none; }
.cca-v2 .cca-v2__post-card-aside .cca-v2__post-card-title a:hover { text-decoration: underline; text-underline-offset: 3px; }
.cca-v2 .cca-v2__post-card-aside p:last-child { margin-bottom: 0; }
.cca-v2 .cca-v2__post-grid--no-image .cca-v2__post-card-aside { grid-column: 1 / -1; }
.cca-v2 .cca-v2__post-card-link { display: block; color: inherit; text-decoration: none; }
.cca-v2 .cca-v2__post-card-media { aspect-ratio: 1; overflow: hidden; position: relative; border-radius: var(--cca-v2-radius); background: var(--cca-v2-gray-400); color: #000; }
.cca-v2 .cca-v2__post-card--circle .cca-v2__post-card-media { border-radius: 50%; }
.cca-v2 :is(.cca-v2__post-card--wide, .cca-v2__post-card--landscape) .cca-v2__post-card-media { aspect-ratio: 2; }
.cca-v2 .cca-v2__post-card--portrait .cca-v2__post-card-media { aspect-ratio: 3 / 4; }
.cca-v2 .cca-v2__post-card-image { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 300ms ease; }
.cca-v2 .cca-v2__post-card-link:hover .cca-v2__post-card-image { transform: scale(1.025); }
.cca-v2 .cca-v2__post-card-placeholder { display: flex; align-items: flex-end; width: 100%; height: 100%; padding: 24px; font-family: var(--cca-v2-font-headline); font-size: clamp(20px, 2.22vw, 32px); line-height: 1.1; overflow-wrap: anywhere; }
.cca-v2 .cca-v2__post-card-title { margin: 12px 0 4px; font-family: var(--cca-v2-font-text); font-size: 16px; font-weight: var(--cca-v2-weight-regular); line-height: 1.4; overflow-wrap: anywhere; }
.cca-v2 .cca-v2__post-card-link:hover .cca-v2__post-card-title { text-decoration: underline; text-underline-offset: 3px; }
.cca-v2 .cca-v2__post-card-excerpt { color: var(--cca-v2-gray-800); }
.cca-v2 .cca-v2--dark .cca-v2__post-card-excerpt { color: var(--cca-v2-gray-600); }
.cca-v2 .cca-v2__post-card-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 12px; }
.cca-v2 .cca-v2__post-card-copy { min-width: 0; }
.cca-v2 .cca-v2__post-grid--spacing-compact { gap: 24px 8px; }
.cca-v2 .cca-v2__post-grid--spacing-relaxed { gap: 56px 24px; }
.cca-v2 .cca-v2__post-grid--spacing-relaxed .cca-v2__post-card--aside { column-gap: 24px; }
.cca-v2 .cca-v2__post-grid--title-medium .cca-v2__post-card-title { font-size: 24px; }
.cca-v2 .cca-v2__post-grid--title-large .cca-v2__post-card-title { font-size: 32px; }
.cca-v2 .cca-v2__post-grid--align-center .cca-v2__post-card-copy { text-align: center; }
.cca-v2 .cca-v2__post-grid--align-center .cca-v2__post-card-meta { justify-content: center; }
.cca-v2 .cca-v2__post-grid--horizontal .cca-v2__post-card-link { display: grid; grid-template-columns: minmax(0, 38%) minmax(0, 1fr); gap: 16px; align-items: start; }
.cca-v2 .cca-v2__post-grid--horizontal.cca-v2__post-grid--no-image .cca-v2__post-card-link { grid-template-columns: minmax(0, 1fr); }
.cca-v2 :is(.cca-v2__post-grid--horizontal, .cca-v2__post-grid--no-image) .cca-v2__post-card-title { margin-top: 0; }
.cca-v2 .cca-v2__post-grid--overlay .cca-v2__post-card-link { display: grid; grid-template-columns: minmax(0, 1fr); align-items: end; position: relative; width: 100%; isolation: isolate; overflow: hidden; border-radius: var(--cca-v2-radius); min-height: 320px; background: #000; color: #fff; }
/* The spacer keeps the intended ratio; the shared grid row can grow for long text. */
.cca-v2 .cca-v2__post-grid--overlay .cca-v2__post-card-link::before { content: ""; grid-area: 1 / 1; width: 100%; aspect-ratio: 4 / 5; pointer-events: none; }
.cca-v2 .cca-v2__post-grid--overlay .cca-v2__post-card-media { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; border-radius: 0; }
.cca-v2 .cca-v2__post-grid--overlay .cca-v2__post-card-link::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.75) 50%, rgba(0,0,0,.92)); pointer-events: none; }
.cca-v2 .cca-v2__post-grid--overlay .cca-v2__post-card-copy { --cca-v2-ink: #fff; grid-area: 1 / 1; position: relative; z-index: 1; padding: 24px; }
.cca-v2 .cca-v2__post-grid--overlay .cca-v2__post-card-title { margin-top: 0; }
.cca-v2 .cca-v2__post-grid--overlay .cca-v2__post-card-excerpt { color: #fff; }
/* Compatibility for saved text_block rows; new pages can use text_simple. */
.cca-v2 .cca-v2__institutional { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 8px; padding-top: 24px; border-top: 1px solid var(--cca-v2-gray-400); }
.cca-v2 .cca-v2__institutional > .cca-v2__label { grid-column: span 3; padding-top: 4px; }
.cca-v2 .cca-v2__institutional-content { grid-column: 4 / span 9; min-width: 0; }
.cca-v2 .cca-v2__institutional-content .cca-v2__button { margin-top: 24px; }
.cca-v2 .cca-v2__benefits-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 8px; }
/* Pastillas de 6 columnas (2 por fila) en escritorio; tablet y móvil siguen las reglas de abajo (2 y 1 por fila). */
.cca-v2 .cca-v2__benefits-grid--s6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cca-v2 .cca-v2__benefits-grid--s6 .cca-v2__benefit-description { max-width: none; } /* En 6 columnas el texto ocupa todo el ancho de la pastilla. */
.cca-v2 .cca-v2__benefit { min-width: 0; }
.cca-v2 .cca-v2__benefit-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 20px; }
.cca-v2 .cca-v2__benefit-title { display: flex; align-items: center; min-height: 40px; max-width: 100%; margin: 0; padding: 14px 16px; border-radius: var(--cca-v2-radius-pill); background: #fff; color: #000; font-family: var(--cca-v2-font-mono); font-size: 12px; font-weight: 500; line-height: 1; text-transform: uppercase; overflow-wrap: anywhere; }
.cca-v2 .cca-v2__benefit-description { max-width: 330px; color: var(--cca-v2-gray-800); }
.cca-v2 .cca-v2--dark .cca-v2__benefit-description { color: var(--cca-v2-gray-800); }
.cca-v2 .cca-v2__benefit-icon { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; flex-shrink: 0; border-radius: 50%; background: #fff; color: #000; }
.cca-v2 .cca-v2__benefit-icon-image { width: 24px; height: 24px; object-fit: contain; }
/* Icono por defecto: un vector en línea que toma el color del círculo (currentColor), que el editor elige. */
.cca-v2 .cca-v2__benefit-icon-default { display: block; width: 24px; height: 24px; }
/* Cards with content use the same media lifecycle as the Hero. Hidden slides still size the grid, avoiding jumps with custom text. */
.cca-v2 .cca-v2__promotions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; padding-block: 8px 12px; }
.cca-v2 .cca-v2__promotions--split { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.cca-v2 .cca-v2__promotions--9 { grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); }
.cca-v2 :is(.cca-v2__promotion-carousel, .cca-v2__promotion-secondary) { min-width: 0; }
.cca-v2 .cca-v2__promotion-slides { position: relative; }
.cca-v2 [data-hero-ready] .cca-v2__promotion-slides { display: grid; }
.cca-v2 .cca-v2__promotion-card { grid-area: 1 / 1; min-width: 0; min-height: 472px; margin-bottom: 8px; overflow: hidden; border-radius: var(--cca-v2-radius); }
.cca-v2 .cca-v2__promotion-card[hidden] { display: none; }
.cca-v2 [data-hero-ready] .cca-v2__promotion-card { margin-bottom: 0; }
.cca-v2 [data-hero-ready] .cca-v2__promotion-card[hidden] { display: block; visibility: hidden; pointer-events: none; }
.cca-v2 .cca-v2__promotion-card.is-leaving { position: relative; z-index: 1; pointer-events: none; }
.cca-v2 .cca-v2__promotion-card.is-current { position: relative; z-index: 2; }
.cca-v2 .cca-v2__promotion-link { display: flex; position: relative; flex-direction: column; justify-content: space-between; gap: 24px; width: 100%; height: 100%; min-height: inherit; padding: 8px; color: #fff; background: var(--cca-ap-background-color, var(--cca-promotion-bg, #000)); text-decoration: none; }
.cca-v2 .cca-v2__promotion-image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.cca-v2 .cca-v2__promotion-image[hidden] { display: none; }
.cca-v2 .cca-v2__promotion-link::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.05) 30%, rgba(0,0,0,.82)); pointer-events: none; }
.cca-v2 .cca-v2__promotion-card--color .cca-v2__promotion-link::after { display: none; }
.cca-v2 .cca-v2__promotion-label { position: relative; z-index: 1; }
.cca-v2 .cca-v2__promotion-copy { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; position: relative; z-index: 1; margin-top: auto; max-width: 560px; overflow-wrap: anywhere; }
.cca-v2 .cca-v2__promotion-copy .cca-v2__title { margin: 0; font-size: 32px; font-weight: 400; line-height: 1.1; }
.cca-v2 .cca-v2__promotion-copy p { margin: 0; }
.cca-v2 .cca-v2__promotion-link:hover .cca-v2__button { background: transparent; color: inherit; }
.cca-v2 .cca-v2__promotion-controls { display: flex; gap: 0; margin: 0 0 -12px -8px; }
.cca-v2 .cca-v2__promotion-controls[hidden], .cca-v2 [data-show-dots="false"] .cca-v2__promotion-controls { display: none; }
.cca-v2 .cca-v2__promotion-dot { display: flex; align-items: center; justify-content: center; width: 24px; min-height: 44px; border: 0; padding: 0; background: transparent; color: inherit; cursor: pointer; }
.cca-v2 .cca-v2__promotion-dot::after { content: ""; width: 8px; height: 8px; border-radius: var(--cca-v2-radius-pill); background: currentColor; transition: width 200ms; }
.cca-v2 .cca-v2__promotion-dot[aria-pressed="true"] { width: 44px; }
.cca-v2 .cca-v2__promotion-dot[aria-pressed="true"]::after { width: 28px; }
.cca-v2 .cca-v2__promotion-arrows { display: flex; gap: 8px; margin-top: 8px; }
.cca-v2 .cca-v2__promotion-arrows[hidden], .cca-v2 [data-show-dots="true"] .cca-v2__promotion-arrows { display: none; }
.cca-v2 .cca-v2__promotion-carousel:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.cca-v2 .cca-v2__home-section :is(a, button):focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.cca-v2 .cca-v2__promotion-link:focus-visible { outline-offset: -6px; }
@media (max-width: 1099px) {
  .cca-v2 .cca-v2__post-grid { --cca-posts-active-columns: var(--cca-posts-tablet, 2); --cca-posts-active-span: var(--cca-posts-span-tablet, 2); }
  .cca-v2 .cca-v2__post-card--aside { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cca-v2 .cca-v2__post-card--aside > .cca-v2__post-card-link, .cca-v2 .cca-v2__post-card-aside { grid-column: auto; }
  .cca-v2 .cca-v2__benefits-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cca-v2 .cca-v2__promotions--split { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
  .cca-v2 .cca-v2__promotion-card { min-height: 440px; }
}
@media (max-width: 767px) {
  .cca-v2 .cca-v2__section-heading { flex-direction: column; align-items: flex-start; gap: 24px; margin-bottom: 40px; }
  .cca-v2 .cca-v2__section-heading .cca-v2__label { margin-bottom: 24px; }
  .cca-v2 .cca-v2__post-grid { --cca-posts-active-columns: var(--cca-posts-mobile, 2); --cca-posts-active-span: var(--cca-posts-span-mobile, 2); row-gap: 32px; }
  .cca-v2 .cca-v2__post-card--aside { grid-template-columns: minmax(0, 1fr); row-gap: 16px; }
  .cca-v2 .cca-v2__post-grid--spacing-compact { row-gap: 20px; }
  .cca-v2 .cca-v2__post-grid--spacing-relaxed { row-gap: 40px; column-gap: 16px; }
  .cca-v2 .cca-v2__post-grid--title-medium .cca-v2__post-card-title { font-size: 20px; }
  .cca-v2 .cca-v2__post-grid--title-large .cca-v2__post-card-title { font-size: 24px; }
  .cca-v2 .cca-v2__post-grid--horizontal .cca-v2__post-card-link { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .cca-v2 .cca-v2__post-grid--overlay .cca-v2__post-card-copy { padding: 16px; }
  .cca-v2 .cca-v2__post-card-title { margin-top: 12px; }
  .cca-v2 .cca-v2__post-card-placeholder { padding: 16px; }
  .cca-v2 .cca-v2__institutional { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .cca-v2 .cca-v2__institutional > :is(.cca-v2__label, .cca-v2__institutional-content) { grid-column: 1; }
  .cca-v2 .cca-v2__promotions--split { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .cca-v2 .cca-v2__promotion-card { min-height: 400px; }
}
@media (max-width: 599px) { .cca-v2 .cca-v2__benefits-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 359px) {
  .cca-v2 .cca-v2__post-grid { --cca-posts-active-columns: 1; --cca-posts-active-span: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cca-v2 .cca-v2__post-card-image, .cca-v2 .cca-v2__promotion-dot::after { transition: none; }
  .cca-v2 .cca-v2__post-card-link:hover .cca-v2__post-card-image { transform: none; }
}
