/* Reasoned. — CMS section layouts (public + preview). Responsive: clamp, auto-fit, no overflow. */
.cms-dynamic-root{min-width:0;overflow-x:hidden}
/* Size presets: width + --cms-scale (content proportion). medium = 1 baseline. */
.cms-sec{--cms-scale:1}
.cms-size-small{--cms-scale:.85}
.cms-size-medium{--cms-scale:1}
.cms-size-large{--cms-scale:1.15}
.cms-size-full{--cms-scale:1}
.cms-size-custom{--cms-scale:1} /* overridden by inline --cms-scale from contentScale */
/* Proportionally scale ALL section content (incl. edu/.sec layouts without cms-h*). */
.cms-size-small,
.cms-size-medium,
.cms-size-large,
.cms-size-full,
.cms-size-custom{
  zoom:var(--cms-scale, 1);
}
.cms-size-small .cms-sec-inner{max-width:min(480px,90vw);margin-left:auto;margin-right:auto}
.cms-size-medium .cms-sec-inner,.cms-size-custom .cms-sec-inner{max-width:min(720px,90vw);margin-left:auto;margin-right:auto}
.cms-size-large .cms-sec-inner{max-width:min(1000px,94vw);margin-left:auto;margin-right:auto}
.cms-size-full .cms-sec-inner{max-width:100%}
/* Section vertical spacing (Layout → Section spacing) */
.cms-gap-none{margin-block:0}
.cms-gap-compact{margin-block:clamp(12px,2vw,24px)}
.cms-gap-normal{margin-block:clamp(24px,4vw,48px)}
.cms-gap-roomy{margin-block:clamp(40px,6vw,80px)}
.cms-gap-custom{margin-block:var(--cms-section-gap,32px)}
/* Image frame shapes (rectangle default / square / circle) */
.cms-frame-square,.cms-frame-circle{aspect-ratio:1/1;overflow:hidden}
.cms-frame-square img,.cms-frame-circle img{width:100%;height:100%;object-fit:cover;display:block}
.cms-frame-circle{border-radius:50%}
.cms-frame-rectangle img{width:100%;height:auto;display:block;object-fit:cover}
.cms-frame-ar{overflow:hidden}
.cms-frame-ar img{width:100%;height:100%;object-fit:contain;display:block}
.cms-logo-item.cms-frame-square,.cms-logo-item.cms-frame-circle{display:inline-flex;align-items:center;justify-content:center;width:clamp(72px,12vw,120px);height:clamp(72px,12vw,120px)}
.cms-logo-item.cms-frame-square img,.cms-logo-item.cms-frame-circle img{max-height:none;max-width:none;object-fit:contain}
/* Logo strip aspect frames: ratio from section CSS vars (desktop / mobile independent) */
.cms-layout-logo-strip .cms-logo-item.cms-frame-ar{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:clamp(88px,14vw,160px);
  height:auto;
  aspect-ratio:var(--cms-logo-ar, auto);
  max-height:none;
}
.cms-layout-logo-strip .cms-logo-item.cms-frame-ar img{
  max-height:none;
  max-width:none;
  width:100%;
  height:100%;
  object-fit:contain;
}
.cms-layout-logo-strip.cms-size-small .cms-logo-item.cms-frame-ar{width:clamp(64px,12vw,112px)}
.cms-layout-logo-strip.cms-size-large .cms-logo-item.cms-frame-ar{width:clamp(104px,16vw,200px)}
.cms-layout-logo-strip.cms-size-full .cms-logo-item.cms-frame-ar{width:clamp(120px,18vw,220px)}
@media (max-width:767px){
  .cms-layout-logo-strip .cms-logo-item.cms-frame-ar{
    aspect-ratio:var(--cms-logo-ar-mobile, var(--cms-logo-ar, auto));
  }
}
.cms-video-small .cms-video-wrap{max-width:clamp(280px,90vw,480px);margin-left:auto;margin-right:auto}
.cms-video-medium .cms-video-wrap{max-width:clamp(320px,80vw,720px);margin-left:auto;margin-right:auto}
.cms-video-large .cms-video-wrap{max-width:clamp(400px,90vw,1000px);margin-left:auto;margin-right:auto}
.cms-video-full .cms-video-wrap{max-width:min(100%,100vw)}
.cms-video-layout-row{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
.cms-video-desc-col{flex:0 1 40%;min-width:200px}
.cms-video-col{flex:1;min-width:280px}
.cms-media-stack{display:flex;flex-direction:column;gap:clamp(16px,3vw,28px)}
.cms-media-stack .cms-col-img{width:100%}
.cms-media-stack .cms-col-img img{width:100%;height:auto;display:block;object-fit:cover;border-radius:12px}
@media (max-width:767px){
  /* Keep DOM order so left/right still differ when stacked (text-first vs video-first). */
  .cms-video-layout-row{flex-direction:column}
  .cms-video-desc-col,.cms-video-col{flex:1 1 100%;min-width:0}
}
.cms-text-left .cms-hero-inner{text-align:left}
.cms-text-centre .cms-hero-inner{text-align:center}
.cms-text-right .cms-hero-inner{text-align:right}
/* Flex CTA buttons: text-align doesn't affect flex children — use justify-content */
.cms-text-left .cms-hero-btns{justify-content:flex-start}
.cms-text-centre .cms-hero-btns{justify-content:center}
.cms-text-right .cms-hero-btns{justify-content:flex-end}
/* Centre/right: subheading block with max-width needs margin to align */
.cms-text-centre .cms-hero-inner > .cms-body{margin-left:auto;margin-right:auto}
.cms-text-right .cms-hero-inner > .cms-body{margin-left:auto;margin-right:0}
/* Hero-split: text alignment + CTA button alignment */
.cms-text-left .cms-hero-split-txt{text-align:left}
.cms-text-centre .cms-hero-split-txt{text-align:center}
.cms-text-right .cms-hero-split-txt{text-align:right}
.cms-hero-split-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.cms-text-left .cms-hero-split-btns{justify-content:flex-start}
.cms-text-centre .cms-hero-split-btns{justify-content:center}
.cms-text-right .cms-hero-split-btns{justify-content:flex-end}
/* Header-paragraph: text alignment */
.cms-text-left.cms-layout-header-para .cms-sec-inner{text-align:left}
.cms-text-centre.cms-layout-header-para .cms-sec-inner{text-align:center}
.cms-text-right.cms-layout-header-para .cms-sec-inner{text-align:right}
.cms-align-left .cms-sec-inner,.cms-align-left .cms-cta-banner,.cms-align-left .cms-grid-stats{text-align:left}
.cms-align-centre .cms-sec-inner,.cms-align-centre .cms-cta-banner{text-align:center}
.cms-align-centre .cms-grid-stats{justify-content:center}
/* Dynamic grids: consistent spacing, break-inside for clean stacks */
.cms-grid-dyn{display:grid;gap:clamp(18px,3.2vw,28px);min-width:0;align-items:stretch}
.cms-items-grid > .cms-item{min-width:0;break-inside:avoid}
.cms-item-hidden{display:none!important}
.cms-load-more-wrap{text-align:center;margin-top:clamp(24px,4vw,36px);padding-top:8px}
.cms-grid-dyn.cms-cols-1,.cms-cols-1 .cms-grid-dyn{grid-template-columns:1fr}
.cms-grid-dyn.cms-cols-2,.cms-cols-2 .cms-grid-dyn{grid-template-columns:repeat(2,1fr)}
.cms-grid-dyn.cms-cols-3,.cms-cols-3 .cms-grid-dyn{grid-template-columns:repeat(3,1fr)}
.cms-grid-dyn.cms-cols-4,.cms-cols-4 .cms-grid-dyn{grid-template-columns:repeat(4,1fr)}
/* FAQ minimal: still reads as a card, not raw text on black */
.cms-faq-minimal .cms-faq-item{
  background:color-mix(in srgb,var(--card) 55%,transparent)!important;
  border:1px solid var(--border)!important;
  border-radius:clamp(14px,2vw,18px)!important;
  box-shadow:0 4px 24px rgba(0,0,0,0.35)!important;
}
.cms-faq-minimal .cms-faq-item{border-top:2px solid color-mix(in srgb,var(--acc) 55%,transparent)!important}
.cms-sec{
  position:relative;
  padding:clamp(40px,6vw,100px) clamp(20px,5vw,80px);
  overflow-x:hidden;
  max-width:100%;
}
/* Section padding presets (override .cms-sec default when both present) */
.cms-sec-pad-none{padding:0!important}
.cms-sec-pad-sm{padding:clamp(16px,2.5vw,28px) clamp(12px,3vw,24px)!important}
.cms-sec-pad-md{padding:clamp(40px,6vw,100px) clamp(20px,5vw,80px)!important}
.cms-sec-pad-lg{padding:clamp(60px,10vw,140px) clamp(24px,6vw,100px)!important}
/* Section background presets */
.cms-sec-bg-default{background:inherit}
.cms-sec-bg-dark{background:var(--surf,#111416)}
.cms-sec-bg-accent{background:linear-gradient(135deg,color-mix(in srgb, var(--acc) 12%, transparent) 0%,var(--card) 100%);border-top:1px solid color-mix(in srgb, var(--acc) 25%, transparent);border-bottom:1px solid color-mix(in srgb, var(--acc) 15%, transparent)}
.cms-sec-bg-custom{background:var(--section-bg-color,var(--card))}
/* Section visibility (mobile/desktop) */
@media (max-width:767px){
  .cms-only-desktop{display:none!important}
}
@media (min-width:768px){
  .cms-only-mobile{display:none!important}
}
.cms-sec-inner{max-width:1300px;margin:0 auto;min-width:0}
.cms-sec h1,.cms-sec h2,.cms-sec h3{font-family:var(--fb);font-weight:700;color:#fff;overflow-wrap:break-word}
/* Typography tokens: set via GET /api/global-sections/typography → compiled_css (fallbacks match legacy) */
.cms-sec .cms-h1,.cms-dynamic-root .cms-h1{
  font-family:var(--rt-h1-font-family, var(--fd,'Bebas Neue',sans-serif));
  font-size:var(--rt-h1-font-size, clamp(40px,6vw,104px));
  line-height:var(--rt-h1-line-height, 1.1);
  letter-spacing:var(--rt-h1-letter-spacing, -0.02em);
  color:var(--rt-h1-color, #fff);
  margin-top:var(--rt-h1-margin-top, 0);
  margin-bottom:var(--rt-h1-margin-bottom, 0);
  max-width:var(--rt-h1-max-width, none);
  text-align:var(--rt-h1-text-align, inherit);
  text-transform:var(--rt-h1-text-transform, none);
  opacity:var(--rt-h1-opacity, 1);
  overflow-wrap:break-word;
}
.cms-sec .cms-h2,.cms-dynamic-root .cms-h2{
  font-family:var(--rt-h2-font-family, var(--fb));
  font-size:var(--rt-h2-font-size, clamp(27px,4vw,58px));
  line-height:var(--rt-h2-line-height, 1.1);
  letter-spacing:var(--rt-h2-letter-spacing, normal);
  color:var(--rt-h2-color, #fff);
  margin-top:var(--rt-h2-margin-top, 0);
  margin-bottom:var(--rt-h2-margin-bottom, 0);
  max-width:var(--rt-h2-max-width, none);
  text-align:var(--rt-h2-text-align, inherit);
  text-transform:var(--rt-h2-text-transform, none);
  opacity:var(--rt-h2-opacity, 1);
  overflow-wrap:break-word;
}
.cms-sec .cms-h3,.cms-dynamic-root .cms-h3{
  font-family:var(--rt-h3-font-family, var(--fb));
  font-size:var(--rt-h3-font-size, clamp(19px,2.2vw,25px));
  line-height:var(--rt-h3-line-height, 1.2);
  letter-spacing:var(--rt-h3-letter-spacing, normal);
  color:var(--rt-h3-color, #fff);
  margin-top:var(--rt-h3-margin-top, 0);
  margin-bottom:var(--rt-h3-margin-bottom, 0);
  max-width:var(--rt-h3-max-width, none);
  text-align:var(--rt-h3-text-align, inherit);
  text-transform:var(--rt-h3-text-transform, none);
  opacity:var(--rt-h3-opacity, 1);
  overflow-wrap:break-word;
}
.cms-sec .cms-body,.cms-sec p.cms-body,.cms-dynamic-root .cms-body,.cms-dynamic-root p.cms-body{
  font-family:var(--rt-body-font-family, var(--fb));
  font-size:var(--rt-body-font-size, clamp(16px,1.5vw,19px));
  line-height:var(--rt-body-line-height, 1.6);
  letter-spacing:var(--rt-body-letter-spacing, normal);
  color:var(--rt-body-color, var(--txt2));
  margin-top:var(--rt-body-margin-top, 0);
  margin-bottom:var(--rt-body-margin-bottom, 0);
  max-width:var(--rt-body-max-width, none);
  text-align:var(--rt-body-text-align, inherit);
  text-transform:var(--rt-body-text-transform, none);
  opacity:var(--rt-body-opacity, 1);
  overflow-wrap:break-word;
}
.cms-sec .cms-body a,.cms-dynamic-root .cms-body a{color:var(--acc);text-decoration:underline}
.cms-sec .tag,.cms-dynamic-root .tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-family:var(--rt-subheading-font-family, var(--fb));
  font-size:var(--rt-subheading-font-size, 14px);
  font-weight:var(--rt-subheading-font-weight, 700);
  line-height:var(--rt-subheading-line-height, 1.4);
  letter-spacing:var(--rt-subheading-letter-spacing, 2px);
  text-transform:var(--rt-subheading-text-transform, uppercase);
  color:var(--rt-subheading-color, var(--acc));
  margin-top:var(--rt-subheading-margin-top, 0);
  margin-bottom:var(--rt-subheading-margin-bottom, 14px);
  text-align:var(--rt-subheading-text-align, inherit);
  max-width:var(--rt-subheading-max-width, none);
  opacity:var(--rt-subheading-opacity, 1);
}
.cms-sec .tag::before,.cms-dynamic-root .tag::before{content:'';display:block;width:18px;height:2px;background:var(--acc)}
.cms-hero-btns{display:flex;flex-wrap:wrap;gap:clamp(10px,2vw,16px);margin-top:clamp(20px,3vw,32px)}
@media (max-width:639px){
  .cms-hero-btns{flex-direction:column}
  .cms-hero-btns .btn{width:100%;justify-content:center}
}
.cms-hero-btns .btn{
  font-family:var(--rt-cta-font-family, var(--fb));
  font-size:var(--rt-cta-font-size, clamp(15px,1.5vw,18px));
  font-weight:var(--rt-cta-font-weight, 700);
  line-height:var(--rt-cta-line-height, 1.2);
  letter-spacing:var(--rt-cta-letter-spacing, 0.3px);
  color:var(--rt-cta-color, #000);
  text-align:var(--rt-cta-text-align, center);
  text-transform:var(--rt-cta-text-transform, none);
  opacity:var(--rt-cta-opacity, 1);
}
.cms-hero-btns .btn.btn-p:hover,.cms-hero-btns .btn.btn-lg:hover{
  color:var(--rt-cta-hover-color, var(--rt-cta-color, #000));
}
.cms-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,3vw,32px);align-items:center;min-width:0}
.cms-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,3vw,32px);min-width:0}
.cms-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,3vw,32px);min-width:0}
.cms-grid-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,3vw,24px);min-width:0}
/* Tablet: 2 columns (4/3/2 → 2) */
@media(max-width:1023px){
  .cms-grid-3,.cms-grid-4{grid-template-columns:repeat(2,1fr)}
  .cms-grid-stats{grid-template-columns:repeat(2,1fr)}
  .cms-cols-3 .cms-grid-dyn,.cms-cols-4 .cms-grid-dyn,.cms-grid-dyn.cms-cols-3,.cms-grid-dyn.cms-cols-4{grid-template-columns:repeat(2,1fr)}
  .cms-edu-diff-grid,.cms-edu-educators-grid{grid-template-columns:repeat(2,1fr)!important}
  .cms-icon-grid.cms-grid-dyn,.cms-icon-grid{grid-template-columns:repeat(2,1fr)}
}
/* Mobile: 1 column */
@media(max-width:767px){
  .cms-grid-2,.cms-grid-3,.cms-grid-4{grid-template-columns:1fr}
  .cms-grid-stats{grid-template-columns:1fr}
  .cms-step{flex-direction:column;align-items:flex-start}
  .cms-icon-grid.cms-grid-dyn,.cms-icon-grid{grid-template-columns:1fr}
  .cms-cols-2 .cms-grid-dyn,.cms-cols-3 .cms-grid-dyn,.cms-cols-4 .cms-grid-dyn,.cms-grid-dyn.cms-cols-2,.cms-grid-dyn.cms-cols-3,.cms-grid-dyn.cms-cols-4{grid-template-columns:1fr}
  .cms-edu-diff-grid,.cms-edu-educators-grid{grid-template-columns:1fr!important}
  .cms-countdown-inner{flex-direction:column!important}
  .cms-tabs-wrap .cms-tab-bar{flex-direction:column}
}
/* Stats bar section surface (was inline style — allows Section Background to apply) */
.cms-stats-bar-sec{background:var(--card);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.cms-sec-bg-custom.cms-stats-bar-sec{background:var(--section-bg-color,var(--card))!important}
/* Brand-aligned surfaces: rounded corners + green top accent + soft glow (matches legacy .card / employ cards) */
.cms-card{
  --cms-card-r:clamp(16px,2.2vw,22px);
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--cms-card-r);
  border-top:2px solid var(--acc,#00C281);
  padding:clamp(20px,3.2vw,28px);
  box-shadow:var(--cshadow,0 0 25px rgba(0,0,0,0.6)),0 0 40px color-mix(in srgb, var(--acc) 10%, transparent),inset 0 1px 0 rgba(255,255,255,0.03);
  min-width:0;
  overflow-wrap:break-word;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.cms-card:hover{
  transform:translateY(-3px);
  border-color:color-mix(in srgb, var(--acc) 35%, transparent);
  box-shadow:var(--cshadow,0 0 25px rgba(0,0,0,0.6)),0 12px 40px rgba(0,0,0,0.45),0 0 48px color-mix(in srgb, var(--acc) 18%, transparent);
}
.cms-legacy-wrap .cms-card:hover{transform:none;box-shadow:var(--cshadow,0 0 25px rgba(0,0,0,0.6)),0 0 40px color-mix(in srgb, var(--acc) 10%, transparent),inset 0 1px 0 rgba(255,255,255,0.03)}
.cms-card img{width:100%;height:auto;max-height:200px;object-fit:cover;border-radius:8px;margin-bottom:12px}
.cms-img-wrap{width:100%;min-width:0;border-radius:clamp(14px,2vw,18px);overflow:hidden;border:1px solid var(--border);box-shadow:0 0 24px rgba(0,0,0,0.35)}
.cms-img-wrap img{width:100%;height:auto;display:block;vertical-align:middle}
.cms-steps{list-style:none;padding:0;margin:0}
.cms-step{
  display:flex;
  gap:clamp(14px,2vw,20px);
  margin-bottom:clamp(20px,3vw,28px);
  align-items:flex-start;
  background:var(--card);
  border:1px solid var(--border);
  border-radius:clamp(16px,2vw,20px);
  border-top:2px solid var(--acc,#00C281);
  padding:clamp(18px,3vw,24px);
  box-shadow:0 0 32px color-mix(in srgb, var(--acc) 8%, transparent),var(--cshadow,0 0 25px rgba(0,0,0,0.5));
}
.cms-step-num{flex-shrink:0;width:40px;height:40px;background:var(--acc);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--fd);font-size:16px;color:#000;font-weight:700;box-shadow:0 0 18px color-mix(in srgb, var(--acc) 45%, transparent)}
.cms-stat-item{text-align:center;padding:clamp(12px,2vw,18px);border-right:1px solid var(--border);min-width:0}
.cms-stat-item:last-child{border-right:none}
@media (max-width:639px){
  .cms-stat-item{border-right:none;border-bottom:1px solid var(--border)}
  .cms-stat-item:last-child{border-bottom:none}
}
.cms-stat-num{font-family:var(--fd);font-size:clamp(29px,4vw,50px);color:var(--acc);line-height:1;text-shadow:0 0 22px color-mix(in srgb, var(--acc) 35%, transparent)}
.cms-stat-lbl{
  font-family:var(--rt-caption-font-family, var(--fb));
  font-size:var(--rt-caption-font-size, clamp(12px,1.2vw,15px));
  font-weight:var(--rt-caption-font-weight, 600);
  line-height:var(--rt-caption-line-height, 1.4);
  letter-spacing:var(--rt-caption-letter-spacing, 0.5px);
  color:var(--rt-caption-color, var(--txt2));
  text-transform:var(--rt-caption-text-transform, uppercase);
  margin-top:var(--rt-caption-margin-top, 6px);
  margin-bottom:var(--rt-caption-margin-bottom, 0);
  opacity:var(--rt-caption-opacity, 1);
}
/* Inline caption / meta (team cards, video captions) — uses caption tokens */
.cms-sec .cms-caption,.cms-dynamic-root .cms-caption{
  font-family:var(--rt-caption-font-family, var(--fb));
  font-size:var(--rt-caption-font-size, 12px);
  font-weight:var(--rt-caption-font-weight, 600);
  line-height:var(--rt-caption-line-height, 1.4);
  letter-spacing:var(--rt-caption-letter-spacing, normal);
  color:var(--rt-caption-color, var(--txt2));
  text-transform:var(--rt-caption-text-transform, none);
  margin-top:var(--rt-caption-margin-top, 4px);
  opacity:var(--rt-caption-opacity, 1);
}
/* Same element: caption typography must not override global Body colour for paragraph copy */
.cms-sec .cms-body.cms-caption,.cms-dynamic-root .cms-body.cms-caption{
  color:var(--rt-body-color, var(--txt2));
}
.cms-video-caption{
  margin-top:10px;
  font-size:var(--rt-caption-font-size, 13px);
  color:var(--rt-caption-color, var(--txt2));
}
.cms-sec .cms-h3.cms-h3-accent,.cms-dynamic-root .cms-h3.cms-h3-accent{color:var(--acc,#00C281)}
.cms-breadcrumb{
  font-size:var(--rt-caption-font-size, 13px);
  color:var(--rt-caption-color, var(--txt2));
  margin-bottom:8px;
}
.cms-breadcrumb-sep{color:var(--rt-caption-color, var(--txt2))}
.cms-empty-icon{
  margin-bottom:16px;
  font-size:48px;
  line-height:1;
  color:var(--rt-caption-color, var(--txt2));
}
.cms-link-view-more{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:var(--rt-body-font-size, 14px);
  font-weight:600;
  color:var(--rt-cta-color, var(--acc));
  text-decoration:none;
}
.cms-link-view-more .cms-link-arrow{font-size:18px;font-weight:900;line-height:1}
.cms-box-card-title{
  font-family:var(--rt-h3-font-family, var(--fb));
  font-size:var(--rt-h3-font-size, 14px);
  font-weight:700;
  color:var(--rt-h3-color, #fff);
  margin-bottom:6px;
}
.cms-box-card-body{
  font-family:var(--rt-caption-font-family, var(--fb));
  font-size:var(--rt-caption-font-size, 12px);
  line-height:1.6;
  color:var(--rt-caption-color, var(--txt2));
}
.cms-flowchart-quiz{margin-top:12px;font-size:var(--rt-caption-font-size, 13px)}
.cms-flowchart-quiz a{color:var(--rt-cta-color, var(--acc));font-weight:600;text-decoration:none}
.cms-comp-inline-label{
  font-family:var(--rt-subheading-font-family, var(--fb));
  font-size:var(--rt-subheading-font-size, 11px);
  font-weight:var(--rt-subheading-font-weight, 700);
  letter-spacing:var(--rt-subheading-letter-spacing, 2px);
  text-transform:var(--rt-subheading-text-transform, uppercase);
  color:var(--rt-subheading-color, var(--acc));
}
.cms-comp-time-label{
  font-size:var(--rt-caption-font-size, 10px);
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:6px;
}
.cms-comp-countdown{font-family:var(--fd);font-size:var(--rt-h3-font-size, 22px);color:var(--rt-cta-color, var(--acc))}
.cms-edu-ed-card .ed-n{font-family:var(--rt-h3-font-family, var(--fb));font-size:var(--rt-h3-font-size, clamp(17px,2vw,20px));font-weight:700;color:var(--rt-h3-color, #fff)}
.cms-edu-ed-card .ed-c{font-family:var(--rt-caption-font-family, var(--fb));font-size:var(--rt-caption-font-size, 13px);color:var(--rt-caption-color, var(--txt2));margin-bottom:12px}
.cms-cta-banner{
  background:linear-gradient(135deg,var(--surf2) 0%,var(--card) 100%);
  border:1px solid var(--border);
  border-radius:clamp(18px,2.5vw,26px);
  border-top:2px solid var(--acc,#00C281);
  padding:clamp(32px,5vw,56px) clamp(20px,4vw,48px);
  text-align:center;
  box-shadow:0 0 48px color-mix(in srgb, var(--acc) 12%, transparent),var(--cshadow,0 0 25px rgba(0,0,0,0.55));
}
.cms-cta-banner .btn{margin-top:clamp(16px,2vw,24px)}
@media (max-width:639px){
  .cms-cta-banner .btn{width:100%}
}
/* left/right placement is DOM order in cms.layout.js — do not RTL-flip .cms-img-right */
.cms-hero-simple{background:var(--surf);border-bottom:1px solid var(--border);box-shadow:0 24px 48px rgba(0,0,0,0.35)}
.cms-layout-hero .cms-hero-inner{position:relative}
/* Custom background: layouts with hard-coded bg must be overridden when sectionBg=custom */
.cms-sec-bg-custom.cms-hero-simple,
.cms-sec-bg-custom.cms-layout-hero,
.cms-sec-bg-custom.cms-testimonials-sec,
.cms-sec-bg-custom.cms-countdown-banner,
.cms-sec-bg-custom.cms-announcement-bar,
.cms-sec-bg-custom.cms-page-header{background:var(--section-bg-color,var(--card))!important}
/* cta-banner bg is on a child div, so override via descendant selector */
.cms-sec-bg-custom .cms-cta-banner{background:var(--section-bg-color,var(--card))!important}
/* Scroll animations */
.cms-a-fadein{opacity:0;transition:opacity 0.75s ease-out}
.cms-a-fadein.cms-a-in{opacity:1}
.cms-a-fadeup{opacity:0;transform:translateY(28px);transition:opacity 0.7s ease-out,transform 0.7s ease-out}
.cms-a-fadeup.cms-a-in{opacity:1;transform:translateY(0)}
.cms-a-fadeleft{opacity:0;transform:translateX(-32px);transition:opacity 0.7s ease-out,transform 0.7s ease-out}
.cms-a-fadeleft.cms-a-in{opacity:1;transform:translateX(0)}
.cms-a-faderight{opacity:0;transform:translateX(32px);transition:opacity 0.7s ease-out,transform 0.7s ease-out}
.cms-a-faderight.cms-a-in{opacity:1;transform:translateX(0)}
.cms-a-zoom{opacity:0;transform:scale(0.94);transition:opacity 0.65s ease-out,transform 0.65s ease-out}
.cms-a-zoom.cms-a-in{opacity:1;transform:scale(1)}
.cms-a-stagger .cms-stagger-item{opacity:0;transform:translateY(20px);transition:opacity 0.55s ease-out,transform 0.55s ease-out}
.cms-a-stagger.cms-a-in .cms-stagger-item{opacity:1;transform:translateY(0)}
.cms-a-stagger.cms-a-in .cms-stagger-item:nth-child(1){transition-delay:0.05s}
.cms-a-stagger.cms-a-in .cms-stagger-item:nth-child(2){transition-delay:0.12s}
.cms-a-stagger.cms-a-in .cms-stagger-item:nth-child(3){transition-delay:0.19s}
.cms-a-stagger.cms-a-in .cms-stagger-item:nth-child(4){transition-delay:0.26s}
.cms-a-stagger.cms-a-in .cms-stagger-item:nth-child(5){transition-delay:0.33s}
.cms-a-stagger.cms-a-in .cms-stagger-item:nth-child(6){transition-delay:0.4s}
/* New section layouts — testimonials match legacy .test-card / .tq / .tmeta */
.cms-testimonials-sec{background:var(--surf,#111416);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.cms-testimonials-sec .cms-sec-head{text-align:center}
.cms-testimonial-card{
  display:flex;
  flex-direction:column;
  text-align:left;
}
.cms-testimonial-card .cms-testimonial-stars{
  color:#FFD700;
  font-size:12px;
  letter-spacing:1px;
  margin-bottom:8px;
  line-height:1;
}
.cms-testimonial-badge{
  font-size:11px;
  font-weight:700;
  letter-spacing:1px;
  color:var(--acc,#00C281);
  text-transform:uppercase;
  margin-bottom:10px;
}
.cms-tq{
  font-family:var(--rt-body-font-family, var(--fb));
  font-size:var(--rt-body-font-size, 16px);
  line-height:var(--rt-body-line-height, 1.7);
  color:var(--rt-body-color, var(--txt2,#9AA7A3));
  margin-bottom:0;
  font-style:italic;
}
.cms-tq::before{
  content:'"';
  font-size:clamp(36px,5vw,50px);
  color:var(--acc,#00C281);
  opacity:.35;
  line-height:0;
  vertical-align:-16px;
  margin-right:4px;
  font-family:var(--fd,'Bebas Neue',Georgia,serif);
}
.cms-tmeta{
  border-top:1px solid var(--border);
  padding-top:16px;
  margin-top:18px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.cms-tmeta-main{min-width:0;flex:1}
.cms-tname{font-size:17px;font-weight:700;color:#fff}
.cms-tuni{font-size:14px;color:var(--muted,#5a6a65);margin-top:4px}
.cms-tmeta-av{width:44px;height:44px;border-radius:50%;overflow:hidden;flex-shrink:0;border:2px solid color-mix(in srgb, var(--acc) 35%, transparent);box-shadow:0 0 16px color-mix(in srgb, var(--acc) 20%, transparent)}
.cms-tmeta-av img{width:100%;height:100%;object-fit:cover;display:block}
.cms-testimonial-av{width:48px;height:48px;border-radius:50%;overflow:hidden;margin-bottom:12px;flex-shrink:0}
.cms-testimonial-meta{font-size:15px;color:var(--txt2)}
.cms-faq{display:flex;flex-direction:column;gap:12px}
.cms-faq-item{
  border:1px solid var(--border);
  border-radius:clamp(14px,2vw,18px);
  overflow:hidden;
  background:var(--card);
  border-top:2px solid var(--acc,#00C281);
  box-shadow:0 0 28px color-mix(in srgb, var(--acc) 8%, transparent),var(--cshadow,0 0 20px rgba(0,0,0,0.45));
}
.cms-faq-trigger{
  width:100%;
  border:none;
  margin:0;
  padding:16px 20px;
  cursor:pointer;
  font:inherit;
  font-weight:600;
  color:#fff;
  text-align:left;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  background:transparent;
  transition:color 0.2s ease, background 0.2s ease;
}
.cms-faq-trigger:hover{color:var(--acc)}
.cms-faq-trigger:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.cms-faq-q-text{flex:1;min-width:0}
.cms-faq-icon{
  flex-shrink:0;
  width:28px;
  height:28px;
  border-radius:50%;
  border:1px solid color-mix(in srgb,var(--acc) 45%,transparent);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  line-height:1;
  color:var(--acc);
  transition:transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.cms-faq-item.is-open .cms-faq-icon{transform:rotate(45deg)}
.cms-faq-panel{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.cms-faq-item.is-open .cms-faq-panel{grid-template-rows:1fr}
.cms-faq-panel-inner{overflow:hidden;min-height:0}
.cms-faq-answer{
  padding:0 20px 18px;
  border-top:1px solid var(--border);
  font-family:var(--rt-body-font-family, var(--fb));
  font-size:var(--rt-body-font-size, 16px);
  line-height:var(--rt-body-line-height, 1.55);
  color:var(--rt-body-color, var(--txt2));
}
.cms-countdown-banner{background:var(--card);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.cms-countdown-inner{display:flex;flex-direction:column;align-items:center;text-align:center;flex-wrap:wrap;gap:16px}
@media (min-width:640px){.cms-countdown-inner{flex-direction:row;justify-content:center}}
.cms-countdown-grid{display:flex;gap:clamp(12px,2vw,24px);flex-wrap:wrap;justify-content:center}
.cms-count-unit{display:flex;flex-direction:column;align-items:center;min-width:60px;padding:12px;background:rgba(0,0,0,0.35);border-radius:clamp(12px,1.5vw,16px);border:1px solid var(--border);border-top:2px solid var(--acc,#00C281);box-shadow:0 0 24px color-mix(in srgb, var(--acc) 12%, transparent)}
.cms-count-n{font-family:var(--fd);font-size:clamp(27px,4vw,40px);color:var(--acc);line-height:1}
.cms-count-lbl{font-size:12px;color:var(--txt2);text-transform:uppercase;margin-top:4px}
.cms-comparison-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  max-width:100%;
  min-width:0;
}
/* Don't let section overflow:hidden clip a scrollable comparison table. */
.cms-layout-comparison.cms-sec{overflow-x:visible}
.cms-comparison-table{
  width:100%;
  max-width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  font-family:var(--rt-body-font-family, var(--fb));
  font-size:var(--rt-body-font-size, 16px);
}
.cms-comparison-table th,.cms-comparison-table td{
  padding:12px 16px;
  border:1px solid var(--border);
  text-align:center;
  vertical-align:top;
  overflow-wrap:anywhere;
  word-break:break-word;
  hyphens:auto;
}
.cms-comparison-table th{background:var(--surf,#111416);font-weight:700;color:#fff;border-top:2px solid var(--acc,#00C281)}
.cms-comparison-table thead tr:first-child th:first-child{border-top-left-radius:clamp(10px,1.5vw,14px)}
.cms-comparison-table thead tr:first-child th:last-child{border-top-right-radius:clamp(10px,1.5vw,14px)}
.cms-comparison-table .cms-feature-cell{text-align:left;width:18%;font-weight:600;color:var(--txt2)}
.cms-tier-highlight{border-color:var(--acc)!important;box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--acc) 30%, transparent)}
@media (max-width:767px){
  .cms-comparison-table{
    font-size:clamp(10px,2.7vw,13px);
    line-height:1.35;
  }
  .cms-comparison-table th,.cms-comparison-table td{
    padding:clamp(6px,1.8vw,10px) clamp(4px,1.2vw,8px);
  }
  .cms-comparison-table .cms-feature-cell{
    width:22%;
    font-size:clamp(9px,2.5vw,12px);
  }
  .cms-comparison-table th{
    font-size:clamp(9px,2.4vw,12px);
    letter-spacing:0;
  }
}
.cms-round-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(14px,2vw,22px)}
.cms-round-card{background:var(--card);border:1px solid var(--border);border-radius:clamp(12px,1.8vw,16px);padding:clamp(16px,2.4vw,22px);display:flex;flex-direction:column;gap:12px}
.cms-round-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.cms-round-date{font-size:15px;color:var(--txt2)}
.cms-round-status{display:inline-flex;align-items:center;gap:6px;font-size:14px;padding:4px 10px;border-radius:999px;border:1px solid var(--border)}
.cms-round-status::before{content:'●';font-size:11px}
.cms-round-status-live{color:var(--acc);border-color:color-mix(in srgb, var(--acc) 45%, transparent);background:color-mix(in srgb, var(--acc) 12%, transparent)}
.cms-round-status-upcoming{color:#f0c66b;border-color:rgba(240,198,107,0.45);background:rgba(240,198,107,0.12)}
.cms-round-status-closed{color:#9AA7A3;border-color:rgba(154,167,163,0.4);background:rgba(154,167,163,0.1)}
.cms-round-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cms-round-kpi{padding:10px;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,0.02);text-align:center}
.cms-round-kpi-v{font-weight:700;color:#fff;font-size:clamp(18px,2vw,22px);line-height:1.1}
.cms-round-kpi-l{font-size:12px;color:var(--txt2);margin-top:4px}
.cms-round-cta{margin-top:auto;align-self:flex-start}
@media (max-width:700px){
  .cms-round-kpis{grid-template-columns:1fr}
  .cms-round-cta{width:100%;justify-content:center}
}
/* Logo strip — full-width marquee; default image heights doubled vs previous */
.cms-logo-marquee-outer{
  overflow:hidden;
  width:100%;
  max-width:100%;
  margin:0;
  padding:16px 0;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 2%,#000 98%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 2%,#000 98%,transparent 100%);
}
.cms-logo-marquee-track{
  display:flex;
  width:max-content;
  animation:cmsLogoMarquee var(--cms-logo-marquee-dur,40s) linear infinite;
  will-change:transform;
}
.cms-logo-marquee-dir-right .cms-logo-marquee-track{animation-direction:reverse}
/* Pause marquee while a logo is hovered (no JS; design-token glow on the item below) */
.cms-logo-marquee-outer:has(.cms-logo-item:hover) .cms-logo-marquee-track,
.cms-logo-marquee-outer.cms-logo-marquee-paused .cms-logo-marquee-track{
  animation-play-state:paused;
}
@keyframes cmsLogoMarquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
@media (max-width:767px){
  .cms-logo-marquee-track{
    animation-duration:var(--cms-logo-marquee-dur-mobile, var(--cms-logo-marquee-dur,40s));
  }
}
@media (prefers-reduced-motion:reduce){
  .cms-logo-marquee-track{animation-duration:80s!important}
}
.cms-logo-marquee-seq{
  display:flex;
  flex-shrink:0;
  align-items:center;
  gap:clamp(28px,4.5vw,56px);
}
.cms-layout-logo-strip.cms-size-small .cms-logo-marquee-seq{gap:clamp(16px,3vw,32px)}
.cms-layout-logo-strip.cms-size-large .cms-logo-marquee-seq{gap:clamp(32px,5vw,64px)}
.cms-layout-logo-strip.cms-size-full .cms-logo-marquee-seq{gap:clamp(36px,5.5vw,72px)}
.cms-logo-item,
a.cms-logo-link.cms-logo-item{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  padding:8px 10px;
  border-radius:clamp(10px,1.5vw,14px);
  transition:box-shadow 0.25s ease, transform 0.25s ease, outline 0.2s ease;
  text-decoration:none;
  color:inherit;
  position:relative;
  z-index:0;
}
.cms-logo-item img{
  max-height:96px;
  width:auto;
  max-width:min(240px,28vw);
  object-fit:contain;
  opacity:1;
  transition:transform 0.25s ease, filter 0.25s ease;
}
.cms-size-small .cms-logo-item img{max-height:56px;max-width:min(180px,32vw)}
.cms-size-medium .cms-logo-item img,.cms-size-custom .cms-logo-item img{max-height:calc(96px * var(--cms-scale, 1));max-width:min(calc(240px * var(--cms-scale, 1)),28vw)}
.cms-size-large .cms-logo-item img{max-height:128px;max-width:min(280px,30vw)}
.cms-size-full .cms-logo-item img{max-height:160px;max-width:min(320px,35vw)}
.cms-logo-item:hover,
.cms-logo-link:hover{
  z-index:2;
  transform:translateZ(0);
  box-shadow:
    0 0 0 2px color-mix(in srgb, var(--acc) 45%, transparent),
    0 0 28px color-mix(in srgb, var(--acc) 28%, transparent),
    0 0 48px color-mix(in srgb, var(--acc) 12%, transparent);
  background:color-mix(in srgb, var(--card) 35%, transparent);
}
.cms-logo-item:hover img,
.cms-logo-link:hover img{
  transform:scale(1.05);
  filter:drop-shadow(0 0 14px color-mix(in srgb, var(--acc) 40%, transparent));
}
.cms-logo-link:focus-visible{
  outline:2px solid var(--acc);
  outline-offset:4px;
}
/* Card grid images scale with section Size */
.cms-layout-cards.cms-size-small .cms-card-feature .cms-img-wrap{max-height:100px!important}
.cms-layout-cards.cms-size-medium .cms-card-feature .cms-img-wrap,
.cms-layout-cards.cms-size-custom .cms-card-feature .cms-img-wrap{max-height:calc(160px * var(--cms-scale, 1))!important}
.cms-layout-cards.cms-size-large .cms-card-feature .cms-img-wrap{max-height:200px!important}
.cms-layout-cards.cms-size-full .cms-card-feature .cms-img-wrap{max-height:240px!important}
/* Empty state: inner padding no longer fights Section padding */
.cms-empty-state-inner{text-align:center;padding:clamp(16px,3vw,40px) 0}
.cms-video-wrap{position:relative;aspect-ratio:16/9;background:#111;border-radius:clamp(14px,2vw,20px);overflow:hidden;border:1px solid var(--border);box-shadow:0 0 36px color-mix(in srgb, var(--acc) 10%, transparent)}
.cms-video-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;cursor:pointer}
.cms-video-placeholder img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cms-video-play{position:relative;width:64px;height:64px;background:var(--acc);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:27px;z-index:1}
.cms-team-linkedin{display:inline-block;margin-top:8px;padding:6px 12px;background:var(--surf,#111416);border:1px solid color-mix(in srgb, var(--acc) 35%, transparent);border-radius:8px;color:var(--acc);text-decoration:none;font-size:14px;transition:box-shadow .2s}
.cms-team-linkedin:hover{box-shadow:0 0 18px color-mix(in srgb, var(--acc) 35%, transparent)}
.cms-team-card-wrap .cms-img-wrap{margin-bottom:16px;border:2px solid color-mix(in srgb, var(--acc) 35%, transparent);box-shadow:0 0 28px color-mix(in srgb, var(--acc) 15%, transparent)}
.cms-timeline{position:relative;padding-left:24px}
.cms-timeline::before{content:'';position:absolute;left:8px;top:0;bottom:0;width:2px;background:var(--border)}
.cms-tl-item{position:relative;margin-bottom:28px}
.cms-tl-dot{position:absolute;left:-24px;top:0;width:28px;height:28px;background:var(--acc);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}
.cms-tl-content{margin-left:8px}
.cms-tabs-wrap{background:var(--card);border:1px solid var(--border);border-radius:clamp(16px,2vw,20px);border-top:2px solid var(--acc,#00C281);padding:clamp(16px,3vw,24px);box-shadow:0 0 36px color-mix(in srgb, var(--acc) 8%, transparent),var(--cshadow,0 0 20px rgba(0,0,0,0.45))}
.cms-tabs-wrap .cms-tab-bar{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.cms-tab-btn{padding:10px 18px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--txt2);cursor:pointer;font-family:inherit;font-size:16px;transition:all .2s}
.cms-tab-btn:hover,.cms-tab-btn.active{color:var(--acc)}
.cms-tab-btn.active{border-bottom-color:var(--acc)}
.cms-tab-panel{display:none;padding-top:8px}
.cms-tab-panel.active{display:block}
.cms-icon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}
.cms-icon-grid.cms-grid-dyn{display:grid;gap:clamp(16px,3vw,24px);min-width:0}
.cms-icon-card{
  text-align:center;
  padding:clamp(22px,3vw,28px) clamp(16px,2vw,20px);
  border:1px solid var(--border);
  border-radius:clamp(16px,2.2vw,22px);
  border-top:2px solid var(--acc,#00C281);
  background:var(--card);
  box-shadow:var(--cshadow,0 0 25px rgba(0,0,0,0.55)),0 0 36px color-mix(in srgb, var(--acc) 10%, transparent);
  transition:transform .25s ease,box-shadow .25s ease;
}
.cms-icon-card:hover{transform:translateY(-3px);box-shadow:0 12px 36px rgba(0,0,0,0.45),0 0 44px color-mix(in srgb, var(--acc) 16%, transparent)}
.cms-icon-card .cms-icon-cell{font-size:clamp(29px,4vw,36px)}
.cms-icon-cell{margin-bottom:12px;font-size:32px;color:var(--acc)}
.cms-icon-placeholder{display:inline-flex;align-items:center;justify-content:center}
.cms-announcement-bar{position:sticky;top:0;z-index:100;background:var(--card);border-bottom:1px solid var(--border);padding:12px 20px}
.cms-announcement-bar::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--acc)}
.cms-announcement-msg{flex:1;font-size:16px}
.cms-announcement-close{background:none;border:none;color:var(--txt2);font-size:25px;cursor:pointer;padding:0 8px;line-height:1}
.cms-form-block{max-width:680px;margin:0 auto;padding:32px;background:var(--card);border:1px solid var(--border);border-radius:clamp(16px,2.2vw,22px);border-top:2px solid var(--acc,#00C281);box-shadow:0 0 40px color-mix(in srgb, var(--acc) 10%, transparent),var(--cshadow,0 0 25px rgba(0,0,0,0.5))}
/* Thank-you / error line: hidden until the active form runtime completes. */
.cms-form-block .cms-form-success{display:none !important;margin-top:16px;padding:12px 14px;border-radius:8px;font-size:15px;line-height:1.5;color:var(--acc,#00C281);background:color-mix(in srgb,var(--acc,#00C281) 12%,transparent);border:1px solid color-mix(in srgb,var(--acc,#00C281) 35%,transparent)}
.cms-form-block .cms-form-success.cms-form-success--visible{display:block !important}
.cms-form .cms-form-field{margin-bottom:16px}
.cms-form .cms-form-field label{display:block;font-size:14px;margin-bottom:6px;color:var(--txt2)}
.cms-form input,.cms-form textarea,.cms-form select{width:100%;padding:12px;background:#0a0c0e;border:1px solid var(--border);border-radius:8px;color:var(--txt)}
.cms-form input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  accent-color:transparent;
  width:16px;
  height:16px;
  border-radius:4px;
  border:1px solid rgba(255,255,255,0.18);
  background:rgba(0,0,0,0.35);
  box-shadow:0 0 0 1px rgba(0,0,0,0.35) inset;
  position:relative;
  cursor:pointer;
  vertical-align:middle;
  transition:background .15s,border-color .15s,box-shadow .15s;
}
.cms-form input[type="checkbox"]:hover{border-color:color-mix(in srgb, var(--acc) 55%, transparent)}
.cms-form input[type="checkbox"]:checked{
  background:var(--acc);
  border-color:color-mix(in srgb, var(--acc) 90%, transparent);
  box-shadow:0 0 0 1px rgba(0,0,0,0.15) inset,0 0 18px color-mix(in srgb, var(--acc) 22%, transparent);
}
.cms-form input[type="checkbox"]:checked::after{
  content:'';
  position:absolute;
  left:5px;
  top:2px;
  width:4px;
  height:8px;
  border:solid #00140c;
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
}
.cms-form input[type="checkbox"]:focus-visible{outline:2px solid color-mix(in srgb, var(--acc) 80%, transparent);outline-offset:2px}
.cms-form-align-left .cms-form-block{margin:0 auto 0 0}
.cms-form-align-right .cms-form-block{margin:0 0 0 auto}
.cms-layout-form-block .cms-sec-inner{max-width:1180px;margin:0 auto}
.cms-form-stack{display:flex;flex-direction:column;gap:16px;max-width:760px;margin:0 auto}
.cms-form-split{display:grid;grid-template-columns:minmax(360px,1.15fr) minmax(440px,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.cms-form-split .cms-form-block{max-width:none;margin:0;width:100%}
.cms-form-side{padding:0;background:transparent;border:none;border-radius:0}
.cms-form-side .cms-h3{font-size:clamp(32px,4.5vw,61px);line-height:1.05;letter-spacing:-0.02em;color:#fff;margin:0}
.cms-form-side .cms-body{
  max-width:560px;
  font-family:var(--rt-body-font-family, var(--fb));
  font-size:var(--rt-body-font-size, clamp(17px,1.5vw,20px));
  line-height:var(--rt-body-line-height, 1.7);
  color:var(--rt-body-color, var(--txt2));
}
.cms-form-radio-group{display:flex;flex-direction:column;gap:8px}
.cms-form-radio{display:flex;align-items:center;gap:8px;color:var(--txt)}
.cms-form-radio input{width:auto;padding:0}
@media(max-width:1100px){
  .cms-form-split{grid-template-columns:1fr;gap:22px}
  .cms-form-split .cms-form-block{max-width:760px;margin:0 auto}
  .cms-form-side .cms-h3{font-size:clamp(27px,6vw,45px)}
}
.cms-page-header{background:linear-gradient(180deg,var(--card) 0%,var(--surf,#111416) 100%);border-bottom:1px solid var(--border);box-shadow:0 12px 40px rgba(0,0,0,0.35)}
.cms-partners-sub{max-width:860px;margin:0 auto 18px;text-align:center}
.cms-partners-tabs-wrap{display:flex;justify-content:center;margin-bottom:18px}
.cms-partners-tabs{display:flex;gap:10px;overflow:auto;padding-bottom:6px}
.cms-partners-tab{border:1px solid var(--border);background:var(--card);color:var(--txt2);border-radius:999px;padding:8px 14px;cursor:pointer;white-space:nowrap}
.cms-partners-tab.active{border-color:var(--acc,#00C281);color:var(--txt);box-shadow:0 0 0 1px color-mix(in srgb, var(--acc) 25%, transparent) inset}
.cms-partners-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.cms-partner-card{background:var(--card);border:1px solid var(--border);border-radius:16px;overflow:hidden;position:relative;display:flex;flex-direction:column;transition:transform .2s ease,opacity .2s ease}
.cms-partner-card:hover{transform:translateY(-3px)}
.cms-partner-cover-wrap{height:120px;background:var(--surf2)}
.cms-partner-cover{width:100%;height:100%;object-fit:cover;display:block}
.cms-partner-logo-wrap{position:absolute;left:16px;top:84px;width:72px;height:72px;border-radius:50%;background:var(--card);border:2px solid rgba(255,255,255,0.14);display:flex;align-items:center;justify-content:center;overflow:hidden}
.cms-partner-logo{width:100%;height:100%;object-fit:cover}
.cms-partner-logo-fallback{font-weight:700;color:var(--txt)}
.cms-partner-body{padding:48px 16px 16px;display:flex;flex-direction:column;gap:10px}
.cms-partner-body .cms-body{margin:0;min-height:48px}
.cms-partner-cta-btn{margin-top:auto;align-self:center;display:inline-flex;justify-content:center;min-width:170px;text-align:center}
.cms-partners-load-wrap{margin-top:14px}
.cms-item-hidden{display:none!important}
.cms-partners-modal{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:10040;display:none;align-items:center;justify-content:center;padding:20px}
.cms-partners-modal.open{display:flex}
.cms-partners-modal-card{width:min(920px,96vw);max-height:90vh;overflow:auto;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px}
.cms-partners-modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.cms-partners-modal-top{display:grid;grid-template-columns:1.1fr 1fr;gap:16px;margin-bottom:14px}
.cms-partners-modal-hero{width:100%;max-height:260px;object-fit:cover;border-radius:12px;border:1px solid var(--border)}
.cms-partners-modal-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.cms-partners-modal-gallery-img{width:100%;aspect-ratio:1.2/1;object-fit:cover;border-radius:10px;border:1px solid var(--border)}
@media (max-width:1200px){.cms-partners-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:900px){.cms-partners-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:640px){.cms-partners-grid{grid-template-columns:1fr;}.cms-partners-tabs-wrap{justify-content:flex-start}}
@media (max-width:900px){.cms-partners-modal-top{grid-template-columns:1fr}.cms-partners-modal-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Inline CMS on main site: keep cards from jumping while editing */
body.cms-admin-active .cms-card:hover,
body.cms-admin-active .cms-icon-card:hover{transform:none!important}

/* Generic CMS Carousel */
.cms-carousel-wrap{position:relative;min-height:200px;background:var(--card);border:1px solid var(--border);border-radius:clamp(14px,2vw,20px);overflow:hidden;padding:clamp(24px,4vw,40px)}
.cms-carousel-slides{position:relative;min-height:160px}
.cms-carousel-slide{display:none;animation:cms-carousel-fade .4s ease}
.cms-carousel-slide.active{display:block}
@keyframes cms-carousel-fade{from{opacity:0}to{opacity:1}}
.cms-carousel-title{font-size:clamp(18px,2.5vw,22px);font-weight:700;margin:0 0 12px;color:#fff}
.cms-carousel-body{
  font-family:var(--rt-body-font-family, var(--fb));
  font-size:var(--rt-body-font-size, 16px);
  color:var(--rt-body-color, var(--txt2));
  line-height:var(--rt-body-line-height, 1.7);
  margin:0;
}
.cms-carousel-slide-inner.cms-carousel-image-only img,
.cms-carousel-slide-inner.cms-carousel-image-text img{width:100%;max-height:320px;object-fit:cover;border-radius:8px}
.cms-carousel-placeholder{min-height:200px;background:var(--surf);border:1px dashed var(--border);border-radius:8px}
.cms-carousel-slide-inner.cms-carousel-image-text{position:relative}
.cms-carousel-overlay{position:absolute;bottom:0;left:0;right:0;padding:20px 24px;background:linear-gradient(transparent,rgba(0,0,0,0.9));border-radius:0 0 8px 8px}
.cms-carousel-overlay .cms-carousel-title{margin:0 0 8px;font-size:18px}
.cms-carousel-overlay .cms-carousel-body{
  font-size:var(--rt-body-font-size, 15px);
  margin:0;
}
.cms-carousel-dots{display:flex;gap:10px;justify-content:center;margin-top:20px;flex-wrap:wrap}
.cms-carousel-dot{width:10px;height:10px;border-radius:50%;background:var(--border);cursor:pointer;transition:all .2s}
.cms-carousel-dot:hover,.cms-carousel-dot.active{background:var(--acc,#00C281)}
.cms-carousel-dot.active{transform:scale(1.25)}
.cms-carousel-arrows{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;opacity:0.6;transition:opacity .2s;z-index:2}
.cms-carousel-wrap:hover .cms-carousel-arrows{opacity:1}
.cms-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:rgba(0,0,0,0.6);border:1px solid var(--border);color:#fff;font-size:27px;cursor:pointer;display:flex;align-items:center;justify-content:center;pointer-events:auto;transition:background .2s}
.cms-carousel-arrow:hover{background:var(--acc);color:#000}
.cms-carousel-prev{left:12px}
.cms-carousel-next{right:12px}
@media(max-width:639px){
  .cms-carousel-arrows{opacity:1}
  .cms-carousel-arrow{width:36px;height:36px;font-size:22px}
  .cms-carousel-prev{left:8px}
  .cms-carousel-next{right:8px}
}
/* Text + 4 boxes responsive */
@media(max-width:1023px){
  .cms-text-4boxes{grid-template-columns:1fr!important}
}
@media(max-width:767px){
  .cms-text-4boxes > div:last-child{grid-template-columns:1fr}
}

/* Image gallery + lightbox */
.cms-gallery-hd{margin-bottom:clamp(18px,3vw,28px)}
.cms-gallery-grid{display:grid;gap:clamp(14px,2.5vw,22px);min-width:0}
.cms-gallery-cols-2 .cms-gallery-grid{grid-template-columns:repeat(2,1fr)}
.cms-gallery-cols-3 .cms-gallery-grid{grid-template-columns:repeat(3,1fr)}
.cms-gallery-cols-4 .cms-gallery-grid{grid-template-columns:repeat(4,1fr)}
@media(max-width:1023px){
  .cms-gallery-cols-4 .cms-gallery-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:639px){
  .cms-gallery-cols-2 .cms-gallery-grid,.cms-gallery-cols-3 .cms-gallery-grid,.cms-gallery-cols-4 .cms-gallery-grid{grid-template-columns:1fr}
}
.cms-gallery-item{margin:0;min-width:0}
.cms-gallery-thumb{
  display:block;width:100%;padding:0;border:none;border-radius:10px;overflow:hidden;cursor:default;
  background:var(--surf,#111416);border:1px solid var(--border);transition:box-shadow .2s,transform .15s
}
.cms-gallery-thumb:has(a){cursor:pointer}
.cms-gallery-thumb:hover{box-shadow:0 8px 28px rgba(0,0,0,.45);transform:scale(1.01)}
.cms-gallery-thumb img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;vertical-align:middle}
.cms-gallery-thumb a.cms-img-link{display:block;width:100%;line-height:0}
.cms-gallery-cap{margin-top:8px;font-size:14px;color:var(--txt2,#9aa7a3);line-height:1.45}
.cms-gallery-lightbox{
  position:fixed;inset:0;z-index:99990;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;padding:48px 16px;box-sizing:border-box
}
.cms-gl-fig{margin:0;max-width:min(1100px,96vw);max-height:90vh;text-align:center}
.cms-gl-fig img{max-width:100%;max-height:78vh;width:auto;height:auto;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.cms-gl-cap{margin-top:14px;color:#e8e8e8;font-size:15px;line-height:1.5;max-width:720px;margin-left:auto;margin-right:auto}
.cms-gl-close,.cms-gl-prev,.cms-gl-next{
  position:absolute;z-index:2;border:1px solid var(--border);background:rgba(20,24,28,.9);color:#fff;border-radius:10px;cursor:pointer;font-size:28px;line-height:1;padding:6px 14px;transition:background .15s,color .15s
}
.cms-gl-close:hover,.cms-gl-prev:hover,.cms-gl-next:hover{background:var(--acc,#00C281);color:#000}
.cms-gl-close{top:16px;right:16px;font-size:32px;padding:4px 16px}
.cms-gl-prev{left:16px;top:50%;transform:translateY(-50%)}
.cms-gl-next{right:16px;top:50%;transform:translateY(-50%)}
@media(max-width:520px){
  .cms-gl-prev,.cms-gl-next{font-size:22px;padding:4px 10px}
}

/* Pull quote — Mohave for quote body; oversized accent mark */
.cms-pull-quote-in{display:flex;flex-wrap:wrap;gap:clamp(20px,4vw,40px);align-items:center;justify-content:center}
.cms-pull-quote-img{flex:0 0 auto;max-width:min(200px,40vw)}
.cms-pull-quote-img img{width:100%;height:auto;border-radius:50%;object-fit:cover;aspect-ratio:1;border:2px solid var(--border)}
.cms-pull-quote-bq{margin:0;flex:1;min-width:min(100%,320px);max-width:800px;border:none;padding:0}
.cms-pull-quote-row{display:flex;flex-direction:row;align-items:flex-start;gap:clamp(4px,1.2vw,12px);min-width:0}
.cms-pull-quote-open{
  flex-shrink:0;
  font-family:var(--fb,'Mohave',system-ui,sans-serif);
  font-size:clamp(3.25rem,9vw,6rem);
  font-weight:700;
  line-height:0.82;
  color:var(--acc,#00C281);
  user-select:none;
  margin-top:0.02em;
}
.cms-pull-quote-text{
  font-family:var(--fb,'Mohave',system-ui,sans-serif);
  font-size:clamp(22px,4vw,40px);
  font-weight:600;
  line-height:1.25;
  color:#fff;
  margin:0 0 16px;
  flex:1;
  min-width:0
}
.cms-pull-quote-ft{font-style:normal;font-size:16px;color:var(--txt2,#9aa7a3)}
.cms-pull-quote-cite{font-style:normal;color:var(--acc,#00C281);font-weight:600}
.cms-pull-quote-role{display:block;margin-top:6px;font-size:14px}

/* Accordion group (distinct from FAQ) — button + grid panel, matches FAQ interaction */
.cms-accordion-list{display:flex;flex-direction:column;gap:12px}
.cms-accordion-item{
  border:1px solid var(--border);
  border-radius:clamp(14px,2vw,18px);
  background:var(--card,#0d0f11);
  overflow:hidden;
  border-top:2px solid var(--acc,#00C281);
  box-shadow:0 0 28px color-mix(in srgb, var(--acc) 8%, transparent),var(--cshadow,0 0 20px rgba(0,0,0,0.45));
}
.cms-accordion-minimal .cms-accordion-item{
  background:color-mix(in srgb,var(--card) 55%,transparent)!important;
  border:1px solid var(--border)!important;
  border-radius:clamp(14px,2vw,18px)!important;
}
.cms-accordion-trigger.cms-accordion-sum{
  width:100%;
  border:none;
  margin:0;
  padding:16px 20px;
  cursor:pointer;
  font:inherit;
  font-weight:600;
  color:#fff;
  text-align:left;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  background:transparent;
  transition:color 0.2s ease;
}
.cms-accordion-trigger:hover{color:var(--acc)}
.cms-accordion-trigger:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.cms-accordion-title-text{flex:1;min-width:0}
.cms-accordion-icon{
  flex-shrink:0;
  width:28px;
  height:28px;
  border-radius:50%;
  border:1px solid color-mix(in srgb,var(--acc) 45%,transparent);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  color:var(--acc);
  transition:transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.cms-accordion-item.is-open .cms-accordion-icon{transform:rotate(45deg)}
.cms-accordion-panel{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.cms-accordion-item.is-open .cms-accordion-panel{grid-template-rows:1fr}
.cms-accordion-panel-inner{overflow:hidden;min-height:0}
.cms-accordion-body{
  padding:0 20px 18px;
  border-top:1px solid var(--border);
  font-size:var(--rt-body-font-size,15px);
  line-height:1.55;
  color:var(--txt2,#cfcfcf);
}
.cms-accordion-group-hd{margin-bottom:24px}

/* Optional section intro block (Page Builder: heading / subheading / body + position) */
.cms-section-intro-shell{display:flex;flex-direction:column;gap:clamp(16px,3vw,28px);width:100%;min-width:0}
.cms-section-intro-shell.cms-section-intro-pos-left,
.cms-section-intro-shell.cms-section-intro-pos-right{
  flex-direction:row;align-items:flex-start;gap:clamp(20px,4vw,40px)
}
.cms-section-intro-text{
  flex:0 0 min(40%,420px);
  min-width:0
}
/* Intro text alignment (heading / sub / body block); typography comes from .cms-h2 / .cms-h3 / .cms-body + theme tokens */
.cms-section-intro-text.cms-section-intro-align-left{text-align:left}
.cms-section-intro-text.cms-section-intro-align-centre{text-align:center}
.cms-section-intro-text.cms-section-intro-align-right{text-align:right}
.cms-section-intro-text.cms-section-intro-align-justify{text-align:justify}
.cms-section-intro-shell.cms-section-intro-pos-left .cms-section-intro-text{order:0}
.cms-section-intro-shell.cms-section-intro-pos-left .cms-section-intro-main{order:1;flex:1;min-width:0}
.cms-section-intro-shell.cms-section-intro-pos-right .cms-section-intro-main{order:0;flex:1;min-width:0}
.cms-section-intro-shell.cms-section-intro-pos-right .cms-section-intro-text{order:1;flex:0 0 min(40%,420px)}
.cms-section-intro-main{flex:1;min-width:0}
.cms-section-intro-heading{margin:0 0 10px}
.cms-section-intro-sub{margin:0 0 12px}
.cms-section-intro-body{margin:0}
@media (max-width:768px){
  .cms-section-intro-shell.cms-section-intro-pos-left,
  .cms-section-intro-shell.cms-section-intro-pos-right{
    flex-direction:column
  }
  .cms-section-intro-shell.cms-section-intro-pos-right .cms-section-intro-main{order:1}
  .cms-section-intro-shell.cms-section-intro-pos-right .cms-section-intro-text{order:0}
  .cms-section-intro-text{flex:1 1 auto;max-width:none}
}

/* ── BIG SCREENS (very large displays only): widen inner widths + gently upscale spacing ── */
@media (min-width:2200px){
  .cms-sec-inner{max-width:min(1800px,92vw)}
  .cms-size-small .cms-sec-inner{max-width:min(560px,90vw)}
  .cms-size-medium .cms-sec-inner,.cms-size-custom .cms-sec-inner{max-width:min(860px,90vw)}
  .cms-size-large .cms-sec-inner{max-width:min(1320px,94vw)}

  .cms-sec{
    padding:clamp(48px,5vw,120px) clamp(24px,4vw,96px);
  }
  .cms-sec-pad-sm{padding:clamp(18px,2vw,32px) clamp(14px,2.4vw,30px)!important}
  .cms-sec-pad-md{padding:clamp(48px,5vw,120px) clamp(24px,4vw,96px)!important}
  .cms-sec-pad-lg{padding:clamp(72px,7vw,160px) clamp(28px,4.5vw,120px)!important}
}

/* Split feature cards (employability-style): copy | card grid — stacks on mobile */
.cms-split-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px);align-items:center;min-width:0}
.cms-split-feature-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;min-width:0}
.cms-split-card{min-width:0;overflow-wrap:break-word}
.cms-split-card-title{font-weight:700;color:#fff;font-size:14px;margin-bottom:6px}
.cms-split-card-body{font-size:12px;color:var(--txt2);line-height:1.6}
.cms-split-feature-body{color:var(--txt2);font-size:15px;line-height:1.7;margin:0 0 28px}
@media(max-width:900px){
  .cms-split-feature-grid{grid-template-columns:1fr;gap:28px}
  .cms-split-feature-cards{grid-template-columns:1fr}
}
.cms-layout-reasoned-score .cms-score-pillars{min-width:0}
.cms-layout-reasoned-score .cms-score-band{min-width:0}
@media(max-width:900px){
  .cms-layout-reasoned-score .cms-score-pillars{grid-template-columns:1fr 1fr!important}
  .cms-layout-reasoned-score .cms-score-band{grid-template-columns:1fr!important;gap:6px!important}
}
@media(max-width:560px){
  .cms-layout-reasoned-score .cms-score-pillars{grid-template-columns:1fr!important}
}
