/* ICD Home Experience — Round 2. Everything Elementor global classes cannot express: keyframes, pseudo layers driven by JS vars, header state, popout menu polish. */

@property --icd-spot { syntax: '<color>'; inherits: true; initial-value: #00badb; }

:root {
  --icd-ease-out: cubic-bezier(.16, 1, .3, 1);
  --icd-ease-io: cubic-bezier(.7, 0, .2, 1);
}

/* ------------------------------------------------------------------ TICKER */
@keyframes icd-ticker { to { transform: translate3d(var(--icd-ticker-dist, -50%), 0, 0); } }
.ICD-H-Ticker-Track { animation: icd-ticker var(--icd-ticker-dur, 60s) linear infinite; }
/* Linked brand logos: the whole logo area is the link; no box change vs. the bare image. */
.ICD-H-Ticker-Track > a.e-image-link-base { display: block; flex: 0 0 auto; line-height: 0; border-radius: 4px; text-decoration: none; }
.ICD-H-Ticker-Track > a.e-image-link-base:hover .ICD-H-Ticker-Logo { opacity: 1; }
.ICD-H-Ticker-Track > a.e-image-link-base:focus-visible { outline: 2px solid currentColor; outline-offset: 6px; }
.ICD-H-Ticker-Track > a.e-image-link-base[aria-hidden="true"] { pointer-events: auto; }
/* Homepage brand ticker: OPTICAL balance, not equal dimensions. Do NOT normalise these back to one height/width.
   Height = Elementor base height (clamp 20-28px) x per-brand --icd-tl-scale; width stays auto so every aspect ratio is exact.
   Keyed on href so the aria-hidden loop clones inherit identical sizing. Reference: Astera/MADRIX group mass. */
.home .ICD-H-Ticker-Track > a.e-image-link-base > .ICD-H-Ticker-Logo { height: calc(clamp(20px, 2.2vw, 28px) * var(--icd-tl-scale, 1)); width: auto; }
/* Slot keeps the original base height: oversize/undersize logos overflow/inset symmetrically, so strip height and page layout never change. */
.home .ICD-H-Ticker-Track > a.e-image-link-base { margin-block: calc(clamp(20px, 2.2vw, 28px) * (1 - var(--icd-tl-scale, 1)) / 2); }
.home .ICD-H-Ticker-Track > a[href="/astera/"]          { --icd-tl-scale: 1.08; } /* slightly small, dense bold mark */
.home .ICD-H-Ticker-Track > a[href="/claypaky/"]        { --icd-tl-scale: 1.35; } /* tiny wordmark inside a compact mark */
.home .ICD-H-Ticker-Track > a[href="/portman-lights/"]  { --icd-tl-scale: 1.2; } /* low x-height script wordmark */
.home .ICD-H-Ticker-Track > a[href="/roxx/"]            { --icd-tl-scale: .92; }  /* heavy solid wordmark */
.home .ICD-H-Ticker-Track > a[href="/madrix/"]          { --icd-tl-scale: .95; }  /* wide + dense */
.home .ICD-H-Ticker-Track > a[href="/diodify/"]         { --icd-tl-scale: .96; }  /* tall condensed */
.home .ICD-H-Ticker-Track > a[href="/ezevent/"]         { --icd-tl-scale: .87; }  /* tall wide, light stroke */
.home .ICD-H-Ticker-Track > a[href="/lrc-pro/"]         { --icd-tl-scale: .87; }  /* tall wide wordmark + icon */

/* Empty cart: keep the icon, hide the numeric badge (no empty circle, no gap). Toggled by initCartBadge(). */
.icd-cart-empty .icd-global-cart-count { display: none !important; }
/* Desktop: badge overlays the icon corner (out of flow) so it appearing/disappearing never resizes or shifts the header controls. */
@media (min-width: 1025px) {
  .icd-global-cart-button { position: relative; }
  .icd-global-cart-button .icd-global-cart-count { position: absolute; top: 2px; left: 20px; transform: scale(.82); transform-origin: left top; }
}

.ICD-H-Strip:hover .ICD-H-Ticker-Track,
.ICD-H-Strip:focus-within .ICD-H-Ticker-Track { animation-play-state: paused; }

/* -------------------------------------------------------------------- HERO */
@keyframes icd-kenburns { from { transform: scale(1.04); } to { transform: scale(1.16) translate3d(-1.2%, -1%, 0); } }
@keyframes icd-aurora {
  0%   { transform: translate3d(-4%, -2%, 0) scale(1); }
  50%  { transform: translate3d(5%, 3%, 0) scale(1.12); }
  100% { transform: translate3d(-2%, 5%, 0) scale(1.04); }
}
@keyframes icd-rise { from { opacity: 0; transform: translate3d(0, 30px, 0); } to { opacity: 1; transform: none; } }

.ICD-H-Hero > img.e-image-base {
  translate: 0 var(--icd-hero-y, 0px);
  animation: icd-kenburns 34s ease-in-out infinite alternate;
  will-change: transform, translate;
}
.ICD-H-Hero::before {
  content: '';
  position: absolute;
  inset: -18%;
  z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(38% 42% at 18% 32%, color-mix(in srgb, var(--icd-h-accent, #00badb) 38%, transparent), transparent 70%),
    radial-gradient(34% 38% at 82% 62%, rgba(12, 113, 174, .34), transparent 70%);
  filter: blur(46px);
  mix-blend-mode: screen;
  opacity: .5;
  animation: icd-aurora 19.2s ease-in-out infinite alternate;
  will-change: transform;
}
.ICD-H-Hero .icd-hero-video {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  translate: 0 var(--icd-hero-y, 0px);
  scale: 1.1;
  opacity: 0;
  transition: opacity 1.2s ease;
  pointer-events: none;
}
.ICD-H-Hero .icd-hero-video.is-playing { opacity: 1; }
.ICD-H-Hero.has-video > img.e-image-base { animation: none; }
/* Once the hero video is playing, the still photo (a later sibling at the same z-index) sat on top of it at 60% opacity and washed it out. Hide it; it stays as the poster / reduced-motion / no-JS fallback. */
.ICD-H-Hero > img.e-image-base { transition: opacity 1.2s ease, visibility 0s linear 1.2s; }
.ICD-H-Hero.has-video > img.e-image-base { opacity: 0 !important; visibility: hidden; }
.ICD-H-Hero.has-video::before { opacity: .22; }
.icd-js .ICD-H-Hero-Copy > * { animation: icd-rise 1.2s var(--icd-ease-out) both; }
.icd-js .ICD-H-Hero-Copy > :nth-child(2) { animation-delay: .12s; }
.icd-js .ICD-H-Hero-Copy > :nth-child(3) { animation-delay: .24s; }
.icd-js .ICD-H-Hero-Copy > :nth-child(4) { animation-delay: .36s; }
.icd-js .ICD-H-Hero-Copy > :nth-child(n+5) { animation-delay: .48s; }

/* --------------------------------------------------------- SCROLL REVEAL */
/* Reversible: JS toggles .is-in on enter AND leave, --icd-from carries the direction (below viewport = +, above = −).
   Uses translate/scale so it never fights a component's own transform (hover lifts, tilts). */
/* --icd-rv is the reveal transition list; components that own other transitions (cards: hover lift, border) re-use it via var(--icd-rv). */
.icd-js [data-icd-reveal] {
  --icd-rv: opacity .5s ease, translate .6s var(--icd-ease-out), scale .6s var(--icd-ease-out);
  opacity: 0;
  translate: 0 var(--icd-from, 34px);
}
:where(.icd-js) [data-icd-reveal] { transition: var(--icd-rv); } /* :where keeps this lowest, so a component's own transition list (which re-uses var(--icd-rv)) always wins */
.icd-js [data-icd-reveal="scale"] { scale: .94; }
.icd-js [data-icd-reveal="left"] { translate: calc(var(--icd-from, 34px) * -1.4) 0; }
.icd-js [data-icd-reveal="right"] { translate: calc(var(--icd-from, 34px) * 1.4) 0; }
.icd-js [data-icd-reveal].is-in {
  --icd-rv: opacity 1s ease var(--icd-d, 0s), translate 1.15s var(--icd-ease-out) var(--icd-d, 0s), scale 1.15s var(--icd-ease-out) var(--icd-d, 0s);
  opacity: 1;
  translate: none;
  scale: none;
}
.ICD-H-Feature-Media img {
  translate: 0 var(--icd-py, 0px);
  scale: 1.14;
  will-change: translate;
}

/* --------------------------------------------------------------- SPOTLIGHT */
.icd-spotlight {
  position: fixed;
  left: 0;
  top: 0;
  width: 680px;
  height: 680px;
  margin: -340px 0 0 -340px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 1;
  opacity: 0;
  background: radial-gradient(circle, color-mix(in srgb, var(--icd-spot) 24%, transparent) 0, transparent 62%);
  mix-blend-mode: screen;
  transition: opacity .5s ease, --icd-spot .7s ease;
  will-change: transform, opacity;
}
.icd-spotlight.is-on { opacity: var(--icd-g, 1); }

/* ----------------------------------------------------------- STICKY HEADER */
.ICD-Header-Mega-Experience > a:has(> .Logo-L) {
  /* logo is left-anchored and only scales: no slide, no intro/morph */
  transform-origin: left center;
  transition: transform .26s var(--icd-ease-out);
  will-change: transform;
}
.ICD-Header-Mega-Experience > .elementor-element-75f776e {
  transform-origin: right center;
  transition: transform .65s var(--icd-ease-out);
}
.ICD-Header-Mega-Experience.icd-header-scrolled > a:has(> .Logo-L) {
  transform: scale(.8);
}
.ICD-Header-Mega-Experience.icd-header-scrolled > .elementor-element-75f776e {
  transform: scale(.82);
}
/* Logo is left-anchored at every width (burger + commerce sit on the right, as on mobile). Same layout in top and compact state;
   compact state only scales the logo. Doubled class beats the Elementor global-class grid rules without touching them. */
.elementor .ICD-Header-Mega-Experience.ICD-Header-Mega-Experience { grid-template-columns: 1fr auto auto !important; column-gap: .75rem; }
.elementor .ICD-Header-Mega-Experience.ICD-Header-Mega-Experience > a:has(> .Logo-L) { grid-column: 1 !important; grid-row: 1 !important; justify-self: start !important; }
.elementor .ICD-Header-Mega-Experience.ICD-Header-Mega-Experience > .elementor-element-75f776e { grid-column: 2 !important; grid-row: 1 !important; justify-self: end !important; }
.elementor .ICD-Header-Mega-Experience.ICD-Header-Mega-Experience > .elementor-element-13d1c70 { grid-column: 3 !important; grid-row: 1 !important; justify-self: end !important; }
@media (max-width: 767px) { .elementor .ICD-Header-Mega-Experience.ICD-Header-Mega-Experience { column-gap: .4rem; } }

/* H03 prototype (Entry 271): BRANDS/SUPPORT quick-access controls, element 2a75a8d4 (e-flexbox, classes ICD-H-Nav),
   containing buttons 21febe8a (BRANDS) and 2f520e29 (SUPPORT), classes ICD-H-Pill. >=768px only — at 375px the
   pair cannot fit beside the logo/cart/nav without a structural compromise, so the wrapper is hidden below 768px
   per the task's escape clause; see Entry 271 for the measured constraint and recommended mobile alternative.
   Inserts a 4th/5th grid track so the existing logo/cart/nav assignments above remain untouched at <768px. */
@media (min-width: 768px) {
  .elementor .ICD-Header-Mega-Experience.ICD-Header-Mega-Experience { grid-template-columns: auto auto 1fr auto auto !important; column-gap: .75rem; }
  .elementor .ICD-Header-Mega-Experience.ICD-Header-Mega-Experience > a:has(> .Logo-L) { grid-column: 1 !important; grid-row: 1 !important; justify-self: start !important; }
  .elementor .ICD-Header-Mega-Experience.ICD-Header-Mega-Experience > .elementor-element-2a75a8d4 { grid-column: 2 !important; grid-row: 1 !important; justify-self: start !important; align-self: center !important; }
  .elementor .ICD-Header-Mega-Experience.ICD-Header-Mega-Experience > .elementor-element-75f776e { grid-column: 4 !important; grid-row: 1 !important; justify-self: end !important; }
  .elementor .ICD-Header-Mega-Experience.ICD-Header-Mega-Experience > .elementor-element-13d1c70 { grid-column: 5 !important; grid-row: 1 !important; justify-self: end !important; }
}
@media (max-width: 767px) {
  /* H03 mobile prototype (Entry 272): reuses 2a75a8d4 (ICD-H-Nav) as a slim utility row pinned beneath the main
     mobile header row instead of inside the crowded logo/cart/nav grid. Shown at scrollY 0; hidden (opacity +
     pointer-events) once H06's icd-header-bg activates (~20px) and restored when it clears (~8px); stays hidden
     through the later icd-header-scrolled compact state, since icd-header-bg remains set throughout it. No JS
     changes — driven entirely by the existing H06 classes. */
  .elementor-location-header .elementor-element-2a75a8d4 {
    display: flex !important;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    grid-column: unset !important;
    grid-row: unset !important;
    margin: 0;
    padding: 6px 12px !important;
    gap: 8px;
    z-index: 2;
    opacity: 1;
    transform: translateY(0);
    transition: opacity .35s ease, transform .35s ease;
    pointer-events: auto;
  }
  /* bar lives on its own ::before, same precedent as the header bar at line ~184 — never backdrop-filter a
     parent of the fullscreen flyout */
  .elementor-location-header .elementor-element-2a75a8d4::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: rgba(10, 12, 16, .6);
    -webkit-backdrop-filter: blur(16px) saturate(1.25);
    backdrop-filter: blur(16px) saturate(1.25);
    border-bottom: 1px solid rgba(255, 255, 255, .08);
  }
  .elementor-location-header .elementor-element-2a75a8d4 > .elementor-element-21febe8a,
  .elementor-location-header .elementor-element-2a75a8d4 > .elementor-element-2f520e29 {
    flex: 1 1 0;
    min-width: 0;
  }
  .elementor-location-header .elementor-element-2a75a8d4 .e-button-base {
    width: 100%;
    min-height: 44px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    text-align: center;
  }
  .elementor-location-header .elementor-element-2a75a8d4 .e-button-base:focus-visible {
    outline: 2px solid #fff;
    outline-offset: -3px;
  }
  .ICD-Header-Mega-Experience.icd-header-bg .elementor-element-2a75a8d4 {
    opacity: 0;
    transform: translateY(-6px);
    pointer-events: none;
  }
  /* Entry 287: page-hero top clearance. The kit's --Section-Hero (~124px at 375) only cleared rail 34 + header 66
     (=100); the Entry 272 utility row adds 56px beneath the header (bottom edge at 156), so every ICD-P-Hero's first
     child started under it. Clearance = rail + header + utility row + 20px. */
  .elementor .ICD-P-Hero.ICD-P-Hero { padding-block-start: calc(var(--icd-rail-h) + 66px + 56px + 20px); }
}
/* the old width-based compact shrink (<=767) would stack with the scale; size stays constant, only transform changes */
@media (max-width: 767px) { .elementor .ICD-Header-Mega-Experience.icd-header-scrolled > .e-image-link-base .Logo-L { width: 140px !important; max-width: 140px !important; } }
/* the bar itself lives on ::before — backdrop-filter on the header would trap the fixed flyout inside it */
.ICD-Header-Mega-Experience::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: rgba(10, 12, 16, .6);
  -webkit-backdrop-filter: blur(16px) saturate(1.25);
  backdrop-filter: blur(16px) saturate(1.25);
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  opacity: 0;
  transition: opacity .6s ease;
}
.ICD-Header-Mega-Experience.icd-header-scrolled::before { opacity: 1; }
/* Entry 270 / H06: early-scroll protective background, independent of the compact-geometry state above. */
.ICD-Header-Mega-Experience.icd-header-bg::before { opacity: 1; }
.elementor-location-header .ICD-Header-Mega-Experience.icd-header-scrolled {
  background: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  border-bottom-color: transparent !important;
}
/* header pills: same white / dark hover as every other button */
.ICD-Header-Mega-Experience .icd-header-shop:hover,
.ICD-Header-Mega-Experience .icd-header-shop:focus-visible,
.ICD-Header-Mega-Experience .icd-account-login:hover,
.ICD-Header-Mega-Experience .icd-account-login:focus-visible,
.ICD-Header-Mega-Experience .icd-global-cart-button:hover,
.ICD-Header-Mega-Experience .icd-global-cart-button:focus-visible {
  background: #fff !important;
  border-color: #fff !important;
  color: #111318 !important;
}
.ICD-Header-Mega-Experience .icd-header-shop:hover *,
.ICD-Header-Mega-Experience .icd-account-login:hover *,
.ICD-Header-Mega-Experience .icd-global-cart-button:hover * { color: #111318 !important; }

/* ------------------------------------------------------------- POPOUT MENU */
/* panel: always rendered and anchored to the RIGHT edge. HFE writes an inline left/right on open/close (and ships the
   widget as "left"), so position is pinned with !important and the slide is a transform, which eases both in and out */
.hfe-flyout-wrapper .hfe-side {
  display: block !important;
  visibility: hidden;
  pointer-events: none;
  transition: transform .55s var(--icd-ease-io), visibility 0s linear .55s;
}
.hfe-flyout-wrapper .hfe-side.hfe-flyout-left,
.hfe-flyout-wrapper .hfe-side.hfe-flyout-right {
  left: auto !important;
  right: 0 !important;
  transform: translateX(110%);
}
.hfe-flyout-wrapper .hfe-side.hfe-flyout-show {
  visibility: visible;
  pointer-events: auto;
  transform: translateX(0);
  transition: transform .65s var(--icd-ease-out), visibility 0s;
}
.hfe-flyout-container .hfe-flyout-content {
  background: rgba(10, 12, 16, .9) !important;
  -webkit-backdrop-filter: blur(26px) saturate(1.3);
  backdrop-filter: blur(26px) saturate(1.3);
  border-left: 1px solid rgba(255, 255, 255, .08);
  box-shadow: -28px 0 90px rgba(0, 0, 0, .5);
  padding: 92px 22px 36px !important;
}
.hfe-flyout-overlay {
  display: block !important;
  opacity: 0 !important;
  visibility: hidden;
  background: rgba(5, 6, 9, .55) !important;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  transition: opacity .5s ease, visibility 0s linear .5s;
}
.hfe-flyout-wrapper:has(.hfe-flyout-show) .hfe-flyout-overlay {
  opacity: 1 !important;
  visibility: visible;
  transition: opacity .5s ease, visibility 0s;
}
.hfe-flyout-container .hfe-flyout-close {
  top: 24px !important;
  right: 22px !important;
  width: 40px !important;
  height: 40px !important;
  margin: 0 !important;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .2);
  display: grid !important;
  place-items: center;
  color: #fff;
  transition: background .3s ease, color .3s ease, border-color .3s ease, transform .5s var(--icd-ease-out);
}
.hfe-flyout-container .hfe-flyout-close svg {
  position: static !important;
  width: 16px !important;
  height: 16px !important;
  margin: 0 !important;
  fill: currentColor;
}
.hfe-flyout-container .hfe-flyout-close:hover,
.hfe-flyout-container .hfe-flyout-close:focus-visible {
  background: #fff;
  border-color: #fff;
  color: #111318;
  transform: rotate(90deg);
}
/* phones: the fixed header's account/cart icons cover the panel's top-right, so drop the X below the header row */
@media (max-width: 560px) {
  .hfe-flyout-container .hfe-flyout-close { top: 76px !important; }
  .hfe-flyout-container .hfe-flyout-content { padding-top: 132px !important; }
}
/* panel on the right: the X lands where the burger is, so it replaces the burger instead of crowding the cart button.
   The burger sits 10px from the edge up to 1024px, then drifts inward with the header padding (measured, 1025-1920px) */
@media (min-width: 561px) {
  .hfe-flyout-container .hfe-flyout-close { right: 10px !important; }
}
@media (min-width: 1025px) {
  .hfe-flyout-container .hfe-flyout-close { right: clamp(30px, calc(30px + (100vw - 1025px) * .03), 48px) !important; }
}

/* items */
.hfe-flyout-container .hfe-nav-menu { margin: 0; padding: 0; }
.hfe-flyout-container .hfe-nav-menu li.menu-item { background: none !important; list-style: none; }
.hfe-flyout-container .hfe-nav-menu > li.menu-item {
  border-bottom: 1px solid rgba(255, 255, 255, .07);
  opacity: 0;
  transform: translate3d(-18px, 0, 0);
  transition: opacity .25s ease, transform .3s ease;
}
.hfe-flyout-show .hfe-nav-menu > li.menu-item {
  opacity: 1;
  transform: none;
  transition: opacity .6s ease calc(.14s + var(--i, 0) * .045s), transform .75s var(--icd-ease-out) calc(.14s + var(--i, 0) * .045s);
}
.hfe-flyout-container .hfe-nav-menu a.hfe-menu-item,
.hfe-flyout-container .hfe-nav-menu a.hfe-sub-menu-item {
  position: relative;
  display: flex !important;
  align-items: center;
  gap: .7rem;
  width: 100%;
  box-sizing: border-box;
  padding: .85rem .5rem !important;
  border: 0 !important;
  border-radius: 10px;
  background: none !important;
  font-family: Barlow, sans-serif;
  font-weight: 600;
  font-size: 1.04rem;
  letter-spacing: .02em;
  text-transform: none;
  color: rgba(255, 255, 255, .86) !important;
  transition: color .3s ease, background-color .3s ease, padding-left .4s var(--icd-ease-out);
}
.hfe-flyout-container .hfe-nav-menu a.hfe-sub-menu-item {
  font-size: .96rem;
  font-weight: 500;
  padding: .62rem .5rem .62rem 2.2rem !important;
  color: rgba(255, 255, 255, .72) !important;
}
.hfe-flyout-container .hfe-nav-menu a.hfe-menu-item:hover,
.hfe-flyout-container .hfe-nav-menu a.hfe-menu-item:focus-visible,
.hfe-flyout-container .hfe-nav-menu a.hfe-sub-menu-item:hover,
.hfe-flyout-container .hfe-nav-menu a.hfe-sub-menu-item:focus-visible,
.hfe-flyout-container .hfe-nav-menu li.current-menu-item > a {
  color: var(--icd-menu-accent, #fff) !important;
  background: color-mix(in srgb, var(--icd-menu-accent, #fff) 9%, transparent) !important;
  padding-left: .9rem !important;
}
.hfe-flyout-container .hfe-nav-menu a.hfe-sub-menu-item:hover,
.hfe-flyout-container .hfe-nav-menu a.hfe-sub-menu-item:focus-visible,
.hfe-flyout-container .hfe-nav-menu ul.sub-menu li.current-menu-item > a { padding-left: 2.4rem !important; }
/* brand dot — each brand entry carries its own accent, sub-items inherit it */
.hfe-flyout-container .hfe-nav-menu li.icd-menu-brand > .hfe-has-submenu-container > a::before,
.hfe-flyout-container .hfe-nav-menu li.icd-menu-brand > a::before {
  content: '';
  position: static !important;
  inset: auto !important;
  transform: none !important;
  margin: 0 !important;
  flex: none;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--icd-menu-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--icd-menu-accent) 22%, transparent);
}
.hfe-flyout-container .hfe-nav-menu li.icd-menu-brand > .hfe-has-submenu-container > a,
.hfe-flyout-container .hfe-nav-menu li.icd-menu-brand > a { display: flex !important; align-items: center; justify-content: flex-start !important; text-align: left !important; gap: 12px; padding-left: .9rem !important; }
.hfe-flyout-container .hfe-nav-menu li.icd-menu-brand .sub-menu { border-left-color: color-mix(in srgb, var(--icd-menu-accent) 45%, transparent); }
.hfe-flyout-container .hfe-nav-menu .hfe-has-submenu-container { display: flex; align-items: center; }
.hfe-flyout-container .hfe-nav-menu .hfe-has-submenu-container > a { flex: 1 1 auto; }
.hfe-flyout-container .hfe-menu-toggle.sub-arrow {
  border: 0 !important;
  padding: 10px !important;
  color: rgba(255, 255, 255, .6);
  transition: transform .45s var(--icd-ease-out), color .3s ease;
}
.hfe-flyout-container .hfe-has-submenu-container[aria-expanded="true"] .hfe-menu-toggle.sub-arrow { transform: rotate(180deg); color: var(--icd-menu-accent, #fff); }

/* sub-menus: no gradient / panel box, height eased (JS sets max-height), items stagger in and out */
.hfe-flyout-container ul.sub-menu {
  display: block !important;
  position: relative !important;
  box-sizing: border-box;
  height: auto !important;
  max-height: 0;
  overflow: hidden;
  visibility: hidden !important;
  opacity: 1 !important;
  background: none !important;
  background-image: none !important;
  border: 0 !important;
  border-left: 1px solid rgba(255, 255, 255, .14) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0 0 0 .75rem !important;
  padding: 0 0 0 .6rem !important;
  transition: max-height .5s var(--icd-ease-io), visibility 0s linear .5s;
}
.hfe-flyout-container ul.sub-menu.sub-menu-open {
  visibility: visible !important;
  padding-block: .2rem .5rem !important;
  transition: max-height .55s var(--icd-ease-out), visibility 0s;
}
.hfe-flyout-container ul.sub-menu > li {
  border: 0 !important;
  background: none !important;
  opacity: 0;
  transform: translate3d(-10px, 0, 0);
  transition: opacity .22s ease, transform .3s ease;
}
.hfe-flyout-container ul.sub-menu.sub-menu-open > li {
  opacity: 1;
  transform: none;
  transition: opacity .5s ease calc(.08s + var(--j, 0) * .045s), transform .65s var(--icd-ease-out) calc(.08s + var(--j, 0) * .045s);
}

/* ================================================================ ROUND 3 — INNER PAGES
   Visual styling for the ICD-P-* components lives in Elementor global classes (editable). This file only carries what
   classes cannot express: keyframes, the comet cursor, and the [icd_home_news] Hover Grow Carousel markup. */

/* ---------------------------------------------------- ANIMATED HERO GRADIENT */
@keyframes icd-p-flow-a {
  0%   { transform: translate3d(-6%, -4%, 0) scale(1) rotate(0deg); }
  50%  { transform: translate3d(7%, 5%, 0) scale(1.18) rotate(8deg); }
  100% { transform: translate3d(-3%, 9%, 0) scale(1.06) rotate(-6deg); }
}
@keyframes icd-p-flow-b {
  0%   { transform: translate3d(8%, 5%, 0) scale(1.1) rotate(0deg); }
  100% { transform: translate3d(-9%, -7%, 0) scale(1) rotate(-10deg); }
}
@keyframes icd-p-sheen { 0%, 100% { opacity: .5; } 50% { opacity: .9; } }
.ICD-P-Hero > img.e-image-base { translate: 0 var(--icd-hero-y, 0px); animation: icd-kenburns 34s ease-in-out infinite alternate; will-change: transform, translate; }
.icd-js .ICD-P-Hero-Copy > * { animation: icd-rise 1.2s var(--icd-ease-out) both; }
.icd-js .ICD-P-Hero-Copy > :nth-child(2) { animation-delay: .12s; }
.icd-js .ICD-P-Hero-Copy > :nth-child(3) { animation-delay: .24s; }
.icd-js .ICD-P-Hero-Copy > :nth-child(4) { animation-delay: .36s; }
.icd-js .ICD-P-Hero-Copy > :nth-child(n+5) { animation-delay: .48s; }

/* Brand tile label flips to the accent ink while the accent fill expands (ICD-P-Tile-Label is the editable base). */
.ICD-P-Tile:hover > .ICD-P-Tile-Label, .ICD-P-Tile:focus-visible > .ICD-P-Tile-Label { color: var(--icd-h-accent-ink); opacity: 1; }

/* ------------------------------------------------------------ COMET CURSOR */
.icd-comet {
  position: fixed;
  left: 0;
  top: 0;
  width: 0;
  height: 0;
  z-index: 2147483000;
  pointer-events: none;
  opacity: 0;
  mix-blend-mode: screen;
  transition: opacity .45s ease, --icd-spot .6s ease;
}
.icd-comet.is-on { opacity: 1; }
.icd-comet.is-text { opacity: 0; }
.icd-comet i {
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  width: var(--w, 10px);
  height: var(--w, 10px);
  margin: calc(var(--w, 10px) / -2) 0 0 calc(var(--w, 10px) / -2);
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--icd-spot) 80%, transparent) 0, color-mix(in srgb, var(--icd-spot) 30%, transparent) 55%, transparent 72%);
  opacity: var(--o, .4);
  will-change: transform;
}
.icd-comet i.is-head {
  --w: 11px;
  background: var(--icd-spot);
  box-shadow: 0 0 14px 3px color-mix(in srgb, var(--icd-spot) 70%, transparent);
  opacity: 1;
  transition: background-color .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.icd-comet.is-link i.is-head {
  background: color-mix(in srgb, var(--icd-spot) 14%, transparent);
  box-shadow: 0 0 0 1.5px var(--icd-spot), 0 0 22px 2px color-mix(in srgb, var(--icd-spot) 50%, transparent);
}
.icd-comet.is-down i.is-head { box-shadow: 0 0 0 1.5px var(--icd-spot), 0 0 30px 6px color-mix(in srgb, var(--icd-spot) 65%, transparent); }

/* -------------------------------------------- HOVER GROW CAROUSEL [icd_home_news]
   Card size, active size and spacing are all custom properties. The script drives --f (0–1 growth) per card. */
.icd-hgc {
  --hgc-w: clamp(11rem, 15vw, 14.5rem);
  --hgc-w-active: clamp(21rem, 36vw, 36rem);
  --hgc-h: clamp(23rem, 34vw, 29rem);
  --hgc-h-active: clamp(27rem, 40vw, 34rem);
  --hgc-gap: var(--Card-Gap-S, 1rem);
  --hgc-radius: var(--Card-Radius-M, 1.25rem);
  --hgc-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  position: relative;
  width: 100%;
  color: var(--White, #fff);
  font-family: var(--Body-Text-1), Barlow, sans-serif;
}
/* The shortcode widget sits in a flex column that may centre/start-align its children: let it fill the row. */
.elementor-widget-shortcode:has(.icd-hgc) { align-self: stretch; width: 100%; min-width: 0; }
.icd-hgc__viewport { position: relative; width: 100%; overflow: hidden; touch-action: pan-y; -webkit-user-select: none; user-select: none; }
.icd-hgc__track { position: relative; display: flex; gap: var(--hgc-gap); padding-block: var(--Section-XS, 1.5rem); }
.icd-hgc__probe { position: absolute; visibility: hidden; pointer-events: none; width: var(--hgc-w); height: var(--hgc-h); }
.icd-hgc__probe--a { width: var(--hgc-w-active); height: var(--hgc-h-active); }
.icd-hgc__probe--g { width: var(--hgc-gap); height: 0; }

.icd-hgc__card {
  position: relative;
  display: block;
  flex: 0 0 var(--hgc-w);
  height: var(--hgc-h);
  overflow: hidden;
  isolation: isolate;
  border-radius: var(--hgc-radius);
  background: var(--icd-p-surface-3, var(--Dark, #222));
  color: var(--White, #fff);
  text-decoration: none;
  outline: none;
  opacity: calc(1 - var(--hgc-dim, 0) * (1 - var(--f, 0)) * .6);
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb, var(--White, #fff) calc(8% + var(--f, 0) * 30%), transparent),
    0 calc(var(--f, 0) * 36px) calc(var(--f, 0) * 70px) calc(var(--f, 0) * -26px) color-mix(in srgb, var(--icd-h-accent, var(--Blue-ICD-Light, #00badb)) calc(var(--f, 0) * 60%), transparent);
}
.icd-hgc.is-js .icd-hgc__viewport { cursor: grab; }
.icd-hgc.is-js .icd-hgc__viewport.is-dragging { cursor: grabbing; }
.icd-hgc.is-js .icd-hgc__track { display: block; height: calc(var(--hgc-h-active) + var(--Section-XS, 1.5rem) * 2); padding: 0; }
.icd-hgc.is-js .icd-hgc__card { position: absolute; left: 0; top: 0; flex: none; will-change: transform; visibility: hidden; }
.icd-hgc.is-js .icd-hgc__card.is-on { visibility: visible; }
.icd-hgc:not(.is-js) .icd-hgc__viewport { overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin; }
.icd-hgc:not(.is-js) .icd-hgc__card { scroll-snap-align: start; }

.icd-hgc__media, .icd-hgc__shade { position: absolute; inset: 0; }
.icd-hgc__media { z-index: 0; background: linear-gradient(135deg, var(--icd-p-surface-3, var(--Dark, #222)), var(--icd-p-surface-2, var(--Black, #000))); }
.icd-hgc__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  -webkit-user-drag: none;
  scale: calc(1.16 - var(--f, 0) * .12);
  filter: saturate(calc(.85 + var(--f, 0) * .25)) brightness(calc(.8 + var(--f, 0) * .2));
}
.icd-hgc__shade {
  z-index: 1;
  background:
    linear-gradient(to top, color-mix(in srgb, var(--Black, #000) 92%, transparent) 0, color-mix(in srgb, var(--Black, #000) 56%, transparent) 38%, transparent 78%),
    linear-gradient(135deg, color-mix(in srgb, var(--icd-h-accent, var(--Blue-ICD-Light, #00badb)) calc(var(--f, 0) * 38%), transparent), transparent 55%);
}
.icd-hgc__body {
  position: absolute;
  inset: auto 0 0 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: var(--Gaps-XS, .5rem);
  padding: var(--Card-Padding-M, 1.5rem);
}
.icd-hgc__meta {
  font-family: var(--Title-Text-1), Barlow, sans-serif;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--icd-h-accent, var(--Blue-ICD-Light, #00badb));
}
.icd-hgc__title {
  margin: 0;
  font-family: var(--Title-Text-1), Barlow, sans-serif;
  font-size: clamp(1.1rem, calc(.95rem + .5vw), 1.65rem);
  font-weight: 700;
  line-height: 1.12;
  text-wrap: balance;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
  overflow: hidden;
}
.icd-hgc__more {
  display: block;
  max-height: calc(var(--f, 0) * 12rem);
  overflow: hidden;
  opacity: clamp(0, calc((var(--f, 0) - .5) * 2.6), 1);
  translate: 0 calc((1 - var(--f, 0)) * 14px);
}
.icd-hgc__excerpt {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  margin: var(--Gaps-XS, .5rem) 0 0;
  font-size: .98rem;
  line-height: 1.45;
  color: color-mix(in srgb, var(--White, #fff) 78%, transparent);
}
.icd-hgc__cta {
  display: inline-flex;
  align-items: center;
  gap: .55em;
  margin-top: var(--Gaps-S, .75rem);
  font-family: var(--Title-Text-1), Barlow, sans-serif;
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.icd-hgc__cta::after, .icd-hgc__arrow::after, .icd-hgc__btn::after {
  content: '';
  display: block;
  width: 1.1em;
  height: 1.1em;
  background: currentColor;
  -webkit-mask: var(--hgc-arrow) center / contain no-repeat;
  mask: var(--hgc-arrow) center / contain no-repeat;
}
.icd-hgc__arrow {
  position: absolute;
  top: var(--Card-Padding-S, .9rem);
  right: var(--Card-Padding-S, .9rem);
  z-index: 3;
  display: grid;
  place-items: center;
  width: var(--Icon-XL, 2.75rem);
  height: var(--Icon-XL, 2.75rem);
  border-radius: 50%;
  font-size: 1rem;
  color: color-mix(in srgb, var(--White, #fff) calc(100% - var(--f, 0) * 100%), var(--icd-h-accent-ink, #06202a));
  background: color-mix(in srgb, var(--icd-h-accent, var(--Blue-ICD-Light, #00badb)) calc(var(--f, 0) * 100%), color-mix(in srgb, var(--White, #fff) 16%, transparent));
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  rotate: calc(var(--f, 0) * -45deg);
}
.icd-hgc .icd-hgc__card, .icd-hgc .icd-hgc__card:hover, .icd-hgc .icd-hgc__card:visited, .icd-hgc .icd-hgc__card:focus { color: var(--White, #fff); text-decoration: none; }
.icd-hgc .icd-hgc__title { color: var(--White, #fff); }
.icd-hgc .icd-hgc__meta, .icd-hgc .icd-hgc__cta { color: var(--icd-h-accent, var(--Blue-ICD-Light, #00badb)); }
.icd-hgc__card:focus-visible { box-shadow: inset 0 0 0 2px var(--White, #fff), 0 0 0 3px var(--icd-h-accent, var(--Blue-ICD-Light, #00badb)); }

/* Static-page commerce: scoped to explicitly mapped discovery carousels. */
.icd-hgc[data-icd-static-commerce] .icd-hgc__more,
.icd-hgc--secondary-cta .icd-hgc__more {
  max-height: 12rem;
  opacity: .92;
  translate: 0 calc((1 - var(--f, 0)) * 4px);
}
.icd-hgc[data-icd-static-commerce] .icd-hgc__cta,
.icd-hgc--secondary-cta .icd-hgc__cta {
  min-height: 2.1rem;
  margin-top: .35rem;
  padding: .46rem .58rem;
  border: 1px solid color-mix(in srgb, var(--White, #fff) 42%, transparent);
  border-radius: var(--Radius-Pill, 999px);
  background: color-mix(in srgb, var(--Black, #000) 72%, transparent);
  color: color-mix(in srgb, var(--White, #fff) 86%, transparent);
  font-size: .64rem;
  line-height: 1;
  letter-spacing: .065em;
  white-space: nowrap;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.icd-hgc[data-icd-static-commerce] .icd-hgc__cta:hover,
.icd-hgc[data-icd-static-commerce] .icd-hgc__cta:focus-visible,
.icd-hgc--secondary-cta .icd-hgc__cta:hover,
.icd-hgc--secondary-cta .icd-hgc__cta:focus-visible {
  border-color: var(--White, #fff);
  background: var(--White, #fff);
  color: var(--Black, #000);
  transform: translateY(-2px);
}
.icd-hgc[data-icd-static-commerce] .icd-hgc__actions { display: flex; align-items: center; flex-wrap: nowrap; gap: .25rem; }
.icd-hgc[data-icd-static-commerce] .icd-hgc__actions .icd-hgc__cta {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  box-sizing: border-box;
  min-height: 2rem;
  gap: .3em;
  padding: .42rem .375rem;
  font-size: .6rem;
  letter-spacing: .055em;
  text-decoration: none;
  cursor: pointer;
}
.icd-hgc[data-icd-static-commerce] .icd-hgc__actions .icd-hgc__cta::after { flex: 0 0 auto; width: .78em; height: .78em; }
.icd-hgc[data-icd-static-commerce] .icd-hgc__actions .icd-hgc__commerce {
  appearance: none;
  border-color: color-mix(in srgb, var(--White, #fff) 74%, transparent);
  background: color-mix(in srgb, var(--White, #fff) 14%, color-mix(in srgb, var(--Black, #000) 72%, transparent));
  color: var(--White, #fff);
  font-family: var(--Title-Text-1), Barlow, sans-serif;
  font-size: .6rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .055em;
}
.icd-hgc[data-icd-static-commerce] .icd-hgc__actions .icd-hgc__commerce::after { display: none; }
.icd-hgc[data-icd-static-commerce] .icd-hgc__actions .icd-hgc__commerce:hover,
.icd-hgc[data-icd-static-commerce] .icd-hgc__actions .icd-hgc__commerce:focus-visible { border-color: var(--White, #fff); background: var(--White, #fff); color: var(--Black, #000); }

@media (hover: none), (pointer: coarse), (max-width: 767px) {
  .icd-hgc[data-icd-static-commerce] .icd-hgc__more, .icd-hgc--secondary-cta .icd-hgc__more { opacity: 1; translate: none; }
  .icd-hgc[data-icd-static-commerce] .icd-hgc__cta, .icd-hgc--secondary-cta .icd-hgc__cta { min-height: 2.25rem; }
  .icd-hgc[data-icd-static-commerce] article.icd-product-card .icd-hgc__body { padding-inline: .7rem; }
  .icd-hgc[data-icd-static-commerce] .icd-hgc__actions { gap: .2rem; margin-inline: -.45rem; }
  .icd-hgc[data-icd-static-commerce] .icd-hgc__actions .icd-hgc__cta { padding-inline: .3rem; }
  .icd-hgc[data-icd-static-commerce] .icd-hgc__actions:has([data-icd-commerce-action="contact"]) { flex-wrap: wrap; }
}
@media (max-width: 359px) { .icd-hgc[data-icd-static-commerce] .icd-hgc__actions { flex-wrap: wrap; } }

.icd-hgc__nav { display: flex; align-items: center; gap: var(--Gaps-M, 1rem); margin-top: var(--Gaps-S, .75rem); }
.icd-hgc:not(.is-js) .icd-hgc__nav { display: none; }
.icd-hgc__bar { position: relative; flex: 1; height: 2px; overflow: hidden; border-radius: 2px; background: color-mix(in srgb, var(--White, #fff) 16%, transparent); }
.icd-hgc__bar::before, .icd-hgc__bar::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: calc(100% / var(--hgc-n, 8));
  background: var(--icd-h-accent, var(--Blue-ICD-Light, #00badb));
}
.icd-hgc__bar::after { left: calc(var(--icd-hgc-p, 0) * 100%); }
.icd-hgc__bar::before { left: calc((var(--icd-hgc-p, 0) - 1) * 100%); }
.icd-hgc__btn {
  display: grid;
  place-items: center;
  width: var(--Icon-XL, 2.75rem);
  height: var(--Icon-XL, 2.75rem);
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--White, #fff) 24%, transparent);
  border-radius: 50%;
  background: transparent;
  color: var(--White, #fff);
  cursor: pointer;
  transition: background-color .35s ease, color .35s ease, border-color .35s ease, transform .5s var(--icd-ease-out);
}
.icd-hgc__btn--prev::after { scale: -1 1; }
.icd-hgc__btn:hover, .icd-hgc__btn:focus-visible {
  background: var(--icd-h-accent, var(--Blue-ICD-Light, #00badb));
  border-color: transparent;
  color: var(--icd-h-accent-ink, #06202a);
  transform: scale(1.08);
}

@media (hover: none), (pointer: coarse) {
  .icd-hgc { --hgc-w: 62vw; --hgc-w-active: 78vw; --hgc-h: 26rem; --hgc-h-active: 30rem; }
}
@media (max-width: 767px) {
  .icd-hgc { --hgc-w: 62vw; --hgc-w-active: 80vw; --hgc-h: 25rem; --hgc-h-active: 29rem; }
}

/* ------------------------------------------------------------ REDUCED MOTION */
@media (prefers-reduced-motion: reduce) {
  .ICD-P-Hero > img.e-image-base, .ICD-P-Hero::before, .ICD-P-Hero::after, .ICD-P-Section-Glow::before { animation: none !important; translate: none !important; }
  .icd-js .ICD-P-Hero-Copy > * { animation: none !important; }
  .icd-comet { display: none !important; }
  .icd-hgc__card, .icd-hgc__btn { transition: none !important; }
  .ICD-H-Ticker-Track { animation: none !important; width: auto; flex-wrap: wrap; justify-content: center; padding-inline: var(--icd-h-gutter, 24px); row-gap: 20px; transform: none !important; }
  .ICD-H-Ticker-Logo[aria-hidden="true"], .ICD-P-Ticker-Item[aria-hidden="true"], .ICD-H-Ticker-Track > a[aria-hidden="true"] { display: none !important; }
  .ICD-H-Hero > img.e-image-base, .ICD-H-Hero::before { animation: none !important; }
  .ICD-H-Hero > img.e-image-base, .ICD-H-Hero .icd-hero-video { translate: none !important; }
  .ICD-H-Hero::before { transform: none; }
  .icd-js .ICD-H-Hero-Copy > * { animation: none !important; }
  .icd-js [data-icd-reveal] { opacity: 1 !important; transform: none !important; translate: none !important; scale: none !important; transition: none !important; }  .ICD-H-Feature-Media img { translate: none !important; scale: 1 !important; }
  .icd-spotlight { display: none !important; }
  .ICD-Header-Mega-Experience > a:has(> .Logo-L),
  .ICD-Header-Mega-Experience > .elementor-element-75f776e,
  .ICD-Header-Mega-Experience::before { transition: none !important; }
  .hfe-flyout-wrapper .hfe-side,
  .hfe-flyout-overlay,
  .hfe-flyout-container ul.sub-menu,
  .hfe-flyout-container .hfe-nav-menu li,
  .hfe-flyout-container .hfe-nav-menu a,
  .hfe-flyout-container .hfe-menu-toggle { transition: none !important; }
  .hfe-flyout-show .hfe-nav-menu > li.menu-item,
  .hfe-flyout-container ul.sub-menu.sub-menu-open > li { transition-delay: 0s !important; }
}

/* sub-arrow lives inside the link on brand entries — keep it docked right */
.hfe-flyout-container .hfe-nav-menu a > .hfe-menu-toggle.sub-arrow { margin-left: auto !important; }

/* ------------------------------------------------------------ ROUND 3 · OUR TEAM (page 1290) */
/* directory hooks the controller toggles */
.ICD-P-Person[hidden], .icd-team-empty[hidden] { display: none !important; }

/* department accents on the person card (circle, border, glow, ink all read these) */
.elementor .ICD-P-Person[data-department="executives"]           { --icd-h-accent: var(--Blue-ICD); --icd-h-accent-ink: var(--White); }
.elementor .ICD-P-Person[data-department="sales"]                { --icd-h-accent: var(--Blue-ICD-Light); --icd-h-accent-ink: var(--Blue-ICD-Dark); }
.elementor .ICD-P-Person[data-department="marketing"]            { --icd-h-accent: color-mix(in srgb, var(--Blue-ICD-Light) 55%, var(--White)); --icd-h-accent-ink: var(--Blue-ICD-Dark); }
.elementor .ICD-P-Person[data-department="department-managers"]  { --icd-h-accent: var(--White); --icd-h-accent-ink: var(--Blue-ICD-Dark); }
/* white ink needs a darker gradient end so hover text keeps AA contrast */
.elementor .ICD-P-Person[data-department="executives"]::before { background-image: linear-gradient(135deg, var(--icd-h-accent), color-mix(in srgb, var(--icd-h-accent) 72%, var(--Blue-ICD-Dark))); }

/* pressed filter pill */
.elementor .ICD-P-Filter[aria-pressed="true"],
.elementor .ICD-P-Filter[aria-pressed="true"]:hover { border-color: var(--icd-h-accent); background-color: var(--icd-h-accent); color: var(--icd-h-accent-ink); }

/* search field, count and empty state (HTML widgets) */
.icd-team-search { display: flex; flex-direction: column; gap: var(--Gaps-XS); width: 100%; max-width: var(--Width-Container-S); }
.icd-team-search label { font-family: var(--Title-Text-1); font-weight: 700; font-size: var(--tiny); letter-spacing: .16em; text-transform: uppercase; color: var(--Blue-ICD-Light); }
.icd-team-search input {
  width: 100%; margin: 0; padding: var(--Gaps-S) var(--Gaps-M);
  font-family: var(--Body-Text-1); font-size: var(--small); line-height: 1.2; color: var(--White);
  border: 1px solid color-mix(in srgb, var(--White) 22%, transparent); border-radius: var(--Radius-Pill);
  background-color: color-mix(in srgb, var(--White) 6%, transparent); box-shadow: none; outline: 0;
  transition: border-color .35s ease, background-color .35s ease, box-shadow .45s ease;
}
.icd-team-search input::placeholder { color: color-mix(in srgb, var(--White) 52%, transparent); }
.icd-team-search input:hover { border-color: color-mix(in srgb, var(--Blue-ICD-Light) 60%, transparent); }
.icd-team-search input:focus { border-color: var(--Blue-ICD-Light); background-color: color-mix(in srgb, var(--Blue-ICD-Light) 10%, transparent); box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--Blue-ICD-Light) 25%, transparent); }
.icd-team-count { margin: 0; font-family: var(--Title-Text-1); font-weight: 700; font-size: var(--small); letter-spacing: .12em; text-transform: uppercase; color: var(--icd-p-ink-dim, color-mix(in srgb, var(--White) 70%, transparent)); }
.icd-team-empty { margin: 0; padding: var(--Card-Padding-L); text-align: center; font-family: var(--Body-Text-1); font-size: var(--small); border: 1px dashed var(--icd-p-line, color-mix(in srgb, var(--White) 20%, transparent)); border-radius: var(--Card-Radius-M); color: var(--icd-p-ink-dim, color-mix(in srgb, var(--White) 70%, transparent)); }

/* phones: portrait left, text right, mail row below (keeps 16 people scannable) */
@media (max-width: 767px) {
  .elementor .ICD-P-Person { display: grid; grid-template-columns: minmax(0, 36%) minmax(0, 1fr); column-gap: var(--Gaps-S); row-gap: var(--Gaps-XS); align-items: start; align-content: start; }
  .elementor .ICD-P-Person > .ICD-P-Person-Photo,
  .elementor .ICD-P-Person > .ICD-P-Person-Initials { grid-column: 1; grid-row: 1 / span 3; margin-block-end: 0; }
  .elementor .ICD-P-Person > .ICD-P-Person-Kicker { grid-column: 2; grid-row: 1; align-self: end; }
  .elementor .ICD-P-Person > .ICD-P-Person-Name { grid-column: 2; grid-row: 2; }
  .elementor .ICD-P-Person > .ICD-P-Person-Role { grid-column: 2; grid-row: 3; margin-block-end: 0; align-self: start; }
  .elementor .ICD-P-Person > .ICD-P-Person-Mail { grid-column: 1 / -1; grid-row: 4; margin-block-start: var(--Gaps-XS); }
  .elementor .ICD-P-Person-Initials-Text { font-size: var(--head-h3); }
}

/* hero portrait cluster: pop in, then drift */
@keyframes icd-p-pop   { from { opacity: 0; scale: .4; } to { opacity: 1; scale: 1; } }
@keyframes icd-p-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -.55rem; } }
.icd-js .ICD-P-Avatars > .ICD-P-Avatar {
  --n: 0;
  animation: icd-p-pop .9s var(--icd-ease-out) both, icd-p-float 8s ease-in-out infinite;
  animation-delay: calc(.15s + var(--n) * .07s), calc(1.1s + var(--n) * .35s);
}
.icd-js .ICD-P-Avatars > .ICD-P-Avatar:nth-child(1)  { --n: 1; }
.icd-js .ICD-P-Avatars > .ICD-P-Avatar:nth-child(2)  { --n: 2; animation-duration: .9s, 9s; }
.icd-js .ICD-P-Avatars > .ICD-P-Avatar:nth-child(3)  { --n: 3; animation-duration: .9s, 7s; }
.icd-js .ICD-P-Avatars > .ICD-P-Avatar:nth-child(4)  { --n: 4; animation-duration: .9s, 10s; }
.icd-js .ICD-P-Avatars > .ICD-P-Avatar:nth-child(5)  { --n: 5; animation-duration: .9s, 8.5s; }
.icd-js .ICD-P-Avatars > .ICD-P-Avatar:nth-child(6)  { --n: 6; animation-duration: .9s, 7.5s; }
.icd-js .ICD-P-Avatars > .ICD-P-Avatar:nth-child(7)  { --n: 7; animation-duration: .9s, 9.5s; }
.icd-js .ICD-P-Avatars > .ICD-P-Avatar:nth-child(8)  { --n: 8; animation-duration: .9s, 8s; }
.icd-js .ICD-P-Avatars > .ICD-P-Avatar:nth-child(9)  { --n: 9; animation-duration: .9s, 10.5s; }
.icd-js .ICD-P-Avatars > .ICD-P-Avatar:nth-child(10) { --n: 10; animation-duration: .9s, 7s; }
.icd-js .ICD-P-Avatars > .ICD-P-Avatar:nth-child(11) { --n: 11; animation-duration: .9s, 9s; }
.icd-js .ICD-P-Avatars > .ICD-P-Avatar:nth-child(12) { --n: 12; animation-duration: .9s, 8s; }
@media (prefers-reduced-motion: reduce) {
  .icd-js .ICD-P-Avatars > .ICD-P-Avatar { animation: none !important; translate: none !important; }
  .ICD-P-CTA-Card::before { animation: none !important; }
  .ICD-P-Person, .ICD-P-Person::before, .ICD-P-Person::after { transition: none !important; }
}

/* ═══ ROUND 3 · SERVICE AND SUPPORT (page 1291) ═══ */
/* accordion: native <details>, CSS-only indicators; open state, spotlight, reveal */
.ICD-P-Accordion-Head::-webkit-details-marker { display: none; }
.elementor .ICD-P-Accordion-Item[open] {
  border-color: color-mix(in srgb, var(--icd-h-accent, #00badb) 70%, var(--icd-p-line));
  box-shadow: 0 1.5rem 4rem -1.75rem color-mix(in srgb, var(--icd-h-accent, #00badb) 55%, transparent);
}
.elementor .ICD-P-Accordion-Item[open] > .ICD-P-Accordion-Head { --icd-p-c-title: var(--icd-h-accent, #00badb); }
.elementor .ICD-P-Accordion-Item[open] > .ICD-P-Accordion-Head::after {
  transform: rotate(45deg);
  border-color: var(--icd-h-accent, #00badb);
  background-color: var(--icd-h-accent, #00badb);
  color: var(--icd-h-accent-ink, #06202a);
}
.elementor .ICD-P-Accordion-Item[open] > .ICD-P-Accordion-Head:hover::after { transform: rotate(135deg); }
.elementor .ICD-P-Accordion-Item:not([open]) > .ICD-P-Accordion-Head:hover {
  background-image: radial-gradient(28rem circle at var(--mx, 50%) var(--my, 50%), color-mix(in srgb, var(--icd-h-accent, #00badb) 14%, transparent), transparent 62%);
  background-repeat: no-repeat;
}
@keyframes icd-acc-in { from { opacity: 0; translate: 0 -.75rem; } to { opacity: 1; translate: 0 0; } }
.icd-js .ICD-P-Accordion-Item[open] > .ICD-P-Accordion-Body { animation: icd-acc-in .6s var(--icd-ease-out) both; }

/* row cards: the stretched link overlay must cover the whole card, not the nested stack */
.elementor .ICD-P-Card-Row > .ICD-P-Stack-Tight { position: static; }
/* Chrome's ::details-content defaults to overflow:hidden, which turns it into the sticky scroll container; reset so ICD-P-Sticky works inside accordions */
.elementor .ICD-P-Accordion-Item::details-content { overflow: visible; }

.elementor .ICD-P-Card-Row .ICD-P-Card-Title { overflow-wrap: anywhere; }

@media (prefers-reduced-motion: reduce) {
  .icd-js .ICD-P-Accordion-Item[open] > .ICD-P-Accordion-Body { animation: none !important; }
  .ICD-P-Accordion-Item, .ICD-P-Accordion-Head, .ICD-P-Accordion-Head::after { transition: none !important; }
}

/* Embedded forms (PlatoForms via [icd_platoforms]): in-page anchor clears the sticky header. */
.icd-form-anchor { scroll-margin-top: calc(var(--Header-Height-Main, 80px) + 24px); }

/* --------------------------------------------------- ROUND 3 · LEGAL (pages 1296 Privacy, 109 Terms)
   Numbering (counters), the reading-progress bar, and the TOC active / jump-target states.
   The visual shell lives in the ICD-P-Doc* / ICD-P-TOC* global classes. */
.icd-reading-progress {
  position: fixed;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 999;
  width: 0;
  height: 3px;
  pointer-events: none;
  background-image: linear-gradient(90deg, var(--Blue-ICD), var(--Blue-ICD-Light));
  box-shadow: 0 0 .75rem color-mix(in srgb, var(--Blue-ICD-Light) 70%, transparent);
}
.elementor .ICD-P-TOC-Link[aria-current="true"] {
  transform: translateX(.35rem);
  color: var(--icd-p-ink);
  background-color: color-mix(in srgb, var(--icd-h-accent) 14%, transparent);
  border-color: color-mix(in srgb, var(--icd-h-accent) 45%, transparent);
}
.elementor .ICD-P-Doc-Section:target {
  border-color: var(--icd-h-accent);
  box-shadow: 0 1.5rem 4rem -1.75rem color-mix(in srgb, var(--icd-h-accent) 55%, transparent);
}
.elementor .ICD-P-Doc-Section .ICD-P-Doc-Item:last-child { margin-block-end: 0; }

@media (prefers-reduced-motion: reduce) {
  .ICD-P-TOC-Link, .ICD-P-Doc-Section, .ICD-P-Doc-Item { transition: none !important; }
  .elementor .ICD-P-TOC-Link:hover, .elementor .ICD-P-TOC-Link:focus-visible, .elementor .ICD-P-TOC-Link[aria-current="true"] { transform: none; }
}

/* ======================= HOMEPAGE REBUILD (ICD-H2-*) ======================= */
/* Hero video layer: native e-youtube widget, cover-scaled; classes live in Elementor (ICD-H2-Video / ICD-H2-Scrim). */
.ICD-H2-Video { container-type: size; z-index: 1 !important; opacity: 0; transition: opacity 1200ms var(--icd-ease-out, ease); }
.ICD-H2-Video.is-ready { opacity: 1; }
.ICD-H-Hero > .ICD-H2-Scrim { z-index: 2 !important; }
.ICD-H-Hero > img.e-image-base { z-index: 0; }
.ICD-H2-Video > .e-youtube-base {
  position: absolute; top: 50%; left: 50%; width: max(110%, 195cqh); height: auto; aspect-ratio: 16 / 9;
  transform: translate(-50%, -50%); translate: 0 var(--icd-hero-y, 0px); will-change: translate;
}
.ICD-H2-Video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; pointer-events: none; }
.ICD-H-Hero > .ICD-H2-Scrim ~ .ICD-H-Hero-Copy, .ICD-H-Hero .ICD-H-Hero-Copy { position: relative; z-index: 3; }
@media (max-width: 767px) { .ICD-H2-Video { display: none !important; } }

/* Brand tiles */
.ICD-H2-Tile:hover .ICD-H2-Tile-Media { transform: scale(1.1); opacity: 0.85; }
.ICD-H2-Tile .ICD-H2-Logo-Img, .ICD-H2-Logo-Box img { max-width: 100%; max-height: 100%; width: 100%; height: 100%; object-fit: contain; object-position: left center; }
.ICD-H2-Tile-Tall .ICD-H2-Logo-Box { height: var(--Logo-S); }

/* Tile hover = the brand's own accent (buttons, glow); --icd-accent comes from ICD-H2-Acc-<Brand>. */
.ICD-H2-Tile .ICD-Brand-Button, .ICD-H2-Tile .ICD-Brand-Button-Ghost { transition: background-color 250ms ease, border-color 250ms ease, color 250ms ease, box-shadow 250ms ease; }
/* Keep the tile hover transition list inclusive of the reveal (opacity/translate/scale) so scroll up/down animation survives. */
.icd-js .ICD-H2-Tile[data-icd-reveal], .icd-js .ICD-H2-Band-Card[data-icd-reveal] { transition: var(--icd-rv), transform 400ms ease, border-color 300ms ease, box-shadow 400ms ease; }

/* Events: cinematic stage. Overrides the editorial plugin's split card (specificity doubled) with a full-bleed feature. */
.ICD-H2-Event { min-height: var(--Media-Height-Hero); justify-content: center; }
.ICD-H2-Event.ICD-H2-Event .icd-home-event { position: relative; display: grid; grid-template-columns: 1fr; align-items: end; min-height: calc(var(--Media-Height-Hero) * 1.8); border: 1px solid var(--Black-27-Overlay); border-radius: var(--Card-Radius-L); background: var(--Black); color: var(--White); overflow: hidden; isolation: isolate; }
.ICD-H2-Event.ICD-H2-Event .icd-home-event__media { position: absolute; inset: 0; z-index: -2; aspect-ratio: auto; }
.ICD-H2-Event.ICD-H2-Event .icd-home-event__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); transition: transform 1200ms var(--icd-ease-out, ease); }
.ICD-H2-Event.ICD-H2-Event .icd-home-event:is(:hover, :focus-visible) .icd-home-event__media img { transform: scale(1.1); }
.ICD-H2-Event .icd-home-event::after { content: ""; position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(180deg, var(--Black-27-Overlay) 0%, var(--Black-50-Overlay) 40%, var(--Black) 100%); }
.ICD-H2-Event.ICD-H2-Event .icd-home-event__copy { padding: var(--Card-Padding-XL); gap: var(--Gaps-S); }
.ICD-H2-Event.ICD-H2-Event .icd-home-event__copy > strong { font-size: var(--head-h1); line-height: 1; color: var(--White); max-width: var(--Width-Hero-Container-M); }

/* Touch / reduced motion */
@media (hover: none), (pointer: coarse) {
  .ICD-H2-Tile:hover, .ICD-H2-Band-Card:hover { transform: none; }
  .ICD-H2-Tile:hover .ICD-H2-Tile-Media, 
}
@media (prefers-reduced-motion: reduce) {
  .ICD-H2-Video { display: none !important; }
  .ICD-H2-Tile, .ICD-H2-Tile-Media, .ICD-H2-Band-Card, .ICD-H2-Event.ICD-H2-Event .icd-home-event__media img { transition: none !important; transform: none !important; }
}

/* View-all buttons under News and Upcoming Events: same intrinsic size, centred. */
.ICD-H-Root > .e-con > a.ICD-Brand-Button-Ghost, .ICD-H2-Event.ICD-H2-Event > a.ICD-Brand-Button-Ghost { align-self: center; width: min(100%, 18rem); box-sizing: border-box; justify-content: center; flex: 0 0 auto; margin-inline: auto; text-align: center; }

/* FOOTER (site part 77): V3 heading + nav-menu inside the ICD-F-* classes */
.ICD-F-Bar .elementor-heading-title { margin: 0; font-size: .78rem; font-weight: 400; letter-spacing: .06em; color: rgba(255,255,255,.5); }
.ICD-F-Col .elementor-nav-menu a { padding: 0 !important; font-size: .92rem; color: rgba(255,255,255,.68); transition: color 250ms ease, transform 250ms ease; }
.ICD-F-Col .elementor-nav-menu a:hover { color: var(--Blue-ICD-Light); transform: translateX(4px); }
.ICD-F-Col .elementor-nav-menu { display: flex; flex-direction: column; gap: .6rem; }
.ICD-F-Col .e-svg-base { width: auto; }
.ICD-F-Col .Logo-M { width: clamp(4.5rem,7vw,6.5rem); height: auto; }
@media (max-width: 767px) { .ICD-F-Bar { flex-direction: column; align-items: flex-start; } }

/* PRODUCT PAGES (ICD-PP-*): float / glow keyframes, hover motion, spec-row slide. */
@keyframes icd-pp-float { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-14px) rotate(.6deg); } }
@keyframes icd-pp-glow { 0%, 100% { opacity: .55; transform: scale(.94); } 50% { opacity: 1; transform: scale(1.06); } }
.ICD-PP-Figure:hover .ICD-PP-Figure-Img { transform: scale(1.04); }
.ICD-P-Spec-Row { transition: padding-inline-start 300ms ease, background-color 300ms ease; }
.ICD-P-Spec-Row:hover { padding-inline-start: .6rem; background-color: color-mix(in srgb, var(--icd-h-accent, #AFCA05) 6%, transparent); }
.ICD-PP-Product-Img { will-change: transform; }
@media (prefers-reduced-motion: reduce) {
  .ICD-PP-Product-Img, .ICD-PP-Product::before { animation: none !important; }
  .ICD-PP-Figure, .ICD-PP-Figure-Img, .ICD-P-Spec-Row { transition: none !important; transform: none !important; }
}
@media (hover: none), (pointer: coarse) {
  .ICD-PP-Figure:hover, .ICD-PP-Figure:hover .ICD-PP-Figure-Img { transform: none; }
  .ICD-P-Spec-Row:hover { padding-inline-start: 0; background-color: transparent; }
}

/* -------------------------------------------- HGC: uncropped product/logo cards [icd_hgc_products] */
.icd-hgc--contain .icd-hgc__media { background: radial-gradient(120% 90% at 50% 30%, color-mix(in srgb, var(--icd-h-accent, var(--Blue-ICD-Light, #00badb)) 22%, var(--Dark, #222)) 0, var(--Black, #000) 100%); }
.icd-hgc--contain .icd-hgc__media img { object-fit: contain; padding: 8% 8% 34%; }

/* ===== Page hero (ICD-P-Hero) video layers: same stack as the home hero (video 1 / scrim 2 / copy 3). ===== */
.ICD-P-Hero { isolation: isolate; }
.ICD-P-Hero > .ICD-H2-Video, .ICD-P-Hero > .ICD-H2-Scrim { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.ICD-P-Hero > .ICD-H2-Video { z-index: 1 !important; }
.ICD-P-Hero > .ICD-H2-Scrim { z-index: 2 !important; }
.ICD-P-Hero > .ICD-P-Hero-Copy { position: relative; z-index: 3; }
/* Poster is the fallback layer whenever the video is not playing (autoplay blocked, slow load). */
.ICD-P-Hero > img.e-image-base { display: block !important; z-index: 0; transition: opacity 1200ms var(--icd-ease-out, ease); }
.ICD-P-Hero.has-video > img.e-image-base { opacity: 0; }

/* ===== Feature-section spotlight: soft accent light follows the pointer (JS sets --mx/--my on .ICD-P-Section). Fades in/out, so it reverses. ===== */
.ICD-P-Section { position: relative; isolation: isolate; }
.ICD-P-Section::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0; transition: opacity .7s var(--icd-ease-out, ease);
  background: radial-gradient(34rem circle at var(--mx, 50%) var(--my, 50%), color-mix(in srgb, var(--icd-h-accent, #00badb) 16%, transparent), transparent 65%);
}
.ICD-P-Section:hover::after { opacity: 1; }
/* Circle Expand: icons turn white on the accent bloom (default ink was black). */
.ICD-P-Grid-4 .ICD-P-Tile:hover, .ICD-P-Grid-4 .ICD-P-Tile:focus-visible { --icd-p-logo-ink: brightness(0) invert(1); }
@media (prefers-reduced-motion: reduce), (hover: none) { .ICD-P-Section::after { display: none; } }

/* ===== Page foundation (ICD-P-*): safe-area gutters + text wrapping ===== */
.ICD-P-Root { --icd-h-gutter: var(--Section-Sides, 1.25rem); max-width: 100%; overflow-x: clip; }
.ICD-P-Root :is(h1, h2, h3, h4, p, a) { overflow-wrap: break-word; min-width: 0; }
.ICD-P-Root :is(h1, h2) { text-wrap: balance; }
.ICD-P-Root :is(p) { text-wrap: pretty; }
.ICD-P-Hero-Copy, .ICD-P-Section > * { min-width: 0; max-width: 100%; }

/* ===== Drifting gradient blobs on plain sections (ICD colours via --icd-h-accent) ===== */
.ICD-P-Section:not(.ICD-P-Section-Glow) { position: relative; isolation: isolate; overflow-x: clip; }
.ICD-P-Section:not(.ICD-P-Section-Glow)::after {
  content: ""; position: absolute; inset: -10% -5%; z-index: -1; pointer-events: none; opacity: .55; filter: blur(40px);
  background:
    radial-gradient(34% 40% at 82% 24%, color-mix(in srgb, var(--icd-h-accent, var(--Blue-ICD-Light, #00badb)) 22%, transparent), transparent 70%),
    radial-gradient(30% 36% at 12% 78%, color-mix(in srgb, var(--Blue-ICD, #0a5cff) 20%, transparent), transparent 70%);
  animation: icd-p-flow-b 26s ease-in-out infinite alternate; will-change: transform;
}
.ICD-P-Section:nth-of-type(even):not(.ICD-P-Section-Glow)::after { animation-name: icd-p-flow-a; animation-duration: 32s; }

/* ===== Hover motion for interactive elements ===== */
.ICD-P-Root :is(a, .e-button-base) { transition: transform .35s var(--icd-ease-out), box-shadow .35s ease, background-color .3s ease, color .3s ease; }
.ICD-P-Root .e-button-base:hover { transform: translateY(-3px); }
.ICD-P-Root .e-button-base:active { transform: translateY(0) scale(.98); }
.ICD-P-Card, .ICD-P-Stat { transition: transform .5s var(--icd-ease-out), box-shadow .5s ease, border-color .3s ease; }
.ICD-P-Card:hover, .ICD-P-Stat:hover { transform: translateY(-6px); box-shadow: 0 28px 60px -30px color-mix(in srgb, var(--icd-h-accent, var(--Blue-ICD-Light, #00badb)) 55%, transparent); }
.ICD-P-Card .ICD-P-Media img, .ICD-P-Card > img { transition: transform .9s var(--icd-ease-out); }
.ICD-P-Card:hover .ICD-P-Media img, .ICD-P-Card:hover > img { transform: scale(1.05); }
@media (prefers-reduced-motion: reduce) {
  .ICD-P-Section::after { animation: none !important; }
  .ICD-P-Card:hover, .ICD-P-Stat:hover, .ICD-P-Root .e-button-base:hover { transform: none; }
}

/* ---------------------------------------------------------------- Featured product slider (.icd-fs) */
.elementor-widget-shortcode:has(.icd-fs) { align-self: stretch; width: 100%; min-width: 0; }
.icd-fs { display: flex; flex-direction: column; gap: var(--Gaps-S); width: 100%; }
.icd-fs__stage { position: relative; aspect-ratio: 16 / 9; max-height: 70vh; width: 100%; overflow: hidden; border-radius: var(--Card-Radius-L); background: var(--Black); }
.icd-fs__slide { position: absolute; inset: 0; opacity: 0; transition: opacity .7s ease; }
.icd-fs__slide.is-active { opacity: 1; }
.icd-fs__video { width: 100%; height: 100%; object-fit: cover; display: block; }
.icd-fs__embed { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; pointer-events: none; opacity: 0; transition: opacity .6s ease; background: var(--Black); }
.icd-fs__embed.is-ready { opacity: 1; }
.icd-fs__shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to top, color-mix(in srgb, var(--Black) 85%, transparent) 0%, color-mix(in srgb, var(--Black) 10%, transparent) 55%, transparent 100%); }
.icd-fs__copy { position: absolute; left: var(--Card-Padding-L); right: var(--Card-Padding-L); bottom: var(--Card-Padding-L); max-width: 34rem; }
.icd-fs__info { display: none; flex-direction: column; gap: .5rem; color: var(--White); }
.icd-fs__info.is-active { display: flex; animation: icd-fs-in .6s ease both; }
.icd-fs__tag { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--Accent-Astera-2, currentColor); font-weight: 700; }
.icd-fs__name { font-size: clamp(1.8rem, 4vw, 3rem); line-height: 1.05; }
.icd-fs__text { font-size: 1rem; line-height: 1.5; opacity: .9; }
.icd-fs__link { align-self: flex-start; margin-top: .5rem; padding: .7rem 1.3rem; border-radius: 999px; background: var(--Accent-Astera-2, var(--White)); color: var(--Black); font-weight: 700; text-decoration: none; transition: transform .2s ease, background .2s ease, color .2s ease; }
.icd-fs__link:hover, .icd-fs__link:focus-visible { transform: translateY(-2px); background: var(--White); }
.icd-fs__tabs { display: flex; flex-wrap: wrap; gap: .6rem; }
.icd-fs__tab { appearance: none; cursor: pointer; padding: .75rem 1.4rem; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--White) 30%, transparent); background: transparent; color: var(--White); font: inherit; font-weight: 600; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.icd-fs__tab.is-active { background: var(--Accent-Astera-2, var(--White)); border-color: var(--Accent-Astera-2, var(--White)); color: var(--Black); }
@keyframes icd-fs-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (max-width: 767px) { .icd-fs__stage { aspect-ratio: 4 / 5; } .icd-fs__copy { left: 1rem; right: 1rem; bottom: 1rem; } }
@media (prefers-reduced-motion: reduce) { .icd-fs__slide { transition: none; } .icd-fs__info.is-active { animation: none; } }

/* ---------------------------------------------------------------- Brand second accent (orange for Astera)
   --icd-h-accent-2 is the brand's secondary accent; JS sets --icd-shift (0 → 1) with page scroll so the live accent drifts
   from the primary to the secondary. Brand-agnostic: another brand page only needs its own --icd-h-accent-2. */
.ICD-P-Root.ICD-H-Accent-Astera { --icd-h-accent-2: var(--Accent-Astera-2); }
.ICD-P-Root.ICD-H-Accent-ROXX { --icd-h-accent-2: var(--Accent-ROXX-2); --icd-dg-dark: 45%; }
@media (prefers-reduced-motion: reduce) { #deals { animation: none; } }
.ICD-P-Root { --icd-h-accent-live: color-mix(in srgb, var(--icd-h-accent-2, var(--icd-h-accent)) calc(var(--icd-shift, 0) * 100%), var(--icd-h-accent)); }
.ICD-P-Root .ICD-P-Section::after { background: radial-gradient(34rem circle at var(--mx, 50%) var(--my, 50%), color-mix(in srgb, var(--icd-h-accent-live) 22%, transparent), transparent 65%); }
.ICD-P-Root .ICD-P-Pill { border-color: color-mix(in srgb, var(--icd-h-accent-live) 55%, transparent); }
/* Stat callouts */
#numbers > :nth-child(2) .e-heading-base { color: var(--icd-h-accent-2, var(--icd-h-accent)); }
/* Scroll progress rail in the live accent */
.ICD-P-Root::before { content: ""; position: fixed; left: 0; top: 0; height: 3px; width: calc(var(--icd-shift, 0) * 100%); z-index: 50; pointer-events: none; background: linear-gradient(90deg, var(--icd-h-accent), var(--icd-h-accent-2, var(--icd-h-accent))); }

/* ---------------------------------------------------------------- Built for install / Academy / Support */
#install { background: radial-gradient(60% 80% at 100% 0%, color-mix(in srgb, var(--icd-h-accent-2, var(--icd-h-accent)) 28%, transparent), transparent 70%), linear-gradient(135deg, color-mix(in srgb, var(--icd-h-accent) 55%, var(--Black)), var(--Black) 70%); }
#install .ICD-P-Card { border: 1px solid color-mix(in srgb, var(--White) 14%, transparent); }
#install .ICD-Brand-Button { margin-top: var(--Gaps-S); align-self: flex-start; }
#academy { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--Gaps-S); align-items: center; }
#academy > .e-image-base { width: 100%; height: auto; aspect-ratio: 1200 / 628; object-fit: cover; border-radius: var(--Card-Radius-L); }
#support .ICD-P-Card .ICD-Brand-Button-Ghost { align-self: flex-start; margin-top: var(--Gaps-S); }
@media (max-width: 767px) { #academy { grid-template-columns: minmax(0, 1fr); } }

/* ---------------------------------------------------------------- Logo sprinkles */
#wm-free { position: absolute !important; right: -4%; bottom: -12%; width: min(46vw, 34rem) !important; max-width: none !important; height: auto !important; opacity: .07; pointer-events: none; z-index: 0; }
#lockup-support { opacity: .85; margin-top: var(--Gaps-S); }

/* ---------------------------------------------------------------- Hero stack: logo → pill → headline → subtext → buttons, one tight unit */
.ICD-P-Hero-Copy { display: flex; flex-direction: column; align-items: flex-start; gap: .9rem; }
.ICD-P-Hero-Copy > .ICD-P-Pill { margin: 0; }
.ICD-P-Hero-Copy > :is(h1, .e-heading-base) { margin: 0; }
.ICD-P-Hero-Copy > :nth-last-child(2) { margin: 0; max-width: 36rem; }
.ICD-P-Hero-Copy > :last-child { margin-top: .6rem; }
.ICD-P-Root .ICD-P-Section { overflow-x: clip; }


/* ---------------------------------------------------------------- PERMANENT RULE: every button / pill-link hover = white background, black text.
   No accent fills, strokes or glows on hover (orange or purple). Applies site-wide. */
:is(.ICD-Brand-Button, .ICD-Brand-Button-Ghost, .e-button-base, .icd-hgc__btn, .icd-fs__link, .icd-fs__tab, .ICD-P-Filter):is(:hover, :focus-visible),
.ICD-H2-Tile:hover :is(.ICD-Brand-Button, .ICD-Brand-Button-Ghost) {
  background: var(--White) !important;
  background-color: var(--White) !important;
  background-image: none !important;
  border-color: var(--White) !important;
  color: var(--Black) !important;
  box-shadow: none !important;
}
:is(.ICD-Brand-Button, .ICD-Brand-Button-Ghost, .e-button-base, .icd-hgc__btn, .icd-fs__link, .icd-fs__tab):is(:hover, :focus-visible) :is(span, svg, i) { color: var(--Black) !important; fill: currentColor; }
.icd-fs__tab.is-active { background: var(--White); border-color: var(--White); color: var(--Black); }

/* ================================================================ ROUND 6 */
/* Pills hug their text everywhere (never stretch edge to edge) */
.ICD-P-Pill { width: fit-content; max-width: 100%; align-self: flex-start; }
.ICD-P-Head-Center .ICD-P-Pill, .ICD-P-Hero-Center .ICD-P-Pill { align-self: center; }

/* Hero: large logo across the text column */
.ICD-P-Hero-Copy > img.e-image-base:first-child { width: min(100%, 36rem) !important; max-width: 100%; height: auto !important; }
/* Taller (mark + wordmark) brand logos are capped so every brand hero lockup reads at the same scale. */
.ICD-P-Hero-Copy > img.e-image-base:first-child { max-height: 8rem; object-fit: contain; object-position: left center; }

/* Card icons: image cards keep the icon in the corner slot so the bloom always has a real glyph and never meets a title */
.ICD-P-Card > .ICD-P-Icon { margin-block-end: var(--Gaps-S); }
.ICD-P-Card > img.e-image-base { width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; border-radius: var(--Card-Radius-M, 1rem); }
#install .ICD-P-Card > img.e-image-base { object-fit: contain; }

/* ---------------------------------------------------------------- Freedom on set: full-viewport scroll-scrubbed moment */
#freedom { position: relative; padding: 0 !important; min-height: 100svh; display: block; overflow: hidden; }
#freedom > :first-child { position: relative; min-height: 100svh; width: 100%; aspect-ratio: auto; border-radius: 0; overflow: hidden; display: flex; align-items: center; justify-content: center; }
#freedom > :first-child > img.e-image-base { position: absolute; left: 0; top: -14%; width: 100% !important; min-width: 100%; height: 128% !important; max-width: none; aspect-ratio: auto !important; object-fit: cover; transform: translate3d(0, var(--fz-y, 0px), 0); will-change: transform; }
#freedom .ICD-P-Media-Caption { position: relative; z-index: 2; align-items: center; justify-content: center; text-align: center; gap: var(--Gaps-M); padding: var(--Gaps-L); width: 100%; min-height: 100svh; background: none; }
#freedom > :first-child::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, color-mix(in srgb, var(--Black) 35%, transparent), color-mix(in srgb, var(--Black) 70%, transparent)); }
#freedom .ICD-P-Media-Caption .ICD-P-Pill { align-self: center; width: fit-content; max-width: 100%; }
#freedom-head { font-size: clamp(2.6rem, 8vw, 7.5rem); line-height: 1; letter-spacing: -0.04em; max-width: 16ch; margin: 0; }
#freedom .icd-fw { display: inline-block; white-space: pre; }
#freedom.icd-fz-on .icd-fw { opacity: var(--w, 0); transform: translateY(calc((1 - var(--w, 0)) * 3.5rem)); filter: blur(calc((1 - var(--w, 0)) * 10px)); will-change: transform, opacity; }
#freedom #wm-free { display: none; }

/* ---------------------------------------------------------------- Deals: morphing Astera gradient + readable cards */
/* Brand-themed: blob colours come from the page's accent pair (--icd-h-accent / --icd-h-accent-2), blended toward Black by --icd-dg-dark (0% = full colour). */
#deals { --icd-dg-1: color-mix(in srgb, var(--icd-h-accent, var(--Accent-Astera)), var(--Black) var(--icd-dg-dark, 0%)); --icd-dg-2: color-mix(in srgb, var(--icd-h-accent-2, var(--Accent-Astera-2)), var(--Black) var(--icd-dg-dark, 0%));
  position: relative; isolation: isolate; overflow: hidden; background-color: var(--Black);
  background-image:
    radial-gradient(48% 60% at 15% 25%, color-mix(in srgb, var(--icd-dg-1) 90%, transparent), transparent 70%),
    radial-gradient(40% 55% at 85% 20%, color-mix(in srgb, var(--icd-dg-2) 55%, transparent), transparent 70%),
    radial-gradient(50% 60% at 70% 95%, color-mix(in srgb, var(--icd-dg-1) 80%, transparent), transparent 72%),
    radial-gradient(35% 45% at 5% 95%, color-mix(in srgb, var(--icd-dg-2) 40%, transparent), transparent 70%);
  background-size: 220% 220%; background-repeat: no-repeat; animation: icd-deals-morph 17.6s ease-in-out infinite alternate; }
@keyframes icd-deals-morph { 0% { background-position: 0% 0%, 100% 0%, 60% 100%, 0% 100%; background-size: 200% 200%, 180% 180%, 220% 220%, 160% 160%; } 50% { background-position: 40% 30%, 60% 40%, 30% 70%, 50% 60%; background-size: 240% 240%, 200% 200%, 190% 190%, 220% 220%; } 100% { background-position: 80% 60%, 20% 80%, 90% 30%, 100% 20%; background-size: 180% 180%, 240% 240%, 210% 210%, 180% 180%; } }
#deals .ICD-P-Card { background: color-mix(in srgb, var(--Black) 68%, transparent); backdrop-filter: blur(10px); border: 1px solid color-mix(in srgb, var(--White) 16%, transparent); gap: var(--Gaps-S); }
#deals .ICD-P-Stat-Value { font-size: clamp(3.5rem, 7vw, 6rem); color: var(--White); }
#deals .ICD-P-Card .e-heading-base:not(.ICD-P-Stat-Value) { text-transform: none; letter-spacing: -0.01em; }
#deals .ICD-Brand-Button { margin-top: auto; align-self: flex-start; white-space: nowrap; writing-mode: horizontal-tb; }
#deals * { writing-mode: horizontal-tb !important; text-orientation: mixed !important; }

/* ---------------------------------------------------------------- By the numbers */
#numbers .ICD-P-Stat { gap: var(--Gaps-XS); }
#numbers .ICD-P-Stat-Value { font-variant-numeric: tabular-nums; }
#numbers .ICD-P-Stat-Label { text-transform: none; letter-spacing: 0; font-size: var(--head-h5, 1.1rem); color: var(--icd-p-ink); font-weight: 700; }

/* ---------------------------------------------------------------- Story = page closer */
#story-logo { width: clamp(5rem, 9vw, 8rem) !important; height: auto !important; margin: 0; }
#story .ICD-P-Pill { margin-block: 0; }
#story > :first-child { gap: var(--Gaps-S); }

@media (prefers-reduced-motion: reduce) {
  #deals { animation: none; }
}

/* ROUND 6 · item 9 — shared product carousel system (.icd-hgc). One edit here changes every page that uses it. */
.icd-hgc { --hgc-w: clamp(13.5rem, 17vw, 17rem); --hgc-w-active: clamp(21rem, 34vw, 34rem); --hgc-h: clamp(21rem, 28vw, 25rem); --hgc-h-active: clamp(25rem, 34vw, 30rem); }
.icd-hgc .icd-hgc__card { border-radius: var(--hgc-radius); overflow: hidden; }
.icd-hgc .icd-hgc__media img { border-radius: 0; }
.e-con:has(> .e-paragraph-base > .icd-hgc) { row-gap: var(--Gaps-S, .75rem); }
.icd-hgc__desc { display: block; font-size: .92rem; line-height: 1.35; color: color-mix(in srgb, var(--White, #fff) 72%, transparent); }
.icd-hgc__cta { margin-top: var(--Gaps-XS, .5rem); }

/* ---------------------------------------------------------------- Product cards on native background images (families + install) */
:is(#families, #install) .ICD-P-Card { min-height: 30rem; justify-content: flex-start; background-color: var(--Black); background-size: cover; background-position: center; border: 1px solid color-mix(in srgb, var(--White) 14%, transparent); backdrop-filter: none; box-shadow: inset 0 -17rem 9rem -5rem color-mix(in srgb, var(--Black) 88%, transparent), inset 0 0 0 100vmax color-mix(in srgb, var(--Black) 18%, transparent); }
:is(#families, #install) .ICD-P-Card:hover { box-shadow: inset 0 -17rem 9rem -5rem color-mix(in srgb, var(--Black) 88%, transparent), inset 0 0 0 100vmax color-mix(in srgb, var(--Black) 8%, transparent); }
:is(#families, #install) .ICD-P-Card > .ICD-P-Icon { margin-block-end: 0; }
:is(#families, #install) .ICD-P-Card > .e-heading-base { margin-top: auto; }
:is(#families, #install) .ICD-P-Card > .e-button-base, :is(#families, #install) .ICD-P-Card > a.e-button-base { margin-top: var(--Gaps-S); align-self: flex-start; }
:is(#families, #install) .ICD-P-Card > .e-paragraph-base { color: var(--White); }

/* ---------------------------------------------------------------- Install: ambient background video + scrim */
#install { position: relative; isolation: isolate; overflow: hidden; }
#install .icd-bgv { background: var(--Black); position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; max-width: none !important; min-height: 100%; object-fit: cover; z-index: -2; pointer-events: none; }
#install:has(.icd-bgv)::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, color-mix(in srgb, var(--Black) 78%, transparent), color-mix(in srgb, var(--Black) 62%, transparent) 50%, color-mix(in srgb, var(--Black) 82%, transparent)); pointer-events: none; }
#install .e-paragraph-base:has(> .icd-bgv) { position: static; margin: 0; translate: none !important; scale: none !important; rotate: none !important; transform: none !important; filter: none !important; opacity: 1 !important; }

/* Deals: clear horizontal label, no counts */
#deals .ICD-P-Card .e-heading-base { font-size: clamp(1.9rem, 3vw, 2.8rem); line-height: 1.05; text-transform: uppercase; letter-spacing: .03em; margin: 0; }
#deals .ICD-P-Card .e-paragraph-base { margin: 0; }
:is(#families, #install) .ICD-P-Card > .e-paragraph-base { min-height: 4lh; }

#install .ICD-P-Grid-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 767px) { #install .ICD-P-Grid-4 { grid-template-columns: 1fr; } }

/* Why Astera tiles: icon, title, body stacked in normal flow (no absolute label, no fixed grid rows) */
.elementor-element-7f563eb8 .elementor .ICD-P-Tile, .elementor .elementor-element-7f563eb8 .ICD-P-Tile { aspect-ratio: auto; overflow: visible; place-items: normal; text-align: start; display: flex; flex-direction: column; align-items: flex-start; gap: var(--Gaps-XS); height: auto; min-height: 0; padding: var(--Gaps-M, 1.5rem); }
.elementor-element-7f563eb8 .ICD-P-Tile > img.e-image-base { position: static; width: 2.75rem; height: 2.75rem; margin-block-end: var(--Gaps-XS); }
.elementor .elementor-element-7f563eb8 .ICD-P-Tile > .ICD-P-Tile-Label { text-align: start; opacity: 1; position: static; inset: auto; transform: none; width: auto; max-width: 100%; margin: 0; font-size: var(--head-h5, 1.1rem); line-height: 1.2; letter-spacing: .06em; text-transform: uppercase; color: var(--White); overflow-wrap: anywhere; }
.elementor-element-7f563eb8 .ICD-P-Tile > .e-paragraph-base { position: static; width: auto; margin: 0; }

/* ================================================================ FINAL R6 BATCH */
/* One card radius for every card type on brand pages (Card, Tile, carousel card, feature stage, media). */
.ICD-P-Root { --icd-card-r: var(--Card-Radius-M); --icd-p-radius: var(--icd-card-r); --hgc-radius: var(--icd-card-r); }
.elementor .ICD-P-Tile, .elementor .ICD-P-Card, .elementor .ICD-P-Stat { border-radius: var(--icd-card-r); }
.icd-fs__stage, #academy > .e-image-base, .ICD-P-Card > img.e-image-base, .icd-hgc .icd-hgc__card { border-radius: var(--icd-card-r); }

/* Why Astera: the tile hover bloom is clipped by the card's own rounded border (overflow was forced visible, which let the fill render square). */
.elementor .elementor-element-7f563eb8 .ICD-P-Tile { overflow: hidden; border-radius: var(--icd-card-r); }
.elementor .elementor-element-7f563eb8 .ICD-P-Tile::before, .elementor .elementor-element-7f563eb8 .ICD-P-Tile::after { border-radius: inherit; }

/* Signature morphing gradients: registered colour/position props animate smoothly; reduced motion freezes them. */
@property --icd-m1x { syntax: "<percentage>"; inherits: false; initial-value: 15%; }
@property --icd-m1y { syntax: "<percentage>"; inherits: false; initial-value: 20%; }
@property --icd-m2x { syntax: "<percentage>"; inherits: false; initial-value: 85%; }
@property --icd-m2y { syntax: "<percentage>"; inherits: false; initial-value: 80%; }
@keyframes icd-morph {
  0%   { --icd-m1x: 15%; --icd-m1y: 20%; --icd-m2x: 85%; --icd-m2y: 80%; }
  33%  { --icd-m1x: 70%; --icd-m1y: 35%; --icd-m2x: 25%; --icd-m2y: 70%; }
  66%  { --icd-m1x: 55%; --icd-m1y: 85%; --icd-m2x: 40%; --icd-m2y: 15%; }
  100% { --icd-m1x: 15%; --icd-m1y: 20%; --icd-m2x: 85%; --icd-m2y: 80%; }
}
/* Academy: orange family */
.elementor #academy {
  background-color: color-mix(in srgb, var(--Accent-Portman) 28%, var(--Black));
  background-image:
    radial-gradient(60% 75% at var(--icd-m1x) var(--icd-m1y), color-mix(in srgb, var(--Accent-Astera-2) 78%, var(--Black)), transparent 70%),
    radial-gradient(55% 70% at var(--icd-m2x) var(--icd-m2y), color-mix(in srgb, var(--Accent-Portman) 80%, var(--Black)), transparent 70%),
    linear-gradient(135deg, color-mix(in srgb, var(--Accent-Astera-2) 40%, var(--Black)), color-mix(in srgb, var(--Accent-Portman) 45%, var(--Black)));
  animation: icd-morph 14.4s ease-in-out infinite;
}
/* Product discovery: Astera purple + ICD dark blue on a near-black base (signature brand-page treatment) */
.elementor #discovery {
  background-color: color-mix(in srgb, var(--Black) 94%, var(--Blue-ICD-Dark));
  background-image:
    radial-gradient(55% 70% at var(--icd-m1x) var(--icd-m1y), color-mix(in srgb, var(--icd-h-accent) 62%, var(--Black)), transparent 72%),
    radial-gradient(60% 75% at var(--icd-m2x) var(--icd-m2y), color-mix(in srgb, var(--Blue-ICD-Dark) 92%, var(--Black)), transparent 72%);
  animation: icd-morph 17.6s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) { .elementor #academy, .elementor #discovery { animation: none; } }

/* Final CTA card: everything centred, two buttons side by side */
.elementor .elementor-element-2879c876 { align-items: center; text-align: center; }
.elementor .elementor-element-2879c876 > * { text-align: center; margin-inline: auto; }
.elementor .elementor-element-2879c876 .ICD-P-Pill { align-self: center; }
.elementor .elementor-element-737a3689 { justify-content: center; flex-wrap: wrap; align-items: center; }

/* Awards ticker: quiet, background-ish logo strip (shares the homepage ticker engine + keyframes) */
.elementor #awards { padding-block: var(--Gaps-L, 3rem); gap: var(--Gaps-S); background: color-mix(in srgb, var(--Black) 96%, var(--White)); border-block: 1px solid var(--icd-p-line); }
.elementor #awards .ICD-P-Head { align-items: center; text-align: center; margin-inline: auto; }
.elementor #awards .e-heading-base { font-size: clamp(2rem, 4.2vw, 3.25rem); line-height: 1.1; letter-spacing: -.01em; font-weight: 700; color: var(--White); }
.elementor #awards .ICD-H-Strip { overflow: hidden; width: 100%; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.elementor #awards .ICD-H-Ticker-Track { display: flex; align-items: center; gap: var(--Gaps-M, 2rem); width: max-content; }
.elementor #awards .ICD-H-Ticker-Logo { flex: none; width: auto; height: 6rem; aspect-ratio: 1; object-fit: contain; padding: 0; border-radius: 0; background: none; filter: grayscale(1); opacity: .45; transition: opacity .4s ease, filter .4s ease; }
.elementor #awards .ICD-H-Ticker-Logo:hover { opacity: .95; filter: none; }
.elementor #awards { border: 0; border-radius: 0; align-items: center; }
.elementor #awards .ICD-P-Pill { align-self: center; }
.elementor #awards .ICD-H-Strip { background: none; border: 0; border-radius: 0; box-shadow: none; padding: 0; }


/* ===== Round 6 follow-up ===== */
/* Awards in the By the Numbers stat: bullet list, no dates */
body:not(.page-id-1258) .elementor [data-id="6f87cf55"], .elementor [data-id="557e8ac0"], .elementor [data-id="fa129e2a"], .elementor [data-id="701f649d"] { position: relative; padding-inline-start: 1.1em; text-align: start; }
body:not(.page-id-1258) .elementor [data-id="6f87cf55"]::before, .elementor [data-id="557e8ac0"]::before, .elementor [data-id="fa129e2a"]::before, .elementor [data-id="701f649d"]::before { content: ""; position: absolute; inset-inline-start: 0; top: .6em; width: .4em; height: .4em; border-radius: 50%; background: var(--icd-h-accent); }

/* Final CTA section: own separation treatment (accent wash + hairlines, same language as the morph sections) */
.elementor .elementor-element-3c8e70bf {
  background-color: color-mix(in srgb, var(--Black) 88%, var(--icd-h-accent));
  background-image:
    radial-gradient(60% 90% at var(--icd-m1x) var(--icd-m1y), color-mix(in srgb, var(--icd-h-accent) 55%, var(--Black)), transparent 72%),
    radial-gradient(55% 80% at var(--icd-m2x) var(--icd-m2y), color-mix(in srgb, var(--Accent-Astera-2) 30%, var(--Black)), transparent 72%);
  animation: icd-morph 20.8s ease-in-out infinite;
  border-block: 1px solid color-mix(in srgb, var(--icd-h-accent) 45%, transparent);
}
@media (prefers-reduced-motion: reduce) { .elementor .elementor-element-3c8e70bf { animation: none; } }

/* Photo cards: keep the image out from under the hairline border (it tinted the edge gold/purple/pink) and keep the hover bloom inside the rounded corners. Shared for every brand page. */
.elementor .ICD-P-Card{background-clip:padding-box;background-origin:padding-box;border-color:color-mix(in srgb,var(--White) 14%,transparent);overflow:clip;overflow-clip-margin:0px;clip-path:inset(0 round var(--icd-card-r))}
:is(#families,#install) .ICD-P-Card:hover{box-shadow:inset 0 -17rem 9rem -5rem color-mix(in srgb,var(--Black) 88%,transparent),inset 0 0 0 100vmax color-mix(in srgb,var(--Black) 8%,transparent)}

/* Awards band as a rotating ticker of text plates (brands without award artwork): shares the .ICD-H-Ticker engine; names only, no dates. */
.elementor #awards .ICD-P-Ticker-Item { flex: none; display: flex; flex-direction: column; gap: .35rem; width: 20rem; min-height: 11rem; padding: var(--Card-Padding-M, 1.5rem); border: 1px solid var(--icd-p-line); border-radius: var(--icd-card-r, 1rem); background: color-mix(in srgb, var(--White) 4%, transparent); white-space: normal; }
.elementor #awards .ICD-P-Ticker-Item .e-heading-base { font-size: clamp(1.25rem, 1.8vw, 1.6rem); line-height: 1.15; color: var(--icd-h-accent, var(--White)); }
.elementor #awards .ICD-P-Ticker-Item .e-paragraph-base { font-size: .95rem; line-height: 1.35; color: var(--White); margin: 0; }
@media (prefers-reduced-motion: reduce) { .elementor #awards .ICD-H-Ticker-Track { animation: none; } .elementor #awards .ICD-H-Strip { overflow-x: auto; } }

/* Shared "show the whole frame" modifier for featured-slider media (opt-in per slide via "fit": true in slider.json): letterboxes instead of cropping. */
.icd-fs__video--fit { object-fit: contain; background: var(--Black); }
.icd-fs__embed--fit { inset: auto; top: 50%; left: 0; width: 100%; height: auto; aspect-ratio: 16 / 9; transform: translateY(-50%); }
@media (max-width: 767px) { .icd-fs__video--fit { object-position: center top; } .icd-fs__embed--fit { top: 0; transform: none; } }

/* Native hero video (icd_bg_video inside ICD-H2-Video): cover-fill, shown on all viewports. */
.ICD-H2-Video:has(> .e-paragraph-base > video.icd-bgv), .ICD-H2-Video:has(> video.icd-bgv) { overflow: hidden; }
.ICD-H2-Video .e-paragraph-base:has(> video.icd-bgv) { position: absolute; inset: 0; margin: 0; width: 100%; height: 100%; }
.ICD-H2-Video video.icd-bgv { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: var(--Black); pointer-events: none; }
@media (max-width: 767px) { .ICD-H2-Video:has(video.icd-bgv) { display: block !important; } }

/* ---- NEWS CARD RADIUS + CONTAINMENT (shared; applies to every dynamically rendered card)
   --icd-card-r was only defined inside .ICD-P-Root, so the carousel (outside it) resolved to 0. Use the global Card-Radius-M directly. */
.icd-hgc { --icd-card-r: var(--Card-Radius-M); --hgc-radius: var(--Card-Radius-M); }
.icd-hgc .icd-hgc__card {
  border-radius: var(--Card-Radius-M);
  overflow: clip;
  clip-path: inset(0 round var(--Card-Radius-M));
  background-clip: padding-box;
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb, var(--White, #fff) calc(8% + var(--f, 0) * 30%), transparent),
    inset 0 calc(var(--f, 0) * -60px) calc(var(--f, 0) * 80px) calc(var(--f, 0) * -50px) color-mix(in srgb, var(--icd-h-accent, var(--Blue-ICD-Light, #00badb)) calc(var(--f, 0) * 60%), transparent);
}
.icd-hgc .icd-hgc__media, .icd-hgc .icd-hgc__shade { border-radius: inherit; overflow: clip; }
.page-id-1254 .icd-home-event { border-radius: var(--Card-Radius-L); overflow: clip; clip-path: inset(0 round var(--Card-Radius-L)); }

/* News carousel · phone: the shared Round 6 sizing above out-ranks the earlier mobile block, so the active card
   overflowed the (padded) viewport and its rounded corners were clipped. Keep the active card inside the viewport. */
@media (max-width: 767px) {
  .icd-hgc { --hgc-w: 46vw; --hgc-w-active: calc(100vw - 96px); --hgc-h: 22rem; --hgc-h-active: 27rem; }
}

/* --------------------------------------------------------- FOOTER (#77) MOTION + SOCIAL */
/* Travel stays 16px (set per element via --icd-from); duration is shorter than the page reveal so the footer feels quick. */
.icd-js .elementor-77 [data-icd-reveal].is-in { --icd-rv: opacity .55s ease var(--icd-d, 0s), translate .65s var(--icd-ease-out) var(--icd-d, 0s); }
/* Divider draws left to right; the legal content fades in after it (delays set in JS). */
.elementor-77 [data-id="3a31eb03"]::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: color-mix(in srgb, var(--White) 12%, transparent); transform-origin: left center; }
.icd-js .elementor-77 [data-icd-line]::before { transform: scaleX(0); transition: transform .9s var(--icd-ease-out); }
.icd-js .elementor-77 [data-icd-line].is-in::before { transform: scaleX(1); }
/* Text links: quiet colour + 2px nudge, no pill. */
.elementor-77 p a { display: inline-block; transition: color .2s ease, transform .2s ease; }
.elementor-77 p a:hover, .elementor-77 p a:focus-visible { transform: translateX(2px); }
/* Social icons: thin outline, one container size, white/black hover, ICD-blue focus ring. */
.elementor-77 .icd-soc-row { display: flex; gap: 0; margin-left: -12px; margin-block: -7px; }
.elementor-77 .icd-soc { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 0; background: transparent; color: color-mix(in srgb, var(--White) 78%, transparent); text-decoration: none; transition: color .2s ease, translate .2s ease; }
.elementor-77 .icd-soc:not([href]) { display: none; }
.elementor-77 .icd-soc:is(:hover, :focus-visible) { background: transparent; border: 0; color: var(--Blue-ICD-Light); translate: 0 -2px; }
.elementor-77 .icd-soc:focus-visible { outline: 1px solid var(--Blue-ICD-Light); outline-offset: 2px; border-radius: 4px; }
.elementor-77 .icd-soc svg { display: block; width: 20px; height: 20px; }
/* #InTheCircle: static blue accent with an underline that draws in with the reveal; nothing loops. */
.elementor-77 [data-id="c0a7e013"] p, .elementor-77 [data-id="c0a7e013"] { position: relative; width: fit-content; }
.elementor-77 [data-id="c0a7e013"]::after { content: ""; position: absolute; left: 0; bottom: -3px; height: 1px; width: 100%; background: var(--Blue-ICD-Light); opacity: .7; transform-origin: left; }
.icd-js .elementor-77 [data-id="c0a7e013"][data-icd-reveal]::after { transform: scaleX(0); transition: transform .7s var(--icd-ease-out) .5s; }
.icd-js .elementor-77 [data-id="c0a7e013"][data-icd-reveal].is-in::after { transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) {
  .elementor-77 p a, .elementor-77 .icd-soc { transition: none; }
  .elementor-77 p a:is(:hover, :focus-visible), .elementor-77 .icd-soc:is(:hover, :focus-visible) { transform: none; translate: none; }
  .icd-js .elementor-77 [data-icd-line]::before, .icd-js .elementor-77 [data-id="c0a7e013"]::after { transform: none; transition: none; }
}

/* Contact map: native Google embed, restyled dark via filter + ICD-blue tint (no second map system) */
.icd-contact-map iframe{display:block;border-radius:calc(var(--Radius-M, 12px) - 4px);filter:invert(.92) hue-rotate(180deg) saturate(.45) brightness(.92) contrast(.95)}
.icd-contact-map{position:relative;border-radius:calc(var(--Radius-M, 12px) - 4px);overflow:hidden}
.icd-contact-map::after{content:"";position:absolute;inset:0;pointer-events:none;background:var(--Blue-ICD-Dark, #0b3a5c);mix-blend-mode:color;opacity:.55;border-radius:inherit}
[data-id="a7c3e9f1"]{box-shadow:0 0 28px -10px var(--Blue-ICD, #2f7fc1)}
@media (prefers-reduced-motion:reduce){[data-id="a7c3e9f1"][data-icd-reveal]{transition:none;transform:none;opacity:1}}

/* DIODIFY page: hero logo sized to the wordmark's own proportions (600x188.2 SVG) */
.page-id-1257 .ICD-P-Hero-Copy > img.e-image-base:first-child { width: clamp(200px, 22vw, 300px) !important; max-height: none; height: auto !important; aspect-ratio: 600 / 188.2; }
/* Entry 288 (LRC PRO page 1262 only, wordmark 6be173b9): the shared hero rule above forces width with !important, so a V4 local style cannot
   override it. Mobile only: 76vw (~285px at 375, was ~327px), capped at the shared 36rem so 768px+ is unchanged and 767/768 is continuous. */
@media (max-width: 767px) { .page-id-1262 .ICD-P-Hero-Copy > img.e-image-base[data-id="6be173b9"]:first-child { width: min(100%, 36rem, 76vw) !important; } }
/* DIODIFY quote steps: number rises in after the card, connector line draws in. Reversible with the card's .is-in; only active when JS set [data-icd-reveal]. */
.icd-js [data-id="2fb3a18e"] > [data-icd-reveal]::before { opacity: 0; translate: 0 14px; transition: opacity .5s ease, translate .6s var(--icd-ease-out); }
.icd-js [data-id="2fb3a18e"] > [data-icd-reveal]::after { transform: scaleX(0); transform-origin: left center; transition: transform .6s var(--icd-ease-out); }
.icd-js [data-id="2fb3a18e"] > [data-icd-reveal].is-in::before { opacity: 1; translate: none; transition: opacity .8s ease calc(var(--icd-d, 0s) + .15s), translate .9s var(--icd-ease-out) calc(var(--icd-d, 0s) + .15s); }
.icd-js [data-id="2fb3a18e"] > [data-icd-reveal].is-in::after { transform: none; transition: transform .8s var(--icd-ease-out) calc(var(--icd-d, 0s) + .4s); }
@media (max-width: 1024px) {
  .icd-js [data-id="2fb3a18e"] > [data-icd-reveal]::after { transform: scaleY(0); transform-origin: center top; }
  .icd-js [data-id="2fb3a18e"] > [data-icd-reveal].is-in::after { transform: none; }
}


/* ---------------------------------------------------------------- /brands/ portfolio motion (page 1297)
   Only active when JS set [data-br]; every state reverses with .is-in. Interaction colour stays ICD blue. */
.icd-js [data-br] > :first-child { clip-path: inset(0 0 100% 0); transition: clip-path 1.25s var(--icd-ease-out); }
.icd-js [data-br].is-in > :first-child { clip-path: inset(0 0 0 0); }
.icd-js [data-br] > :first-child img { scale: 1.2; translate: 0 var(--br-y, 0px); transition: scale 1.8s var(--icd-ease-out); }
.icd-js [data-br].is-in > :first-child img { scale: 1.06; }
.icd-js [data-br] > :last-child > *, .icd-js [data-br="hero"] > * {
  opacity: 0; translate: 0 var(--icd-from, 28px);
  transition: opacity .6s ease, translate .7s var(--icd-ease-out);
}
.icd-js [data-br].is-in > :last-child > *, .icd-js [data-br="hero"].is-in > * {
  opacity: 1; translate: none;
  transition: opacity 1s ease calc(.18s + var(--br-i, 0) * .1s), translate 1.1s var(--icd-ease-out) calc(.18s + var(--br-i, 0) * .1s);
}
[data-id="59428aa2"] a[class*="e-button"]::after { content: " \2192"; display: inline-block; transition: translate .3s var(--icd-ease-out); }
[data-id="59428aa2"] a[class*="e-button"][target="_blank"]::after { content: " \2197"; }
[data-id="59428aa2"] a[class*="e-button"]:hover::after { translate: 4px 0; }
@media (prefers-reduced-motion: reduce) {
  [data-br] > :first-child, [data-br] > :first-child img, [data-br] > :last-child > *, [data-br="hero"] > * { clip-path: none !important; scale: none !important; translate: none !important; opacity: 1 !important; transition: none !important; }
}

/* /brands/ refinement: single-row CTAs, more room for copy column */
@media (min-width: 768px) {
  [data-id="59428aa2"] > div { gap: clamp(28px, 4vw, 64px); }
  [data-id="59428aa2"] > div > :first-child { flex: 1.1 1 0; }
  [data-id="59428aa2"] > div > :last-child { max-width: 560px; }
  [data-id="59428aa2"] .ICD-P-Actions { flex-wrap: nowrap; gap: 8px; width: 100%; }
  [data-id="59428aa2"] .ICD-P-Actions a { padding: 12px 16px; font-size: 12px; letter-spacing: .09em; white-space: nowrap; flex: 0 0 auto; }
}
@media (min-width: 768px) and (max-width: 1100px) {
  [data-id="59428aa2"] .ICD-P-Actions { gap: 6px; flex-wrap: wrap; }
  [data-id="59428aa2"] .ICD-P-Actions a { padding: 11px 10px; font-size: 11.5px; letter-spacing: .05em; }
}
@media (max-width: 767px) {
  [data-id="59428aa2"] .ICD-P-Actions { gap: 10px; width: 100%; }
  [data-id="59428aa2"] .ICD-P-Actions a { flex: 1 1 calc(50% - 5px); justify-content: center; text-align: center; white-space: nowrap; }
  [data-id="59428aa2"] .ICD-P-Actions a:nth-child(3) { flex-basis: 100%; }
}

/* ------------------------------------------------------ HEADER SHOP DROPDOWN */
.icd-shop-wrap { position: relative; display: flex; align-items: stretch; }
.ICD-Header-Mega-Experience .icd-shop-wrap > a.icd-account-login, .icd-shop-wrap > a.icd-account-login { padding-right: 32px !important; }
.icd-shop-chev { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 50%; background: none; color: #fff; opacity: .8; cursor: pointer; transition: opacity .25s ease, background .25s ease; }
.icd-shop-chev svg { transition: transform .35s cubic-bezier(.7, 0, .2, 1); }
.icd-shop-chev:hover, .icd-shop-chev:focus-visible { opacity: 1; background: rgba(255,255,255,.12); }
.icd-shop-chev:focus-visible { outline: 2px solid #fff; outline-offset: 1px; }
.icd-shop-wrap.is-open .icd-shop-chev svg { transform: rotate(180deg); }
.icd-shop-menu { position: absolute; top: calc(100% + 8px); right: 0; z-index: 9999; min-width: 220px; padding: 8px; display: flex; flex-direction: column; border-radius: 10px; border: 1px solid rgba(255,255,255,.12); background: rgba(18,18,20,.96); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); box-shadow: 0 18px 40px rgba(0,0,0,.35); opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .3s ease, transform .5s cubic-bezier(.7, 0, .2, 1), visibility 0s linear .5s; }
.icd-shop-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -10px; height: 10px; }
.icd-shop-wrap.is-open .icd-shop-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.icd-shop-menu a { display: block; padding: 9.9px 14px; border-radius: 6px; font: 500 15.36px/1.3 Barlow, sans-serif; color: rgba(255,255,255,.72); text-decoration: none; transition: color .25s ease, background .25s ease; }
.icd-shop-menu a:hover, .icd-shop-menu a:focus-visible { color: #fff; background: rgba(255,255,255,.08); outline: none; }
.icd-shop-menu a:focus-visible { box-shadow: inset 0 0 0 2px rgba(255,255,255,.6); }
@media (prefers-reduced-motion: reduce) { .icd-shop-menu, .icd-shop-chev svg { transition: none; } }
.icd-shop-wrap:hover .icd-shop-chev, .icd-shop-wrap > a.icd-account-login:focus-visible ~ .icd-shop-chev { color: #0a0a0a; }
/* Icon-only Shop circle (tablet/phone widths): the indicator sits beside the circle as an inline toggle, vertically centred on it. */
@media (max-width: 1024px) {
  .ICD-Header-Mega-Experience .icd-shop-wrap > a.icd-account-login, .icd-shop-wrap > a.icd-account-login { padding-right: 0 !important; }
  .icd-shop-chev { position: static; align-self: center; flex: 0 0 auto; transform: none; width: 20px; height: 32px; margin-left: 2px; border-radius: 10px; background: none; border: 0; color: #fff; opacity: .85; }
  .icd-shop-wrap:hover .icd-shop-chev { color: #fff; }
  .icd-shop-menu { top: calc(100% + 10px); }
}
/* Shop circle is hidden at phone width (the flyout Shop submenu is used), so the toggle and dropdown go with it. */
@media (max-width: 480px) { .icd-shop-chev, .icd-shop-menu { display: none !important; } }

/* ================================================================ HOMEPAGE FINAL POLISH (Entry 250) — homepage only */
/* In the Field: two-column editorial card, no parallax. Native Elementor widgets. */
.page-id-1254 [data-id="ev7c0001"] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: stretch; gap: 0; padding: 0; width: 100%; max-width: none; margin-inline: 0; border: 1px solid color-mix(in srgb, var(--White) 12%, transparent); border-radius: var(--Card-Radius-L); overflow: clip; background: color-mix(in srgb, var(--White) 4%, transparent); }
.page-id-1254 [data-id="ev7c0002"] { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: var(--Gaps-S, 0.75rem); padding: clamp(1.5rem, 3.5vw, 3.5rem); min-width: 0; }
.page-id-1254 [data-id="ev7c0003"] { margin: 0; color: var(--icd-h-accent, #ed9121); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }
.page-id-1254 [data-id="ev7c0004"] { margin: 0; color: var(--White); font-size: clamp(1.9rem, 3.4vw, 3rem); line-height: 1.02; letter-spacing: -0.02em; font-weight: 700; }
.page-id-1254 [data-id="ev7c0005"] { margin: 0; color: var(--White); font-size: 1.15rem; font-weight: 600; }
.page-id-1254 [data-id="ev7c0006"] { margin: 0; color: color-mix(in srgb, var(--White) 72%, transparent); font-size: 1rem; }
.page-id-1254 [data-id="ev7c0007"] { margin: 0 0 var(--Gaps-S, 0.75rem); color: color-mix(in srgb, var(--White) 62%, transparent); font-size: 0.95rem; line-height: 1.55; max-width: 34ch; }
.page-id-1254 img[data-id="ev7c0009"] { display: block; width: 100%; height: 100%; min-height: 100%; margin: 0; object-fit: cover; object-position: 50% 40%; align-self: stretch; }
.page-id-1254 [data-id="3199e582"] { min-height: 0; }
@media (max-width: 1024px) {
  .page-id-1254 [data-id="ev7c0001"] { grid-template-columns: minmax(0, 1fr); }
  .page-id-1254 img[data-id="ev7c0009"] { order: -1; min-height: 0; height: auto; aspect-ratio: 16 / 9; }
}
@media (max-width: 600px) { .page-id-1254 img[data-id="ev7c0009"] { aspect-ratio: 4 / 3; } }
/* Restrained entrance: pill -> heading -> card. Transform/opacity only. */
@media (prefers-reduced-motion: no-preference) {
  .page-id-1254 [data-id="3199e582"].is-in [data-id="199c4c0e"], .page-id-1254 [data-id="3199e582"].is-in [data-id="205eaf13"], .page-id-1254 [data-id="3199e582"].is-in [data-id="ev7c0001"] { animation: icdEvIn 700ms cubic-bezier(.2,.7,.2,1) both; }
  .page-id-1254 [data-id="3199e582"].is-in [data-id="205eaf13"] { animation-delay: 90ms; }
  .page-id-1254 [data-id="3199e582"].is-in [data-id="ev7c0001"] { animation-delay: 200ms; }
  .page-id-1254 [data-id="3199e582"]:not(.is-in) [data-id="199c4c0e"], .page-id-1254 [data-id="3199e582"]:not(.is-in) [data-id="205eaf13"], .page-id-1254 [data-id="3199e582"]:not(.is-in) [data-id="ev7c0001"] { opacity: 0; }
}
@keyframes icdEvIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* Support + Services intro head */
.page-id-1254 [data-id="su7c0000"] { display: flex; flex-direction: column; align-items: flex-start; gap: var(--Gaps-S, 0.75rem); width: 100%; max-width: none; margin: 0; padding: clamp(3rem, 6vw, 5rem) 80px 0; box-sizing: border-box; }
@media (max-width: 1024px) { .page-id-1254 [data-id="su7c0000"] { padding-inline: 40px; } }
@media (max-width: 600px) { .page-id-1254 [data-id="su7c0000"] { padding-inline: 20px; } }
.page-id-1254 [data-id="su7c0000"] + [data-id="5f992d3c"] { padding-top: var(--Gaps-L, 1.5rem); }

/* Bloom-card links: text + arrow on the card, never the global white pill-hover box. */
.page-id-1254 .ICD-P-Card .ICD-P-Card-Link:is(:hover, :focus-visible) { background: transparent !important; background-color: transparent !important; border-color: transparent !important; box-shadow: none !important; color: #06202a !important; transform: none !important; }
.page-id-1254 .ICD-P-Card .ICD-P-Card-Link:is(:hover, :focus-visible)::after { transform: translateX(4px); }

/* Portfolio tiles: subtle brand-accent tint over the photography (changed tiles only; DIODIFY, EZEVENT, LRC PRO untouched). */
.page-id-1254 :is([data-id="704288fa"], [data-id="7b6b6466"], [data-id="1356dcde"], [data-id="6ad9a91f"], [data-id="7aa65e01"]) { position: relative; }
.page-id-1254 :is([data-id="704288fa"], [data-id="7b6b6466"], [data-id="1356dcde"], [data-id="6ad9a91f"], [data-id="7aa65e01"])::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; border-radius: inherit; background: linear-gradient(135deg, color-mix(in srgb, var(--icd-accent, #ed9121) 24%, transparent) 0%, transparent 55%); box-shadow: inset 0 0 56px color-mix(in srgb, var(--icd-accent, #ed9121) 20%, transparent); mix-blend-mode: soft-light; }

/* ===== HOMEPAGE VISUAL POLISH (Entry 251) ===== */
/* Charcoal base (existing tokens, not pure black) */
.page-id-1254 [data-id="f013a1f4"] { background-color: color-mix(in srgb, var(--Dark, #1b1d22) 70%, var(--Black, #000)) !important; }
.page-id-1254 [data-id="3199e582"] { background-color: color-mix(in srgb, var(--Blue-ICD-Dark, #122C50) 18%, color-mix(in srgb, var(--Dark, #1b1d22) 70%, var(--Black, #000))) !important; }

/* Ambient ICD-blue atmosphere: CSS only, slow transform/opacity */
.page-id-1254 :is([data-id="1d682f17"], [data-id="656784bf"], [data-id="f60c53"], [data-id="3199e582"], [data-id="su7c0000"], [data-id="5f992d3c"]) { position: relative; isolation: isolate; }
.page-id-1254 :is([data-id="1d682f17"], [data-id="656784bf"], [data-id="f60c53"], [data-id="3199e582"], [data-id="su7c0000"], [data-id="5f992d3c"])::before {
  content: ""; position: absolute; inset: -12% -8%; z-index: -1; pointer-events: none;
  background: var(--icd-amb, none); opacity: var(--icd-amb-o, .85);
  filter: blur(40px); will-change: transform, opacity;
  animation: icdAmbDrift var(--icd-amb-t, 24s) ease-in-out infinite alternate;
}
.page-id-1254 [data-id="1d682f17"] { --icd-amb-t: 28s; --icd-amb-o: .9;
  --icd-amb: radial-gradient(48% 55% at 18% 30%, color-mix(in srgb, var(--Blue-ICD-Dark, #122C50) 85%, transparent), transparent 70%), radial-gradient(40% 50% at 85% 75%, color-mix(in srgb, var(--Blue-ICD, #0C71AE) 28%, transparent), transparent 70%); }
.page-id-1254 [data-id="656784bf"] { --icd-amb-t: 20s; --icd-amb-o: .9;
  --icd-amb: radial-gradient(45% 40% at 78% 12%, color-mix(in srgb, var(--Blue-ICD-Light, #00BADB) 22%, transparent), transparent 70%), radial-gradient(55% 45% at 12% 85%, color-mix(in srgb, var(--Blue-ICD, #0C71AE) 38%, transparent), transparent 70%), radial-gradient(40% 35% at 50% 50%, color-mix(in srgb, var(--Blue-ICD-Dark, #122C50) 55%, transparent), transparent 75%); }
.page-id-1254 [data-id="f60c53"] { --icd-amb-t: 30s; --icd-amb-o: .6;
  --icd-amb: radial-gradient(35% 60% at 100% 40%, color-mix(in srgb, var(--Blue-ICD, #0C71AE) 30%, transparent), transparent 70%); }
.page-id-1254 [data-id="3199e582"] { --icd-amb-t: 26s; --icd-amb-o: .8;
  --icd-amb: radial-gradient(50% 50% at 20% 20%, color-mix(in srgb, var(--Blue-ICD-Dark, #122C50) 90%, transparent), transparent 70%), radial-gradient(40% 40% at 85% 85%, color-mix(in srgb, var(--Blue-ICD, #0C71AE) 18%, transparent), transparent 70%); }
.page-id-1254 :is([data-id="su7c0000"], [data-id="5f992d3c"]) { --icd-amb-t: 22s; --icd-amb-o: .55;
  --icd-amb: radial-gradient(50% 55% at 50% 0%, color-mix(in srgb, var(--Blue-ICD, #0C71AE) 26%, transparent), transparent 70%); }
@keyframes icdAmbDrift {
  0% { transform: translate3d(-2%, -1.5%, 0) scale(1); opacity: calc(var(--icd-amb-o, .85) * .8); }
  100% { transform: translate3d(2.5%, 2%, 0) scale(1.06); opacity: var(--icd-amb-o, .85); }
}
@media (prefers-reduced-motion: reduce) { .page-id-1254 [data-id]::before { animation: none !important; } }

/* Subtler brand-accent tint (photos stay dominant) */
.page-id-1254 :is([data-id="704288fa"], [data-id="7b6b6466"], [data-id="1356dcde"], [data-id="6ad9a91f"], [data-id="7aa65e01"], [data-id="6699ffec"])::after {
  background: linear-gradient(135deg, color-mix(in srgb, var(--icd-accent,#ed9121) 14%, transparent) 0%, transparent 55%);
  box-shadow: inset 0 0 56px color-mix(in srgb, var(--icd-accent,#ed9121) 10%, transparent);
}

/* Focal positions per approved image */
.page-id-1254 [data-id="1eb62302"] { object-fit: cover; object-position: 50% 50%; }
.page-id-1254 [data-id="64a68094"] { object-fit: cover; object-position: 40% 50%; }
.page-id-1254 [data-id="4304b5d8"] { object-fit: cover; object-position: 50% 55%; }
.page-id-1254 [data-id="2df8f768"] { object-fit: cover; object-position: 55% 40%; }
.page-id-1254 [data-id="b6ad998"] { object-fit: cover; object-position: 50% 50%; }
.page-id-1254 [data-id="57b452b4"] { object-fit: cover; object-position: 85% 50%; }

/* ===================== GLOBAL BRAND RAIL (Entry 252) =====================
   Slim brand utility above the fixed main header. Markup: html widget in header template 54 (container a1b2c3d).
   REVERSIBLE: (A) keep rail + ticker hidden, or (B) delete container a1b2c3d from header 54 and delete the ORIGINAL TICKER HIDDEN rule below.
   Header stays fixed; it is offset by the rail height at the GLOBAL level, and the rail slides away once the header goes compact. */
:root { --icd-rail-h: 40px; }
.elementor-element-a1b2c3d { position: fixed !important; top: 0; left: 0; right: 0; width: 100% !important; max-width: 100% !important; height: var(--icd-rail-h); min-height: 0 !important; padding: 0 !important; margin: 0 !important; z-index: 9990; background: rgba(14, 16, 20, .82); border-bottom: 1px solid rgba(255, 255, 255, .07); overflow: hidden; transition: transform .45s var(--icd-ease-out), opacity .3s ease; }
.elementor-location-header:has(.icd-brand-rail) .ICD-Header-Mega-Experience { top: var(--icd-rail-h) !important; transition: top .45s var(--icd-ease-out); }
.elementor-location-header:has(.icd-brand-rail) .ICD-Header-Mega-Experience.icd-header-scrolled { top: 0 !important; }
.elementor-location-header:has(.icd-header-scrolled) .elementor-element-a1b2c3d { transform: translateY(-100%); opacity: 0; pointer-events: none; }
.icd-brand-rail { height: var(--icd-rail-h); overflow: hidden; display: block; }
.icd-brand-rail__track { display: flex; width: max-content; height: 100%; align-items: center; animation: icd-rail 140s linear infinite; will-change: transform; }
.icd-brand-rail__set { display: flex; align-items: center; flex: 0 0 auto; gap: 72px; margin: 0; padding: 0 72px 0 0; list-style: none; }
.icd-brand-rail__set li { margin: 0; padding: 0; display: flex; align-items: center; }
.icd-brand-rail__set a { display: flex; align-items: center; height: var(--icd-rail-h); opacity: .62; transition: opacity .25s ease; text-decoration: none; }
.icd-brand-rail__set img { display: block; width: auto; max-width: none; }
.icd-brand-rail__set a:hover, .icd-brand-rail__set a:focus-visible { opacity: 1; }
.icd-brand-rail__set a:focus-visible { outline: 2px solid #fff; outline-offset: -3px; border-radius: 3px; }
.icd-brand-rail:hover .icd-brand-rail__track, .icd-brand-rail:focus-within .icd-brand-rail__track { animation-play-state: paused; }
@keyframes icd-rail { to { transform: translate3d(-50%, 0, 0); } }
@media (max-width: 767px) { :root { --icd-rail-h: 34px; } .icd-brand-rail__set { gap: 44px; padding-right: 44px; } .icd-brand-rail__set img { transform: scale(.9); } }
/* Reduced motion: no animation; the rail becomes a native horizontal scroller and every brand is reachable (clones are hidden). */
@media (prefers-reduced-motion: reduce) {
  .icd-brand-rail { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
  .icd-brand-rail::-webkit-scrollbar { display: none; }
  .icd-brand-rail__track { animation: none; width: auto; }
  .icd-brand-rail__set[aria-hidden="true"] { display: none; }
}
/* ORIGINAL TICKER HIDDEN (Entry 252): homepage container 4ec9733 is preserved untouched (also saved as library template 3082 "ICD — Brand Logo Ticker — Original Homepage").
   To re-enable: delete the next rule. */
.page-id-1254 .elementor-element-4ec9733 { display: none !important; }

/* ------------------------------------------------------- ANIMATED HEADER LOGO (Entry 254)
   Header 54 logo is an html widget (id b7d3a10): <a class="icd-logo-link"><svg class="icd-logo-svg">. Source: ICD-Logo-DrawOn.html (paths unchanged).
   The complete logo is the default state. The draw-on only exists under .is-anim, which a tiny inline script adds once per browser session
   (sessionStorage icdLogoDrawPlayed). Footprint matches the old e-image logo: width var(--Logo-M), 140px <=767, same grid cell and compact scale. */
.ICD-Header-Mega-Experience > .elementor-element-b7d3a10 {
  grid-column: 1 !important; grid-row: 1 !important; justify-self: start !important;
  margin: 0 !important; width: auto; max-width: none;
  transform-origin: left center;
  transition: transform .26s var(--icd-ease-out);
  will-change: transform;
}
.ICD-Header-Mega-Experience.icd-header-scrolled > .elementor-element-b7d3a10 { transform: scale(.8); }
.elementor-element-b7d3a10 > .elementor-widget-container { margin: 0; padding: 0; }
.elementor-element-b7d3a10 .icd-logo-link { display: block; line-height: 0; }
.elementor-element-b7d3a10 .icd-logo-svg { display: block; width: var(--Logo-M); max-width: none; height: auto; overflow: visible; }
@media (max-width: 767px) { .elementor-element-b7d3a10 .icd-logo-svg { width: 140px; } }
.icd-logo-svg.is-anim path { fill-opacity: 0; stroke-width: 2.5; stroke-dasharray: 100; stroke-dashoffset: 100; stroke-opacity: 1; transition: stroke-opacity .25s ease-out; }
.icd-logo-svg.is-anim .p-i, .icd-logo-svg.is-anim .p-c, .icd-logo-svg.is-anim .p-d, .icd-logo-svg.is-anim .p-ring-outer, .icd-logo-svg.is-anim .p-ring-inner { stroke: #fff; }
.icd-logo-svg.is-anim .p-ring-mid { stroke: #0772ad; }
.icd-logo-svg.is-anim.play path { animation: icdStroke 1.3s var(--sd) ease-out forwards, icdFill .6s var(--fd) ease-out forwards; }
.icd-logo-svg.is-anim.is-done path { stroke-opacity: 0; }
@keyframes icdStroke { to { stroke-dashoffset: 0; } }
@keyframes icdFill { to { fill-opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .ICD-Header-Mega-Experience > .elementor-element-b7d3a10 { transition: none !important; }
  .icd-logo-svg path { animation: none !important; fill-opacity: 1 !important; stroke: none !important; stroke-dasharray: none !important; }
}
