/* CTA BUILDER CORE LOCK — RC7.9.302
 * Shared CTA geometry applies only to compatible CTA Builder v1 renderers.
 * Locked/legacy renderers opt out completely with .tcc-cta-layout-legacy-lock.
 */
.tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-layout{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,55fr) minmax(220px,41fr);
  align-items:center;
  gap:clamp(24px,4vw,56px);
  width:100%;
  padding-inline:clamp(28px,4vw,64px);
  box-sizing:border-box;
}
.tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-layout.media-left{
  grid-template-columns:minmax(220px,41fr) minmax(0,55fr);
}
.tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-copy{
  grid-column:1;grid-row:1;min-width:0;width:100%;max-width:none;justify-self:stretch;
}
.tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-layout.media-left>.tcc-universal-cta-copy{grid-column:2;}
.tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-media{
  grid-column:2;grid-row:1;display:flex;align-items:center;justify-content:flex-end;justify-self:stretch;
  width:100%;min-width:0;position:relative;z-index:2;
  transform:translate(var(--tcc-cta-media-x,0),var(--tcc-cta-media-y,0));
}
.tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-media.is-left{grid-column:1;justify-content:flex-start;}
.tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-media img{
  display:block;width:min(100%,var(--tcc-cta-media-width,240px));height:auto;max-width:none;
  max-height:clamp(280px,34vw,460px);object-fit:var(--tcc-cta-media-fit,contain);
}
.tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-media.has-shadow img{filter:drop-shadow(0 14px 20px rgba(20,42,34,.13));}
.tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-media.has-float{animation:tccUniversalCtaFloat 4.8s ease-in-out infinite;}
@keyframes tccUniversalCtaFloat{
  0%,100%{transform:translate(var(--tcc-cta-media-x,0),var(--tcc-cta-media-y,0));}
  50%{transform:translate(var(--tcc-cta-media-x,0),calc(var(--tcc-cta-media-y,0) - 4px));}
}
@media(max-width:760px){
  .tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-layout,
  .tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-layout.media-left{grid-template-columns:1fr;gap:24px;padding-inline:22px;}
  .tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-copy,
  .tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-layout.media-left>.tcc-universal-cta-copy{grid-column:1;grid-row:2;width:100%;}
  .tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-media,
  .tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-media.is-left{grid-column:1;grid-row:1;justify-self:center;width:min(78vw,300px);transform:translate(0,var(--tcc-cta-media-y,0));}
  .tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-media img{width:min(100%,var(--tcc-cta-media-width,240px));max-height:260px;}
  .tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-media.has-float{animation:none;}
}
@media(prefers-reduced-motion:reduce){.tcc-cta-builder-v1:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-media.has-float{animation:none;}}

/* RC7.9.63 — Universal Image CTA Card Authority */
.tcc-image-cta-card{position:relative;min-height:var(--tcc-image-cta-height,360px);overflow:hidden;isolation:isolate;border-radius:var(--tcc-cta-engine-radius,var(--tcc-radius-lg,24px))!important;}
.tcc-image-cta-card::after{content:"";display:var(--tcc-media-overlay-display,block);position:absolute;inset:0;border-radius:inherit;background:var(--tcc-media-overlay,linear-gradient(90deg,var(--tcc-image-cta-overlay,rgba(0,58,46,.62)) 0%,rgba(0,58,46,.34) 56%,rgba(0,58,46,.08) 100%));z-index:1;pointer-events:none;}
.tcc-image-cta-card .media,.tcc-image-cta-card .tcc-contact-cta__media,.tcc-image-cta-card .tcc-about-cta__background,.tcc-image-cta-card .tcc-product-cta-engine__background{position:absolute;inset:0;border-radius:inherit!important;background-size:var(--tcc-media-fit,cover)!important;background-position:var(--tcc-media-anchor-x,var(--tcc-media-position-x,50%)) var(--tcc-media-position-y,50%)!important;background-repeat:no-repeat!important;transform:scale(var(--tcc-media-zoom,1));transform-origin:var(--tcc-media-anchor-x,var(--tcc-media-position-x,50%)) var(--tcc-media-position-y,50%);z-index:0;}
.tcc-image-cta-card .overlay,.tcc-image-cta-card .tcc-contact-cta__overlay,.tcc-image-cta-card .tcc-product-cta-engine__overlay{display:none!important;}
.tcc-image-cta-card .inner,.tcc-image-cta-card .tcc-contact-cta__inner,.tcc-image-cta-card .tcc-about-cta__inner,.tcc-image-cta-card .tcc-universal-cta-layout{position:relative;z-index:2;min-height:var(--tcc-image-cta-height,360px);align-items:center;}
.tcc-image-cta-card .tcc-universal-cta-copy,.tcc-image-cta-card .tcc-about-cta__content{max-width:620px;color:#fff;}
.tcc-image-cta-card .tcc-universal-cta-copy h2,.tcc-image-cta-card .tcc-about-cta__content h2,.tcc-image-cta-card .tcc-universal-cta-copy p,.tcc-image-cta-card .tcc-about-cta__content p{color:#fff;}
.tcc-image-cta-card .tcc-universal-cta-media,.tcc-image-cta-card .has-cta-image figure{display:none!important;}
.tcc-image-cta-align-center .tcc-universal-cta-copy,.tcc-image-cta-align-center .tcc-about-cta__content{margin-inline:auto;text-align:center;}
.tcc-image-cta-align-right .tcc-universal-cta-copy,.tcc-image-cta-align-right .tcc-about-cta__content{margin-left:auto;text-align:right;}
@media(max-width:767px){.tcc-image-cta-card{min-height:320px}.tcc-image-cta-card .inner,.tcc-image-cta-card .tcc-contact-cta__inner,.tcc-image-cta-card .tcc-about-cta__inner,.tcc-image-cta-card .tcc-universal-cta-layout{min-height:320px}.tcc-image-cta-card::after{background:var(--tcc-media-overlay,none)}}

@media(max-width:1024px){.tcc-image-cta-card .media,.tcc-image-cta-card .tcc-contact-cta__media,.tcc-image-cta-card .tcc-about-cta__background,.tcc-image-cta-card .tcc-product-cta-engine__background{background-position:var(--tcc-media-anchor-x-tablet,var(--tcc-media-anchor-x,var(--tcc-media-position-x-tablet,var(--tcc-media-position-x,50%)))) var(--tcc-media-position-y-tablet,var(--tcc-media-position-y,50%))!important;transform:scale(var(--tcc-media-zoom-tablet,var(--tcc-media-zoom,1)));transform-origin:var(--tcc-media-anchor-x-tablet,var(--tcc-media-anchor-x,var(--tcc-media-position-x-tablet,var(--tcc-media-position-x,50%)))) var(--tcc-media-position-y-tablet,var(--tcc-media-position-y,50%));}}
@media(max-width:767px){.tcc-image-cta-card .media,.tcc-image-cta-card .tcc-contact-cta__media,.tcc-image-cta-card .tcc-about-cta__background,.tcc-image-cta-card .tcc-product-cta-engine__background{background-position:var(--tcc-media-anchor-x-mobile,var(--tcc-media-anchor-x,var(--tcc-media-position-x-mobile,var(--tcc-media-position-x,50%)))) var(--tcc-media-position-y-mobile,var(--tcc-media-position-y,50%))!important;transform:scale(var(--tcc-media-zoom-mobile,var(--tcc-media-zoom,1)));transform-origin:var(--tcc-media-anchor-x-mobile,var(--tcc-media-anchor-x,var(--tcc-media-position-x-mobile,var(--tcc-media-position-x,50%)))) var(--tcc-media-position-y-mobile,var(--tcc-media-position-y,50%));}}

/* RC7.9.295 — Global Image CTA Card authority normalization.
 * Image CTA Card owns the whole card background and the full content canvas.
 * Page CSS must not keep split-card columns or legacy overlay paint. */
.tcc-image-cta-card .tcc-universal-cta-layout,
.tcc-image-cta-card .tcc-about-cta__inner,
.tcc-image-cta-card .tcc-contact-cta__inner,
.tcc-image-cta-card .inner > .tcc-universal-cta-layout{
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:auto!important;
}
.tcc-image-cta-card .tcc-universal-cta-copy,
.tcc-image-cta-card .tcc-about-cta__content{
  grid-column:1!important;
  grid-row:1!important;
  width:min(100%,620px)!important;
}
.tcc-image-cta-card.tcc-image-cta-align-left .tcc-universal-cta-copy,
.tcc-image-cta-card.tcc-image-cta-align-left .tcc-about-cta__content{
  margin-left:0!important;
  margin-right:auto!important;
  text-align:left!important;
}
.tcc-image-cta-card.tcc-image-cta-align-center .tcc-universal-cta-copy,
.tcc-image-cta-card.tcc-image-cta-align-center .tcc-about-cta__content{
  margin-inline:auto!important;
  text-align:center!important;
}
.tcc-image-cta-card.tcc-image-cta-align-right .tcc-universal-cta-copy,
.tcc-image-cta-card.tcc-image-cta-align-right .tcc-about-cta__content{
  margin-left:auto!important;
  margin-right:0!important;
  text-align:right!important;
}
.tcc-image-cta-card[style*="--tcc-media-overlay-display:none"]::after{
  display:none!important;
  content:none!important;
  background:none!important;
}


/* RC7.9.297 — Standard CTA without media must not reserve the media column. */
.tcc-standard-cta-card:not(.has-cta-image) .tcc-universal-cta-layout{grid-template-columns:minmax(0,1fr)!important;}
.tcc-standard-cta-card:not(.has-cta-image) .tcc-universal-cta-copy{grid-column:1!important;grid-row:1!important;justify-self:start!important;margin-left:0!important;margin-right:auto!important;text-align:left!important;}

/* RC7.9.298 — About CTA single runtime authority.
 * Shared variables own image composition and overlay paint. About only maps
 * those variables to its concrete background/overlay elements. No legacy
 * gradient, pseudo-overlay, or reserved empty media column remains. */
body.tcc-design-sync.tcc-frontend-engine .tcc-about-page .tcc-about-cta{
  text-align:left!important;
}
body.tcc-design-sync.tcc-frontend-engine .tcc-about-page .tcc-about-cta::after{
  content:none!important;
  display:none!important;
  background:none!important;
}
body.tcc-design-sync.tcc-frontend-engine .tcc-about-page .tcc-about-cta .tcc-about-cta__background{
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  border-radius:inherit!important;
  background-image:var(--cta-bg,none)!important;
  background-size:var(--tcc-media-fit,cover)!important;
  background-position:var(--tcc-media-anchor-x,var(--tcc-media-position-x,50%)) var(--tcc-media-position-y,50%)!important;
  background-repeat:no-repeat!important;
  transform:scale(var(--tcc-media-zoom,1))!important;
  transform-origin:var(--tcc-media-anchor-x,var(--tcc-media-position-x,50%)) var(--tcc-media-position-y,50%)!important;
}
body.tcc-design-sync.tcc-frontend-engine .tcc-about-page .tcc-about-cta .tcc-about-cta__overlay{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  display:none!important;
  border-radius:inherit!important;
  pointer-events:none!important;
  background:none!important;
}
body.tcc-design-sync.tcc-frontend-engine .tcc-about-page .tcc-about-cta.tcc-image-cta-card .tcc-about-cta__overlay{
  display:var(--tcc-media-overlay-display,block)!important;
  background:var(--tcc-media-overlay,none)!important;
}
body.tcc-design-sync.tcc-frontend-engine .tcc-about-page .tcc-about-cta.tcc-standard-cta-card .tcc-about-cta__background,
body.tcc-design-sync.tcc-frontend-engine .tcc-about-page .tcc-about-cta.tcc-standard-cta-card .tcc-about-cta__overlay{
  display:none!important;
  background:none!important;
  transform:none!important;
}
body.tcc-design-sync.tcc-frontend-engine .tcc-about-page .tcc-about-cta .tcc-about-cta__inner{
  position:relative!important;
  z-index:2!important;
}
body.tcc-design-sync.tcc-frontend-engine .tcc-about-page .tcc-about-cta.tcc-standard-cta-card.no-cta-image .tcc-about-cta__inner{
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:auto!important;
}
body.tcc-design-sync.tcc-frontend-engine .tcc-about-page .tcc-about-cta.tcc-standard-cta-card.no-cta-image .tcc-about-cta__content{
  grid-column:1!important;
  grid-row:1!important;
  width:min(100%,760px)!important;
  max-width:760px!important;
  justify-self:start!important;
  margin:0!important;
  text-align:left!important;
}
body.tcc-design-sync.tcc-frontend-engine .tcc-about-page .tcc-about-cta .tcc-about-cta__content,
body.tcc-design-sync.tcc-frontend-engine .tcc-about-page .tcc-about-cta .tcc-a-actions{
  text-align:left!important;
  justify-content:flex-start!important;
}
@media(max-width:1024px){
  body.tcc-design-sync.tcc-frontend-engine .tcc-about-page .tcc-about-cta .tcc-about-cta__background{
    background-position:var(--tcc-media-anchor-x-tablet,var(--tcc-media-position-x-tablet,var(--tcc-media-anchor-x,var(--tcc-media-position-x,50%)))) var(--tcc-media-position-y-tablet,var(--tcc-media-position-y,50%))!important;
    transform:scale(var(--tcc-media-zoom-tablet,var(--tcc-media-zoom,1)))!important;
  }
}
@media(max-width:767px){
  body.tcc-design-sync.tcc-frontend-engine .tcc-about-page .tcc-about-cta .tcc-about-cta__background{
    background-position:var(--tcc-media-anchor-x-mobile,var(--tcc-media-position-x-mobile,var(--tcc-media-anchor-x,var(--tcc-media-position-x,50%)))) var(--tcc-media-position-y-mobile,var(--tcc-media-position-y,50%))!important;
    transform:scale(var(--tcc-media-zoom-mobile,var(--tcc-media-zoom,1)))!important;
  }
}


/* RC7.9.301 — Locked-page compatibility guard.
 * Legacy/locked CTA renderers opt out with .tcc-cta-layout-legacy-lock.
 * Their page module remains the final geometry authority; shared media rendering
 * and admin data remain available without importing Premium Layout v2 geometry. */
/* RC7.9.300 — Premium CTA Layout Engine v2.
 * One shared geometry authority: 55% content, 41% visual, 4% breathing zone.
 * The media is edge-aware, while card padding supplies the safe area. */
.tcc-standard-cta-card.has-cta-image:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-layout{
  grid-template-columns:minmax(0,55fr) minmax(220px,41fr)!important;
  gap:clamp(24px,4vw,56px)!important;
  padding-inline:clamp(28px,4vw,64px)!important;
}
.tcc-standard-cta-card.has-cta-image:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-layout.media-left{
  grid-template-columns:minmax(220px,41fr) minmax(0,55fr)!important;
}
.tcc-standard-cta-card.has-cta-image:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-copy{
  width:100%!important;
  max-width:none!important;
  text-align:left!important;
}
.tcc-standard-cta-card.has-cta-image:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-media{
  justify-content:flex-end!important;
  padding-right:clamp(0px,1vw,16px);
  box-sizing:border-box;
}
.tcc-standard-cta-card.has-cta-image:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-media.is-left{
  justify-content:flex-start!important;
  padding-right:0;
  padding-left:clamp(0px,1vw,16px);
}
@media(max-width:760px){
  .tcc-standard-cta-card.has-cta-image:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-layout,
  .tcc-standard-cta-card.has-cta-image:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-layout.media-left{
    grid-template-columns:1fr!important;
    padding-inline:22px!important;
  }
  .tcc-standard-cta-card.has-cta-image:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-media,
  .tcc-standard-cta-card.has-cta-image:not(.tcc-cta-layout-legacy-lock) .tcc-universal-cta-media.is-left{
    justify-content:center!important;
    padding:0!important;
  }
}
