/* ==========================================================================
   AlphaTech design v2: site-wide layer, loaded after alphatech-components.css.
   Every rule is scoped to body.at-v2 so the whole layer can be switched off
   (option at_v2_off) and the site falls back to the previous look.
   The homepage's own markup (.ath) carries its own styles and is left alone.
   ========================================================================== */

@font-face{font-family:"Archivo";src:url(/wp-content/uploads/at-fonts/archivo-latin.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(/wp-content/uploads/at-fonts/source-sans-3-latin.woff2) format("woff2");font-weight:200 900;font-display:swap}

body.at-v2{
  --v2-ink:#16233b;--v2-navy:#273959;--v2-blue:#2e5fa8;--v2-sky:#3c7bd4;--v2-glow:#8fc4ff;--v2-ice:#cfe0f7;
  --v2-mist:#eef2f8;--v2-line:#d8e0ec;--v2-muted:#55627a;--v2-deep:#0f1b2e;
  --v2-display:"Archivo",system-ui,sans-serif;--v2-text:"Source Sans 3",system-ui,sans-serif;
  --v2-ease:cubic-bezier(.2,.8,.2,1);--v2-pop:cubic-bezier(.3,1.4,.5,1);
  /* one blue family everywhere: the old bright #1560ef becomes the homepage blue */
  --blue-700:#273959;--blue-600:#2e5fa8;--blue-500:#3c7bd4;--blue-400:#5d9bf0;
  --e-global-color-primary:#2e5fa8;--e-global-color-secondary:#273959;--e-global-color-accent:#3c7bd4;
  --e-global-typography-primary-font-family:"Archivo";
  --e-global-typography-secondary-font-family:"Archivo";
  --e-global-typography-text-font-family:"Source Sans 3";
  --e-global-typography-accent-font-family:"Source Sans 3";
  font-family:var(--v2-text);
}

/* ---------- type ---------- */
body.at-v2 :is(p,li,a,span,label,input,textarea,select,button,td,th,dd,dt,small,strong,em,blockquote,figcaption){font-family:var(--v2-text)}
body.at-v2 :is(.elementor-heading-title,h1,h2,h3,h4):not(.ath *){font-family:var(--v2-display)!important;font-stretch:110%;letter-spacing:-.015em;text-wrap:balance}
body.at-v2 .at-page-hero .elementor-heading-title:is(h1,h2):not(.at-eyebrow *){font-weight:800;font-stretch:112%;letter-spacing:-.02em;line-height:1.04;font-size:clamp(36px,4.3vw,58px)!important}
body.at-v2 .at-section-title .elementor-heading-title:is(h2){font-weight:800;font-stretch:112%;letter-spacing:-.02em;line-height:1.08}
body.at-v2 .at-section > .e-con-inner > .at-section-title h2,
body.at-v2 .at-section > .at-section-title h2{font-size:clamp(30px,3.3vw,44px)!important}
body.at-v2 .at-card .at-section-title h2,body.at-v2 .at-card h2,body.at-v2 .at-card h3{font-size:clamp(21px,1.7vw,25px)!important;line-height:1.2}
body.at-v2 .elementor-widget-text-editor,body.at-v2 .elementor-icon-list-text{font-size:clamp(16px,1.05vw,17.5px);line-height:1.6}
body.at-v2 .at-lead p,body.at-v2 .at-lead{font-size:clamp(17px,1.25vw,20px)!important;line-height:1.6;text-wrap:pretty}
body.at-v2 .elementor-widget-text-editor p{text-wrap:pretty}
body.at-v2 .elementor-nav-menu a,body.at-v2 .at-footer *{font-family:var(--v2-text)!important}

/* ---------- focus: visible for keyboard users everywhere ---------- */
body.at-v2 :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--v2-sky)!important;outline-offset:3px!important;box-shadow:none}

/* ---------- buttons: one style ---------- */
body.at-v2 .elementor-button{position:relative;overflow:hidden;border-radius:999px!important;font-family:var(--v2-text)!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;transition:background-color .2s,transform .2s,box-shadow .2s,color .2s!important}
body.at-v2 .elementor-button:hover{transform:translateY(-2px)}
body.at-v2 .elementor-button:active{transform:translateY(1px)}

/* ---------- header ---------- */
body.at-v2 .atv2-hdr-cta{display:inline-flex;align-items:center;font:600 15px/1 var(--v2-text);padding:11px 18px;border-radius:999px;background:var(--v2-blue);color:#fff!important;text-decoration:none;margin-right:10px;white-space:nowrap;transition:background-color .2s,transform .2s;box-shadow:0 10px 22px -12px rgba(46,95,168,.9)}
body.at-v2 .atv2-hdr-cta:hover{background:var(--v2-navy);transform:translateY(-1px)}
@media (max-width:600px){body.at-v2 .atv2-hdr-cta{display:none}}
/* all nine menu items stay; tighter spacing keeps them beside the button down to 1280px */
body.at-v2 .at-header__nav .elementor-nav-menu--main > ul{gap:0!important}
/* the homepage plugin used to add its own copy of the button */
body.at-v2 .ath-hdr-cta{display:none!important}

/* ---------- page hero ---------- */
body.at-v2 .at-page-hero{position:relative;overflow:hidden;background:radial-gradient(900px 520px at 82% 18%,rgba(60,123,212,.16),transparent 62%),radial-gradient(700px 460px at 0% 100%,rgba(143,196,255,.2),transparent 60%),var(--v2-mist)!important;clip-path:polygon(0 0,100% 0,100% calc(100% - 64px),0 100%);padding-bottom:110px!important}
body.at-v2 .at-page-hero > .e-con-inner{position:relative;z-index:2}
body.at-v2 .at-page-hero.at-legal-hero{clip-path:polygon(0 0,100% 0,100% calc(100% - 40px),0 100%);padding-bottom:80px!important}
body.at-v2 .at-lp-hero{clip-path:none}
.atv2-tris{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.atv2-tris i{position:absolute;width:160px;height:140px;background:linear-gradient(135deg,rgba(60,123,212,.14),rgba(143,196,255,.04));clip-path:polygon(50% 0,100% 100%,0 100%);animation:atv2-drift 18s ease-in-out infinite}
.atv2-tris i:nth-child(1){left:-36px;top:34%}
.atv2-tris i:nth-child(2){right:5%;bottom:20%;width:110px;height:96px;animation-delay:-6s;animation-duration:22s}
.atv2-tris i:nth-child(3){left:46%;top:10%;width:70px;height:60px;animation-delay:-11s}
@keyframes atv2-drift{50%{transform:translate(24px,-18px) rotate(14deg)}}
body.at-v2 .at-eyebrow .elementor-heading-title{display:inline-flex!important;align-items:center;gap:8px;font:600 14px/1 var(--v2-text)!important;letter-spacing:0!important;text-transform:none!important;color:var(--v2-navy)!important;background:rgba(255,255,255,.8)!important;border:1.5px solid var(--v2-line)!important;border-radius:999px!important;padding:8px 14px!important}
body.at-v2 .at-eyebrow .elementor-heading-title::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--v2-sky);box-shadow:0 0 0 0 rgba(60,123,212,.5);animation:atv2-ping 2.4s ease-out infinite}
@keyframes atv2-ping{0%{box-shadow:0 0 0 0 rgba(60,123,212,.5)}100%{box-shadow:0 0 0 10px rgba(60,123,212,0)}}
/* hero call to action added by the script */
.atv2-hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:26px}
.atv2-btn{display:inline-flex;align-items:center;gap:10px;font:600 17px/1.2 var(--v2-text,system-ui);padding:15px 24px;border-radius:999px;text-decoration:none;background:#2e5fa8;color:#fff!important;box-shadow:0 12px 26px -12px rgba(46,95,168,.85);transition:background-color .2s,transform .2s}
.atv2-btn:hover{background:#273959;transform:translateY(-2px)}
.atv2-link{font:600 17px/1.2 var(--v2-text,system-ui);color:#16233b!important;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px;text-decoration-color:#3c7bd4}
.atv2-link:hover{text-decoration-color:currentColor}
/* the hero artwork floats gently */
body.at-v2 .at-hero-emblem > .e-con-inner{animation:atv2-float 7s ease-in-out infinite}
@keyframes atv2-float{50%{transform:translateY(-10px)}}
/* screenshots of a mouse pointer inside hero art read as a mistake */
body.at-v2 .at-art [class*="cursor"],body.at-v2 .at-art [class*="pointer"]{display:none!important}

/* ---------- cards ---------- */
body.at-v2 .at-card{position:relative;border-radius:22px!important;border:1px solid var(--v2-line)!important;background:#fff;box-shadow:0 18px 40px -32px rgba(22,35,59,.45)!important;transition:transform .35s var(--v2-ease),box-shadow .35s,border-color .25s!important;overflow:hidden}
body.at-v2 .at-card:hover{transform:translateY(-6px);border-color:var(--v2-sky)!important;box-shadow:0 30px 56px -30px rgba(22,35,59,.55)!important}
body.at-v2 .at-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%),rgba(143,196,255,.16),transparent 60%);opacity:0;transition:opacity .3s;z-index:0}
body.at-v2 .at-card:hover::after{opacity:1}
body.at-v2 .at-card > .e-con-inner{position:relative;z-index:1}
body.at-v2 .at-card--invert,body.at-v2 .at-card--cta{border-color:transparent!important}
/* content reads from the left, like the homepage */
body.at-v2 .at-twoup .at-card > .e-con-inner,body.at-v2 .at-svcgrid .at-card > .e-con-inner,body.at-v2 .at-iconcards .at-card > .e-con-inner,body.at-v2 .at-relsec .at-card > .e-con-inner{align-items:stretch!important;text-align:left!important}
body.at-v2 :is(.at-twoup,.at-svcgrid,.at-iconcards,.at-relsec) .at-card :is(.elementor-heading-title,.elementor-widget-text-editor,.elementor-widget-text-editor p,.elementor-icon-wrapper,.elementor-widget-button){text-align:left!important}
body.at-v2 :is(.at-twoup,.at-svcgrid,.at-iconcards,.at-relsec) .at-card .elementor-icon-list-items{display:grid!important;gap:9px;justify-items:start}
body.at-v2 :is(.at-twoup,.at-svcgrid,.at-iconcards,.at-relsec) .at-card .elementor-icon-list-item{justify-content:flex-start!important;text-align:left!important;align-items:flex-start!important}
body.at-v2 :is(.at-twoup,.at-svcgrid,.at-iconcards,.at-relsec) .at-card :is(.elementor-icon-list-text,.elementor-icon-list-item a){text-align:left!important;justify-content:flex-start!important}
body.at-v2 :is(.at-twoup,.at-svcgrid,.at-iconcards,.at-relsec) .at-card :is(.elementor-widget-icon,.elementor-widget-heading,.elementor-widget-text-editor,.elementor-widget-icon-list){width:100%;text-align:left!important}
body.at-v2 :is(.at-twoup,.at-svcgrid,.at-iconcards,.at-relsec) .at-card .elementor-widget-button .elementor-button-wrapper{text-align:left!important}
body.at-v2 :is(.at-twoup,.at-svcgrid,.at-iconcards,.at-relsec) .at-card .elementor-icon-list-icon{margin-top:4px}
body.at-v2 .at-card .elementor-icon-list-icon svg,body.at-v2 .at-card .elementor-icon-list-icon i{color:var(--v2-sky)!important;fill:var(--v2-sky)!important}
body.at-v2 :is(.at-twoup,.at-svcgrid,.at-iconcards,.at-relsec) .at-card .elementor-widget-button{align-self:flex-start!important;margin-top:auto}
/* icon tiles: brand gradient, a slow idle float, a little jump on hover */
body.at-v2 .at-card .at-cardicon .elementor-icon,body.at-v2 .at-card .elementor-icon-box-icon .elementor-icon{background:linear-gradient(135deg,var(--v2-navy),var(--v2-blue))!important;color:#fff!important;border-radius:18px!important;box-shadow:0 14px 26px -14px rgba(39,57,89,.85)!important;animation:atv2-idle 6s ease-in-out infinite}
body.at-v2 .at-card .at-cardicon .elementor-icon svg,body.at-v2 .at-card .elementor-icon-box-icon svg{fill:#fff!important;color:#fff!important}
body.at-v2 .at-card:nth-child(2n) .elementor-icon{animation-delay:-2s}
body.at-v2 .at-card:nth-child(3n) .elementor-icon{animation-delay:-4s}
body.at-v2 .at-card:hover .elementor-icon{animation:atv2-jump .6s var(--v2-pop)}
@keyframes atv2-idle{50%{transform:translateY(-4px)}}
@keyframes atv2-jump{40%{transform:translateY(-8px) rotate(-6deg) scale(1.06)}}
/* numbered steps inside cards */
body.at-v2 .at-timeline-row,body.at-v2 .at-steps{text-align:left}

/* ---------- price bars and plans ---------- */
body.at-v2 .at-pricebar{border-radius:26px!important;position:relative;overflow:hidden}
body.at-v2 .at-pricebar::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.12) 48%,transparent 66%);transform:translateX(-100%);animation:atv2-sweep 7s ease-in-out 1s infinite;pointer-events:none}
@keyframes atv2-sweep{30%,100%{transform:translateX(100%)}}
body.at-v2 .at-pricebar__tier{transition:transform .3s var(--v2-ease),background-color .3s}
body.at-v2 .at-pricebar__tier:hover{transform:translateY(-4px)}
body.at-v2 .at-plan{border-radius:22px!important;transition:transform .35s var(--v2-ease),box-shadow .35s!important}
body.at-v2 .at-plan:hover{transform:translateY(-6px)}

/* ---------- FAQ ---------- */
body.at-v2 .at-faqsec{background:var(--v2-mist)!important}
body.at-v2 .at-faq .elementor-accordion-item,body.at-v2 .at-faq__cols > *{border-radius:18px!important;border:1px solid var(--v2-line)!important;transition:border-color .25s,box-shadow .25s}
body.at-v2 .at-faq .elementor-accordion-item:hover{border-color:var(--v2-sky)!important;box-shadow:0 18px 36px -28px rgba(22,35,59,.5)}
body.at-v2 .at-faq .elementor-tab-title,body.at-v2 .at-faq .elementor-accordion-title{font-family:var(--v2-display)!important;font-stretch:106%;font-weight:700!important;font-size:18px!important;letter-spacing:-.005em}

/* ---------- call-to-action band ---------- */
body.at-v2 .at-cta-band{position:relative;overflow:hidden;background:radial-gradient(700px 360px at 85% 100%,rgba(143,196,255,.25),transparent 60%),var(--v2-navy)!important;clip-path:polygon(0 70px,100% 0,100% 100%,0 100%);padding-top:140px!important;padding-bottom:100px!important}
body.at-v2 .at-cta-band > .e-con-inner{position:relative;z-index:2}
body.at-v2 .at-cta-band__inner,body.at-v2 .at-cta-band__inner > .e-con-inner{background:none!important;box-shadow:none!important;border:0!important;padding:0!important}
@media (min-width:900px){
  body.at-v2 .at-cta-band__inner > .e-con-inner{display:grid!important;grid-template-columns:1.25fr 1fr;column-gap:56px;align-items:end;text-align:left!important}
  body.at-v2 .at-cta-band__inner .at-section-title{grid-column:1;grid-row:1}
  body.at-v2 .at-cta-band__inner .at-lead{grid-column:1;grid-row:2}
  body.at-v2 .at-cta-band__inner .elementor-widget-button{grid-column:2;grid-row:1/3;justify-self:start;align-self:end}
  body.at-v2 .at-cta-band__inner :is(.elementor-widget-heading,.elementor-widget-container,.elementor-heading-title,.at-lead,.at-lead p){text-align:left!important}
  body.at-v2 .at-cta-band__inner .at-section-title,body.at-v2 .at-cta-band__inner .at-lead{width:100%;max-width:none!important;margin-left:0!important}
}
body.at-v2 .at-cta-band .elementor-heading-title{font-size:clamp(32px,3.8vw,52px)!important;color:#fff!important}
body.at-v2 .at-cta-band .at-lead,body.at-v2 .at-cta-band .at-lead p{color:#c9d6ec!important;max-width:34em}
body.at-v2 .at-cta-band .elementor-button::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.75) 50%,transparent 65%);transform:translateX(-120%);animation:atv2-shine 4.5s ease-in-out 1.5s infinite}
@keyframes atv2-shine{30%,100%{transform:translateX(120%)}}
.atv2-cta-tris{position:absolute;right:-40px;bottom:-30px;width:600px;max-width:80%;opacity:.38;z-index:1;pointer-events:none;animation:atv2-drift 20s ease-in-out infinite}
.atv2-cta-tris path{fill:none;stroke:#8fc4ff;stroke-width:2;stroke-dasharray:1200;stroke-dashoffset:1200}
.atv2-cta-tris.is-in path{animation:atv2-draw 2.4s ease forwards}
.atv2-cta-tris.is-in path:nth-child(2){animation-delay:.3s}.atv2-cta-tris.is-in path:nth-child(3){animation-delay:.6s}
@keyframes atv2-draw{to{stroke-dashoffset:0}}

/* ---------- portfolio and work cards ---------- */
body.at-v2 .at-workcard{border-radius:22px!important;transition:transform .35s var(--v2-ease),box-shadow .35s!important}
body.at-v2 .at-workcard:hover{transform:translateY(-6px)}
body.at-v2 .at-workcard img{transition:object-position 2.5s ease,transform .6s var(--v2-ease)}
body.at-v2 .at-workcard:hover img{transform:scale(1.03)}

/* ---------- forms ---------- */
/* reCAPTCHA v3 is invisible; its empty field group showed as a white box */
body.at-v2 .elementor-field-type-recaptcha_v3{background:none!important;height:0!important;min-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important;border:0!important}
body.at-v2 .elementor-field-textual,body.at-v2 .at-b3form input,body.at-v2 .at-b3form textarea{border-radius:12px!important;transition:border-color .2s,box-shadow .2s}
body.at-v2 .elementor-field-textual:focus{border-color:var(--v2-sky)!important;box-shadow:0 0 0 4px rgba(60,123,212,.15)!important}

/* ---------- about page: step cards were cutting their text off ---------- */
body.at-v2 .at-steps .at-card,body.at-v2 .at-steps .e-con,body.at-v2 .at-stepsfx .e-con{height:auto!important;max-height:none!important;overflow:visible!important}
body.at-v2 .at-steps .elementor-widget-text-editor,body.at-v2 .at-steps p{display:block!important;-webkit-line-clamp:unset!important;max-height:none!important;overflow:visible!important}

/* ---------- reveal safety: never leave content hidden ---------- */
body.at-v2 .at-reveal.atv2-force{opacity:1!important;transform:none!important}

/* ---------- footer on phones ---------- */
@media (max-width:767px){
  /* footer: two even, centred columns; the fifth spans the full width */
  body.at-v2 .at-footer__cols>.e-con-inner{display:grid!important;grid-template-columns:1fr 1fr;gap:34px 12px!important;padding-inline:16px!important;justify-items:stretch}
  body.at-v2 .at-footer__col,body.at-v2 .at-footer__col>.e-con-inner{align-items:center!important;text-align:center!important;padding:0!important;margin:0!important;width:100%!important;max-width:none!important}
  body.at-v2 .at-footer__col:last-child:nth-child(odd){grid-column:1/-1}
  body.at-v2 .at-footer__col *{text-align:center!important}
  body.at-v2 .at-footer__list{display:grid!important;justify-items:center!important;gap:12px!important;padding:0!important;margin:0!important}
  body.at-v2 .at-footer__list li{margin:0!important;padding:0!important}
  body.at-v2 .at-footer__cols .at-footer__list li,body.at-v2 .at-footer__cols .at-footer__list li a{text-align:center!important;justify-content:center!important;margin-inline:0!important}
  body.at-v2 .at-footer__list a{display:inline!important;padding:0!important;font-size:14px}
  body.at-v2 .at-page-hero{clip-path:polygon(0 0,100% 0,100% calc(100% - 36px),0 100%);padding-bottom:70px!important}
  body.at-v2 .at-cta-band{clip-path:polygon(0 40px,100% 0,100% 100%,0 100%);padding-top:96px!important;padding-bottom:72px!important}
  .atv2-hero-cta{gap:16px}
  .atv2-btn{font-size:16px;padding:14px 22px}
}

@media (prefers-reduced-motion:reduce){
  body.at-v2 *,body.at-v2 *::before,body.at-v2 *::after{animation:none!important;transition:none!important}
  .atv2-cta-tris path{stroke-dashoffset:0}
}

/* ---------- card alignment details (pass 2) ---------- */
body.at-v2 :is(.at-twoup,.at-svcgrid,.at-iconcards,.at-relsec) .at-card .at-cardicon{align-self:flex-start!important;width:auto!important}
body.at-v2 :is(.at-twoup,.at-svcgrid,.at-iconcards,.at-relsec) .at-card .at-cardicon .elementor-icon{margin-left:0!important;margin-right:auto!important}
/* numbered steps inside cards: number on the left, text beside it */
body.at-v2 .at-card .at-steps ol{padding:0!important;margin:6px 0 0!important;display:grid;gap:18px}
body.at-v2 .at-card .at-steps li{display:grid!important;grid-template-columns:44px 1fr;column-gap:14px;align-items:start;text-align:left!important;margin:0!important;padding:0!important}
body.at-v2 .at-card .at-steps li::before{grid-row:1/4;margin:0!important;position:static!important;transform:none!important}
body.at-v2 .at-card .at-steps li::after{display:none!important}

/* ---------- the dark Custom Apps page keeps its dark look ---------- */
body.at-v2.page-id-1056 .at-eyebrow .elementor-heading-title{background:rgba(23,37,63,.85)!important;border-color:#2b3d5e!important;color:#cfe0f7!important}
body.at-v2.page-id-1056 .at-eyebrow .elementor-heading-title *{color:#cfe0f7!important}
body.at-v2.page-id-1056 .at-faqsec{background:transparent!important}
body.at-v2.page-id-1056 .at-faq .elementor-accordion-item,body.at-v2.page-id-1056 .at-faq__cols > *,body.at-v2.page-id-1056 .at-faqsec .at-card{background:#17253f!important;border-color:#22324e!important}
body.at-v2.page-id-1056 .at-faqsec :is(h2,h3,h4,.elementor-tab-title,.elementor-accordion-title,strong){color:#fff!important}
body.at-v2.page-id-1056 .at-faqsec :is(p,li,.elementor-tab-content){color:#b8c4d8!important}
body.at-v2.page-id-1056 .at-card{background:linear-gradient(180deg,#1b2b49,#17253f)!important;border-color:#22324e!important}
body.at-v2.page-id-1056 .at-card:hover{border-color:#3c7bd4!important}

/* ---------- pass 3 ---------- */
/* one button style: solid brand blue, navy on hover (white buttons on dark bands stay white) */
body.at-v2 :is(.at-page-hero,.at-plan,.at-card:not(.at-card--invert):not(.at-card--cta),.at-lp-hero,.at-leadsec,.at-relsec) .elementor-button:not([style*="background-color: rgb(255"]){background:#2e5fa8!important;background-image:none!important;color:#fff!important;font-size:17px!important;padding:15px 24px!important;box-shadow:0 12px 26px -12px rgba(46,95,168,.85)!important}
body.at-v2 :is(.at-page-hero,.at-plan,.at-card:not(.at-card--invert):not(.at-card--cta),.at-lp-hero,.at-leadsec,.at-relsec) .elementor-button:hover{background:#273959!important}
body.at-v2 .page-id-1056 .at-page-hero .elementor-button{background:#3c7bd4!important}
.atv2-link{text-decoration:underline!important;text-underline-offset:5px!important;text-decoration-thickness:2px!important;text-decoration-color:#3c7bd4!important}
/* labels on the blue price box */
body.at-v2 .at-pricebar .at-eyebrow .elementor-heading-title,body.at-v2 :is(.at-cta-band,.at-card--invert) .at-eyebrow .elementor-heading-title{background:rgba(255,255,255,.14)!important;border-color:rgba(255,255,255,.4)!important;color:#fff!important}
body.at-v2 .at-pricebar .at-eyebrow .elementor-heading-title::before{background:#8fc4ff}
/* paragraphs inside cards match the lists beside them */
body.at-v2 .at-card .at-lead,body.at-v2 .at-card .at-lead p{font-size:clamp(16px,1.05vw,17.5px)!important}
/* Custom Apps: card titles readable on the dark page */
body.at-v2.page-id-1056 .at-card :is(h2,h3,h4,.elementor-heading-title){color:#fff!important}
/* phones: the headline comes first, the artwork after it and smaller */
@media (max-width:767px){
  body.at-v2 .at-page-hero__row > .e-con-inner{flex-direction:column!important}
  body.at-v2 .at-page-hero__copy{order:1!important}
  body.at-v2 .at-hero-emblem{order:2!important;max-height:300px;margin-top:8px}
  body.at-v2 .at-page-hero{padding-top:84px!important}
}
/* Custom Apps: the closing heading used a gradient fill that rendered empty */
body.at-v2.page-id-1056 .at-b3blueprint .elementor-heading-title{color:#fff!important;-webkit-text-fill-color:#fff!important;background:none!important}
body.at-v2.page-id-1056 .at-faq .elementor-accordion-title,body.at-v2.page-id-1056 .at-faq .elementor-tab-title{color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:1!important}

/* ---------- sticky "free preview" bar on phones (Business Starter) ---------- */
.atv2-stickybar{position:fixed;left:12px;right:12px;bottom:12px;z-index:90;display:none;align-items:center;justify-content:space-between;gap:12px;padding:10px 10px 10px 18px;border-radius:999px;background:#16233b;color:#fff;box-shadow:0 18px 40px -14px rgba(10,20,40,.7);font:600 15px/1.2 "Source Sans 3",system-ui,sans-serif;transform:translateY(140%);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.atv2-stickybar b{font-weight:700}
.atv2-stickybar a{flex:none;background:#fff;color:#273959!important;text-decoration:none;border-radius:999px;padding:11px 16px;font-weight:700}
.atv2-stickybar.is-on{transform:none}
@media (max-width:767px){.atv2-stickybar{display:flex}}

/* ---------- header always on top (iOS Safari) ----------
   Safari can paint animated, clipped or blurred layers (hero canvases, slanted
   sections, tab pills) over a position:fixed header, so the menu shows and then
   vanishes behind the page. All page content now lives in its own stacking
   context underneath the header, which sits on a dedicated layer above it. */
body.at-v2 .elementor-location-header,body.at-v2 .elementor-location-header > .at-header{z-index:1000!important}
body.at-v2 .site-content{position:relative;z-index:0;isolation:isolate}
body.at-v2 .at-header__nav .elementor-nav-menu--dropdown{z-index:1001!important}

/* ---------- mobile menu on iPhone ----------
   The header clipped sideways overflow with overflow-x:clip. Safari before 16
   does not know "clip" and fell back to hiding everything outside the header,
   so the dropdown showed a sliver and was cut off. The header no longer clips,
   and below the desktop breakpoint the panel is its own fixed layer placed
   right under the header (top set by alphatech-v2.js), with vh fallbacks. */
body.at-v2 .at-header{overflow:visible!important;max-width:none!important}
@media (max-width:1279px){
  body.at-v2 .at-header__nav .elementor-nav-menu--dropdown.elementor-nav-menu__container{
    position:fixed!important;top:var(--atv2-hb,64px)!important;left:auto!important;right:10px!important;
    width:min(300px,calc(100vw - 20px))!important;max-width:calc(100vw - 20px)!important;
    max-height:calc(100vh - 90px)!important;max-height:calc(100dvh - 90px)!important;
    overflow-y:auto!important;-webkit-overflow-scrolling:touch;z-index:2000!important;
    border-radius:18px!important;will-change:auto!important}
  body.at-v2 .at-header__nav .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container{transform:none!important;-webkit-transform:none!important}
}

/* ---------- icon-box cards (hub pages) read from the left like the rest ---------- */
body.at-v2 :is(.at-twoup,.at-svcgrid,.at-iconcards,.at-relsec) .at-card .elementor-icon-box-wrapper,
body.at-v2 :is(.at-twoup,.at-svcgrid,.at-iconcards,.at-relsec) .at-card .elementor-icon-box-wrapper > *{text-align:left!important}
body.at-v2 :is(.at-twoup,.at-svcgrid,.at-iconcards,.at-relsec) .at-card .elementor-icon-box-icon{display:flex!important;justify-content:flex-start!important;margin-left:0!important;margin-right:0!important}
body.at-v2 :is(.at-twoup,.at-svcgrid,.at-iconcards,.at-relsec) .at-card .elementor-icon-box-wrapper{align-items:flex-start!important}
body.at-v2 :is(.at-twoup,.at-svcgrid,.at-iconcards,.at-relsec) .at-card .elementor-icon-box-title{margin-top:14px}
/* price-box labels were 10px on phones */
body.at-v2 .at-pricebar__from .elementor-heading-title{font-size:12px!important;letter-spacing:.06em!important}
/* tablets too: headline first, artwork after it */
@media (max-width:1024px){
  body.at-v2 .at-page-hero__row > .e-con-inner{flex-direction:column!important}
  body.at-v2 .at-page-hero__copy{order:1!important}
  body.at-v2 .at-hero-emblem{order:2!important;max-height:320px;margin-top:8px}
}

/* ---------- pass 4: menu panel size, socials, footer link row ---------- */
@media (max-width:1279px){
  body.at-v2 .at-header__nav .elementor-nav-menu--dropdown.elementor-nav-menu__container{width:230px!important;padding:8px 0 10px!important}
  body.at-v2 .at-header__nav .elementor-nav-menu--dropdown .elementor-item{min-height:42px!important;padding-top:8px!important;padding-bottom:8px!important;font-size:15px!important}
  body.at-v2 .at-header__nav .elementor-nav-menu--dropdown .sub-menu .elementor-item{min-height:38px!important;font-size:14px!important}
  body.at-v2 .at-header__nav .elementor-nav-menu--dropdown .sub-menu{margin:2px 10px 6px!important;padding:4px 0!important}
  /* on phones and tablets the social icons live in the menu, not the header */
  body.at-v2 .at-header .at-fb-btn,body.at-v2 .at-header .atv2-ig-btn{display:none!important}
}
body.at-v2 .elementor-nav-menu--main .atv2-menu-soc{display:none!important}
body.at-v2 .elementor-nav-menu--dropdown .atv2-menu-soc{display:block!important;border-top:1px solid #d8e0ec;margin-top:6px!important;padding:12px 18px 4px!important}
.atv2-menu-soc__in{display:flex;justify-content:flex-end;gap:10px}
.atv2-soc{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#fff!important;text-decoration:none;transition:transform .2s,filter .2s}
.atv2-soc svg{width:17px;height:17px}
.atv2-soc:hover{transform:translateY(-2px);filter:brightness(1.1)}
.atv2-soc--facebook{background:#1877f2}
.atv2-soc--instagram{background:#e1306c}
.atv2-soc--linkedin{background:#0a66c2}
body.at-v2 .elementor-nav-menu--dropdown .atv2-menu-soc a.atv2-soc{padding:0!important;min-height:0!important;width:38px!important;height:38px!important;display:inline-grid!important;place-items:center;color:#fff!important}
body.at-v2 .elementor-nav-menu--dropdown .atv2-menu-soc a.atv2-soc--facebook{background:#1877f2!important}
body.at-v2 .elementor-nav-menu--dropdown .atv2-menu-soc a.atv2-soc--instagram{background:#e1306c!important}
body.at-v2 .elementor-nav-menu--dropdown .atv2-menu-soc a.atv2-soc--linkedin{background:#0a66c2!important}
body.at-v2 .atv2-ig-btn{background:#e1306c!important;color:#fff!important;margin-left:8px}
body.at-v2 .atv2-ig-btn svg{width:18px;height:18px}
body.at-v2 .atv2-legal{display:flex!important;flex-direction:column;align-items:center;gap:10px;text-align:center}
body.at-v2 .atv2-legal__line{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 0}
body.at-v2 .atv2-legal__line a{padding:0 12px;position:relative}
body.at-v2 .atv2-legal__line a+a::before{content:"\00B7";position:absolute;left:-3px;opacity:.5}
body.at-v2 .atv2-legal__soc{display:flex;gap:10px;margin-top:6px}
@media (min-width:900px){
  body.at-v2 .atv2-legal{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:10px 0}
  body.at-v2 .atv2-legal__soc{margin:0 0 0 14px}
}
/* the last two desktop drop-downs open towards the left so they stay on screen */
@media (min-width:1280px){
  body.at-v2 .elementor-nav-menu--main .menu-item-1203 > .sub-menu,body.at-v2 .elementor-nav-menu--main .menu-item-1204 > .sub-menu{left:auto!important;right:0!important}
}
/* 1280-1439px: the menu needs the room, Instagram stays in the footer */
@media (max-width:1439px){body.at-v2 .at-header .atv2-ig-btn{display:none!important}}

/* social icons: glyph centred exactly, same size everywhere */
.atv2-soc svg,body.at-v2 .atv2-ig-btn svg{display:block;width:18px!important;height:18px!important;margin:0!important;flex:none}
.atv2-soc--facebook svg{width:16px!important;height:16px!important}
body.at-v2 .atv2-ig-btn{display:inline-grid!important;place-items:center!important;padding:0!important}
/* the Instagram glyph is an outline: never let older button styles fill it */
body.at-v2 .atv2-ig-btn svg,body.at-v2 .atv2-ig-btn svg rect,body.at-v2 .atv2-ig-btn svg circle,
body.at-v2 .atv2-soc--instagram svg,body.at-v2 .atv2-soc--instagram svg rect,body.at-v2 .atv2-soc--instagram svg circle{fill:none!important;stroke:#fff!important}
body.at-v2 .atv2-ig-btn svg circle:last-child,body.at-v2 .atv2-soc--instagram svg circle:last-child{fill:#fff!important;stroke:none!important}
body.at-v2 .atv2-soc{padding:0!important;line-height:0!important;margin:0!important;border:0!important;vertical-align:middle}
/* footer links are forced to display:block on phones; the icon circles need flex centring */
body.at-v2 .atv2-legal a.atv2-soc,body.at-v2 .elementor-nav-menu--dropdown .atv2-menu-soc a.atv2-soc{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:38px!important;height:38px!important}
