.uhm3-hero{position:relative;display:flex;align-items:center;isolation:isolate;overflow:hidden;min-height:620px;background:#fff}.uhm3-hero *{box-sizing:border-box}.uhm3-media{position:absolute;inset:0 0 0 auto;width:53%;z-index:0;overflow:hidden}.uhm3-media picture,.uhm3-media img{display:block;width:100%;height:100%}.uhm3-media img{object-fit:cover;object-position:center}.uhm3-media.uhm3-soft{-webkit-mask-image:linear-gradient(to right,transparent 0%,black var(--uhm3-fade,12%));mask-image:linear-gradient(to right,transparent 0%,black var(--uhm3-fade,12%))}.uhm3-media.uhm3-wide{-webkit-mask-image:linear-gradient(to right,transparent 0%,black 45%);mask-image:linear-gradient(to right,transparent 0%,black 45%)}.uhm3-content{position:relative;z-index:1;width:52%;padding:70px 60px;max-width:100%}:where(.uhm3-eyebrow){font-family:Lato,Arial,sans-serif;font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;line-height:1.5;margin:0 0 26px;color:#111}:where(.uhm3-title){font-family:'DM Serif Display',Georgia,serif;font-size:clamp(38px,4.1vw,68px);font-weight:400;line-height:1.09;letter-spacing:-.015em;margin:0 0 30px;color:#111}:where(.uhm3-body){font-family:Lato,Arial,sans-serif;font-size:18px;line-height:1.65;font-weight:400;margin:0 0 32px;color:#252525}:where(.uhm3-button),:where(.uhm3-button:visited){display:inline-flex;gap:18px;align-items:center;justify-content:center;text-decoration:none;background:#111;color:#fff;font:700 13px/1.3 Lato,Arial,sans-serif;letter-spacing:.04em;padding:16px 26px;border:1px solid #111;border-radius:0;transition:background-color .2s,color .2s}:where(.uhm3-button:hover){background:#fff;color:#111}.uhm3-media:not(:has(img)){background:#f3f3f3}@media(max-width:1024px){.uhm3-content{padding:54px 38px}:where(.uhm3-title){font-size:clamp(36px,4.5vw,54px)}}@media(max-width:767px){.uhm3-hero{display:flex;flex-direction:column;min-height:0!important}.uhm3-content{order:1;width:100%!important;padding:42px 24px}.uhm3-media{position:relative;order:2;width:100%!important;height:260px;inset:auto;-webkit-mask-image:none!important;mask-image:none!important}:where(.uhm3-title){font-size:38px}:where(.uhm3-body){font-size:16px}.uhm3-media:not(:has(img)){display:none}}

/* 3.1: actions, advanced layers, video. Elementor-generated selectors remain authoritative. */
.uhm3-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px}
:where(.uhm3-button),:where(.uhm3-button2){white-space:normal;min-height:46px;line-height:1.3}
:where(.uhm3-button2),:where(.uhm3-button2:visited){display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:16px 26px;border:1px solid #111;background:#fff;color:#111;text-decoration:none;font:700 13px/1.3 Lato,Arial,sans-serif;transition:color .2s,background-color .2s,border-color .2s}
:where(.uhm3-button2:hover){color:#fff;background:#111;border-color:#111}
.uhm3-cta-label{display:inline-block;color:inherit}.uhm3-cta-icon{color:inherit;flex:none}
.uhm3-media .uhm3-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.uhm3-media .uhm3-picture{position:absolute;inset:0;z-index:0}
.uhm3-layers{position:absolute;inset:0;pointer-events:none;z-index:1}
.uhm3-layer{position:absolute;overflow:hidden;transform:rotate(var(--uhm-rotation,0deg));width:30%;min-height:1px}
.uhm3-layer picture,.uhm3-layer img{display:block;width:100%;height:100%}
.uhm3-layer img{object-fit:cover}.uhm3-layer-text{font-family:Lato,Arial,sans-serif;font-size:18px;line-height:1.4;padding:12px}
.uhm3-content{z-index:2}.uhm3-animate-fade .uhm3-content{animation:uhm3-fade .7s both}.uhm3-animate-rise .uhm3-content{animation:uhm3-rise .7s both}
.uhm3-layer-anim-fade{animation:uhm3-fade .8s both}.uhm3-layer-anim-rise{animation:uhm3-rise .8s both}.uhm3-layer-anim-float{animation:uhm3-float 6s ease-in-out infinite}
@keyframes uhm3-fade{from{opacity:0}to{opacity:1}}@keyframes uhm3-rise{from{transform:translateY(20px)}to{transform:translateY(0)}}@keyframes uhm3-float{0%,100%{translate:0 0}50%{translate:0 -12px}}
@media(min-width:768px) and (max-width:1024px){.uhm3-hide-tablet{display:none!important}}
@media(max-width:767px){.uhm3-actions{align-items:stretch;flex-direction:column}.uhm3-actions>*{width:100%}.uhm3-hide-mobile{display:none!important}.uhm3-layers{z-index:1}.uhm3-video-desktop{display:none!important}}
@media(prefers-reduced-motion:reduce){.uhm3-layer,.uhm3-content{animation:none!important;transition:none!important}}

/* 3.1.2: stable entrance animations; preserve layer rotation, opacity and parallax. */
.uhm3-hero.uhm3-animate-fade .uhm3-content{animation:uhm3-content-fade var(--uhm-content-duration,850ms) ease-out var(--uhm-content-delay,100ms) both}
.uhm3-hero.uhm3-animate-rise .uhm3-content{animation:uhm3-content-rise var(--uhm-content-duration,850ms) cubic-bezier(.2,.7,.2,1) var(--uhm-content-delay,100ms) both}
@keyframes uhm3-content-fade{from{opacity:0}to{opacity:1}}
@keyframes uhm3-content-rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
.uhm3-layer.uhm3-layer-anim-fade{animation:uhm3-layer-fade .8s ease-out both}
.uhm3-layer.uhm3-layer-anim-rise{animation:uhm3-layer-rise .8s ease-out both}
.uhm3-layer.uhm3-layer-anim-float{animation:uhm3-layer-float 6s ease-in-out infinite}
@keyframes uhm3-layer-fade{from{opacity:0}to{opacity:var(--uhm-layer-opacity,1)}}
@keyframes uhm3-layer-rise{from{opacity:0;transform:translateY(24px) rotate(var(--uhm-rotation,0deg))}to{opacity:var(--uhm-layer-opacity,1);transform:translateY(0) rotate(var(--uhm-rotation,0deg))}}
@keyframes uhm3-layer-float{0%,100%{transform:translateY(0) rotate(var(--uhm-rotation,0deg))}50%{transform:translateY(-12px) rotate(var(--uhm-rotation,0deg))}}
@media(prefers-reduced-motion:reduce){.uhm3-hero .uhm3-content,.uhm3-hero .uhm3-layer{animation:none!important;transition:none!important}}

/* 3.1.3: optional bottom edge fade, independent from horizontal media mask. */
.uhm3-hero .uhm3-bottom-fade{position:absolute;bottom:0;left:0;right:0;height:140px;z-index:1;pointer-events:none;opacity:1;background-image:linear-gradient(to bottom,transparent 0%,#111111 100%);}

/* 3.1.4: typography fallback must not win over Elementor's per-widget selectors.
   The lower edge fade stays behind the content, so it cannot cover labels or buttons. */
.uhm3-hero > .uhm3-content{z-index:3}
.uhm3-hero > .uhm3-bottom-fade{z-index:2}

:where(.uhm3-eyebrow){color:var(--uhm-user-eyebrow,#111111)}
:where(.uhm3-title){color:var(--uhm-user-title,#111111)}
:where(.uhm3-body){color:var(--uhm-user-body,#252525)}

/* 3.1.7: optional shaped bottom edge. Overlay behind interactive content. */
.uhm3-hero > .uhm3-bottom-shape{position:absolute;left:0;right:0;bottom:-1px;height:90px;background-color:#fff;pointer-events:none;z-index:2;--uhm3-shape-slope:55%;}
.uhm3-hero > .uhm3-shape-diagonal{clip-path:polygon(0 calc(100% - var(--uhm3-shape-slope)),100% 100%,100% 100%,0 100%)}
.uhm3-hero > .uhm3-shape-diagonal-reverse{clip-path:polygon(0 100%,100% calc(100% - var(--uhm3-shape-slope)),100% 100%,0 100%)}
.uhm3-hero > .uhm3-shape-wave{clip-path:polygon(0 calc(100% - var(--uhm3-shape-slope) * .45),8% calc(100% - var(--uhm3-shape-slope) * .62),16% calc(100% - var(--uhm3-shape-slope) * .78),25% calc(100% - var(--uhm3-shape-slope) * .88),35% calc(100% - var(--uhm3-shape-slope) * .92),45% calc(100% - var(--uhm3-shape-slope) * .84),55% calc(100% - var(--uhm3-shape-slope) * .65),65% calc(100% - var(--uhm3-shape-slope) * .43),75% calc(100% - var(--uhm3-shape-slope) * .25),85% calc(100% - var(--uhm3-shape-slope) * .14),100% calc(100% - var(--uhm3-shape-slope) * .22),100% 100%,0 100%)}
.uhm3-hero > .uhm3-content{z-index:3}

/* 3.1.8: additional lower edge shapes. All use the existing responsive slope variable. */
.uhm3-hero > .uhm3-shape-wave_double{clip-path:polygon(0 100%,0 calc(100% - var(--uhm3-shape-slope) * .65),12% calc(100% - var(--uhm3-shape-slope) * .9),25% calc(100% - var(--uhm3-shape-slope) * .55),38% calc(100% - var(--uhm3-shape-slope) * .2),50% calc(100% - var(--uhm3-shape-slope) * .55),62% calc(100% - var(--uhm3-shape-slope) * .9),75% calc(100% - var(--uhm3-shape-slope) * .55),88% calc(100% - var(--uhm3-shape-slope) * .2),100% calc(100% - var(--uhm3-shape-slope) * .55),100% 100%)}
.uhm3-hero > .uhm3-shape-zigzag{clip-path:polygon(0 calc(100% - var(--uhm3-shape-slope)),12.5% 100%,25% calc(100% - var(--uhm3-shape-slope)),37.5% 100%,50% calc(100% - var(--uhm3-shape-slope)),62.5% 100%,75% calc(100% - var(--uhm3-shape-slope)),87.5% 100%,100% calc(100% - var(--uhm3-shape-slope)),100% 100%,0 100%)}
.uhm3-hero > .uhm3-shape-chevron{clip-path:polygon(0 calc(100% - var(--uhm3-shape-slope)),50% 100%,100% calc(100% - var(--uhm3-shape-slope)),100% 100%,0 100%)}
.uhm3-hero > .uhm3-shape-peak{clip-path:polygon(0 100%,50% calc(100% - var(--uhm3-shape-slope)),100% 100%)}
.uhm3-hero > .uhm3-shape-double_diagonal{clip-path:polygon(0 calc(100% - var(--uhm3-shape-slope)),50% calc(100% - var(--uhm3-shape-slope) * .4),100% calc(100% - var(--uhm3-shape-slope) * .85),100% 100%,0 100%)}
.uhm3-hero > .uhm3-shape-step{clip-path:polygon(0 calc(100% - var(--uhm3-shape-slope)),35% calc(100% - var(--uhm3-shape-slope)),35% calc(100% - var(--uhm3-shape-slope) * .5),70% calc(100% - var(--uhm3-shape-slope) * .5),70% 100%,100% 100%,0 100%)}
.uhm3-hero > .uhm3-shape-arch{clip-path:polygon(0 100%,0 calc(100% - var(--uhm3-shape-slope) * .15),5% calc(100% - var(--uhm3-shape-slope) * .35),12% calc(100% - var(--uhm3-shape-slope) * .55),22% calc(100% - var(--uhm3-shape-slope) * .75),35% calc(100% - var(--uhm3-shape-slope) * .93),50% calc(100% - var(--uhm3-shape-slope)),65% calc(100% - var(--uhm3-shape-slope) * .93),78% calc(100% - var(--uhm3-shape-slope) * .75),88% calc(100% - var(--uhm3-shape-slope) * .55),95% calc(100% - var(--uhm3-shape-slope) * .35),100% calc(100% - var(--uhm3-shape-slope) * .15),100% 100%)}
.uhm3-hero > .uhm3-shape-asymmetric{clip-path:polygon(0 calc(100% - var(--uhm3-shape-slope) * .25),30% calc(100% - var(--uhm3-shape-slope) * .85),68% calc(100% - var(--uhm3-shape-slope) * .7),100% 100%,0 100%)}

/* 3.1.9: editable side photo fade. Both short and wide modes respect Elementor's
   --uhm3-fade control; the old wide mode was hardcoded to 45%. */
@media (min-width:768px) {
  .uhm3-hero .uhm3-media.uhm3-soft {
    -webkit-mask-image:linear-gradient(var(--uhm3-fade-direction,to right),transparent var(--uhm3-fade-start,0%),#000 var(--uhm3-fade,12%));
    mask-image:linear-gradient(var(--uhm3-fade-direction,to right),transparent var(--uhm3-fade-start,0%),#000 var(--uhm3-fade,12%));
  }
  .uhm3-hero .uhm3-media.uhm3-wide {
    -webkit-mask-image:linear-gradient(var(--uhm3-fade-direction,to right),transparent var(--uhm3-fade-start,0%),#000 min(100%,calc(var(--uhm3-fade,12%) * 3.75)));
    mask-image:linear-gradient(var(--uhm3-fade-direction,to right),transparent var(--uhm3-fade-start,0%),#000 min(100%,calc(var(--uhm3-fade,12%) * 3.75)));
  }
}

/* 3.2.0: optional upper fade, independent of the lower edge and CTA. */
.uhm3-hero > .uhm3-top-fade{position:absolute;top:0;left:0;right:0;height:140px;z-index:2;pointer-events:none;opacity:1;background-image:linear-gradient(to bottom,#fff 0%,transparent 100%)}

/* 3.3.0: overlay and animation controls */
.uhm3-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.35}
.uhm3-hero.uhm3-animate-fade .uhm3-content,.uhm3-hero.uhm3-animate-rise .uhm3-content{animation:none}
.uhm3-hero[class*="uhm3-animate-"]:not(.uhm3-animate-none) .uhm3-content > :is(.uhm3-eyebrow,.uhm3-title,.uhm3-body,.uhm3-actions){animation-duration:var(--uhm-content-duration,850ms);animation-delay:calc(var(--uhm-content-delay,100ms) + var(--uhm-content-stagger,100ms) * var(--uhm-anim-index,0));animation-fill-mode:both;animation-timing-function:cubic-bezier(.2,.7,.2,1)}
.uhm3-eyebrow{--uhm-anim-index:0}.uhm3-title{--uhm-anim-index:1}.uhm3-body{--uhm-anim-index:2}.uhm3-actions{--uhm-anim-index:3}
.uhm3-animate-fade .uhm3-content > *{animation-name:uhm3-content-fade}
.uhm3-animate-rise .uhm3-content > *{animation-name:uhm3-content-rise}
.uhm3-animate-down .uhm3-content > *{animation-name:uhm3-content-down}
.uhm3-animate-left .uhm3-content > *{animation-name:uhm3-content-left}
.uhm3-animate-right .uhm3-content > *{animation-name:uhm3-content-right}
@keyframes uhm3-content-down{from{opacity:0;transform:translateY(-28px)}to{opacity:1;transform:none}}
@keyframes uhm3-content-left{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
@keyframes uhm3-content-right{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.uhm3-hero .uhm3-content > *{animation:none!important}}

/* TCE Manifesto 2025 v3.3.3: Elementor controls take priority. */
.uhm3-hero.tce-hero-preset{background:#eae3d2;min-height:490px;justify-content:flex-start;align-items:center}
:where(.tce-hero-preset .uhm3-content){width:56%;max-width:none;padding:64px 4.5%;min-width:0;}
.tce-hero-preset .uhm3-media{width:54%;height:100%;background:transparent;-webkit-mask-image:none;mask-image:none;}
.tce-hero-preset .uhm3-media img{object-fit:cover;object-position:right center}
:where(.tce-hero-preset .uhm3-eyebrow){font-family:Arial,sans-serif;font-size:11px;letter-spacing:.25em;color:#253648;font-weight:700;margin:0 0 12px}
.tce-hero-preset .uhm3-eyebrow:after{content:"";display:inline-block;width:95px;height:12px;border-top:1px solid #88929a;background:none;vertical-align:middle;margin-left:16px}
:where(.tce-hero-preset .uhm3-title){font-family:Impact,'Arial Narrow',sans-serif;font-size:clamp(46px,5.3vw,82px);font-weight:900;letter-spacing:-.025em;line-height:1.02;color:#1165a8;margin:0 0 18px;text-transform:uppercase;white-space:pre-line}
:where(.tce-hero-preset .uhm3-body){font-family:Georgia,serif;font-size:clamp(21px,2.3vw,31px);line-height:1.12;color:#222;margin:0 0 24px;white-space:pre-line}
:where(.tce-hero-preset .uhm3-button){background:#0865aa;border:1px solid #0865aa;color:#fff;border-radius:0;padding:15px 20px;font-family:Arial,sans-serif;font-size:12px;letter-spacing:.07em}
.tce-hero-preset .uhm3-button:hover{background:#03477b}
.tce-hero-preset .uhm3-top-fade,.tce-hero-preset .uhm3-bottom-fade,.tce-hero-preset .uhm3-bottom-shape{display:none}
@media(max-width:1024px) and (min-width:768px){:where(.tce-hero-preset .uhm3-content){width:60%;padding:50px 4%}}
@media(max-width:767px){.uhm3-hero.tce-hero-preset{min-height:0;display:flex;flex-direction:column}:where(.tce-hero-preset .uhm3-content){order:1;width:100%;padding:44px 25px 22px}.tce-hero-preset .uhm3-media{order:2;position:relative;inset:auto;width:100%;height:245px}.tce-hero-preset .uhm3-media img{object-position:right center}.tce-hero-preset .uhm3-actions>*{width:auto}}

/* v3.3.9: Elementor responsive controls govern content width; no fixed 740px cap. */

/* TCE: keep both CTAs visible and laid out inside the actions group. */
.tce-hero-preset .uhm3-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;overflow:visible}
.tce-hero-preset .uhm3-actions .uhm3-button2{display:inline-flex;visibility:visible;opacity:1;position:relative;z-index:2;align-items:center;justify-content:center;gap:12px;min-height:46px;border:1px solid #1165a8;background:transparent;color:#1165a8;text-decoration:none;border-radius:0;padding:15px 20px;font:700 12px/1.3 Arial,sans-serif}
.tce-hero-preset .uhm3-actions .uhm3-button2:hover{background:#1165a8;color:#fff}

/* v3.3.12: positioning and zoom are combined to make alignment perceptible. */
.uhm3-hero .uhm3-media img {
  object-position: var(--uhm-photo-align, center center);
  transform-origin: var(--uhm-photo-align, center center);
  transform: scale(var(--uhm-photo-zoom, 1.15));
}

/* v3.3.15: anchor controls actual photo frame, not the image crop. */
@media (min-width:768px) {
  .uhm3-hero > .uhm3-media {
    left: var(--uhm-photo-anchor, 100%) !important;
    right: auto !important;
    transform: translateX(calc(-1 * var(--uhm-photo-anchor, 100%))) !important;
  }
}
@media (max-width:767px) {
  .uhm3-hero > .uhm3-media {
    left: auto !important;
    right: auto !important;
    transform: none !important;
  }
}

/* v3.3.16: use selected alignment for crop, including TCE preset and mobile. */
.uhm3-hero.tce-hero-preset .uhm3-media img, .uhm3-hero .uhm3-media img { object-position: var(--uhm-photo-align, center center); transform-origin: var(--uhm-photo-align, center center); }

/* v3.3.17: mobile-first safeguards for long TCE Manifesto headings.
   These override desktop Elementor typography/width/padding values only at small viewports. */
@media (max-width: 767px) {
  .uhm3-hero.tce-hero-preset {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 0 !important;
    height: auto !important;
    overflow: hidden;
  }
  .uhm3-hero.tce-hero-preset > .uhm3-content {
    position: relative;
    order: 1;
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 34px clamp(16px, 5vw, 26px) 30px !important;
    margin: 0 !important;
    overflow-wrap: anywhere;
  }
  :where(.uhm3-hero.tce-hero-preset .uhm3-title) {
    font-size: clamp(28px, 9vw, 46px);
    line-height: 1.04;
    letter-spacing: -0.025em;
    max-width: 100%;
    min-width: 0;
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
    margin-bottom: 20px;
  }
  .uhm3-hero.tce-hero-preset .uhm3-title .hero-highlight {max-width:100%;overflow-wrap:anywhere;}
  :where(.uhm3-hero.tce-hero-preset .uhm3-eyebrow) {
    font-size: clamp(9px, 2.7vw, 11px);
    line-height: 1.5;
    overflow-wrap: anywhere;
    letter-spacing: .13em;
  }
  .uhm3-hero.tce-hero-preset .uhm3-eyebrow::after {max-width: 18vw;}
  :where(.uhm3-hero.tce-hero-preset .uhm3-body) {
    font-size: clamp(15px, 4vw, 18px);
    line-height: 1.45;
    max-width: 100%;
    overflow-wrap: break-word;
    white-space: normal !important;
  }
  .uhm3-hero.tce-hero-preset .uhm3-actions {width:100%;max-width:100%;}
  .uhm3-hero.tce-hero-preset .uhm3-actions > * {max-width:100%;white-space:normal;text-align:center;}
  .uhm3-hero.tce-hero-preset > .uhm3-media {
    position: relative !important;
    order: 2;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    height: clamp(210px, 65vw, 330px) !important;
    min-height: 0 !important;
  }
  .uhm3-hero.tce-hero-preset > .uhm3-media img {
    width:100%;height:100%;object-fit:cover;
    object-position:var(--uhm-photo-align, center center) !important;
  }
}
@media (max-width: 380px) {
  :where(.uhm3-hero.tce-hero-preset .uhm3-title) {font-size: clamp(26px, 8.2vw, 32px);}
  .uhm3-hero.tce-hero-preset > .uhm3-content {padding-inline: 16px !important;}
}

/* v3.3.18: Mobile media layout independent from desktop hero framing.
   Keep photo below content, show its natural colors, and prevent zoom cropping. */
@media (max-width:767px) {
  .uhm3-hero.tce-hero-preset > .uhm3-media {
    display:block !important;
    position:relative !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    min-height:0 !important;
    aspect-ratio: 16 / 10;
    overflow:hidden;
    background:transparent;
    -webkit-mask-image:none !important;
    mask-image:none !important;
  }
  .uhm3-hero.tce-hero-preset > .uhm3-media picture,
  .uhm3-hero.tce-hero-preset > .uhm3-media .uhm3-picture {
    position:absolute; inset:0; width:100%; height:100%;
  }
  .uhm3-hero.tce-hero-preset > .uhm3-media img {
    display:block; width:100% !important; height:100% !important;
    object-fit:cover !important;
    object-position:var(--uhm-photo-align, center center) !important;
    transform:none !important;
  }
  /* Overlay belongs to the photo only, never over the heading.
     On mobile it is hidden for photographic clarity. */
  .uhm3-hero.tce-hero-preset > .uhm3-overlay {display:none !important;}
}

/* v3.3.19: Mobile keeps desktop photographic hero composition. */
@media (max-width: 767px) {
  .uhm3-hero.tce-hero-preset {
    position:relative !important; display:flex !important; flex-direction:column !important;
    justify-content:center !important; align-items:stretch !important;
    min-height:clamp(560px, 145vw, 760px) !important; height:auto !important;
    isolation:isolate; overflow:hidden !important;
  }
  .uhm3-hero.tce-hero-preset > .uhm3-media {
    position:absolute !important; inset:0 !important; left:0 !important; right:0 !important;
    top:0 !important; bottom:0 !important; order:0 !important;
    width:100% !important; max-width:none !important; height:100% !important;
    min-height:100% !important; aspect-ratio:auto !important;
    transform:none !important; z-index:0 !important; overflow:hidden !important;
    -webkit-mask-image:none !important; mask-image:none !important;
  }
  .uhm3-hero.tce-hero-preset > .uhm3-media picture,
  .uhm3-hero.tce-hero-preset > .uhm3-media .uhm3-picture {
    position:absolute !important; inset:0 !important; width:100% !important; height:100% !important;
  }
  .uhm3-hero.tce-hero-preset > .uhm3-media img {
    width:100% !important; height:100% !important; object-fit:cover !important;
    object-position:var(--uhm-photo-align, center center) !important;
    transform:scale(var(--uhm-photo-zoom, 1)) !important;
    transform-origin:var(--uhm-photo-align, center center) !important;
  }
  .uhm3-hero.tce-hero-preset > .uhm3-overlay {
    display:block !important; position:absolute !important; inset:0 !important;
    z-index:1 !important; pointer-events:none !important;
  }
  .uhm3-hero.tce-hero-preset > .uhm3-content {
    position:relative !important; z-index:3 !important; order:1 !important;
    flex:0 0 auto !important; width:100% !important; max-width:100% !important;
    margin:0 !important; padding:clamp(56px, 14vw, 90px) clamp(18px, 5vw, 30px);
    text-align:center;
  }
  .uhm3-hero.tce-hero-preset .uhm3-actions {justify-content:center !important;}
  .uhm3-hero.tce-hero-preset > .uhm3-layers {z-index:2;}
}

/* v3.3.20 - User-adjustable mobile text offset for transparent headers. */
@media (max-width: 767px) {
  .uhm3-hero.tce-hero-preset > .uhm3-content {
    padding-top: calc(clamp(56px, 14vw, 90px) + var(--tce-mobile-text-offset, 0px));
  }
}

/* v3.3.21: Overlay visibility per device (TCE Manifesto only).
   Breakpoints match Elementor defaults: mobile <=767, tablet 768-1024, desktop >=1025.
   Important overrides the legacy mobile display:block rule from v3.3.19. */
@media (min-width: 1025px) {
  .uhm3-hero.tce-hero-preset.tce-overlay-tablet > .uhm3-overlay,
  .uhm3-hero.tce-hero-preset.tce-overlay-mobile > .uhm3-overlay { display:none !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .uhm3-hero.tce-hero-preset.tce-overlay-desktop > .uhm3-overlay,
  .uhm3-hero.tce-hero-preset.tce-overlay-mobile > .uhm3-overlay { display:none !important; }
}
@media (max-width: 767px) {
  .uhm3-hero.tce-hero-preset.tce-overlay-desktop > .uhm3-overlay,
  .uhm3-hero.tce-hero-preset.tce-overlay-tablet > .uhm3-overlay { display:none !important; }
}

/* v3.3.22: configurable eyebrow line layout and offsets */
.tce-hero-preset .uhm3-eyebrow::after {
  display: var(--tce-line-layout, inline-block);
  margin-left: var(--tce-line-gap, 16px);
  transform: translate(var(--tce-line-x, 0px), var(--tce-line-y, 0px));
  position: relative;
}
.tce-hero-preset .uhm3-eyebrow[style*="--never-match"] {display:block;}
/* Use :has selector to make the below layout respect the same controls without modifying markup. */
.tce-hero-preset .uhm3-eyebrow:has(> span) {max-width:100%;}

.tce-hero-preset .uhm3-eyebrow::after {visibility:var(--tce-line-visible, visible);}

/* v3.3.23: opt-in split composition; Elementor split slider owns the boundary.
   The existing mobile image-behind-text treatment is deliberately preserved. */
@media (min-width:768px) {
  .uhm3-hero.uhm3-split { --uhm-split:50%; justify-content:flex-start; }
  .uhm3-hero.uhm3-split > .uhm3-media {
    left:var(--uhm-split) !important; right:0 !important;
    width:calc(100% - var(--uhm-split)) !important;
    transform:none !important; height:100%;
  }
  .uhm3-hero.uhm3-split > .uhm3-content {
    width:var(--uhm-split) !important; max-width:var(--uhm-split) !important;
    flex:0 0 var(--uhm-split) !important; min-width:0;
    overflow-wrap:break-word;
  }
  /* The photo mask remains available for soft/wide transitions,
     but the text stays in its own half. */
}

/* v3.3.24: Elementor widget-generated responsive typography and spacing take precedence over preset mobile defaults. */

/* v3.3.25: protect mobile typography against global theme heading rules.
   Values are sourced from this widget's responsive Elementor typography settings. */
@media (max-width:767px) {
  .elementor-widget-container .uhm3-hero .uhm3-content .uhm3-title {
    font-size:var(--uhm-mobile-title-size, 32px) !important;
    line-height:var(--uhm-mobile-title-line-height, 1.08) !important;
    max-width:100%; overflow-wrap:normal; word-break:normal;
  }
  .elementor-widget-container .uhm3-hero .uhm3-content .uhm3-eyebrow {
    font-size:var(--uhm-mobile-eyebrow-size, 11px) !important;
    line-height:var(--uhm-mobile-eyebrow-line-height, 1.4) !important;
  }
  .elementor-widget-container .uhm3-hero .uhm3-content .uhm3-body {
    font-size:var(--uhm-mobile-body-size, 16px) !important;
    line-height:var(--uhm-mobile-body-line-height, 1.5) !important;
  }
}

/* v3.3.26: guard against oversized descendant headings and forced desktop sizing. */
@media (max-width:767px) {
  .elementor .elementor-widget-container .uhm3-hero .uhm3-content .uhm3-title {
    overflow-wrap:break-word; white-space:normal;
    margin-top:0; max-width:100%;
  }
  .elementor .elementor-widget-container .uhm3-hero .uhm3-content .uhm3-title * {
    font-size:inherit; line-height:inherit;
  }
}
