/**
 * Theme Name:     Hello Elementor Child
 * Author:         Elementor Team
 * Template:       hello-elementor
 * Text Domain:    Hello Elementor Child
 * Description:    Hello Elementor is a lightweight and minimalist WordPress theme that was built specifically to work seamlessly with the Elementor site builder plugin. The theme is free, open-source, and designed for users who want a flexible, easy-to-use, and customizable website. The theme, which is optimized for performance, provides a solid foundation for users to build their own unique designs using the Elementor drag-and-drop site builder. Its simplicity and flexibility make it a great choice for both beginners and experienced Web Creators.
 */

/* ==========================================================================
   LCAM homepage (native Elementor rebuild). Every rule below is rung (d): it
   covers only what no Elementor control expresses: keyframes, clip-path wipes,
   SVG stroke draws, parent-hover-to-child states, span-level styling inside one
   Heading widget, layered gradients, and text-wrap. Layout, type, colour and
   spacing live in Elementor controls and Kit globals. All selectors are scoped
   to lcam- classes set through the widgets' CSS Classes field. No fluid clamp functions.
   ========================================================================== */
:root {
  --lcam-ease-reveal: cubic-bezier(.16,1,.3,1);  /* expo-out: reveals, rises, masks, settles */
  --lcam-ease-draw: cubic-bezier(.65,0,.35,1);   /* in-out: hairlines, strokes, the G draw */
  --lcam-ease-emph: cubic-bezier(.2,.7,.1,1);
}

/* --- text-wrap: no Elementor control exists; the source balances headings and
   pretty-wraps copy, which changes line breaks, so it is restated here. ---- */
.lcam-balance .elementor-heading-title { text-wrap: balance; }
.lcam-pretty .elementor-heading-title, .lcam-pretty p { text-wrap: pretty; }
.lcam-tabular .elementor-heading-title { font-variant-numeric: lining-nums tabular-nums; }
.lcam-hero__text .e-con-inner {
    margin-left: 0;
}
/* --- Buttons: sweep fill + forward glyph (source 20c). The Button widget has
   hover colour controls but no sweep pseudo-layer, no hover padding and no
   hidden-until-hover icon state. ------------------------------------------ */
.lcam-btn .elementor-button { position: relative; overflow: hidden; isolation: isolate;
  transition: background-color 200ms var(--lcam-ease-reveal), color 180ms var(--lcam-ease-reveal) 60ms, border-color 200ms var(--lcam-ease-reveal), padding 320ms var(--lcam-ease-emph) !important; }
.lcam-btn .elementor-button::before { content: ''; position: absolute; inset: -1px; z-index: -1; background: var(--lcam-sweep, transparent);
  transform: scaleX(0); transform-origin: right center; transition: transform 420ms var(--lcam-ease-emph); }
.lcam-btn--primary { --lcam-sweep: color-mix(in srgb, #FED847 89%, #000); }
.lcam-btn--secondary { --lcam-sweep: #3C3494; }
.lcam-btn .elementor-button-icon { position: absolute; top: 50%; right: var(--lcam-glyph-r, 22px); width: var(--lcam-glyph, 14px); height: var(--lcam-glyph, 14px);
  margin-top: calc(var(--lcam-glyph, 14px) / -2); opacity: 0; transform: translateX(-10px); transition: opacity 240ms var(--lcam-ease-reveal), transform 320ms var(--lcam-ease-emph); }
.lcam-btn .elementor-button-icon svg { width: 100%; height: 100%; }
.lcam-btn--mid { --lcam-glyph: 12px; --lcam-glyph-r: 14px; }
@media (hover: hover) {
  .lcam-btn .elementor-button:hover::before { transform: scaleX(1); transform-origin: left center; }
  .lcam-btn .elementor-button:hover .elementor-button-icon { opacity: 1; transform: none; }
  .lcam-btn:not(.lcam-btn--full) .elementor-button:hover { padding-left: 20px !important; padding-right: 44px !important; }
  .lcam-btn--mid:not(.lcam-btn--full) .elementor-button:hover { padding-left: 14px !important; padding-right: 30px !important; }
}
.lcam-btn .elementor-button:focus-visible::before { transform: scaleX(1); transform-origin: left center; }
.lcam-btn .elementor-button:focus-visible .elementor-button-icon { opacity: 1; transform: none; }

/* --- Inline up-right glyph after a text link (mega links, feature cards).
   The Heading widget has no trailing-icon control; the glyph is the source's
   own arrow SVG (media library) used as a mask. ----------------------------- */
.lcam-glyph .elementor-heading-title::after { content: ''; display: inline-block; width: 12px; height: 12px; margin-left: 6px; vertical-align: -1px;
  background: #3C3494; -webkit-mask: url(/wp-content/uploads/2026/11/lcam-arrow.svg) center / contain no-repeat; mask: url(/wp-content/uploads/2026/11/lcam-arrow.svg) center / contain no-repeat;
  transition: opacity 200ms var(--lcam-ease-reveal), transform 200ms var(--lcam-ease-reveal); }
.lcam-glyph--hover .elementor-heading-title::after { opacity: 0; transform: translate(-3px, 3px); }
.lcam-mlink:hover .lcam-glyph--hover .elementor-heading-title::after,
.lcam-mlink:focus-visible .lcam-glyph--hover .elementor-heading-title::after { opacity: 1; transform: none; }
.lcam-feature:hover .lcam-glyph .elementor-heading-title::after,
.lcam-feature:focus-visible .lcam-glyph .elementor-heading-title::after { transform: translate(2px, -2px); }
.lcam-feature__link .elementor-heading-title { text-underline-offset: 4px; text-decoration-thickness: 1px; }
.lcam-feature:hover .lcam-feature__link .elementor-heading-title { text-decoration-thickness: 2px; }
.lcam-feature img { transition: transform 300ms var(--lcam-ease-reveal); }
.lcam-feature:hover img, .lcam-feature:focus-visible img { transform: scale(1.03); }

/* --- Header (Theme Builder). Compaction keys off Pro Sticky's own
   .elementor-sticky--effects class (offset 40px, set natively); the frosted
   background, translate and logo scale have no sticky-effect controls. ------- */
.lcam-header { transition: transform 240ms var(--lcam-ease-reveal), background-color 240ms var(--lcam-ease-reveal), box-shadow 240ms var(--lcam-ease-reveal); }
.lcam-header .lcam-header__logo { transform-origin: left center; transition: transform 240ms var(--lcam-ease-reveal); }
.lcam-header.elementor-sticky--effects { transform: translateY(-20px); padding-top: 20px !important; background-color: rgba(255,255,255,.85) !important;
  -webkit-backdrop-filter: saturate(1.6) blur(16px); backdrop-filter: saturate(1.6) blur(16px); box-shadow: 0 1px 0 #E3E7ED; }
.lcam-header.elementor-sticky--effects .lcam-header__logo { transform: scale(.7857); }
@media (max-width: 1179px) {
  .lcam-header.elementor-sticky--effects { transform: translateY(-8px); padding-top: 8px !important; }
  .lcam-header.elementor-sticky--effects .lcam-header__logo { transform: scale(.86); }
}
html.lcam-has-mega .lcam-header { background-color: #fff !important; }
/* nav toggle underline bar + chevron turn: the Mega Menu has colour states but no
   animated underline and no rotate-on-open for the indicator icon */
.lcam-nav .e-n-menu-title { position: relative; }
/* underline beats Elementor divider rule */
.lcam-nav.elementor-widget-n-menu .e-n-menu-item .e-n-menu-title::after { content: ''; position: absolute; left: 0; right: 0; bottom: 6px; height: 2px; background: #3C3494; border: 0;
  transform: scaleX(0); transform-origin: left; transition: transform 200ms cubic-bezier(.22,.61,.36,1); pointer-events: none; }
.lcam-nav.elementor-widget-n-menu .e-n-menu-item .e-n-menu-title.e-current::after, .lcam-nav.elementor-widget-n-menu .e-n-menu-item .e-n-menu-title:has([aria-expanded=true])::after { transform: scaleX(1); }
.lcam-nav .e-n-menu-icon svg { transition: transform 240ms cubic-bezier(.22,.61,.36,1); }
.lcam-nav [aria-expanded=true] .e-n-menu-icon svg { transform: rotate(180deg); }
/* burger: centre glyph on logo */
.lcam-burger .elementor-icon-wrapper { line-height: 0; }
/* mega scrim: a page-level overlay under the header while a panel is open; no
   Elementor control renders an overlay for the Mega Menu */
html.lcam-has-mega body::after { content: ''; position: fixed; inset: 0; z-index: 49; background: rgba(26,31,89,.5); pointer-events: none; }
/* mega About card seam grows when the panel opens (+150 / +270ms) */
.lcam-mega .lcam-seam--outer { --lcam-gd: 150ms; }
.lcam-mega .lcam-seam--inner { --lcam-gd: 270ms; }
.lcam-js .lcam-mega .lcam-seam { transform: scaleY(0); transition: transform 0s linear 150ms; }
.lcam-js .lcam-mega.e-active .lcam-seam { transform: none; transition: transform 900ms var(--lcam-ease-draw) var(--lcam-gd, 0ms); }
.lcam-mlink .lcam-mlink__title .elementor-heading-title { display: inline; }
.lcam-chip .elementor-heading-title { display: inline-grid; place-items: center; min-width: 30px; height: 22px; padding: 0 6px; border: 1px solid #D5D6EA; border-radius: 2px; background: #F4F5FA; }
.lcam-barlink .elementor-heading-title a:hover, .lcam-barlink .elementor-heading-title a:focus-visible,
.lcam-more .elementor-button:hover .elementor-button-text { text-decoration: underline; text-underline-offset: 4px; }
.lcam-more .elementor-button-icon svg { transition: transform 200ms cubic-bezier(.22,.61,.36,1); }
.lcam-more .elementor-button:hover .elementor-button-icon svg { transform: translateX(3px); }

/* --- Seams and brackets (framed media). Each is an animated decoration: the
   seam grows top to bottom (scaleY), the bracket path draws (stroke-dashoffset).
   Neither transform nor stroke animation has an Elementor control. ---------- */
.lcam-seam { transform-origin: center top; pointer-events: none; }
.lcam-bracket { pointer-events: none; }
.lcam-bracket .elementor-icon, .lcam-bracket svg { display: block; overflow: visible; }
.lcam-bracket .elementor-icon-wrapper { line-height: 0; }
.lcam-js .lcam-draw path { stroke-dasharray: 92; stroke-dashoffset: 92; transition: stroke-dashoffset 800ms var(--lcam-ease-draw) var(--lcam-dd, 1000ms); }
.lcam-js .lcam-draw.is-in path { stroke-dashoffset: 0; }
.lcam-js .lcam-grow { transform: scaleY(0); transition: transform 900ms var(--lcam-ease-draw) var(--lcam-gd, 700ms); }
.lcam-js .lcam-grow.is-in { transform: none; }
.lcam-intro__photo .lcam-seam--inner { --lcam-gd: 820ms; }

/* --- Hero (source 9, 19, 20d, 21a, 24). The entrance: photo settle, kicker
   rise, measured line masks (lcam-motion.js), CTA, cue. Initial states apply
   only under html.lcam-js, so no-JS shows everything. ---------------------- */
.lcam-hero__display .lcam-dl, .lcam-hero__display .lcam-dh { display: block; }
.lcam-hero__display .lcam-dl { font-weight: 400; letter-spacing: -.03em; }   /* span-level weight inside one Heading widget */
.lcam-hero__display .lcam-dh { text-wrap: balance; }
.lcam-hero__cue .elementor-icon-wrapper { line-height: 0; }
.lcam-hero__video .elementor-background-video-hosted { object-position: 50% 40%; }
.lcam-line { display: block; overflow: hidden; white-space: nowrap; padding-block: .14em; margin-block: -.14em; }
.lcam-line__in { display: block; transform: translateY(calc(100% + .3em)); }
.lcam-hero.is-entered .lcam-line__in { transform: none; transition: transform 1000ms var(--lcam-ease-reveal) var(--ld, 0ms); }

.lcam-js .lcam-hero:not(.is-settled) .lcam-hero__bg { opacity: 0; transform: scale(1.06); }
.lcam-js .lcam-hero:not(.is-settled) .lcam-hero__kicker,
.lcam-js .lcam-hero:not(.is-settled) .lcam-hero__cta,
.lcam-js .lcam-hero:not(.is-settled) .lcam-hero__cue { opacity: 0; transform: translateY(12px); }
.lcam-js .lcam-hero:not(.is-settled) .lcam-hero__cue { transform: none; }
.lcam-js .lcam-hero:not(.is-split) .lcam-dl, .lcam-js .lcam-hero:not(.is-split) .lcam-dh { clip-path: inset(0 0 100% 0); transform: translateY(24px); }
.lcam-js .lcam-hero.is-split .lcam-dl, .lcam-js .lcam-hero.is-split .lcam-dh { display: flex; flex-direction: column; }
.lcam-js .lcam-hero.is-entered .lcam-hero__bg { opacity: 1; transform: none; transition: opacity 1200ms var(--lcam-ease-reveal), transform 2000ms var(--lcam-ease-reveal); }
.lcam-js .lcam-hero.is-entered .lcam-hero__kicker { opacity: 1; transform: none; transition: opacity 800ms var(--lcam-ease-reveal) 160ms, transform 800ms var(--lcam-ease-reveal) 160ms; }
.lcam-js .lcam-hero.is-entered:not(.is-split) .lcam-dl, .lcam-js .lcam-hero.is-entered:not(.is-split) .lcam-dh { clip-path: inset(-.1em 0 -.3em 0); transform: none;   /* keep g/y descenders */
  transition: clip-path 1000ms var(--lcam-ease-reveal) var(--d, 120ms), transform 1000ms var(--lcam-ease-reveal) var(--d, 120ms); }
.lcam-js .lcam-hero.is-entered .lcam-dh { --d: 240ms; }
.lcam-js .lcam-hero.is-entered .lcam-hero__cta { opacity: 1; transform: none; transition: opacity 800ms var(--lcam-ease-reveal) var(--cta-d, 860ms), transform 800ms var(--lcam-ease-reveal) var(--cta-d, 860ms); }
.lcam-js .lcam-hero.is-entered .lcam-hero__cue { opacity: 1; transition: opacity 900ms var(--lcam-ease-reveal) var(--cue-d, 1500ms); }
.lcam-hero.is-settled .lcam-hero__bg, .lcam-hero.is-settled .lcam-hero__kicker, .lcam-hero.is-settled .lcam-hero__cta, .lcam-hero.is-settled .lcam-hero__cue { opacity: 1; }
@media (max-width: 599px) { .lcam-hero__cue { display: none; } }
@media (prefers-reduced-motion: reduce) { .lcam-hero__video .elementor-background-video-container { display: none !important; } }

/* --- Scroll reveals (source 15, 21): fade-up once, IntersectionObserver in
   lcam-motion.js adds .is-in. Elementor's entrance animations use their own
   travel/curve (40px, ease) and cannot stagger or mask, so they are not used. */
.lcam-js .lcam-reveal { opacity: 0; transform: translateY(24px); transition: opacity 800ms var(--lcam-ease-reveal) var(--rd, 0ms), transform 800ms var(--lcam-ease-reveal) var(--rd, 0ms); }
.lcam-js .lcam-reveal.is-in { opacity: 1; transform: none; }

/* intro photo: upward clip wipe, image settles inside it */
.lcam-js .lcam-wipe { clip-path: inset(100% 0 0 0); transition: clip-path 1200ms var(--lcam-ease-reveal) var(--lcam-wd, 120ms); }
.lcam-js .lcam-wipe.is-in { clip-path: inset(0); }
.lcam-js .lcam-intro__media img { transform: scale(1.1); transition: transform 1800ms var(--lcam-ease-reveal) 120ms; }
.lcam-js .lcam-intro__media.is-in img { transform: none; }

/* pillars: hairline dividers draw, index rises in a mask, title follows.
   The divider is a pseudo-element because a border cannot scale/draw. */
.lcam-pillar { position: relative; }
.lcam-pillar::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 1px; background: #E3E7ED; transform-origin: top; transform: scaleY(var(--div-s, 1));
  transition: transform 900ms var(--lcam-ease-draw) var(--div-d, 0ms); }
.lcam-pillar:nth-child(1) { --st: 0ms; } .lcam-pillar:nth-child(2) { --st: 110ms; --div-d: 90ms; } .lcam-pillar:nth-child(3) { --st: 220ms; --div-d: 180ms; }
.lcam-pillar:nth-child(4) { --st: 330ms; --div-d: 270ms; }   /* 4th pillar stagger */
.lcam-js .lcam-pillars .lcam-pillar { --div-s: 0; }
.lcam-js .lcam-pillars.is-in .lcam-pillar { --div-s: 1; }
.lcam-js .lcam-pillar__index { clip-path: inset(0 0 100% 0); transform: translateY(.5em);
  transition: clip-path 1000ms var(--lcam-ease-reveal) calc(var(--st) + 200ms), transform 1000ms var(--lcam-ease-reveal) calc(var(--st) + 200ms); }
.lcam-js .lcam-pillar__title { opacity: 0; transform: translateY(16px);
  transition: opacity 800ms var(--lcam-ease-reveal) calc(var(--st) + 340ms), transform 900ms var(--lcam-ease-reveal) calc(var(--st) + 340ms); }
.lcam-js .lcam-pillar.is-in .lcam-pillar__index { clip-path: inset(-12%); transform: none; }
.lcam-js .lcam-pillar.is-in .lcam-pillar__title { opacity: 1; transform: none; }

/* --- Statement band (source 11, 20f, 21c, 23, 34a). ----------------------- */
/* layered aurora: Elementor's gradient control is one two-stop gradient; the
   source stacks three sized radial gradients */
.lcam-band { background-image: radial-gradient(52% 60% at 6% 12%, rgba(60,52,148,.62) 0%, rgba(60,52,148,0) 70%),
  radial-gradient(38% 48% at 80% 38%, rgba(122,208,228,.13) 0%, rgba(122,208,228,0) 70%),
  radial-gradient(60% 40% at 60% 108%, rgba(60,52,148,.5) 0%, rgba(60,52,148,0) 70%) !important; }
/* gradient-filled stat text: no gradient-text control exists */
.lcam-stat .elementor-heading-title { width: fit-content; padding-bottom: .04em;
  background: linear-gradient(100deg, #7AD0E4 0%, #7AD0E4 38%, color-mix(in srgb, #7AD0E4 28%, #fff) 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent !important; -webkit-text-fill-color: transparent; font-variant-numeric: lining-nums tabular-nums; }
.lcam-js .lcam-stat { clip-path: inset(-12% 100% -12% 0); transform: translateY(.18em); transition: clip-path 1800ms var(--lcam-ease-draw), transform 1800ms var(--lcam-ease-draw); }
.lcam-js .lcam-statement-rest { opacity: 0; transform: translateY(18px); clip-path: inset(-12% 100% -12% 0);
  transition: opacity 1800ms var(--lcam-ease-draw) 300ms, transform 1800ms var(--lcam-ease-draw) 300ms, clip-path 1800ms var(--lcam-ease-draw) 300ms; }
@media (min-width: 900px) {
  .lcam-js .lcam-band__row:has(.lcam-g.is-drawn) .lcam-stat { clip-path: inset(-12% 0 -12% 0); transform: none; }
  .lcam-js .lcam-band__row:has(.lcam-g.is-drawn) .lcam-statement-rest { opacity: 1; transform: none; clip-path: inset(-12% 0 -12% 0); }
}
@media (max-width: 899px) {
  .lcam-js .lcam-band__feature.is-in .lcam-stat { clip-path: inset(-12% 0 -12% 0); transform: none; }
  .lcam-js .lcam-band__feature.is-in .lcam-statement-rest { opacity: 1; transform: none; clip-path: inset(-12% 0 -12% 0); }
}
.lcam-hl { color: #7AD0E4; font-weight: 700; }   /* highlighted span inside one Heading widget */
.lcam-eq { color: #7AD0E4; font-weight: 400; }

/* GO2 G signature: inline SVG icons stretched to the frame (the Icon widget
   forces a 1em square box), the bloom glow, the stroke draw and fill fade. */
.lcam-g { position: relative; }
.lcam-g::before { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .8;
  background: radial-gradient(closest-side at 47.3% 50%, rgba(122,208,228,.24), rgba(122,208,228,0)); }
.lcam-g__mark { height: 100%; }
.lcam-g__mark .elementor-widget-container, .lcam-g__mark .elementor-icon-wrapper, .lcam-g__mark .elementor-icon { display: block; width: 100%; height: 100%; line-height: 0; }
.lcam-g__mark svg { width: 100% !important; height: 100% !important; overflow: visible; }
.lcam-g__mark svg path { stroke-width: var(--g-sw, .36); stroke-linejoin: round; }
.lcam-g__mark--front { z-index: 2; pointer-events: none; }
.lcam-js .lcam-g::before { opacity: 0; }
.lcam-js .lcam-g:not(.is-drawn) .lcam-g__mark path { stroke-dasharray: 1; stroke-dashoffset: 1; fill-opacity: 0; }
.lcam-js .lcam-g.is-drawn .lcam-g__mark path { stroke-dasharray: 1; stroke-dashoffset: 0; fill-opacity: 1; transition: stroke-dashoffset 1800ms var(--lcam-ease-draw), fill-opacity 1200ms var(--lcam-ease-reveal) 1100ms; }
.lcam-js .lcam-g:not(.is-drawn) .lcam-g__disc { opacity: 0; transform: scale(.96); }
.lcam-js .lcam-g.is-drawn .lcam-g__disc { opacity: 1; transform: none; transition: opacity 1000ms var(--lcam-ease-reveal) 300ms, transform 1000ms var(--lcam-ease-reveal) 300ms; }
.lcam-js .lcam-g.is-drawn::before { animation: lcam-g-bloom 2000ms var(--lcam-ease-reveal) 1000ms forwards, lcam-g-breathe 9s ease-in-out 3000ms infinite alternate; }
@keyframes lcam-g-bloom { 0% { opacity: 0; } 55% { opacity: 1; } 100% { opacity: .8; } }
@keyframes lcam-g-breathe { from { opacity: .8; } to { opacity: .5; } }
/* video facade: glass play disc + hover scale (Video widget play icon has colour/size only) */
.lcam-g__video .elementor-custom-embed-image-overlay img { width: 100%; height: 100%; object-fit: cover; transition: transform 300ms var(--lcam-ease-reveal); }
.lcam-g__video .elementor-custom-embed-play { width: 60px; height: 60px; display: grid; place-items: center; border-radius: 50%;
  background: rgba(255,255,255,.24); border: 1px solid #F4F5FA; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  transition: transform 300ms var(--lcam-ease-reveal), background-color 300ms var(--lcam-ease-reveal); }
.lcam-g__video .elementor-custom-embed-play svg { width: 22px; height: 22px; margin-left: 3px; filter: none; }
@media (hover: hover) {
  .lcam-g__video:hover .elementor-custom-embed-image-overlay img { transform: scale(1.03); }
  .lcam-g__video:hover .elementor-custom-embed-play { transform: translate(-50%, -50%) scale(1.06); background: rgba(255,255,255,.34); }
}

/* facts row: the ruled ledger draws (top rule, column dividers, closing rule) */
.lcam-facts { position: relative; }
.lcam-facts::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: rgba(255,255,255,.18); transform-origin: left; }
.lcam-facts::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: linear-gradient(90deg, rgba(255,255,255,.18) 0%, rgba(255,255,255,.04) 100%); transform-origin: left center; }
.lcam-fact { position: relative; }
.lcam-fact + .lcam-fact::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 1px; background: rgba(255,255,255,.18); transform-origin: top; transform: scaleY(var(--div-s, 1));
  transition: transform 900ms var(--lcam-ease-draw) var(--div-d, 0ms); }
.lcam-fact:nth-child(2) { --fst: 110ms; --div-d: 560ms; } .lcam-fact:nth-child(3) { --fst: 220ms; --div-d: 670ms; }
.lcam-js .lcam-facts::before { transform: scaleX(0); transition: transform 1200ms var(--lcam-ease-draw) 80ms; }
.lcam-js .lcam-facts::after { transform: scaleX(0); transition: transform 1400ms var(--lcam-ease-draw) 900ms; }
.lcam-js .lcam-facts .lcam-fact { --div-s: 0; }
.lcam-js .lcam-facts.is-in::before, .lcam-js .lcam-facts.is-in::after { transform: none; }
.lcam-js .lcam-facts.is-in .lcam-fact { --div-s: 1; }
.lcam-js .lcam-fact.lcam-reveal { --rd: calc(480ms + var(--fst, 0ms)); }
.lcam-fact__icon .elementor-icon-wrapper { line-height: 0; }
@media (max-width: 899px) {
  .lcam-fact + .lcam-fact { border-top: 1px solid rgba(255,255,255,.18); }
  .lcam-fact + .lcam-fact::before { display: none; }
}

/* --- World chart (source 14a, 20g, 34b): mat wipes up, print settles, bars
   grow in rank order. ------------------------------------------------------ */
.lcam-chart__panel { --lcam-wd: 150ms; }
.lcam-js .lcam-bars { opacity: 0; transform: translateY(16px); transition: opacity 900ms var(--lcam-ease-reveal) 600ms, transform 1000ms var(--lcam-ease-reveal) 600ms; }
.lcam-js .lcam-chart__panel.is-in .lcam-bars { opacity: 1; transform: none; }
.lcam-bar { transform-origin: left center; }
.lcam-js .lcam-bar { transform: scaleX(0); transition: transform 1200ms var(--lcam-ease-reveal) calc(900ms + var(--i, 0) * 90ms); }
.lcam-js .lcam-chart__panel.is-in .lcam-bar { transform: none; }
.lcam-bars__row:nth-child(2) { --i: 1; } .lcam-bars__row:nth-child(3) { --i: 2; } .lcam-bars__row:nth-child(4) { --i: 3; }
.lcam-bars__row:nth-child(5) { --i: 4; } .lcam-bars__row:nth-child(6) { --i: 5; }
.lcam-chart .lcam-draw { --lcam-dd: 950ms; }

/* --- Help cards (source 12, 20h, 21e, 22): notched outline (drawn by
   lcam-motion.js), rise + icon pop, and the parent-hover to child states. ---- */
.lcam-card { --notch: 68px; --accent: #7AD0E4; isolation: isolate; transition: background-color 200ms var(--lcam-ease-reveal), translate 360ms var(--lcam-ease-emph) !important; }
.lcam-card--purple { --accent: #82568E; } .lcam-card--lime { --accent: #BACA33; }
.lcam-card__outline { position: absolute; left: -1px; top: -1px; z-index: -1; overflow: visible; pointer-events: none; }
.lcam-card__outline path { fill: #fff; stroke: #E3E7ED; stroke-width: 1; transition: fill 200ms var(--lcam-ease-reveal), stroke 200ms var(--lcam-ease-reveal); }
.lcam-card.has-outline { background-color: transparent !important; border-color: transparent !important; }
.lcam-card.has-outline .lcam-card__notch { background-color: transparent !important; border-color: transparent !important; }
.lcam-card::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0; transition: opacity 360ms var(--lcam-ease-reveal);
  background: radial-gradient(120% 90% at 0% 0%, color-mix(in srgb, var(--accent) 16%, transparent) 0%, transparent 62%);
  clip-path: polygon(1px 1px, calc(100% - var(--notch)) 1px, calc(100% - var(--notch)) var(--notch), calc(100% - 1px) var(--notch), calc(100% - 1px) calc(100% - 1px), 1px calc(100% - 1px)); }
.lcam-card__arrow .elementor-icon { overflow: hidden; transition: background-color 200ms var(--lcam-ease-reveal), color 200ms var(--lcam-ease-reveal); }
.lcam-card__arrow .elementor-icon-wrapper, .lcam-card__icon .elementor-icon-wrapper { line-height: 0; }
.lcam-card:hover, .lcam-card:focus-visible { translate: 0 -4px; }
.lcam-card:hover::after, .lcam-card:focus-visible::after { opacity: 1; }
.lcam-card:hover .lcam-card__outline path, .lcam-card:focus-visible .lcam-card__outline path { stroke: #3C3494; }
.lcam-card:not(.has-outline):hover { border-color: #3C3494 !important; }
.lcam-card:hover .lcam-card__arrow .elementor-icon, .lcam-card:focus-visible .lcam-card__arrow .elementor-icon { background-color: #FED847 !important; color: #0F131A !important; fill: #0F131A !important; }
.lcam-card:hover .lcam-card__arrow svg, .lcam-card:focus-visible .lcam-card__arrow svg { animation: lcam-arrow-through 520ms var(--lcam-ease-emph) 1; }
@keyframes lcam-arrow-through { 0% { transform: none; opacity: 1; } 45% { transform: translate(18px, -18px); opacity: 0; } 46% { transform: translate(-18px, 18px); opacity: 0; } 100% { transform: none; opacity: 1; } }
.lcam-card:focus-visible { outline: 3px solid #3C3494; outline-offset: 4px; }
.lcam-card:nth-child(2) { --cst: 120ms; } .lcam-card:nth-child(3) { --cst: 240ms; }
.lcam-js .lcam-card.lcam-reveal { transform: translateY(40px);
  transition: opacity 800ms var(--lcam-ease-reveal) var(--cst, 0ms), transform 1000ms var(--lcam-ease-reveal) var(--cst, 0ms), translate 360ms var(--lcam-ease-emph) !important; }
.lcam-js .lcam-card.lcam-reveal.is-in { transform: none; }
.lcam-js .lcam-card .lcam-card__icon { opacity: 0; transform: scale(.6); transition: opacity 600ms var(--lcam-ease-reveal) calc(var(--cst, 0ms) + 320ms), transform 900ms var(--lcam-ease-reveal) calc(var(--cst, 0ms) + 320ms); }
.lcam-js .lcam-card.is-in .lcam-card__icon { opacity: 1; transform: none; }

/* --- Footer (source 13, 20i, 34a). Aurora + outlined G watermark sized from
   the footer height (no Elementor control sizes width from height), framed
   logo tab outline, legal hairline gradient, link underline on hover. ------- */
.lcam-footer { background-image: radial-gradient(48% 70% at 0% 0%, rgba(60,52,148,.55) 0%, rgba(60,52,148,0) 70%),
  radial-gradient(40% 60% at 92% 70%, rgba(122,208,228,.12) 0%, rgba(122,208,228,0) 70%) !important; }
.lcam-footer__mark { position: absolute !important; top: 50%; right: 0; height: 135%; width: auto !important; aspect-ratio: 200 / 189.33; transform: translate(12%, -50%); pointer-events: none; z-index: 0; }
.lcam-footer__mark .elementor-widget-container, .lcam-footer__mark .elementor-icon-wrapper, .lcam-footer__mark .elementor-icon { display: block; width: 100%; height: 100%; line-height: 0; }
.lcam-footer__mark svg { width: 100% !important; height: 100% !important; overflow: visible; }
.lcam-footer__mark svg path { vector-effect: non-scaling-stroke; }
@media (max-width: 1179px) { .lcam-footer__mark { height: 70%; top: 30%; } }   /* site change: smaller G once footer stacks */
.lcam-footer__tab { outline: 1px solid rgba(255,255,255,.18); outline-offset: 6px; transition: outline-color 200ms var(--lcam-ease-reveal); }
.lcam-footer__tab:hover { outline-color: rgba(122,208,228,.6); }
.lcam-footer__links .elementor-icon-list-item a:hover .elementor-icon-list-text, .lcam-footer__head a:hover { text-decoration: underline; text-underline-offset: 4px; }
.lcam-footer__links .elementor-icon-list-text { padding-inline-start: 0 !important; }
.lcam-footer__legal { border-image: linear-gradient(90deg, rgba(255,255,255,.24), rgba(255,255,255,.06)) 1; }
.lcam-footer__legal a { color: #fff; text-underline-offset: 3px; text-decoration: underline; white-space: nowrap; }
/* social glyph paths use currentColor */
.lcam-social .elementor-social-icon { color: var(--e-global-color-aqua); }

/* film grain on the dark grounds (source 20a): a pseudo-element texture layer,
   which no background control can stack over a colour/gradient + overlay */
.lcam-hero__scrim::after, .lcam-band::before, .lcam-footer::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .05;
  background-image: url('data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%27160%27 height=%27160%27%3E%3Cfilter id=%27n%27%3E%3CfeTurbulence type=%27fractalNoise%27 baseFrequency=%27.9%27 numOctaves=%272%27 stitchTiles=%27stitch%27/%3E%3CfeColorMatrix values=%270 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0%27/%3E%3C/filter%3E%3Crect width=%27100%25%27 height=%27100%25%27 filter=%27url(%23n)%27/%3E%3C/svg%3E');
  background-size: 160px 160px; }
.lcam-band > .e-con-inner, .lcam-footer > .e-con { position: relative; z-index: 1; }

/* --- Gates: fail-safe (2.5s) and reduced motion show final states. --------- */
.lcam-reveal-all .lcam-reveal, .lcam-reveal-all .lcam-wipe, .lcam-reveal-all .lcam-grow, .lcam-reveal-all .lcam-stat, .lcam-reveal-all .lcam-statement-rest,
.lcam-reveal-all .lcam-pillar__index, .lcam-reveal-all .lcam-pillar__title, .lcam-reveal-all .lcam-intro__media img, .lcam-reveal-all .lcam-bars, .lcam-reveal-all .lcam-bar,
.lcam-reveal-all .lcam-card__icon, .lcam-reveal-all .lcam-g__disc, .lcam-reveal-all .lcam-hero__bg, .lcam-reveal-all .lcam-hero__kicker, .lcam-reveal-all .lcam-hero__cta,
.lcam-reveal-all .lcam-hero__cue, .lcam-reveal-all .lcam-dl, .lcam-reveal-all .lcam-dh, .lcam-reveal-all .lcam-line__in { opacity: 1 !important; transform: none !important; clip-path: none !important; }
.lcam-reveal-all .lcam-draw path, .lcam-reveal-all .lcam-g__mark path { stroke-dashoffset: 0 !important; fill-opacity: 1 !important; }
.lcam-reveal-all .lcam-facts::before, .lcam-reveal-all .lcam-facts::after { transform: none !important; }
.lcam-reveal-all .lcam-pillar, .lcam-reveal-all .lcam-fact { --div-s: 1 !important; }
.lcam-reveal-all .lcam-g::before { opacity: .8 !important; animation: none !important; }
@media (prefers-reduced-motion: reduce) {
  .lcam-btn .elementor-button, .lcam-btn .elementor-button::before, .lcam-btn .elementor-button-icon, .lcam-card, .lcam-header, .lcam-header .lcam-header__logo { transition: none !important; }
  .lcam-card:hover, .lcam-card:focus-visible { translate: none; }
  .lcam-card:hover .lcam-card__arrow svg { animation: none !important; }
  .lcam-g__video:hover .elementor-custom-embed-image-overlay img, .lcam-feature:hover img { transform: none !important; }
  .lcam-hero__bg { transform: none !important; }
}

/* drawer (Off-Canvas): the panel is exactly one viewport tall so its body scrolls and the CTAs stay
   pinned (containers expose min-height only); the open row's chevron turns up (the Nested Accordion
   has no rotate-on-open control, the source rotates its chevron 180deg) */
.lcam-drawer__panel { height: 100vh; height: 100dvh; }
/* drawer: drop 100vh min (iOS) */
.lcam-drawer__panel.e-con { min-height: 0; }
.lcam-drawer .e-n-accordion-item-title-icon .e-opened svg { transform: rotate(180deg); }
/* drawer body must be allowed to shrink so it scrolls under the pinned CTAs: a flex item's
   min-height:auto blocks that, and Elementor emits nothing for a min-height of 0 */
.lcam-drawer__body { min-height: 0 !important; overflow-y: auto; overscroll-behavior: contain; }
/* ...and Elementor's Grow size sets flex-shrink:0, so restate the source's flex: 1 (grow AND shrink) */
.lcam-drawer__body { flex: 1 1 0% !important; }

/* mega feature cards: clip hover zoom to frame */
.lcam-feature .elementor-widget-image { overflow: hidden; }
/* video play glyph: solid white */
.lcam-g__video .elementor-custom-embed-play { color: #fff; }
.lcam-g__video .elementor-custom-embed-play svg { fill: #fff; opacity: 1; }
/* help-card icons: outline line icons */
.lcam-card__icon svg *, .lcam-fact .elementor-icon svg * { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ==========================================================================
   LCAM landing page (lcam-*). Rung (d) only: line masks, wipes, draws and
   gradient numerals with no Elementor control. Reuses every homepage class;
   rules below cover components the homepage does not have.
   ========================================================================== */
/* line masks: split by lcam-motion.js */
.lcam-js .lcam-lines .elementor-heading-title { transition: opacity 800ms var(--lcam-ease-reveal) var(--lines-d, 0ms), transform 1000ms var(--lcam-ease-reveal) var(--lines-d, 0ms); }
.lcam-js .lcam-lines:not(.is-go) .elementor-heading-title { opacity: 0; transform: translateY(20px); }
.lcam-lines .elementor-heading-title.is-split { display: flex; flex-direction: column; transition: none; }
.lcam-lines.is-go .lcam-line__in { transform: none; transition: transform 1000ms var(--lcam-ease-reveal) var(--ld, 0ms); }

/* intro: copy follows lead lines */
.lcam-lintro { --rest-d: calc(var(--lines-end, 220ms) + 160ms); }
.lcam-js .lcam-lintro__rest { opacity: 0; transform: translateY(20px); transition: opacity 800ms var(--lcam-ease-reveal) var(--rest-d), transform 1000ms var(--lcam-ease-reveal) var(--rest-d); }
.lcam-js .lcam-lintro.is-in .lcam-lintro__rest { opacity: 1; transform: none; }

/* watch: wide G, title wipe */
.lcam-g--wide::before { content: none; }
.lcam-g--wide .lcam-g__mark { height: auto; aspect-ratio: 200 / 189.33; }
.lcam-g--wide:not(:has(.elementor-custom-embed-image-overlay)) .lcam-g__over { display: none; }
.lcam-g__over { pointer-events: none; }   /* clicks reach the play button */
.lcam-tw { display: block; }
.lcam-js .lcam-tw { clip-path: inset(-12% 100% -12% 0); transform: translateY(.18em); transition: clip-path 1800ms var(--lcam-ease-draw), transform 1800ms var(--lcam-ease-draw); }
.lcam-js .lcam-tw + .lcam-tw { transition-delay: 300ms; }
@media (min-width: 900px) { .lcam-js .lcam-watch:has(.lcam-g.is-drawn) .lcam-tw { clip-path: inset(-12% 0 -12% 0); transform: none; } }
@media (max-width: 899px) { .lcam-js .lcam-watch__head.is-in .lcam-tw { clip-path: inset(-12% 0 -12% 0); transform: none; } }

/* band: copy after heading lines */
.lcam-band__text { --after: calc(var(--lines-end, 110ms) + 120ms); }
.lcam-band__text .lcam-reveal { --rd: var(--after); }
.lcam-band__text .lcam-reveal + .lcam-reveal { --rd: calc(var(--after) + 110ms); }
/* band: cut-out rises, glow blooms */
.lcam-js .lcam-band__img.lcam-reveal { transform: translateY(56px); transition: opacity 900ms var(--lcam-ease-reveal) 120ms, transform 1200ms var(--lcam-ease-reveal) 120ms; }
.lcam-js .lcam-band__img.lcam-reveal.is-in { transform: none; }
.lcam-band__glow { pointer-events: none; background: radial-gradient(closest-side at 50% 45%, rgba(122,208,228,.2), rgba(122,208,228,0)); }
.lcam-js .lcam-band__glow { opacity: 0; transform: scale(.85); transition: opacity 1600ms var(--lcam-ease-reveal) 240ms, transform 2000ms var(--lcam-ease-reveal) 240ms; }
.lcam-js .lcam-band__object:has(.lcam-band__img.is-in) .lcam-band__glow { opacity: 1; transform: none; }

/* fact text: stacked cascade timing */
.lcam-fstack { --t0: 0ms; }
.lcam-fstack--fig { --t0: 420ms; }
.lcam-fstack .lcam-lines { --lines-d: 110ms; }
.lcam-fstack--fig .lcam-lines { --lines-d: 530ms; }
.lcam-fidx { --sd: var(--t0); }
.lcam-fbody { --sd: calc(var(--lines-end, calc(var(--t0) + 220ms)) + 120ms); }
.lcam-js .lcam-fstack .lcam-fidx, .lcam-js .lcam-fstack .lcam-fbody { opacity: 0; transform: translateY(16px); transition: opacity 800ms var(--lcam-ease-reveal) var(--sd), transform 1000ms var(--lcam-ease-reveal) var(--sd); }
.lcam-js .lcam-fstack.is-in .lcam-fidx, .lcam-js .lcam-fstack.is-in .lcam-fbody { opacity: 1; transform: none; }
/* landing fact body: strong like html */
.lcam-fbody strong { font-weight: 500; color: var(--e-global-color-secondary); }
/* fact figure rule draws */
.lcam-frule { transform-origin: left center; }
.lcam-js .lcam-frule { transform: scaleX(0); transition: transform 1200ms var(--lcam-ease-draw) 300ms; }
.lcam-js .lcam-fstack.is-in .lcam-frule { transform: none; }

/* figures: gradient numerals (no gradient-text control) */
.lcam-gradnum .elementor-heading-title { width: fit-content; padding-bottom: .04em; background: linear-gradient(100deg, #3C3494 0%, #3C3494 40%, color-mix(in srgb, #3C3494 58%, #7AD0E4) 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent !important; -webkit-text-fill-color: transparent; }
/* figures: left-to-right wipe rise */
.lcam-wipex .elementor-heading-title { font-variant-numeric: lining-nums tabular-nums; }
.lcam-js .lcam-wipex .elementor-heading-title { clip-path: inset(-12% 100% -12% 0); transform: translateY(.18em); transition: clip-path 1800ms var(--lcam-ease-draw) var(--md, 0ms), transform 1800ms var(--lcam-ease-draw) var(--md, 0ms); }
.lcam-js .lcam-fstack.is-in > .lcam-wipex .elementor-heading-title, .lcam-js .lcam-figstrip.is-in .lcam-wipex .elementor-heading-title { clip-path: inset(-12% 0 -12% 0); transform: none; }
/* figure strip: arrow draws, label settles */
.lcam-fsfig { --md: 700ms; }
.lcam-fsarrow .elementor-icon-wrapper { line-height: 0; }
.lcam-js .lcam-fsarrow { opacity: 0; transform: translate(-8px, 8px); transition: opacity 400ms var(--lcam-ease-reveal) 400ms, transform 1000ms var(--lcam-ease-reveal) 400ms; }
.lcam-js .lcam-fsarrow path { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 900ms var(--lcam-ease-draw) 400ms; }
.lcam-js .is-in .lcam-fsarrow { opacity: 1; transform: none; }
.lcam-js .is-in .lcam-fsarrow path { stroke-dashoffset: 0; }
.lcam-js .lcam-fslabel { opacity: 0; transform: translateY(12px); transition: opacity 800ms var(--lcam-ease-reveal) 1100ms, transform 1000ms var(--lcam-ease-reveal) 1100ms; }
.lcam-js .lcam-figstrip.is-in .lcam-fslabel { opacity: 1; transform: none; }

/* shareables: graphic settles in wipe */
.lcam-js .lcam-lframe .lcam-wipe img { transition: transform 1800ms var(--lcam-ease-reveal) 120ms; }
.lcam-js .lcam-lframe--right .lcam-wipe img { transform: translateX(-1.5%) scale(1.04); }
.lcam-js .lcam-lframe--left .lcam-wipe img { transform: translateX(1.5%) scale(1.04); }
.lcam-js .lcam-lframe .lcam-wipe.is-in img { transform: none; }
.lcam-lframe .lcam-seam--inner { --lcam-gd: 820ms; }
/* share buttons: leading glyph stays */
.lcam-btn--icon .elementor-button-icon { position: static; width: 16px; height: 16px; margin-top: 0; opacity: 1; transform: none; }
@media (hover: hover) { .lcam-btn.lcam-btn--icon .elementor-button:hover { padding-left: 22px !important; padding-right: 22px !important; } }
/* reveal delay utility */
.lcam-rd-200 { --rd: 200ms; }

/* landing gates: final states */
.lcam-reveal-all .lcam-lines .elementor-heading-title, .lcam-reveal-all .lcam-lintro__rest, .lcam-reveal-all .lcam-band__glow, .lcam-reveal-all .lcam-band__img,
.lcam-reveal-all .lcam-tw, .lcam-reveal-all .lcam-fidx, .lcam-reveal-all .lcam-fbody, .lcam-reveal-all .lcam-frule, .lcam-reveal-all .lcam-wipex .elementor-heading-title,
.lcam-reveal-all .lcam-fsarrow, .lcam-reveal-all .lcam-fslabel, .lcam-reveal-all .lcam-lframe img { opacity: 1 !important; transform: none !important; clip-path: none !important; }
.lcam-reveal-all .lcam-fsarrow path { stroke-dashoffset: 0 !important; }
/* hero + landing buttons: no baseline gap */
.lcam-hero__cta, .lcam-band__text .lcam-btn, .lcam-lframe .lcam-btn { line-height: 0; }
/* video popup: 16:9 frame like html */
#elementor-lightbox-lcpbdvd .dialog-widget-content { inset: 0; margin: auto; width: calc(94vw - 1rem); max-width: 1100px; height: auto; aspect-ratio: 16 / 9; overflow: visible; }
#elementor-lightbox-lcpbdvd .dialog-message { width: 100%; height: 100%; }
#elementor-lightbox-lcpbdvd .elementor-video-container { inset: 0; transform: none; width: 100%; height: 100%; background: #000; }
#elementor-lightbox-lcpbdvd .elementor-video-square iframe { width: 100%; height: 100%; }
#elementor-lightbox-lcpbdvd .dialog-lightbox-close-button { top: -56px; inset-inline-end: 0; margin: 0; width: 44px; height: 44px; padding: 0; box-sizing: border-box; align-items: center; justify-content: center; font-size: 20px; border: 1px solid rgba(255,255,255,.35); border-radius: 4px; }

/* partners: lists flow into columns */
.lcam-plist .elementor-icon-list-items { columns: 3 240px; column-gap: 32px; }
/* column tops align: even item gap */
.lcam-plist .elementor-icon-list-item { break-inside: avoid; margin: 0 !important; padding: 0 0 14px !important; }
/* join band: no baseline gap */
.lcam-join .lcam-btn { line-height: 0; }

/* membership form: hide required legend */
.lcam-mform__card .gform_wrapper .gform_required_legend { display: none; }
/* membership form: site fonts */
.lcam-mform__card .gform_wrapper, .lcam-mform__card .gform_wrapper input, .lcam-mform__card .gform_wrapper textarea, .lcam-mform__card .gform_wrapper .gfield_label { font-family: var(--e-global-typography-text-font-family), sans-serif; }
.lcam-mform__card .gform_wrapper .gfield_label { color: #1A1F59; font-size: 16px; font-weight: 500; }
/* membership form: hairline fields, indigo focus */
.lcam-mform__card .gform_wrapper .gfield input:not([type=submit]), .lcam-mform__card .gform_wrapper .gfield textarea { border: 1px solid #E3E7ED; border-radius: 4px; box-shadow: none; color: #0F131A; }
.lcam-mform__card .gform_wrapper .gfield input:not([type=submit]):focus, .lcam-mform__card .gform_wrapper .gfield textarea:focus { border-color: #3C3494; outline: 2px solid rgba(60,52,148,.2); outline-offset: 0; }
/* membership form: site yellow button */
.lcam-mform__card .gform-theme.gform-theme--framework.gform_wrapper .gform_footer .gform_button.button { font-family: Montserrat, sans-serif; font-size: 15px; font-weight: 600; line-height: 1; letter-spacing: .005em;
  padding: 19px 32px; height: auto; background: #FED847; color: #0F131A; border: 1px solid #FED847; border-radius: 4px; box-shadow: none; transition: background-color 200ms var(--lcam-ease-reveal); }
.lcam-mform__card .gform-theme.gform-theme--framework.gform_wrapper .gform_footer .gform_button.button:hover, .lcam-mform__card .gform-theme.gform-theme--framework.gform_wrapper .gform_footer .gform_button.button:focus-visible { background: color-mix(in srgb, #FED847 89%, #000); border-color: color-mix(in srgb, #FED847 89%, #000); color: #0F131A; }

/* resources videos: indigo play disc */
.lcam-res__video .elementor-custom-embed-play { width: 72px; height: 72px; background: rgba(60,52,148,.9); border-color: rgba(255,255,255,.6); box-shadow: 0 6px 24px rgba(26,31,89,.25); }
.lcam-res__video:hover .elementor-custom-embed-play, .lcam-res__video .elementor-custom-embed-image-overlay:focus-visible .elementor-custom-embed-play { background: #3C3494; }

/* shareables: gallery as responsive grid */
.lcam-share__gallery .gallery { display: grid; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); gap: var(--gap, 24px); margin: 0 !important; }
.lcam-share__gallery .gallery > br { display: none; }
.lcam-share__gallery .gallery .gallery-item { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
.lcam-share__gallery .gallery .gallery-item img { display: block; width: 100%; height: auto; }
/* ads: never upscale past native size */
.lcam-share--banners .lcam-share__gallery .gallery { --cols: 2; }
.lcam-share--banners .lcam-share__gallery .gallery .gallery-item img { width: auto; max-width: 100%; }
@media (max-width: 899px) {
  .lcam-share__gallery .gallery { --cols: 3; }
  .lcam-share--banners .lcam-share__gallery .gallery { --cols: 2; }
  .lcam-share--banners .lcam-share__gallery ~ .lcam-share__gallery .gallery { --cols: 1; }
}
@media (max-width: 599px) {
  .lcam-share__gallery .gallery { --cols: 2; --gap: 12px; }
  .lcam-share--banners .lcam-share__gallery .gallery { --cols: 1; }
}
