/* ==========================================================================
   AdvanSEM — About page
   Loaded only on the About page, from webtec-child/assets/css/about.css.
   Everything here is either a layout Elementor cannot express (card grids,
   subgrid alignment) or the internals of the four interactive graphics.
   Typography, colour and band backgrounds are set on the widgets themselves,
   so they stay editable in Elementor.
   Every class is namespaced "ab-" so nothing can collide with Bootstrap or
   the Webtec theme.
   ========================================================================== */

:root{
  --ab-navy:#1A3160; --ab-navy-d:#12244A; --ab-navy-dd:#0C1A38; --ab-navy2:#22406F;
  --ab-em:#10B981; --ab-emd:#047857; --ab-em-lite:#34D399; --ab-em-pale:#ECFDF5;
  --ab-slate:#64748B; --ab-canvas:#F8FAFC; --ab-soft:#F1F5F9; --ab-line:#E2E8F0;
  --ab-line-navy:#2A4477; --ab-ink:#334155; --ab-muted:#5A6B82;
  --ab-on-navy:#EAF2FF; --ab-on-navy-2:#AFC1DC; --ab-on-navy-3:#9DB2D2;
  --ab-fh:'Kumbh Sans',sans-serif; --ab-fb:'Mulish',sans-serif;
}

/* ---- band shell -------------------------------------------------------- */
.ab-band{position:relative;overflow:hidden}

/* grain,so the dark bands have depth instead of being a flat fill */
.ab-band.ab-dark:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='abn'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23abn)'/%3E%3C/svg%3E")}
.elementor .ab-band > .e-con-inner,.elementor .ab-band > .elementor-widget,.elementor .ab-band > .e-child{position:relative;z-index:1}

/* the eyebrow's leading rule — the text itself is a Heading widget */
.ab-eyebrow .elementor-heading-title{display:flex;align-items:center;gap:12px}
.elementor .ab-eyebrow .elementor-heading-title:before{content:"";width:26px;height:2px;background:currentColor;
  opacity:.85;flex:0 0 26px}

/* measure for the body copy; the size and colour come from the widget */

/* ---- defensive resets --------------------------------------------------
   The theme ships Bootstrap and its own element styles. These stop a global
   rule from reaching inside a component and breaking its layout.          */
.ab-band ul,.elementor .ab-band ol{margin:0;padding:0;list-style:none}
.elementor .ab-band b,.elementor .ab-band strong{color:inherit;font-weight:700}
.elementor .ab-band .row > *{width:auto}
.elementor .ab-band a{text-decoration:none}
.elementor .ab-band svg{max-width:none}
.elementor .ab-band img{max-width:100%;height:auto}

/* =====================================================================
   AdvanSEM — About. Art direction notes.
   The mark is a circle cut into three 120° wedges. That geometry is the
   page's whole visual language: sweeping arcs behind the type,concentric
   "market map" rings,radial ticks,and the wedge itself as a repeating
   accent. No bordered boxes where a hairline and space will do.
   ===================================================================== */
:root{
  --navy:#1A3160; --navy-d:#12244A; --navy-dd:#0C1A38; --navy2:#22406F;
  --line-navy:#2C4C82; --navy-soft:#34527F;
  --em:#10B981; --emd:#047857; --em-lite:#34D399; --em-pale:#ECFDF5;
  --slate:#64748B; --slate-d:#475569; --canvas:#F8FAFC; --soft:#F1F5F9;
  --line:#E2E8F0; --ink:#334155; --muted:#5A6B82;
  --on-navy:#EAF2FF; --on-navy-2:#AFC1DC; --on-navy-3:#9DB2D2;
  --fh:'Kumbh Sans',sans-serif; --fb:'Mulish',sans-serif;
}
.elementor h1,.elementor h2,.elementor h3,.elementor h4{font-family:var(--ab-fh);margin:0;color:var(--ab-navy);letter-spacing:-.015em}
/* ---- band surfaces ------------------------------------------------------
   One gradient per band and nothing else,so each of these is a single
   Background > Gradient setting on an Elementor section — nothing to keep in
   sync between neighbours. Each also carries a solid background-color,so if
   the gradient is ever stripped (Elementor does that inside deep containers)
   the band lands on the right tone instead of going transparent.
   The order is arranged so a dark band never follows another dark band,apart from the hero running into the positioning statement,which is meant
   to read as one continuous opening.                                      */

.ab-b-navy{background-color:var(--ab-navy);
  background-image:linear-gradient(178deg,#1E3767 0%,#1A3160 55%,#172C55 100%)}
/* the three statement bands — the positioning,vision and mission,the close.
   The top stop is the tone the hero ends on,so the one place two dark bands
   still meet (hero into the positioning line) reads as one continuous opening
   rather than a seam. The blurred orb,not the gradient,gives these their
   light — which keeps this a single Background > Gradient in Elementor.   */
.ab-b-deepest{background-color:#0B1935;
  background-image:linear-gradient(180deg,#162C58 0%,#0E2043 44%,#091531 100%)}
/* grain,so the dark bands have depth instead of being a flat fill */
.ab-hero:before,.elementor .ab-b-navy:before,.elementor .ab-b-deep:before,.elementor .ab-b-deepest:before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E")}
.elementor .ab-eyebrow:before{content:"";width:26px;height:1px;background:currentColor;opacity:.55}
.elementor :focus-visible{outline:3px solid var(--ab-em);outline-offset:4px;border-radius:4px}
/* ============ HERO ============ */
.ab-hero{background-color:#1A3160;background-image:radial-gradient(120% 130% at 78% 30%,#22406F 0%,#1A3160 42%,#12244A 100%);
  padding:120px 0 130px;position:relative;overflow:hidden}
.elementor .ab-hero .ab-eyebrow{color:var(--ab-em-lite)}
.elementor .ab-hero h1{font-size:clamp(34px,5.4vw,68px);line-height:1.04;font-weight:700;color:#fff;margin:0 0 26px;letter-spacing:-.03em}
.elementor .ab-hero h1 em{font-style:normal;color:var(--ab-em-lite)}
/* the mark */
.ab-mark{position:relative;max-width:560px;margin:0 auto}
.elementor .ab-mark svg{display:block;width:100%;height:auto;overflow:visible}
/* on Positioning,one ring leaves the hub for the segment — the single message going out */
#ab-msgRing{transform-box:view-box;transform-origin:310px 300px}
@media(prefers-reduced-motion:no-preference){
.elementor .ab-mark.ab-say #ab-msgRing{animation:msgout 3s cubic-bezier(.22,1,.36,1) infinite}}
@keyframes msgout{
  0%{opacity:.6;transform:scale(1)}
  8%{opacity:.6;transform:scale(1.02)}
  70%{opacity:0;transform:scale(2)}
  100%{opacity:0;transform:scale(2)}}
.elementor .ab-wedge{cursor:pointer;transition:transform .55s cubic-bezier(.22,1,.36,1),filter .4s ease}
.elementor .ab-wedge path{transition:opacity .4s ease}
.elementor .ab-mark-steps{display:flex;gap:0;margin:34px auto 0;max-width:520px;border-top:1px solid rgba(255,255,255,.13)}
.elementor .ab-mark-steps button{flex:1 1 0;background:none;border:0;border-top:2px solid transparent;margin-top:-1px;
  padding:18px 8px 0;cursor:pointer;text-align:left;transition:.25s;font-family:var(--ab-fh)}
.elementor .ab-mark-steps button .ab-n{display:block;font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--ab-on-navy-3);margin-bottom:6px}
.elementor .ab-mark-steps button .ab-l{display:block;font-size:15px;font-weight:700;color:#9DB2D2;transition:.25s}
.elementor .ab-mark-steps button:hover .ab-l{color:#fff}
.elementor .ab-mark-steps button[aria-pressed="true"]{border-top-color:var(--ab-em)}
.elementor .ab-mark-steps button[aria-pressed="true"] .ab-n{color:var(--ab-em-lite)}
.elementor .ab-mark-steps button[aria-pressed="true"] .ab-l{color:#fff}
.elementor .ab-mark-cap{margin:26px auto 0;max-width:520px;min-height:118px}
.elementor .ab-mark-cap h4{font-size:19px;line-height:1.4;color:#fff;margin:0 0 10px;font-weight:700}
.elementor .ab-mark-cap p{font-size:15.5px;line-height:1.8;color:#BACBE6}
.elementor .ab-mark-cap em{display:block;margin-top:12px;font-style:normal;font-size:13.5px;color:var(--ab-em-lite);
  padding-left:14px;border-left:2px solid rgba(16,185,129,.45)}
/* ============ POSITIONING — a full-bleed moment ============ */
.ab-pos{text-align:center;max-width:1000px;margin:0 auto}
.elementor .ab-pos .ab-pos-p p b{font-weight:700;color:var(--ab-em-lite)}
.elementor .ab-pos .ab-sig{margin-top:34px;font-family:var(--ab-fh);font-size:12px;font-weight:700;letter-spacing:.24em;
  text-transform:uppercase;color:var(--ab-on-navy-3)}
/* ============ REFUSALS — numbered editorial list,no boxes ============ */
.ab-refuse{border-top:1px solid rgba(255,255,255,.12);margin-top:52px}
.elementor .ab-ref{display:grid;grid-template-columns:74px 1.05fr 1.35fr;gap:28px;padding:30px 0;
  border-bottom:1px solid rgba(255,255,255,.12);align-items:start;transition:.3s}
.elementor .ab-ref:hover{background:rgba(255,255,255,.028)}
@media(max-width:900px){
.elementor .ab-ref{grid-template-columns:52px 1fr;gap:18px}
.elementor .ab-ref > .elementor-widget:nth-child(3){grid-column:2}}
.elementor .ab-ref .ab-num{font-family:var(--ab-fh);font-weight:300;font-size:38px;line-height:.9;color:rgba(255,255,255,.22);letter-spacing:-.04em}
.elementor .ab-ref:hover .ab-num{color:var(--ab-em-lite)}
/* ============ TRANSPARENCY — a timeline ============ */
.ab-tl{display:grid;grid-template-columns:.82fr 1.18fr;gap:52px;margin-top:56px;align-items:start}
@media(max-width:940px){
.elementor .ab-tl{grid-template-columns:1fr;gap:32px}}
.elementor .ab-tl-rail{position:relative;padding-left:34px}
/* the rail sits on the dot centres: dots are 16px wide starting 4px in,so centre x = 12 */
.ab-tl-rail:before{content:"";position:absolute;left:11px;top:36px;bottom:36px;width:2px;background:var(--ab-line)}
.elementor .ab-tl-i{position:relative;display:block;width:100%;text-align:left;background:none;border:0;cursor:pointer;
  padding:15px 0;font-family:var(--ab-fb);transition:.2s}
.elementor .ab-tl-i:before{content:"";position:absolute;left:-30px;top:50%;transform:translateY(-50%);width:16px;height:16px;border-radius:50%;
  background:#fff;border:2px solid var(--ab-line);transition:.25s}
.elementor .ab-tl-i:hover:before{border-color:var(--ab-em);box-shadow:0 0 0 4px rgba(16,185,129,.10)}
.elementor .ab-tl-i[aria-pressed="true"]:before{border-color:var(--ab-em);background:var(--ab-em);box-shadow:0 0 0 5px rgba(16,185,129,.16)}
/* the live step breathes,so it reads as something you are moving through */
.ab-tl-i[aria-pressed="true"]:after{content:"";position:absolute;left:-30px;top:50%;width:16px;height:16px;
  border-radius:50%;border:2px solid var(--ab-em);transform:translateY(-50%);pointer-events:none}
@media(prefers-reduced-motion:no-preference){
.elementor .ab-tl-i[aria-pressed="true"]:after{animation:tlpulse 2.2s cubic-bezier(.22,1,.36,1) infinite}}
@keyframes tlpulse{
  0%{opacity:.5;transform:translateY(-50%) scale(1)}
  70%{opacity:0;transform:translateY(-50%) scale(2.7)}
  100%{opacity:0;transform:translateY(-50%) scale(2.7)}}
.elementor .ab-tl-i .ab-w{display:block;font-family:var(--ab-fh);font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ab-slate);margin-bottom:5px}
.elementor .ab-tl-i[aria-pressed="true"] .ab-w{color:var(--ab-emd)}
.elementor .ab-tl-i .ab-t{display:block;font-size:16px;line-height:1.5;color:var(--ab-muted);font-weight:600;transition:.2s}
.elementor .ab-tl-i[aria-pressed="true"] .ab-t{color:var(--ab-navy)}
.elementor .ab-tl-i:hover .ab-t{color:var(--ab-navy)}
.elementor .ab-tl-detail{background-color:#fff;background-image:linear-gradient(160deg,#fff 0%,#FBFCFE 100%);border:1px solid var(--ab-line);border-radius:20px;
  padding:42px 44px;min-height:260px;box-shadow:0 24px 60px -30px rgba(26,49,96,.22)}
@media(max-width:640px){
.elementor .ab-tl-detail{padding:28px 24px}}
.elementor .ab-tl-detail h4{font-size:23px;line-height:1.32;margin:0 0 16px;letter-spacing:-.02em}
.elementor .ab-tl-detail p{font-size:16px;line-height:1.85;color:var(--ab-ink);margin:0 0 14px}
.elementor .ab-tl-detail p:last-child{margin:0}
/* ============ VISION / MISSION (from v1) ============ */
.ab-vm{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,26px);margin-top:clamp(34px,5vw,56px)}
@media(max-width:900px){
.elementor .ab-vm{grid-template-columns:1fr}}
.elementor .ab-vm-c{position:relative;overflow:hidden;border-radius:24px;padding:clamp(30px,4vw,48px);
  background:linear-gradient(158deg,rgba(255,255,255,.085),rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.12)}
.elementor .ab-vm-c .ab-lbl{display:flex;align-items:center;gap:11px;font-family:var(--ab-fh);font-weight:700;font-size:12px;
  letter-spacing:.2em;text-transform:uppercase;color:var(--ab-em-lite);margin-bottom:20px}
.elementor .ab-vm-c .ab-lbl svg{width:22px;height:22px;flex:0 0 22px}
.elementor .ab-vm-c p{position:relative;z-index:1}
/* ============ VALUES ============ */
.ab-vals{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:26px}
/* ============ THE EDGE ============ */
.ab-edge{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:52px;
  border-top:1px solid rgba(255,255,255,.13)}
@media(max-width:900px){
.elementor .ab-edge{grid-template-columns:1fr}}
.elementor .ab-edge-i{padding:34px 30px 34px 0;border-bottom:1px solid rgba(255,255,255,.13)}
.elementor .ab-edge-i + .ab-edge-i{padding-left:30px;border-left:1px solid rgba(255,255,255,.13)}
@media(max-width:900px){
.elementor .ab-edge-i + .ab-edge-i{padding-left:0;border-left:0}}
.elementor .ab-edge-i h4{font-size:17.5px;color:#fff;margin:0 0 9px;letter-spacing:-.015em}
/* ============ FIT ============ */
.ab-fit{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,26px);margin-top:clamp(34px,5vw,52px)}
/* ============ FOUNDER ============ */

/* ============ DOORS ============ */
.ab-doors{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,24px);margin-top:clamp(30px,4vw,46px)}
@media(max-width:780px){
.elementor .ab-doors{grid-template-columns:1fr}}
/* reviewer bar + fake chrome — not part of the page */
.note{background:#0B1220;color:#CBD5E1;font-family:var(--ab-fb);font-size:14.5px;line-height:1.7;padding:24px 0}
/* ---- NO NUMBERS: the claim on the left,the two absences stacked on the right ---- */
.ab-state-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:clamp(30px,5vw,72px);align-items:start}
@media(max-width:940px){
.elementor .ab-state-grid{grid-template-columns:1fr;gap:44px}}
/* the numbers we did not write */
.ab-ghost{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.elementor .ab-ghost-c{position:relative;border:1px dashed rgba(148,163,184,.55);border-radius:14px;padding:24px 8px;text-align:center;
  background:repeating-linear-gradient(135deg,rgba(148,163,184,.05) 0 10px,transparent 10px 20px)}
@media(min-width:941px) and (max-width:1100px){
.elementor .ab-ghost-c .ab-k{min-height:32px}}
.elementor .ab-ghost-c:after{content:"";position:absolute;left:12px;right:12px;top:44%;height:2px;background:#DC6B7F;opacity:.75;
  transform:rotate(-7deg)}
/* the wall we did not fill — its own gap from the figures above,now that
   there is one caption under the pair rather than one under each */
.ab-emptywall{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:26px}
.elementor .ab-emptywall span{aspect-ratio:16/7;border:1px dashed rgba(148,163,184,.5);border-radius:10px;display:flex;
  align-items:center;justify-content:center;font-family:var(--ab-fh);font-weight:700;font-size:10.5px;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(18,35,74,.26)}
.elementor .ab-emptywall span:nth-child(n+4){opacity:.66}
.elementor .ab-emptywall span:nth-child(n+7){opacity:.4}
/* the italic line under each absence */
.ab-absent-lbl{font-size:13.5px;line-height:1.7;color:var(--ab-muted);font-style:italic;margin:16px 0 0}
@media(max-width:900px){
.elementor .ab-fit{grid-template-columns:1fr}}
.elementor .ab-fit-c{border-radius:22px;padding:clamp(28px,3.4vw,42px);background:#fff;border:1px solid var(--ab-line)}
.elementor .ab-fit-c.ab-no{background:transparent;border-style:dashed;border-color:#CBD5E1}
.elementor .ab-fit-c ul{list-style:none;margin:0;padding:0}
.elementor .ab-fit-c li{position:relative}
.elementor .ab-fit-c li:last-child{margin-bottom:0}
.elementor .ab-fit-c.ab-no li{color:var(--ab-muted)}
/* ---- borrowed from v2: ecosystem diagram,method,values,coverage,personas,standards,doors ---- */

.ab-sv-tabs button{position:relative;min-height:44px;padding:12px 18px;border-radius:9px;cursor:pointer;background:#fff;border:1px solid var(--ab-line);
  color:var(--ab-navy);font-family:var(--ab-fh);font-weight:700;font-size:14px;transition:.18s}
.elementor .ab-sv-tabs button:hover{border-color:var(--ab-em);color:var(--ab-emd)}
.elementor .ab-sv-tabs button[aria-pressed="true"]{background:var(--ab-navy);border-color:var(--ab-navy);color:#fff}
/* the live tab breathes,so the pair reads as something you switch rather than a caption */
.ab-sv-tabs button[aria-pressed="true"]:after{content:"";position:absolute;inset:-1px;border-radius:10px;
  border:2px solid var(--ab-em);pointer-events:none}
@media(prefers-reduced-motion:no-preference){
.elementor .ab-sv-tabs button[aria-pressed="true"]:after{animation:tabpulse 2.2s cubic-bezier(.22,1,.36,1) infinite}}
@keyframes tabpulse{
  0%{opacity:.55;transform:scale(1)}
  70%{opacity:0;transform:scale(1.14)}
  100%{opacity:0;transform:scale(1.14)}}
.elementor .ab-sv-stage{background:#fff;border:1px solid var(--ab-line);border-radius:16px;padding:30px;margin-top:22px}
@media(max-width:600px){
.elementor .ab-sv-stage{padding:18px}}
.elementor .ab-sv-stage svg{width:100%;height:auto}
@media(prefers-reduced-motion:no-preference){
.elementor .ab-sv-stage .ab-flow{animation:flowpulse 2.6s linear infinite}}
@keyframes flowpulse{to{stroke-dashoffset:calc(-1 * var(--pl))}}
@media(max-width:820px){.elementor .ab-sv-stage svg{display:block;max-width:460px;margin:0 auto}}
.elementor .ab-sv-read{margin-top:22px;font-size:16px;line-height:1.8;color:var(--ab-ink);max-width:78ch;min-height:86px}
.elementor .ab-sv-read b{color:var(--ab-navy)}
.elementor .ab-mt{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:24px;margin-top:38px;align-items:start}
@media(max-width:900px){
.elementor .ab-mt{grid-template-columns:1fr}}
.elementor .ab-mt-b{display:grid;grid-template-columns:44px 1fr;gap:16px;align-items:center;width:100%;text-align:left;cursor:pointer;
  background:transparent;border:0;border-bottom:1px solid var(--ab-line-navy);padding:18px 6px;min-height:44px;transition:.2s}
.elementor .ab-mt-b:hover{background:rgba(255,255,255,.04)}
.elementor .ab-mt-b .ab-n{width:44px;height:44px;border-radius:12px;border:1px solid var(--ab-line-navy);display:flex;align-items:center;
  justify-content:center;font-family:var(--ab-fh);font-weight:700;font-size:14px;color:var(--ab-on-navy-3);transition:.2s}
.elementor .ab-mt-b[aria-pressed="true"] .ab-n{background:var(--ab-em);border-color:var(--ab-em);color:#04261A}
.elementor .ab-mt-b .ab-t{font-family:var(--ab-fh);font-weight:700;font-size:17px;color:var(--ab-on-navy-2);transition:.2s}
.elementor .ab-mt-b[aria-pressed="true"] .ab-t{color:#fff}
.elementor .ab-mt-d{background:rgba(255,255,255,.05);border:1px solid var(--ab-line-navy);border-left:3px solid var(--ab-em);
  border-radius:14px;padding:30px 32px;min-height:268px}
@media(max-width:600px){
.elementor .ab-mt-d{padding:22px 20px}}
.elementor .ab-mt-d .tag{display:inline-block;background:rgba(16,185,129,.15);border:1px solid var(--ab-em);color:#7EE2BE;border-radius:999px;
  padding:7px 14px;font-family:var(--ab-fh);font-weight:700;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;margin-bottom:16px}
.elementor .ab-mt-d h3{color:#fff;font-size:22px;line-height:1.3;margin-bottom:12px}
.elementor .ab-mt-d p{font-size:15.5px;line-height:1.8;color:var(--ab-on-navy-2)}
.elementor .ab-mt-d p + p{margin-top:12px}
.elementor .ab-mt-d .ab-out{margin-top:18px;padding-top:16px;border-top:1px solid var(--ab-line-navy);font-size:14.5px;line-height:1.7;color:var(--ab-on-navy-2)}
.elementor .ab-mt-d .ab-out b{color:var(--ab-em-lite);font-family:var(--ab-fh);display:block;font-size:11.5px;letter-spacing:.13em;
  text-transform:uppercase;margin-bottom:6px}
@media(max-width:940px){
.elementor .ab-vals{grid-template-columns:1fr}}
.elementor .ab-val{background:#fff;border:1px solid var(--ab-line);border-radius:16px;padding:32px;display:flex;flex-direction:column;transition:.22s}
.elementor .ab-val:hover{border-color:var(--ab-em);transform:translateY(-5px);box-shadow:0 18px 38px rgba(26,49,96,.11)}
.elementor .ab-val .ab-ic{width:52px;height:52px;margin-bottom:22px}
@media(min-width:941px){
.elementor .ab-val h3{min-height:2.6em}}
.elementor .ab-val p{font-size:15.5px;line-height:1.78;color:var(--ab-ink)}
.elementor .ab-val .ab-prac{padding-top:18px;border-top:1px solid var(--ab-line)}
.elementor .ab-val .ab-prac b{display:block;font-family:var(--ab-fh);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ab-emd);margin-bottom:6px}
.elementor .ab-cov{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:38px}
@media(max-width:1000px){
.elementor .ab-cov{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){
.elementor .ab-cov{grid-template-columns:1fr}}
.elementor .ab-cov-c{background:#fff;border:1px solid var(--ab-line);border-radius:14px;padding:22px;transition:.22s;display:block;
  box-shadow:0 1px 2px rgba(26,49,96,.04)}
.elementor .ab-cov-c:hover{border-color:var(--ab-em);transform:translateY(-4px);box-shadow:0 16px 32px -18px rgba(26,49,96,.34)}
.elementor .ab-who{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:38px}
@media(max-width:940px){
.elementor .ab-who{grid-template-columns:1fr}}
.elementor .ab-who-c{background:#fff;border:1px solid var(--ab-line);border-radius:16px;padding:32px;transition:.22s;display:flex;flex-direction:column}
.elementor .ab-who-c:hover{border-color:var(--ab-em);transform:translateY(-5px);box-shadow:0 18px 38px rgba(26,49,96,.11)}
.elementor .ab-who-c .ab-q{border-left:3px solid var(--ab-em);padding-left:16px}
@media(min-width:941px){
.elementor .ab-who-c .ab-q{min-height:4.5em}
.elementor .ab-who-c h4{min-height:2.4em}}
.elementor .ab-who-c h4{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ab-emd);margin-bottom:10px}
.elementor .ab-who-c .ab-vert{padding-top:18px;border-top:1px solid var(--ab-line)}
.elementor .ab-who-c .ab-vert b{color:var(--ab-navy);font-family:var(--ab-fh)}
.elementor .ab-std{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:38px}
@media(max-width:860px){
.elementor .ab-std{grid-template-columns:1fr}}
.elementor .ab-std-c{display:flex;gap:16px;background:rgba(255,255,255,.05);border:1px solid var(--ab-line-navy);border-radius:14px;padding:24px 26px}
.elementor .ab-std-c .ab-ic{flex:0 0 40px;width:40px;height:40px;border-radius:11px;background:rgba(16,185,129,.14);
  border:1px solid var(--ab-em);display:flex;align-items:center;justify-content:center}
.elementor .ab-std-c .ab-ic svg{width:19px;height:19px;stroke:var(--ab-em-lite);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:780px){
.elementor .ab-doors{grid-template-columns:1fr}}
.elementor .ab-door{position:relative;overflow:hidden;display:block;border-radius:22px;padding:clamp(28px,3.6vw,42px);
  background:linear-gradient(158deg,rgba(255,255,255,.085),rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.13);transition:.28s cubic-bezier(.2,.7,.3,1)}
.elementor .ab-door:hover{transform:translateY(-6px);border-color:rgba(16,185,129,.55);box-shadow:0 26px 54px rgba(0,0,0,.3)}
@media(max-width:600px){
.elementor .ab-door{padding:26px 22px}}
.elementor .ab-door h3{font-size:clamp(20px,1.7vw,26px);margin-bottom:12px;color:#fff}
@supports (grid-template-rows:subgrid){
.elementor .ab-vals{grid-template-rows:repeat(4,auto)}
.elementor .ab-val{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0}

.elementor .ab-who{grid-template-rows:repeat(4,auto)}
.elementor .ab-who-c{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0}

.elementor .ab-doors{grid-template-rows:repeat(3,auto)}
.elementor .ab-door{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0}
}

/* ---- Elementor plumbing ------------------------------------------------ */
.elementor .ab-mark-w,.elementor .ab-sv-w,.elementor .ab-mt-w,.elementor .ab-tl-w,.elementor .ab-wall-w,.elementor .ab-ic-w,.elementor .ab-lbl-w{width:100%}
.elementor .ab-std-c > .ab-std-ic-w{flex:0 0 40px;width:40px}
.elementor .ab-vm-c > .elementor-widget{position:relative;z-index:1}
.elementor .ab-namebar{border-top:1px solid rgba(255,255,255,.14);padding-top:22px;margin-top:8px;
  display:flex;flex-direction:row;gap:0}
.elementor .ab-nb-c{flex:1 1 0;padding:0 0 0 26px;border-left:1px solid rgba(255,255,255,.14)}
.elementor .ab-nb-c:first-child{padding-left:0;border-left:0}
.elementor .ab-pos{text-align:center;max-width:1000px;margin:0 auto}
.elementor .ab-pos-p p{max-width:none}
.elementor .ab-sig .elementor-widget-container,.elementor .ab-sig p{letter-spacing:.24em;text-transform:uppercase}

/* The decorative arc rides on the card as a background layer rather than a
   widget: Elementor gives every widget its own flow box, which put the SVG at
   the top of the card instead of bleeding out of the bottom-right corner. */
.elementor .ab-vm-a,.elementor .ab-vm-b{
  background-repeat:no-repeat,no-repeat;
  background-position:right -70px bottom -90px,0 0;
  background-size:280px 280px,auto}
.elementor .ab-vm-a{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20220%20220%22%3E%3Ccircle%20cx%3D%22110%22%20cy%3D%22110%22%20r%3D%2298%22%20fill%3D%22none%22%20stroke%3D%22%233A5A8C%22%20stroke-width%3D%221%22%2F%3E%3Cpath%20d%3D%22M110%2012%20A98%2098%200%200%201%20208%20110%22%20fill%3D%22none%22%20stroke%3D%22%2310B981%22%20stroke-width%3D%2212%22%20stroke-linecap%3D%22round%22%2F%3E%3Ccircle%20cx%3D%22110%22%20cy%3D%22110%22%20r%3D%2262%22%20fill%3D%22none%22%20stroke%3D%22%232A4477%22%20stroke-width%3D%221%22%2F%3E%3C%2Fsvg%3E"),linear-gradient(158deg,rgba(255,255,255,.085),rgba(255,255,255,.02))}
.elementor .ab-vm-b{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20220%20220%22%3E%3Ccircle%20cx%3D%22110%22%20cy%3D%22110%22%20r%3D%2298%22%20fill%3D%22none%22%20stroke%3D%22%233A5A8C%22%20stroke-width%3D%221%22%2F%3E%3Cpath%20d%3D%22M208%20110%20A98%2098%200%200%201%2061%20195%22%20fill%3D%22none%22%20stroke%3D%22%2310B981%22%20stroke-width%3D%2212%22%20stroke-linecap%3D%22round%22%2F%3E%3Ccircle%20cx%3D%22110%22%20cy%3D%22110%22%20r%3D%2262%22%20fill%3D%22none%22%20stroke%3D%22%232A4477%22%20stroke-width%3D%221%22%2F%3E%3C%2Fsvg%3E"),linear-gradient(158deg,rgba(255,255,255,.085),rgba(255,255,255,.02))}
@media(max-width:600px){
.elementor .ab-vm-a,.elementor .ab-vm-b{background-size:200px 200px,auto;background-position:right -50px bottom -64px,0 0}}
