/* Header and footer from Nav/Footer.png. Exclusive to the new page wrapper. */
.cca-v2 .cca-v2__header {
  position: relative; z-index: 90; color: #000; background: #fff;
  --cca-v2-ink: #000; --cca-v2-surface: #fff;
  --cca-v2-compact-width: 40px; --cca-v2-compact-height: 80px;
  --cca-v2-compact-crop-width: 160px; --cca-v2-compact-crop-offset: -13px;
}
.cca-v2 .cca-v2__header-inner {
  display: flex; align-items: flex-start; gap: 24px;
  width: calc(100% - 16px); max-width: 1424px; margin-inline: auto; padding-block: 8px 16px;
}
/* Reserve the full logo width on desktop so the navigation stays in place on scroll. */
/* The link is as wide as the 190px logo; the other 10px of the 200px slot are margin, so they are not clickable. */
.cca-v2 .cca-v2__header-brand { display: block; flex: 0 0 190px; width: 190px; margin-right: 10px; color: inherit; }
.cca-v2 .cca-v2__brand-image { display: block; width: 200px; height: auto; max-width: 100%; }
.cca-v2 .cca-v2__brand-compact { display: none; }
/* The small logo sits 4px higher; relative offset so the header layout does not move. */
.cca-v2 .cca-v2__brand-compact { position: relative; top: -4px; }
.cca-v2 .cca-v2__brand-image--header { width: 190px; }
.cca-v2 .cca-v2__brand-text { display: block; max-width: 200px; font-size: 16px; }
.cca-v2 .cca-v2__header-panel { display: flex; flex: 1; align-items: flex-start; justify-content: space-between; gap: 20px; min-width: 0; }
.cca-v2 .cca-v2__navigation { margin-inline: auto; }
.cca-v2 :is(.cca-v2__menu, .cca-v2__submenu, .cca-v2__social-links) { padding: 0; margin: 0; list-style: none; }
.cca-v2 .cca-v2__menu { display: flex; flex-wrap: wrap; gap: 0 16px; }
.cca-v2 .cca-v2__menu-item { position: relative; }
.cca-v2 .cca-v2__menu-row { display: flex; align-items: center; }
.cca-v2 .cca-v2__menu-link {
  display: inline-flex; align-items: center; min-height: 44px; padding-block: 12px;
  color: inherit; font-family: var(--cca-v2-font-mono); font-size: 12px;
  font-weight: 500; line-height: 1.4; text-decoration: none; text-transform: uppercase;
}
.cca-v2 :is(.cca-v2__menu-link:hover, .cca-v2__menu-link[aria-current], .is-active > .cca-v2__menu-row > .cca-v2__menu-link) { text-decoration: underline; text-underline-offset: 4px; }
.cca-v2 :is(.cca-v2__submenu-toggle, .cca-v2__mobile-toggle) {
  display: inline-flex; justify-content: center; align-items: center; flex-shrink: 0;
  min-width: 44px; min-height: 44px; padding: 0; border: 0;
  background: transparent; color: inherit; cursor: pointer;
}
.cca-v2 .cca-v2__submenu-toggle { font-family: var(--cca-v2-font-mono); font-size: 12px; font-weight: 500; text-transform: uppercase; }
.cca-v2 .cca-v2__submenu-toggle--label { min-width: 0; padding-block: 12px; }
.cca-v2 .cca-v2__header[data-nav-ready] [data-nav-parent-label] { display: none; }
.cca-v2 .cca-v2__submenu { padding-left: 16px; }
.cca-v2 .cca-v2__submenu .cca-v2__menu-link { font-weight: 400; }
.cca-v2 .cca-v2__utilities { display: flex; gap: 20px; flex-shrink: 0; color: #aaa; }
.cca-v2 .cca-v2__header[data-nav-ready] {
  position: fixed; inset: var(--cca-v2-admin-offset, 0px) 0 auto;
  background: transparent; color: #fff; --cca-v2-ink: #fff; --cca-v2-surface: #000;
  pointer-events: none;
}
/* Difference applies to the complete transparent header, including its PNG logo. */
@supports (mix-blend-mode: difference) { .cca-v2 .cca-v2__header[data-nav-ready] { mix-blend-mode: difference; } }
@supports not (mix-blend-mode: difference) { .cca-v2 .cca-v2__header[data-nav-ready] { background: #000; } }
.cca-v2 .cca-v2__header[data-nav-ready] :is(a, button) { pointer-events: auto; }
.cca-v2 .cca-v2__header[data-nav-ready] .cca-v2__brand-image { filter: brightness(0) invert(1); }
.cca-v2 .cca-v2__header[data-nav-ready] .cca-v2__submenu .cca-v2__submenu { top: 0; left: 100%; }
.cca-v2 .cca-v2__header[data-nav-ready] .cca-v2__submenu .cca-v2__menu-link { max-width: 260px; }
/* The header is one difference-blended layer (negative ink). A blend-mode ancestor stops
   backdrop-filter from seeing the page, so the blur lives in a sibling layer behind the header,
   which the script sizes to each link group and open submenu (desktop) or to the open panel (mobile). */
.cca-v2 .cca-v2__nav-glass {
  display: block; position: fixed; z-index: 89; pointer-events: none;
  background: rgba(255, 255, 255, .94); opacity: 0; visibility: hidden;
  transition: opacity .2s ease, visibility .2s;
}
.cca-v2 .cca-v2__nav-glass[data-active] { opacity: 1; visibility: visible; }
@supports ((backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px))) {
  /* Light glass: white veil at 5% over the blur (test). The open mobile menu keeps its own 50% veil below. */
  .cca-v2 .cca-v2__nav-glass { background: rgba(255, 255, 255, .04); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); }
  /* The open mobile menu keeps its light glass. */
  .cca-v2 .cca-v2__nav-glass[data-veil] { background: rgba(255, 255, 255, .5); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); }
}
.cca-v2 .cca-v2__header[data-nav-ready] .cca-v2__submenu { position: absolute; left: 0; top: 100%; z-index: 1; pointer-events: auto; }
.cca-v2 .cca-v2__header[data-nav-ready] .cca-v2__submenu .cca-v2__submenu { top: 0; }
@media (min-width: 1100px) {
  /* At the top the header floats over the banner, which is one big link. The menu row blocks clicks so that its empty
     stretches (between the links and the utilities) are not the banner; once scrolled, clicks pass through to the page. */
  .cca-v2 .cca-v2__header[data-nav-ready]:not([data-nav-compact]) .cca-v2__header-panel { pointer-events: auto; }
  .cca-v2 .cca-v2__nav-glass { border-radius: 999px; }
  .cca-v2 .cca-v2__header[data-nav-ready] .cca-v2__submenu { min-width: 0; padding: 0; }
  /* Items: Geist Mono Medium 12px, 90% leading trimmed to cap height, 10px/12px padding, 4px between them.
     With the trim each row is ~29px tall (cap height + padding); without text-box support it is 31px. */
  .cca-v2 .cca-v2__menu { gap: 0 4px; }
  .cca-v2 .cca-v2__utilities { gap: 4px; }
  .cca-v2 :is(.cca-v2__menu-row, .cca-v2__utilities) > .cca-v2__menu-link {
    min-height: 0; padding: 10px 12px; font-family: var(--cca-v2-font-mono); font-size: 12px; font-weight: 500;
    line-height: 90%; letter-spacing: 0; text-transform: uppercase; text-box: trim-both cap alphabetic;
  }
  /* The pill is as tall as a link row, so the submenu starts at its bottom edge: 8px of transparent hover bridge, then the blur box, whose spacing comes from the items' own padding. */
  .cca-v2 .cca-v2__header[data-nav-ready] .cca-v2__menu > .cca-v2__menu-item > .cca-v2__submenu { top: 100%; padding-top: 8px; }
  .cca-v2 .cca-v2__header[data-nav-ready] .cca-v2__submenu .cca-v2__menu-link { min-height: 0; padding: 10px 12px; max-width: none; white-space: nowrap; }
  /* Submenu items: 10px/12px padding each, 4px between them. */
  .cca-v2 .cca-v2__header[data-nav-ready] .cca-v2__submenu:not([hidden]) { display: flex; flex-direction: column; gap: 4px; }
}
@media (prefers-reduced-motion: reduce) { .cca-v2 .cca-v2__nav-glass { transition: none; } }
/* Small logo: the link is only as wide as the icon. The rest of the 200px stays reserved as margin so the navigation does not move. */
@media (min-width: 1100px) {
  .cca-v2 .cca-v2__header[data-nav-compact] .cca-v2__header-brand { flex-basis: var(--cca-v2-compact-width); width: var(--cca-v2-compact-width); margin-right: calc(200px - var(--cca-v2-compact-width)); }
}
.cca-v2 .cca-v2__header[data-nav-compact] .cca-v2__brand-full { display: none; }
.cca-v2 .cca-v2__header[data-nav-compact] .cca-v2__brand-compact { display: block; width: var(--cca-v2-compact-width); height: var(--cca-v2-compact-height); overflow: hidden; }
.cca-v2 .cca-v2__brand-compact .cca-v2__brand-image { width: auto; height: var(--cca-v2-compact-height); max-width: var(--cca-v2-compact-crop-width); }
.cca-v2 .cca-v2__brand-compact .cca-v2__brand-image--crop { width: var(--cca-v2-compact-crop-width); height: var(--cca-v2-compact-height); max-width: none; margin-left: var(--cca-v2-compact-crop-offset); }
.cca-v2 :is(.cca-v2__header, .cca-v2__footer) :is(a, button, input):focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.cca-v2 :is([data-nav-toggle], [data-nav-mobile-toggle], [data-nav-panel], [data-nav-submenu])[hidden] { display: none; }
.cca-v2.cca-v2__page { margin: 0; }
.cca-v2.cca-v2__page #cca-v2-main { scroll-margin-top: 100px; }
.cca-v2.cca-v2__page .cca-v2__pilot-empty { padding-top: 160px; }
.cca-v2.cca-v2__page #cca-v2-main > .cca-v2__module-stack[data-without-hero] > .cca-v2__module-slot:first-child { padding-block-start: max(var(--cca-module-space), 160px); }
.cca-v2.cca-v2__page #cca-v2-main > .cca-v2__hero:first-of-type .cca-v2__hero-body { padding-top: 144px; }
/* El hero de solo texto fija su relleno superior en 200 px, que ya deja sitio al header (144 px). */
.cca-v2.cca-v2__page #cca-v2-main > .cca-v2__hero:first-of-type .cca-v2__hero-slide--text .cca-v2__hero-body { padding-top: 200px; }
.cca-v2.cca-v2__page #cca-v2-main > .cca-v2__hero:first-of-type .cca-v2__hero-video-toggle { top: 128px; }
.cca-v2.cca-v2__page .cca-v2__skip-link { position: fixed; z-index: 110; }
.cca-v2.admin-bar { --cca-v2-admin-offset: 32px; }

.cca-v2 .cca-v2__footer {
  color: #fff; background: #000; --cca-v2-ink: #fff; --cca-v2-surface: #000;
  font-family: var(--cca-v2-font-text); font-size: 16px; line-height: 1.4;
}
.cca-v2 .cca-v2__footer-inner {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: auto auto; align-content: space-between; gap: 80px 8px;
  min-height: 440px; width: calc(100% - 16px); max-width: 1424px; margin-inline: auto;
  padding-block: 40px 24px;
}
.cca-v2 .cca-v2__footer-brand { grid-column: 1 / span 3; align-self: start; display: block; width: 200px; max-width: 100%; }
.cca-v2 .cca-v2__footer-brand .cca-v2__brand-image { filter: brightness(0) invert(1); }
.cca-v2 .cca-v2__footer-newsletter { grid-column: 4 / span 5; min-width: 0; }
.cca-v2 .cca-v2__footer-social { grid-column: 10 / span 3; }
.cca-v2 .cca-v2__footer-heading { display: block; margin: 0 0 16px; font-size: 16px; font-weight: var(--cca-v2-weight-light); }
.cca-v2 .cca-v2__newsletter { display: flex; position: relative; min-height: 48px; padding: 0 20px; background: #252525; border-radius: 999px; }
.cca-v2 .cca-v2__newsletter input[type="email"] {
  flex: 1; width: 100%; min-width: 0; border: 0; padding: 12px 0; background: transparent; color: #fff;
  font-family: var(--cca-v2-font-mono); font-size: 12px; line-height: 1.4;
}
.cca-v2 .cca-v2__newsletter input::placeholder { color: #aaa; opacity: 1; }
.cca-v2 .cca-v2__newsletter button {
  flex-shrink: 0; min-height: 48px; padding: 0 0 0 16px; border: 0; background: transparent;
  color: #fff; font-family: var(--cca-v2-font-mono); font-size: 12px; text-transform: uppercase; cursor: pointer;
}
.cca-v2 .cca-v2__newsletter button:hover { text-decoration: underline; text-underline-offset: 3px; }
.cca-v2 .cca-v2__newsletter button:disabled { cursor: default; opacity: .5; }
.cca-v2 .cca-v2__newsletter-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.cca-v2 .cca-v2__newsletter-note { margin: 8px 0 0; color: #aaa; font-size: 12px; }
.cca-v2 .cca-v2__social-links { display: flex; margin: -8px 0 0; padding: 0; list-style: none; }
.cca-v2 .cca-v2__social-links li { flex: 0 1 44px; min-width: 0; }
.cca-v2 .cca-v2__social-links a { display: flex; align-items: center; justify-content: flex-start; width: 100%; height: 44px; color: inherit; }
.cca-v2 .cca-v2__social-links svg { width: 18px; height: 18px; }
.cca-v2 .cca-v2__social-links a:hover { color: #aaa; }
.cca-v2 .cca-v2__footer-badges { grid-column: 1 / span 3; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px; }
.cca-v2 .cca-v2__footer-badges :is(a, span) { display: inline-flex; min-height: 44px; align-items: flex-start; }
.cca-v2 .cca-v2__footer-badges img { display: block; width: auto; height: 40px; max-width: 100%; }
.cca-v2 .cca-v2__footer-legal { grid-column: 4 / span 5; color: #888; font-size: 12px; font-weight: var(--cca-v2-weight-light); }
.cca-v2 .cca-v2__footer-legal p { margin: 0 0 20px; }
.cca-v2 .cca-v2__footer-legal a { color: inherit; text-underline-offset: 3px; }
.cca-v2 .cca-v2__footer-contact { grid-column: 10 / span 3; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; font-style: normal; font-weight: var(--cca-v2-weight-light); overflow-wrap: anywhere; }
.cca-v2 .cca-v2__footer-contact p { margin: 0; }
/* 16 px; si el correo (~16,4 em) no entra en el ancho de la columna, la letra baja lo justo (mínimo 12 px) para que quede en una línea. */
.cca-v2 .cca-v2__footer-contact { container-type: inline-size; }
.cca-v2 .cca-v2__footer-contact > * { font-size: clamp(12px, calc(100cqw / 16.5), 16px); }
.cca-v2 .cca-v2__footer-contact a { color: inherit; text-decoration: none; }
.cca-v2 .cca-v2__footer-contact a:hover { text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 1099px) {
  .cca-v2 .cca-v2__header { --cca-v2-compact-width: 28px; --cca-v2-compact-height: 56px; --cca-v2-compact-crop-width: 112px; --cca-v2-compact-crop-offset: -9px; }
  .cca-v2 .cca-v2__header-inner { flex-wrap: wrap; gap: 16px; align-items: center; }
  .cca-v2 .cca-v2__header-panel { flex-basis: 100%; flex-direction: column; gap: 24px; }
  .cca-v2 .cca-v2__navigation { width: 100%; margin: 0; }
  .cca-v2 .cca-v2__menu { display: block; }
  .cca-v2 .cca-v2__menu-row { justify-content: space-between; gap: 8px; }
  .cca-v2 .cca-v2__menu-link { font-size: 14px; }
  .cca-v2 .cca-v2__utilities { flex-wrap: wrap; gap: 0 24px; }
  .cca-v2 .cca-v2__header[data-nav-ready] .cca-v2__header-inner { padding-block: 8px 12px; }
  .cca-v2.cca-v2__page #cca-v2-main > .cca-v2__module-stack[data-without-hero] > .cca-v2__module-slot:first-child { padding-block-start: max(var(--cca-module-space), 104px); }
  /* The header content sits 8px from the edge, the panel items 16px: the extra 8px lines the logo up with them. */
  .cca-v2 .cca-v2__header[data-nav-ready] .cca-v2__header-brand { flex-basis: var(--cca-v2-compact-width); width: var(--cca-v2-compact-width); margin-left: 8px; }
  .cca-v2 .cca-v2__header[data-nav-ready] .cca-v2__brand-full { display: none; }
  .cca-v2 .cca-v2__header[data-nav-ready] .cca-v2__brand-compact { display: block; width: var(--cca-v2-compact-width); height: var(--cca-v2-compact-height); overflow: hidden; }
  .cca-v2 .cca-v2__mobile-toggle {
    display: flex; align-items: center; margin-left: auto; gap: 12px; min-height: 44px; padding: 10px 12px; font-family: var(--cca-v2-font-mono); font-size: 12px; font-weight: 500;
    line-height: 90%; letter-spacing: 0; text-transform: uppercase; text-box: trim-both cap alphabetic;
  }
  /* The icon's two lines sit 7px inside its 24px box; trimming that space keeps the text and icon on the same line. The button is 44px tall, the touch-target minimum. */
  .cca-v2 .cca-v2__mobile-toggle svg { margin-block: -7px; }
  .cca-v2 .cca-v2__header[data-nav-ready] .cca-v2__header-panel {
    position: absolute; left: 0; right: 0; top: 100%; gap: 16px; padding: 16px; color: #000; z-index: 1;
    max-height: calc(100dvh - var(--cca-v2-header-height, 80px) - var(--cca-v2-admin-offset, 0px)); overflow-y: auto; overscroll-behavior: contain;
    pointer-events: auto;
  }
  /* The open bar and panel share one glass: a single .cca-v2__nav-glass layer behind both, so the blur has no seam between them. */
  .cca-v2 .cca-v2__header[data-nav-glass] { background: transparent; mix-blend-mode: normal; color: #000; --cca-v2-ink: #000; --cca-v2-surface: #fff; }
  .cca-v2 .cca-v2__header[data-nav-glass] .cca-v2__brand-image { filter: brightness(0); }
  .cca-v2 .cca-v2__header[data-nav-glass] .cca-v2__utilities { color: #444; }
  .cca-v2 .cca-v2__header[data-nav-ready] .cca-v2__submenu { position: static; min-width: 0; padding: 0 0 12px 32px; }
  .cca-v2 .cca-v2__header[data-nav-ready] .cca-v2__submenu .cca-v2__menu-link { max-width: none; font-size: 12px; }
  .cca-v2 .cca-v2__footer-social, .cca-v2 .cca-v2__footer-contact { grid-column: 9 / span 4; }
  .cca-v2 .cca-v2__footer-brand { width: 180px; }
}
@media (max-width: 782px) { .cca-v2.admin-bar { --cca-v2-admin-offset: 46px; } }
@media (max-width: 767px) {
  .cca-v2 .cca-v2__footer-inner { display: flex; flex-direction: column; align-items: stretch; gap: 40px; padding-block: 40px 24px; min-height: 0; }
  .cca-v2 .cca-v2__footer-brand { width: 200px; }
  .cca-v2 .cca-v2__footer-newsletter { order: 1; }
  .cca-v2 .cca-v2__footer-social { order: 2; }
  .cca-v2 .cca-v2__footer-contact { order: 3; }
  .cca-v2 .cca-v2__footer-legal { order: 4; }
  .cca-v2 .cca-v2__footer-badges { order: 5; }
  .cca-v2.cca-v2__page #cca-v2-main > .cca-v2__hero:first-of-type .cca-v2__hero-body { padding-top: 104px; }
  .cca-v2.cca-v2__page #cca-v2-main > .cca-v2__hero:first-of-type .cca-v2__hero-video-toggle { top: 96px; }
}
@media (forced-colors: active) {
  .cca-v2 .cca-v2__header[data-nav-ready] { mix-blend-mode: normal; background: Canvas; color: CanvasText; }
  .cca-v2 .cca-v2__header[data-nav-glass]::before,
  .cca-v2 .cca-v2__nav-glass { background: Canvas; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .cca-v2 .cca-v2__header[data-nav-ready] .cca-v2__header-panel { background: Canvas; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .cca-v2 .cca-v2__header[data-nav-ready] :is(.cca-v2__header-panel, .cca-v2__submenu, .cca-v2__utilities) { color: CanvasText; }
}
