/* V28 - stable 16:9 slider + CMS theme overrides */
.cms-theme{
  font-family:var(--cms-font,Inter,Segoe UI,Arial,sans-serif);
  font-size:var(--cms-body-size,16px);
  color:var(--cms-text,#10284b);
  background:var(--cms-page-bg,#f7fbff);
}
.cms-theme .container{width:min(var(--cms-container,1320px),calc(100% - 48px));margin-inline:auto}
.cms-theme .nav-shell{background:color-mix(in srgb,var(--cms-header-bg,#eef6fb) 92%,white);border-bottom:1px solid #dce9f1}
.cms-theme .btn-primary{background:linear-gradient(135deg,var(--cms-primary,#1fa8e5),var(--cms-primary-dark,#0f86d2));color:#fff}
.cms-theme .eyebrow{color:var(--cms-primary-dark,#0f86d2)}

/* Slider is physically locked to one height. Every asset is 1920x1080. */
.hero-slider-v19{height:var(--cms-hero-height,540px)!important;min-height:var(--cms-hero-height,540px)!important;position:relative;overflow:hidden;background:#dfeef7}
.hero-slider-v19 .hero-slide{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;opacity:0;pointer-events:none;overflow:hidden}
.hero-slider-v19 .hero-slide.active{position:absolute!important;opacity:1;pointer-events:auto}
.hero-slider-v19 .hero-backdrop{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;overflow:hidden}
.hero-slider-v19 .hero-static-bg{display:block;width:100%!important;height:100%!important;min-height:0!important;object-fit:cover!important;transform:none!important;filter:saturate(1.03) contrast(1.04) brightness(.98)!important}
.hero-slider-v19 .hero-glow{display:none!important}
.hero-slider-v19 .hero-content{height:100%!important;min-height:0!important;display:flex!important;align-items:center!important;position:relative;z-index:3;padding-top:0!important;padding-bottom:0!important}
.hero-slider-v19 .hero-content:before{content:"";position:absolute;z-index:-1;left:-10vw;top:0;bottom:0;width:min(900px,72vw);background:linear-gradient(90deg,rgba(242,249,253,.98) 0%,rgba(238,247,252,.93) 48%,rgba(232,244,251,.72) 74%,rgba(232,244,251,0) 100%);pointer-events:none}
.hero-copy-v19{width:min(690px,57vw)!important;padding:36px 22px 34px 0!important;background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;filter:none!important}
.hero-copy-v19:before,.hero-copy-v19:after{display:none!important}
.hero-copy-v19 .eyebrow{font-size:12px!important;letter-spacing:.18em!important;font-weight:900!important;color:var(--cms-primary-dark,#0f86d2)!important;text-shadow:0 1px 0 rgba(255,255,255,.8)}
.hero-copy-v19 h1{font-size:var(--cms-hero-title,54px)!important;line-height:1.03!important;letter-spacing:-.045em!important;color:var(--cms-navy,#0a2345)!important;font-weight:900!important;text-shadow:0 1px 0 rgba(255,255,255,.9),0 5px 24px rgba(4,39,75,.10)!important;max-width:650px!important}
.hero-copy-v19 h1 span{color:var(--cms-primary-dark,#0f86d2)!important;text-shadow:0 1px 0 #fff,0 4px 18px rgba(7,105,166,.16)!important;-webkit-text-stroke:0!important}
.hero-copy-v19 p{max-width:625px!important;color:#264765!important;font-size:15px!important;line-height:1.65!important;font-weight:650!important;text-shadow:0 1px 0 rgba(255,255,255,.75)!important}
.hero-copy-v19 .hero-actions{margin-top:20px!important}
.hero-copy-v19 .btn-outline{background:rgba(255,255,255,.92)!important;border-color:#7297b4!important;color:#0a3156!important;box-shadow:0 6px 18px rgba(19,70,110,.06)}
.hero-features-v19{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;margin-top:18px!important;max-width:640px!important}
.hero-features-v19>div{min-height:60px!important;padding:9px 12px!important;border:1px solid rgba(92,178,221,.38)!important;border-radius:14px!important;background:linear-gradient(100deg,rgba(255,255,255,.96),rgba(226,243,253,.91))!important;box-shadow:0 10px 26px rgba(27,97,143,.07)!important;color:#123858!important;backdrop-filter:none!important}
.hero-features-v19>div b{font-size:11px!important;line-height:1.35!important;color:#123858!important;text-shadow:none!important}
.hero-features-v19 .feature-icon{width:38px!important;height:38px!important;background:#f9fdff!important;border:1.7px solid var(--cms-primary,#1fa8e5)!important;color:var(--cms-primary-dark,#0f86d2)!important;box-shadow:none!important}
.hero-features-v19 .feature-icon svg{width:21px!important;height:21px!important;stroke-width:1.8!important}
.hero-right-caption{display:none!important}
.hero-slider-v19 .slider-arrow{width:44px!important;height:44px!important;border:1px solid rgba(32,118,172,.34)!important;background:rgba(247,252,255,.86)!important;color:#0d78b5!important;box-shadow:0 8px 20px rgba(18,75,115,.12)!important;backdrop-filter:blur(6px)!important}
.hero-slider-v19 .slider-arrow:hover{background:#fff!important;color:var(--cms-primary-dark,#0f86d2)!important;transform:translateY(-50%) scale(1.04)!important}
.hero-slider-v19 .slider-dot{width:9px!important;height:9px!important;background:rgba(255,255,255,.72)!important;border:1px solid rgba(8,83,134,.35)!important}
.hero-slider-v19 .slider-dot.active{width:28px!important;border-radius:999px!important;background:var(--cms-primary,#1fa8e5)!important}

/* Dynamic theme */
.cms-theme h2{font-size:var(--cms-section-title,40px)}
.cms-theme .services-showcase,.cms-theme .why-us{background:linear-gradient(180deg,color-mix(in srgb,var(--cms-page-bg,#f7fbff) 72%,#f5f1e2),var(--cms-page-bg,#f7fbff))}
.cms-theme .service-icon,.cms-theme .managed-tab>span{color:var(--cms-primary-dark,#0f86d2);background:#edf8fe;border-color:#b7dff3}
.cms-theme .service-icon svg,.cms-theme .map-icon svg,.cms-theme .feature-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}
.cms-theme .map-icon svg{width:100%;height:100%;stroke-width:2.4}
.cms-theme .map-card h3{color:var(--cms-navy,#0a2345)}
.cms-theme .partner-logo img{width:100%;height:100%;max-width:120px;max-height:44px;object-fit:contain}

/* FAQ - compact and soft, all items start closed */
.faq-v20{min-height:auto!important;padding-top:38px!important;padding-bottom:42px!important}
.faq-v20-head{margin-bottom:14px!important}
.faq-v20-list{height:auto!important;max-height:none!important;overflow:visible!important;display:grid!important;gap:9px!important}
.faq-v20 .faq-item{border-radius:14px!important;background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(230,239,246,.76) 50%,rgba(255,255,255,.98) 100%)!important;transition:border-color .18s ease,box-shadow .18s ease!important}
.faq-v20 .faq-item button{padding:17px 20px!important;font-size:15px!important;background:transparent!important}
.faq-v20 .faq-item>div,.faq-v20 .faq-answer{display:grid!important;grid-template-rows:0fr!important;opacity:.2!important;overflow:hidden!important;padding:0 20px!important;transition:grid-template-rows .22s ease,opacity .18s ease,padding .22s ease!important}
.faq-v20 .faq-item>div>* , .faq-v20 .faq-answer>*{min-height:0!important;overflow:hidden!important}
.faq-v20 .faq-item.open>div,.faq-v20 .faq-item.open .faq-answer{grid-template-rows:1fr!important;opacity:1!important;padding:0 20px 16px!important}
.faq-v20 .faq-item p{font-size:13px!important;line-height:1.65!important;margin:0!important;color:#536b82!important}

@media(max-width:1180px){
  .cms-theme .container{width:min(var(--cms-container,1320px),calc(100% - 36px))}
  .hero-slider-v19{height:500px!important;min-height:500px!important}
  .hero-copy-v19{width:min(640px,64vw)!important}
  .hero-copy-v19 h1{font-size:min(var(--cms-hero-title,54px),46px)!important}
}
@media(max-width:900px){
  .cms-theme .container{width:calc(100% - 28px)}
  .hero-slider-v19{height:auto!important;min-height:0!important}
  .hero-slider-v19 .hero-slide{position:absolute!important;height:100%!important}
  .hero-slider-v19 .hero-slide.active{position:relative!important;min-height:640px!important}
  .hero-slider-v19 .hero-backdrop{height:100%!important}
  .hero-slider-v19 .hero-content{min-height:640px!important;align-items:flex-start!important;padding-top:26px!important;padding-bottom:230px!important}
  .hero-slider-v19 .hero-content:before{left:-20px;width:calc(100% + 40px);height:440px;bottom:auto;background:linear-gradient(180deg,rgba(242,249,253,.98),rgba(239,248,253,.94) 65%,rgba(239,248,253,0))}
  .hero-copy-v19{width:100%!important;padding:20px 0!important}
  .hero-copy-v19 h1{font-size:38px!important;max-width:600px!important}
  .hero-copy-v19 p{font-size:14px!important}
  .hero-features-v19{grid-template-columns:1fr!important;max-width:420px!important}
  .hero-slider-v19 .slider-arrow{top:auto!important;bottom:88px!important;transform:none!important}
  .hero-slider-v19 .slider-arrow:hover{transform:scale(1.04)!important}
}
@media(max-width:560px){
  .hero-slider-v19 .hero-slide.active{min-height:690px!important}
  .hero-slider-v19 .hero-content{min-height:690px!important;padding-bottom:245px!important}
  .hero-copy-v19 h1{font-size:31px!important}
  .hero-copy-v19 .hero-actions{display:grid!important;grid-template-columns:1fr!important}
  .hero-copy-v19 .btn{width:100%!important}
  .faq-v20 .faq-item button{font-size:14px!important;padding:15px 16px!important}
}

/* =========================================================
   V29 — stable hero overlay + readable accent + FAQ answer fix
   ========================================================= */
.hero-slider-v19 .hero-content:before{
  display:none!important;
  content:none!important;
}
.hero-slider-v19 .hero-glow{
  display:block!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  background:linear-gradient(90deg,
    rgba(239,248,253,.95) 0%,
    rgba(237,247,253,.91) 18%,
    rgba(232,244,251,.82) 32%,
    rgba(224,240,249,.62) 46%,
    rgba(214,234,246,.34) 58%,
    rgba(205,229,244,.14) 68%,
    rgba(8,38,67,.02) 82%,
    rgba(7,34,61,.08) 100%)!important;
}
.hero-copy-v19{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.hero-copy-v19:before,.hero-copy-v19:after{display:none!important;content:none!important}
.hero-copy-v19 h1{
  color:var(--cms-navy,#0a2345)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.95),0 3px 16px rgba(255,255,255,.42)!important;
}
.hero-copy-v19 h1 span{
  color:var(--cms-primary-dark,#0f86d2)!important;
  background:none!important;
  background-image:none!important;
  -webkit-background-clip:border-box!important;
  background-clip:border-box!important;
  -webkit-text-fill-color:var(--cms-primary-dark,#0f86d2)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.95),0 3px 14px rgba(255,255,255,.34)!important;
}
.hero-copy-v19 p{
  color:#284966!important;
  text-shadow:0 1px 0 rgba(255,255,255,.9)!important;
}
.hero-features-v19>div{
  background:linear-gradient(100deg,rgba(255,255,255,.94),rgba(229,243,251,.87))!important;
}

/* FAQ answers use one dedicated animated wrapper. */
.faq-v20 .faq-item>.faq-answer{
  display:grid!important;
  grid-template-rows:0fr!important;
  opacity:0!important;
  overflow:hidden!important;
  padding:0 20px!important;
  max-height:none!important;
  background:transparent!important;
  transition:grid-template-rows .22s ease,opacity .18s ease,padding .22s ease!important;
}
.faq-v20 .faq-item.open>.faq-answer{
  grid-template-rows:1fr!important;
  opacity:1!important;
  padding:0 20px 16px!important;
}
.faq-v20 .faq-answer-inner{
  min-height:0!important;
  overflow:hidden!important;
  display:block!important;
}
.faq-v20 .faq-answer-inner p{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  color:#536b82!important;
}

@media(max-width:900px){
  .hero-slider-v19 .hero-glow{
    background:linear-gradient(180deg,
      rgba(235,246,252,.20) 0%,
      rgba(231,244,251,.32) 36%,
      rgba(232,245,252,.91) 58%,
      rgba(235,247,253,.99) 100%)!important;
  }
}

/* =========================================================
   V30 — stable fade slider + CMS-controlled icons / managed tabs
   ========================================================= */

/* Hero: keep layout exactly as V29, only soften slide changes. */
.hero-slider-v19 .hero-slide{
  transition:opacity .78s cubic-bezier(.22,.61,.36,1)!important;
  will-change:opacity;
}
.hero-slider-v19 .hero-static-bg{
  transform:scale(1.012)!important;
  transition:transform 1.35s cubic-bezier(.22,.61,.36,1),filter .4s ease!important;
  will-change:transform;
}
.hero-slider-v19 .hero-slide.active .hero-static-bg{transform:scale(1)!important}
.hero-slider-v19 .hero-copy-v19{
  opacity:.88;
  transform:translateY(8px);
  transition:opacity .6s ease .08s,transform .6s cubic-bezier(.22,.61,.36,1) .08s!important;
}
.hero-slider-v19 .hero-slide.active .hero-copy-v19{opacity:1;transform:translateY(0)}

/* IT map */
.map-intro .map-cta{padding:12px 19px!important;font-size:11px!important;box-shadow:0 8px 20px rgba(18,139,204,.14)}
.map-card .map-icon{width:42px!important;height:42px!important;margin-bottom:8px!important;display:grid!important;place-items:center!important;color:var(--cms-primary-dark,#0f86d2)!important}
.map-card .map-icon svg{width:38px!important;height:38px!important;stroke-width:1.7!important}
.map-card .map-icon img{width:38px!important;height:38px!important;object-fit:contain!important;display:block!important}
.map-card h3{font-size:13px!important;line-height:1.25!important}
.map-card p{font-size:9.5px!important;line-height:1.4!important}

/* Managed IT */
.managed-head{max-width:none!important;text-align:left!important}
.managed-head h2{max-width:none!important}
.managed-tab{transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease!important}
.managed-tab:hover{transform:translateY(-1px)}
.managed-card{transition:opacity .22s ease,transform .22s ease!important}
.managed-card.is-switching{opacity:.38;transform:translateY(5px)}
.managed-media img{transition:opacity .22s ease!important}
.managed-list{gap:13px!important;padding:17px 15px!important}
.managed-list>div{gap:11px!important;font-size:13.5px!important;color:#405d78!important;min-height:42px!important}
.managed-list>div strong{font-weight:650!important;line-height:1.35!important}
.managed-list-icon{width:38px!important;height:38px!important;flex:0 0 38px!important;border-radius:50%!important;background:#eaf7ff!important;color:var(--cms-primary-dark,#0f86d2)!important;display:grid!important;place-items:center!important}
.managed-list-icon svg{width:20px!important;height:20px!important;stroke-width:1.8!important}
.managed-copy h3{font-size:18px!important}
.managed-copy p{font-size:11.5px!important;line-height:1.55!important}

/* Solution partners: every logo gets the same usable visual area. */
.partner-marquee{padding:7px 0!important}
.partner-track{gap:12px!important}
.partner-logo{
  width:178px!important;
  height:86px!important;
  padding:10px 12px!important;
  border-radius:14px!important;
  overflow:hidden!important;
}
.cms-theme .partner-logo img,
.partner-logo img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
}

/* FAQ chevrons */
.faq-chevron{
  width:30px!important;
  height:30px!important;
  flex:0 0 30px!important;
  margin-left:18px!important;
  border-radius:50%!important;
  display:grid!important;
  place-items:center!important;
  background:rgba(223,241,251,.88)!important;
  color:#157fba!important;
  transition:transform .24s ease,background .2s ease,color .2s ease!important;
}
.faq-chevron svg{width:17px!important;height:17px!important;fill:none!important;stroke:currentColor!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.faq-v20 .faq-item.open .faq-chevron{transform:rotate(180deg)!important;background:#159fdb!important;color:#fff!important}
.faq-v20 .faq-item button:hover .faq-chevron{background:#d4edf9!important}
.faq-v20 .faq-item.open button:hover .faq-chevron{background:#118bc2!important}

@media(max-width:900px){
  .partner-logo{width:150px!important;height:76px!important}
  .managed-list>div{font-size:13px!important}
}

@media(prefers-reduced-motion:reduce){
  .hero-slider-v19 .hero-slide,.hero-slider-v19 .hero-static-bg,.hero-slider-v19 .hero-copy-v19,.managed-card{transition:none!important}
}
.managed-tab b{font-size:14.5px!important;line-height:1.3!important}
.managed-tab small{font-size:11.5px!important;line-height:1.4!important}
