/* @id cronuts-ui-final-overrides */
/* ============================================================
   Cronuts UI Final Overrides — last in cascade. !important.
   v1.5.0: skip-link + screen-reader-text hidden inline.
   ============================================================ */

/* GLOBAL: skip/screen-reader links — hidden until focused */
:where(html) .skip-link,
:where(html) .screen-reader-text{
  clip:rect(1px,1px,1px,1px)!important;
  clip-path:inset(50%)!important;
  height:1px!important;
  width:1px!important;
  margin:-1px!important;
  overflow:hidden!important;
  padding:0!important;
  position:absolute!important;
  word-wrap:normal!important
}
:where(html) .skip-link:focus,
:where(html) .screen-reader-text:focus{
  clip:auto!important;
  clip-path:none!important;
  display:block!important;
  height:auto!important;
  width:auto!important;
  margin:0!important;
  overflow:visible!important;
  position:fixed!important;
  top:1rem!important;
  left:1rem!important;
  z-index:100000!important;
  background:#fff!important;
  color:#000!important;
  padding:.5rem 1rem!important;
  border-radius:4px!important
}

/* ============================================================
   UXCRO-102 (F2C p2) — kickers/eyebrows rojos AA, GLOBAL.
   Base clara #C71C33; contextos oscuros #FF8A9B (ratios en header).
   Solo texto: los acentos no textuales (dots, borders, fondos)
   conservan --cd-red.
   ============================================================ */
:where(html) .eyebrow{ color:#C71C33!important }
:where(html) .hero .eyebrow,
:where(html) .hero__eyebrow,
:where(html) .cases-hero .eyebrow,
:where(html) .blog-hero .eyebrow,
:where(html) .cta-dark .eyebrow,
:where(html) .ai-strip .eyebrow,
:where(html) .senal .eyebrow,
:where(html) .cta-card .eyebrow,
:where(html) .section--dark .eyebrow,
:where(html) [data-ti-section] .eyebrow,
:where(html) #opiniones .eyebrow{ color:#FF8A9B!important }

/* ============================================================
   Eyebrow — separación punto↔texto DISPLAY-AGNÓSTICA (global).
   El gap:8px del flex es inerte cuando .eyebrow computa display:block
   (mayoría de páginas), dejando el punto (::before) pegado al texto.
   Se mueve la separación al propio punto vía margin (funciona sea
   block/inline/flex) y se anula el gap para no duplicar espacio en
   las variantes que sí son inline-flex. NO afecta a los eyebrows de
   línea BEM (.author-hero__eyebrow, .aiabcn-hero__eyebrow, etc.:
   son clases distintas, no .eyebrow).
   ============================================================ */
:where(html) .eyebrow{ gap:0!important }
:where(html) .eyebrow::before{ margin-right:14px!important }

/* ============================================================
   UXCRO-105 (F2C p2) — sticky-cta: target de cierre >=24x24 con
   nombre accesible visual, y altura móvil <=72px (una fila de
   texto compacta + fila de acciones; sin eliminar contenido).
   ============================================================ */
:where(html) .sticky-cta__close{
  width:32px!important;height:32px!important;
  min-width:32px!important;min-height:32px!important;
  display:inline-grid!important;place-items:center!important;
  font-size:18px!important;line-height:1!important;
  border:1px solid rgba(255,255,255,.18)!important;border-radius:50%!important;
  background:transparent;color:rgba(255,255,255,.75);cursor:pointer;
  padding:0!important;flex-shrink:0
}
:where(html) .sticky-cta__close:hover{ color:#fff;border-color:rgba(255,255,255,.45) }
@media(max-width:720px){
  :where(html) .sticky-cta{ flex-direction:column!important;gap:6px!important;padding:7px 14px!important;align-items:stretch!important }
  :where(html) .sticky-cta__left{ display:flex!important;flex-direction:row!important;align-items:baseline!important;gap:8px!important;min-width:0 }
  :where(html) .sticky-cta__title{ font-size:12.5px!important;line-height:1.25!important;margin:0!important;white-space:nowrap }
  :where(html) .sticky-cta__sub{ font-size:12px!important;line-height:1.25!important;margin:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;min-width:0 }
  :where(html) .sticky-cta__actions{ justify-content:space-between!important;align-items:center!important;gap:8px!important }
  :where(html) .sticky-cta__actions .btn{ padding:7px 12px!important;font-size:12.5px!important;min-height:34px!important }
  :where(html) .sticky-cta__close{ width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important }
}

/* ============================================================
   AA Z0 fase2d — residuales rojos <4.5:1 no cubiertos por UXCRO-102.
   Texto rojo PERMANENTE (rest, sin regla :hover que cambie color) que
   computaba rgb(230,36,63)/var(--cd-red) con ratio <4.5. Contextos
   OSCUROS -> #FF8A9B (GLOBAL, seguro en cualquier fondo negro):
   - .team-carousel__eyebrow  10.4px/#121212  4.18 -> #FF8A9B + 12px (8.35:1)
   - .cronuts-fmc__eyebrow     10px/#0A0A0A   4.42 -> #FF8A9B + 12px (~8.8:1)
   - .mega__foot-link          13px/#121212   4.18 -> #FF8A9B        (~8.4:1)
   - .case-card__cta           12px/#141414   4.18 -> #FF8A9B        (~8.3:1)
   (Las variantes de contexto CLARO #C71C33 van dentro de !$is_sector.)
   ============================================================ */
:where(html) .team-carousel__eyebrow{ color:#FF8A9B!important; font-size:.75rem!important }
:where(html) .cronuts-fmc__eyebrow{ color:#FF8A9B!important; font-size:12px!important }
:where(html) .mega__foot-link{ color:#FF8A9B!important }
:where(html) .case-card__cta{ color:#FF8A9B!important }

/* AA Z0 fase2d — residuales rojos en contexto CLARO -> #C71C33 (solo
   páginas no-sector; en sector el canvas es oscuro y no aplican):
   - .service-card__stat  13px/#fff      4.48 -> #C71C33 (5.77:1)
   - .service-card__link  13px/#fff      4.48 -> #C71C33 (5.77:1)
   - .product__cta        12px/#E0E5EC   3.54 -> #C71C33 (4.55:1) */
:where(html) .service-card__stat{ color:#C71C33!important }
:where(html) .product__cta{ color:#C71C33!important }

/* 0. Canvas: body light, sections plain transparent (non-sector pages only) */
html, body{ background:#E0E5EC!important; color:#242424 }
:where(html) main, :where(html) #main, :where(html) body > main{
  background:transparent!important
}
:where(html) section.section:not(.section--dark):not([data-ti-section]):not(#opiniones):not(.cta-dark):not(.hero){
  background:transparent!important
}

/* 1. Botones — pill style global (border-radius 999px) */
:where(html) .btn,
:where(html) a.btn,
:where(html) button.btn,
:where(html) .btn--primary,
:where(html) .btn--secondary,
:where(html) .btn--ghost,
:where(html) .btn--light,
:where(html) .btn--large,
:where(html) .btn--dark-primary,
:where(html) .btn--dark-secondary,
:where(html) .btn--outline,
:where(html) .btn--tertiary,
:where(html) .ctc-submit,
:where(html) .ctc-calendly,
:where(html) input[type="submit"],
:where(html) button[type="submit"]{
  border-radius:999px!important
}

/* 2. Hero — primary CTA (rojo solido pill) — AA: #C71C33 (was #e6243f, FASE1 R1) */
:where(html) .btn.btn--dark-primary{
  background:#C71C33!important;
  color:#fff!important;
  border:1.5px solid transparent!important;
  box-shadow:var(--cd-shadow-sm)!important
}
:where(html) .btn.btn--dark-primary:hover{
  background:#c01e35!important;
  color:#fff!important;
  box-shadow:var(--cd-shadow-sm)!important;
  transform:translateY(-1px)
}

/* 3. Hero — secondary ghost (borde 70% alpha) */
:where(html) .btn.btn--dark-secondary{
  background:transparent!important;
  border:1.5px solid rgba(255,255,255,.7)!important;
  color:#fff!important;
  box-shadow:none!important
}
:where(html) .btn.btn--dark-secondary:hover{
  background:rgba(255,255,255,.12)!important;
  border-color:#fff!important;
  color:#fff!important;
  transform:translateY(-1px)
}

/* 4. Header pill CTA — primary rojo siempre */
:where(html) .site-header__pill .btn,
:where(html) .site-header__pill .btn--primary{
  background:var(--cd-red-btn)!important;
  color:#fff!important;
  border:1px solid rgba(230,36,63,.5)!important;
  box-shadow:var(--cd-shadow-sm)!important
}
:where(html) .site-header__pill .btn:hover,
:where(html) .site-header__pill .btn--primary:hover{
  background:#c01e35!important;
  color:#fff!important;
  border-color:rgba(230,36,63,.7)!important;
  box-shadow:var(--cd-shadow-sm)!important
}


/* ============================================================
   UX-VISUAL 2026-11-01 (A7 task 19) — tokens y capa compartida.
   Raiz: los mismos pares de color y sombras estaban repetidos en
   decenas de plantillas. Se definen UNA vez aqui y se aplican por
   familia de componente. Ratios WCAG en el informe
   (ops/logs/cro-review/a7-ux-visual-20261101/t19-contrast.py).
   - --cd-red-text     texto rojo PEQUENO sobre fondo claro (#e0e5ec/#fff)
   - --cd-red-on-dark  texto rojo sobre fondo oscuro (#0a0a0a..#2b2b2b)
   - --cd-red-btn      fondo de boton con texto blanco (4.78:1)
   - --cd-shadow-sm    UNICA sombra de elementos pequenos (sin brillo rojo)
   --cd-red (#e6243f) se conserva para acentos no textuales y titulares grandes.
   ============================================================ */
:root{
  --cd-red-text:#B0172D;
  --cd-red-on-dark:#FF6B7D;
  --cd-red-btn:#DF1F3A;
  --cd-shadow-sm:0 1px 2px rgba(17,24,39,.06),0 2px 6px rgba(17,24,39,.06);
}

/* --- Sombras: elementos pequenos planos, sin bisel ni halo de color --- */
:where(html) .btn--primary,
:where(html) .btn--dark-primary,
:where(html) .btn--secondary,
:where(html) .btn--primary:hover,
:where(html) .btn--dark-primary:hover,
:where(html) .btn--secondary:hover,
:where(html) .btn--primary:focus-visible,
:where(html) .btn--dark-primary:focus-visible,
:where(html) .cta-final__btn--primary,
:where(html) .cta-band__btn--primary,
:where(html) .aside-cta__btn--primary,
:where(html) .case-mid-cta__btn,
:where(html) .case-mobile-bar__btn,
:where(html) .cta-form__submit,
:where(html) .senal__form-submit,
:where(html) .cdx-btn-primary-dark,
:where(html) .cta-dark__submit,
:where(html) .ctc-submit,
:where(html) .chatbot-btn--primary,
:where(html) .cd-intro-casos__foot-btn--primary,
:where(html) .crc-btn,
:where(html) .crc-submit,
:where(html) .lux-submit,
:where(html) .cronuts-fmc__btn,
:where(html) .social--primary,
:where(html) .chip--active,
:where(html) .archive-letter,
:where(html) .archive-letter.is-active,
:where(html) .cases-foot__link,
:where(html) .cases-foot__link:hover,
:where(html) .crcf-ico,
:where(html) .service-card__arrow,
:where(html) .service-card--highlight .service-card__arrow,
:where(html) .service-card__icon,
:where(html) .service-card--highlight .service-card__icon,
:where(html) .value-card__icon,
:where(html) .stat__chip,
:where(html) .stat__delta,
:where(html) .product__icon,
:where(html) .product-card__icon,
:where(html) .int-stack__icon,
:where(html) .benefit-card__icon,
:where(html) .lux-form__icon,
:where(html) .tcard__icon,
:where(html) .site-footer .footer-socials a{
  box-shadow:var(--cd-shadow-sm)!important
}

/* --- Boton: texto blanco sobre rojo >= 4.5 (solo el FONDO del boton) --- */
:where(html) .btn--primary{ --btn-bg:var(--cd-red-btn) }
:where(html) .tag-new,
:where(html) .cronuts-geo-cta > a,
:where(html) .case-mobile-bar__btn,
:where(html) .chatbot-btn--primary,
:where(html) .chip--active{ background-color:var(--cd-red-btn)!important;color:#fff!important }
:where(html) .btn--primary:hover,
:where(html) .btn--dark-primary:hover{ background-color:var(--cd-red-btn) }
:where(html) .review__avatar.c4{ background-color:#8F6A09!important; color:#fff!important }
:where(html) .review__avatar.c1{ background-color:var(--cd-red-btn)!important }

/* --- Texto rojo sobre fondo OSCURO --- */
:where(html) .how-step__n,
:where(html) .loop-stage__n,
:where(html) .ctc-step__n,
:where(html) .site-footer__col > h4,
:where(html) .attr-feature .eyebrow,
:where(html) .system-feature .eyebrow,
:where(html) .geo-feature .eyebrow,
:where(html) #canales .eyebrow,
:where(html) #canales > div > p,
:where(html) #hallazgos .eyebrow,
:where(html) .geo-feature > div > div > p,
:where(html) .diag-callout__title,
:where(html) .sticky-cta__title em,
:where(html) .reviews-band__rating-link,
:where(html) .diag-reviews__link,
:where(html) .cronuts-related__card .kicker,
:where(html) .cronuts-recursos__card .kicker,
:where(html) .lux-hero__trust-num em,
:where(html) .lux__rail span,
:where(html) .hero__badge strong,
:where(html) .hero__meta-num em,
:where(html) .crcf-arr,
:where(html) [data-ti-section] a[rel~="noopener"][target="_blank"][style*="color: var(--cd-red)"]{
  color:var(--cd-red-on-dark)!important
}
/* Texto tinta (#242424) pintado dentro de un bloque oscuro (109 plantillas con style inline) */
:where(html) [data-ti-section][style*="#1a1a1a" i] div[style*="color: var(--cd-ink)"],
:where(html) .diag-reviews__score{ color:#E0E5EC!important }
:where(html) .cronuts-logos-strip__label{ color:#8A8A8A!important }
:where(html) .geo-engine__by,
:where(html) .channel > .channel__meta{ color:#9A9A9A!important }
:where(html) .site-footer__copy{ color:#8E8E8E!important }
:where(html) .hero__quote-author{ color:#fff!important }

/* --- Texto rojo PEQUENO sobre fondo CLARO --- */
:where(html) .strip__claim em,
:where(html) .truth__txt em,
:where(html) .review__text em,
:where(html) .team-card__role,
:where(html) .cite-block__btn,
:where(html) .cronuts-byline a,
:where(html) .cronuts-preferred-source--post a,
:where(html) .post-toc__label,
:where(html) .post-toc__cta a,
:where(html) .reviews-agg__link,
:where(html) .archive-card__cta,
:where(html) .product-card__link,
:where(html) .product-card__subtitle,
:where(html) .product-card__stat em,
:where(html) .product__tag,
:where(html) .article-card__arrow,
:where(html) .cronuts-next-step__eyebrow,
:where(html) .ctc-face__role,
:where(html) .crc-section-eyebrow,
:where(html) .crc-packs-title,
:where(html) .crc-panel-title,
:where(html) .stat__n em,
:where(html) main :is(p,li) > a:not([class]):not(.btn):not(:is(.section--dark,.cta-dark,[data-ti-section],.hero,footer,.site-footer,.attr-feature,#canales) *){
  color:var(--cd-red-text)!important
}
:where(html) .chip__count{ color:#4A4D52!important }
:where(html) .chip--active .chip__count{ color:#fff!important }
:where(html) .team-section__note,
:where(html) .int-stack .section__lead{ color:#545760!important }
:where(html) .cronuts-ti-light .nowrap,
:where(html) .cronuts-ti-light .nowrap strong{ color:var(--cd-ink)!important }

/* ============================================================
   UX-VISUAL — UNA regla de apilado para elementos flotantes.
   Orden de abajo arriba: CookieHub (#ch2-dialog) > barra sticky /
   barra movil de casos / flotante ROI. El flotante "Visibilidad IA"
   (fmc) se oculta por JS (cronuts-floating-magnet-cta.php 1.6.1) mientras
   haya sticky o CookieHub. El mecanismo de CookieHub ya existe
   (cronuts-a11y-cookiehub-dialog.php): pone body.cronuts-ch2-pad y
   --cronuts-ch2-pad = altura que tapa; aqui solo se reutiliza.
   Al llegar al pie, los flotantes se ocultan (body.cd-footer-in-view)
   para no tapar tel: ni el enlace de fuente preferida. Todo es
   position:fixed: no desplaza contenido (CLS=0).
   Kill switch: wp-content/cronuts-float-stack.off
   ============================================================ */
/* v1.x fix2 (2026-11-01): el desplazamiento por CookieHub se hace con la propiedad individual
   `translate` (compone con el `transform` de mostrar/ocultar de cada barra y NO cuenta como
   layout shift). Cambiar `bottom` en un elemento fixed si lo cuenta (CLS). Cada elemento
   conserva su `bottom` normal (el flotante ROI 12px en movil, 20px en escritorio), asi que el
   hueco sobre CookieHub es ese `bottom` y no un valor fijado aqui. */
body.cronuts-ch2-pad .sticky-cta,
body.cronuts-ch2-pad .case-mobile-bar,
body.cronuts-ch2-pad .crcf-wrap{ translate:0 calc(-1 * var(--cronuts-ch2-pad,0px)) }
body.cd-footer-in-view .sticky-cta,
body.cd-footer-in-view .case-mobile-bar,
body.cd-footer-in-view .crcf-wrap,
body.cd-footer-in-view .cronuts-fmc{ opacity:0!important;visibility:hidden!important;pointer-events:none!important }
/* Icono del flotante ROI: la regla inline de cronuts-roi-cta-global.php (bisel rosa/granate)
   gana a :where(html) .crcf-ico; con html .crcf-wrap .crcf-ico (0,2,1) usa la sombra plana. */
html .crcf-wrap .crcf-ico{ box-shadow:var(--cd-shadow-sm,none)!important }
/* /desarrollo-web/ a 390: el enlace corto «presupuesto cerrado» de .cd-def partia en 2 lineas.
   Solo envoltura (sin tocar copy): no se parte dentro del enlace. */
.cd-def p a[href*="presupuesto-web"],
.cd-def p a[href*="pressupost-web"]{ white-space:nowrap }

/* 5. Service cards */
:where(html) .service-card{
  background:#fff!important;
  border:1px solid rgba(36,36,36,.06)!important;
  color:#242424!important;
  box-shadow:0 12px 32px rgba(17,24,39,.06),0 2px 8px rgba(17,24,39,.04)!important;
  border-radius:14px!important
}
:where(html) .service-card:hover{
  border-color:rgba(230,36,63,.3)!important;
  transform:translateY(-2px);
  box-shadow:0 24px 56px rgba(17,24,39,.09),0 6px 18px rgba(17,24,39,.05)!important
}
:where(html) .service-card .service-card__title{ color:#242424!important }
:where(html) .service-card .service-card__eyebrow{ color:#C71C33!important; font-size:12px!important }
:where(html) .service-card .service-card__desc,
:where(html) .service-card .service-card__description{ color:#545760!important }
:where(html) .service-card .service-card__link{ color:#C71C33!important; font-weight:600!important } /* AA Z0 fase2d: #e6243f 4.48 -> #C71C33 5.77 (texto de enlace permanente sobre blanco) */
:where(html) .service-card .service-card__foot{ border-top-color:rgba(36,36,36,.08)!important }
:where(html) .service-card .service-card__icon{
  background:#fff!important;
  border:1px solid rgba(36,36,36,.08)!important;
  color:#e6243f!important
}
:where(html) .service-card .service-card__arrow{
  background:#fff!important;
  border:1px solid rgba(36,36,36,.12)!important;
  color:#242424!important;
  border-radius:999px!important
}
:where(html) .service-card:hover .service-card__arrow{
  background:#e6243f!important;
  border-color:#e6243f!important;
  color:#fff!important
}

/* 6. Section titles — light context */
:where(html) .section .section__title{ color:#242424 }
:where(html) .section .section__title em{ color:#e6243f; font-style:normal }
:where(html) .section .section__lead{ color:#545760 }

/* 7. Dark sections */
:where(html) .section--dark,
:where(html) [data-ti-section],
:where(html) #opiniones{ color:#fff!important }
:where(html) .section--dark .section__title,
:where(html) [data-ti-section] .section__title,
:where(html) #opiniones .section__title{ color:#fff!important }
:where(html) .section--dark .section__title em,
:where(html) [data-ti-section] .section__title em,
:where(html) #opiniones .section__title em{ color:#e6243f!important; font-style:normal }
:where(html) .section--dark .section__lead,
:where(html) [data-ti-section] .section__lead,
:where(html) #opiniones .section__lead{ color:rgba(255,255,255,.72)!important }

/* 8. Stats band */
:where(html) .stats-band .stat{
  background:#fff!important;
  color:#242424!important;
  border-radius:14px!important;
  box-shadow:0 12px 32px rgba(17,24,39,.06),0 2px 8px rgba(17,24,39,.04)!important
}
:where(html) .stats-band .stat__n{ color:#242424!important }
:where(html) .stats-band .stat__n em{ color:#e6243f!important; font-style:normal }
:where(html) .stats-band .stat__lbl{ color:#545760!important }
/* @id cronuts-blog-cover-aspect-fix */
:where(html) .featured-card__img{aspect-ratio:40/21!important;align-self:center!important}:where(html) .article-card__thumb{aspect-ratio:40/21!important}:where(html) .post-hero-img__wrap{aspect-ratio:40/21!important}:where(html) .related-card__img,:where(html) .aside-related__img{aspect-ratio:40/21!important}
/* @id cronuts-related-pillars-css */
.cronuts-related{background:#0a0a0a;color:#fff;padding:clamp(3rem,6vw,5rem) clamp(1rem,4vw,2rem);margin:0;border-top:1px solid rgba(255,255,255,.08)}.cronuts-related__inner{max-width:1200px;margin:0 auto}.cronuts-related__head{margin-bottom:clamp(1.5rem,3vw,2.5rem)}.cronuts-related__eyebrow{font-family:Inter,system-ui,sans-serif;font-size:.78rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--cd-red-ink,#FF5C70);margin:0 0 .5rem}.cronuts-related__title{font-family:Poppins,system-ui,sans-serif;font-size:clamp(1.6rem,3.2vw,2.4rem);font-weight:700;letter-spacing:-.015em;line-height:1.15;color:#fff;margin:0 0 .5rem}.cronuts-related__subtitle{font-family:Inter,system-ui,sans-serif;font-size:clamp(.95rem,1.4vw,1.05rem);color:rgba(255,255,255,.6);max-width:640px;margin:0;line-height:1.5}.cronuts-related__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.cronuts-related__card{position:relative;display:block;padding:1.25rem 2.6rem 1.25rem 1.4rem;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);border-radius:14px;color:#fff;text-decoration:none;overflow:hidden;transition:opacity .25s,border-color .25s;will-change:opacity}.cronuts-related__card:hover{opacity:1;border-color:rgba(230,36,63,.5)}.cronuts-related__card .kicker{display:block;font-family:Inter,system-ui,sans-serif;font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:rgba(230,36,63,.85);margin:0 0 .35rem}.cronuts-related__card .label{display:block;font-family:Poppins,system-ui,sans-serif;font-size:1.05rem;font-weight:600;line-height:1.3;color:#fff}.cronuts-related__card .arrow{position:absolute;right:1.25rem;top:50%;transform:translateY(-50%);font-size:1.15rem;line-height:1;color:rgba(255,255,255,.55);transition:transform .25s,color .25s}.cronuts-related__card:hover .arrow{color:rgba(230,36,63,.95);transform:translateY(-50%) translateX(4px)}@media(prefers-reduced-motion:reduce){.cronuts-related__card,.cronuts-related__card .arrow{transition:none}}
/* @id cronuts-site-footer-css */
.site-footer{background:#121212;color:rgba(255,255,255,.85);padding:96px 0 48px;font-family:var(--font-body,"Inter",system-ui,sans-serif)}
.site-footer .container{max-width:1400px;margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}
.site-footer__shell{background:#121212;border-radius:16px;padding:48px;box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 24px 64px rgba(0,0,0,.5);display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px}
.site-footer .footer-eyebrow{font-family:var(--font-display,"Poppins",sans-serif);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:14px}
.site-footer .footer-col a{display:block;font-size:13px;padding:4px 0;color:rgba(255,255,255,.85);text-decoration:none;transition:color 160ms}
.site-footer .footer-col a:hover{color:#e6243f}
.site-footer .footer-brand{display:flex;flex-direction:column;gap:16px;max-width:320px}
.site-footer .footer-brand__lockup{display:flex;align-items:center;gap:12px;text-decoration:none}
.site-footer .footer-brand__eye{width:40px;height:40px;display:block;object-fit:contain;flex-shrink:0;background:transparent}
.site-footer .footer-brand__word{font-family:var(--font-display,"Poppins",sans-serif);font-weight:700;font-size:22px;line-height:1;letter-spacing:-.02em;color:#fff;display:inline-flex;align-items:baseline}
.site-footer .footer-brand__word .dot{color:#e6243f;padding:0 1px}
.site-footer .footer-brand p{color:rgba(255,255,255,.72);font-size:14px;line-height:1.55;margin:0}
.site-footer .footer-socials{display:flex;gap:10px;margin-top:4px;flex-wrap:wrap}
.site-footer .footer-socials a{width:40px;height:40px;border-radius:999px;background:#1a1a1a;box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 4px 12px rgba(0,0,0,.4);display:grid;place-items:center;color:#fff;padding:0;transition:color 180ms,transform 180ms}
.site-footer .footer-socials a:hover{color:#e6243f;transform:translateY(-1px)}
.site-footer .footer-socials a svg{width:16px;height:16px;stroke-width:1.8;display:block}
.site-footer__meta{margin-top:32px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center;font-family:ui-monospace,Menlo,monospace;font-size:10px;color:rgba(255,255,255,.45);letter-spacing:.04em;text-transform:uppercase;gap:16px;flex-wrap:wrap}
.site-footer__meta .dot{color:#e6243f}
.site-footer__meta-extra a{color:rgba(255,255,255,.7);text-decoration:none;transition:color 160ms}
.site-footer__meta-extra a:hover{color:#e6243f}
@media(max-width:1024px){.site-footer__shell{grid-template-columns:1fr 1fr;gap:32px}}
@media(max-width:720px){.site-footer{padding:64px 0 32px}.site-footer__shell{grid-template-columns:1fr;padding:32px;gap:28px}.site-footer__meta{flex-direction:column;align-items:flex-start}}
/* @id cronuts-ch2-pad-css */
body.cronuts-ch2-pad{padding-bottom:var(--cronuts-ch2-pad,0px)!important}