:root{--cls-bg:#F7F6F4;--cls-bg2:#F8F7F5;--cls-navy:#012960;--cls-navy2:#002860;--cls-yellow:#FCC31E;--cls-yellow2:#FDC020;--cls-text:#24364d;--cls-white:#fff;--cls-border:rgba(1,41,96,.12)}
.cls-section,.cls-section *{box-sizing:border-box}.cls-section{width:100%;background:var(--cls-bg);padding:72px 24px;color:var(--cls-text);font-family:inherit}.cls-wrap{width:min(1180px,100%);margin:0 auto}.cls-heading{text-align:center;margin-bottom:34px}.cls-eyebrow{color:var(--cls-yellow);font-size:13px;line-height:1.3;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px}.cls-title{margin:0;color:var(--cls-navy);font-size:clamp(30px,3vw,48px);line-height:1.05;font-weight:800}.cls-richtext,.cls-richtext p{font-size:16px;line-height:1.75;color:#4c5c70}.cls-about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:48px;align-items:center}.cls-about-media{position:relative}.cls-about-media>img{display:block;width:100%;aspect-ratio:1.38/1;object-fit:cover;border-radius:24px}.cls-years{position:absolute;left:-26px;bottom:-18px;min-width:130px;padding:18px;background:#fff;border-radius:18px;box-shadow:0 18px 50px rgba(1,41,96,.12);text-align:center}.cls-years strong{display:block;color:var(--cls-yellow);font-size:34px;line-height:1}.cls-years span{display:block;color:var(--cls-navy);font-size:13px;font-weight:700;margin-top:7px}.cls-feature-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}.cls-feature{display:flex;gap:12px;align-items:flex-start}.cls-feature-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:rgba(252,195,30,.12);color:var(--cls-yellow);flex:0 0 auto}.cls-feature-icon svg{width:20px;height:20px;fill:currentColor}.cls-feature strong{display:block;color:var(--cls-navy);font-size:15px}.cls-feature small{display:block;font-size:12px;line-height:1.35;color:#68778b;margin-top:2px}
.cls-service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.cls-service-card{position:relative;background:#fff;border:1px solid var(--cls-border);border-radius:18px;overflow:hidden;box-shadow:0 14px 35px rgba(1,41,96,.06);transition:.25s ease}.cls-service-card:hover{transform:translateY(-6px);box-shadow:0 22px 45px rgba(1,41,96,.11)}.cls-service-media{position:relative}.cls-service-media img{display:block;width:100%;aspect-ratio:1.45/1;object-fit:cover}.cls-service-icon{position:absolute;left:-1px;top:-1px;width:58px;height:58px;display:grid;place-items:center;background:var(--cls-service-icon-bg,var(--cls-yellow));color:var(--cls-service-icon-color,var(--cls-navy));border-radius:0 0 14px 0}.cls-service-icon svg{width:24px;height:24px;fill:currentColor}.cls-service-body{padding:22px}.cls-service-body h3{margin:0 0 12px;color:var(--cls-navy);font-size:20px;line-height:1.2}.cls-service-body p{margin:0 0 16px;line-height:1.55;color:#647286}.cls-service-link{font-weight:800;text-decoration:none;color:var(--cls-yellow)}
.cls-mini-section{font-family:inherit;color:var(--cls-text);padding:8px 0}.cls-mini-section .cls-title{font-size:clamp(26px,2.3vw,38px);margin-bottom:25px}.cls-check-list{list-style:none;margin:0;padding:0;display:grid;gap:17px}.cls-check-list li{display:flex;gap:11px;align-items:flex-start;font-weight:600}.cls-check{color:var(--cls-yellow);font-weight:900}.cls-area-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.cls-area-pill{padding:9px 8px;text-align:center;border:1px solid var(--cls-border);border-radius:9px;background:#fff;color:var(--cls-navy);font-weight:650;font-size:13px}.cls-area-note{display:block;margin-top:18px;padding:11px 14px;border-radius:11px;background:rgba(1,41,96,.05);color:var(--cls-yellow);font-weight:700;text-decoration:none}.cls-steps{display:grid;gap:17px}.cls-step{position:relative;display:grid;grid-template-columns:48px 1fr;gap:14px;align-items:center}.cls-step:not(:last-child):before{content:"";position:absolute;left:23px;top:44px;width:2px;height:34px;background:rgba(252,195,30,.35)}.cls-step-num{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--cls-yellow);color:var(--cls-navy);font-weight:800}.cls-step strong{display:block;color:var(--cls-navy);font-size:15px}.cls-step small{display:block;color:#7a8797;margin-top:4px}
.cls-carousel{position:relative;overflow:hidden}.cls-carousel-track{display:flex;gap:22px;transition:transform .55s cubic-bezier(.22,.61,.36,1);will-change:transform}.cls-gallery-card{flex:0 0 calc((100% - 44px)/3);position:relative;overflow:hidden;background:#fff;box-shadow:0 15px 35px rgba(1,41,96,.08)}.cls-gallery-card img{display:block;width:100%;aspect-ratio:1.35/1;object-fit:cover}.cls-gallery-card figcaption{position:absolute;left:16px;bottom:16px;padding:10px 13px;background:rgba(1,41,96,.9);color:#fff;border-radius:10px}.cls-gallery-card figcaption small,.cls-gallery-card figcaption strong{display:block}.cls-gallery-card figcaption small{font-size:11px;color:var(--cls-yellow);text-transform:uppercase;letter-spacing:.06em}.cls-gallery-arrow{position:absolute;z-index:4;top:50%;transform:translateY(-50%);width:46px;height:46px;border:0;border-radius:50%;background:var(--cls-yellow);color:var(--cls-navy);font-size:28px;line-height:1;cursor:pointer;box-shadow:0 9px 24px rgba(1,41,96,.16)}.cls-prev{left:10px}.cls-next{right:10px}.cls-testimonial{flex:0 0 calc((100% - 44px)/3);background:#fff;border:1px solid var(--cls-border);border-radius:17px;padding:24px;box-shadow:0 14px 34px rgba(1,41,96,.06)}.cls-stars{color:var(--cls-yellow);font-size:20px;letter-spacing:2px}.cls-testimonial p{min-height:80px;line-height:1.55;color:#536276}.cls-person{display:flex;gap:12px;align-items:center}.cls-person img{width:48px;height:48px;object-fit:cover;border-radius:50%}.cls-person strong{display:block;color:var(--cls-navy)}.cls-person small{display:block;color:#8a95a4;margin-top:3px}.cls-dots{display:flex;justify-content:center;gap:7px;margin-top:22px}.cls-dot{width:8px;height:8px;border:0;border-radius:50%;padding:0;background:rgba(1,41,96,.18);cursor:pointer}.cls-dot.is-active{background:var(--cls-yellow)}
.cls-quote{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.65fr);overflow:hidden;border-radius:22px;background:var(--cls-navy);box-shadow:0 22px 55px rgba(1,41,96,.17)}.cls-quote aside{position:relative;padding:42px;color:#fff;overflow:hidden}.cls-quote aside h2{margin:0 0 16px;font-size:clamp(30px,3vw,46px);line-height:1.07}.cls-quote aside>p{line-height:1.6;color:rgba(255,255,255,.82);max-width:420px}.cls-contact-line{display:flex;gap:12px;margin-top:15px;align-items:flex-start;font-size:14px}.cls-contact-line i{font-style:normal;color:var(--cls-yellow);font-size:18px}.cls-quote-art{display:block;max-width:210px;max-height:170px;object-fit:contain;margin:16px auto -20px}.cls-quote-form{margin:24px;padding:25px;background:var(--cls-bg2);border-radius:16px;align-self:center}.cls-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.cls-form-grid label{display:grid;gap:6px;font-size:12px;color:var(--cls-navy);font-weight:800}.cls-form-grid input,.cls-form-grid select,.cls-form-grid textarea{width:100%;min-height:46px;padding:11px 13px;border:1px solid rgba(1,41,96,.14);background:#fff;border-radius:9px;color:#24364d;outline:none;font:inherit;font-size:14px}.cls-form-grid input:focus,.cls-form-grid select:focus,.cls-form-grid textarea:focus{border-color:var(--cls-yellow);box-shadow:0 0 0 3px rgba(252,195,30,.15)}.cls-form-grid textarea{min-height:84px;resize:vertical}.cls-span-2{grid-column:1/-1}.cls-submit{width:100%;margin-top:16px;border:0;border-radius:9px;min-height:47px;padding:11px 16px;background:var(--cls-yellow);color:var(--cls-navy);font-weight:900;cursor:pointer;transition:.2s}.cls-submit:hover{filter:brightness(.97);transform:translateY(-1px)}.cls-submit[disabled]{opacity:.6;cursor:not-allowed}.cls-form-status{min-height:22px;margin-top:10px;font-size:13px;text-align:center}.cls-form-status.is-success{color:#012960}.cls-form-status.is-error{color:#002860}.cls-privacy{display:block;text-align:center;color:#718095;font-size:11px}.cls-hp{position:absolute!important;left:-99999px!important;opacity:0!important;pointer-events:none!important}
.cls-faq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 26px}.cls-faq-item{background:var(--cls-faq-q-bg,#fff);border:1px solid var(--cls-border);border-radius:11px;overflow:hidden}.cls-faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;background:none;border:0;padding:15px 18px;color:var(--cls-faq-q-color,var(--cls-navy));font:inherit;font-weight:750;text-align:left;cursor:pointer}.cls-faq-q b{font-size:22px;font-weight:400;transition:.2s}.cls-faq-a{display:none;padding:0 18px 16px;color:#5c6b7f;line-height:1.6}.cls-faq-item.is-open .cls-faq-a{display:block}.cls-faq-item.is-open .cls-faq-q b{transform:rotate(45deg)}
@media(max-width:1024px){.cls-section{padding:58px 28px}.cls-about-grid{grid-template-columns:1fr 1fr;gap:34px}.cls-feature-row{grid-template-columns:1fr}.cls-gallery-card,.cls-testimonial{flex-basis:calc((100% - 22px)/2)}.cls-area-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cls-quote{grid-template-columns:1fr}.cls-quote aside{padding-bottom:25px}.cls-quote-art{position:absolute;right:20px;bottom:0;max-width:170px;opacity:.9}.cls-quote-form{margin-top:0}}
@media(max-width:767px){.cls-section{padding:44px 18px}.cls-about-grid{grid-template-columns:1fr}.cls-years{left:14px;bottom:-18px}.cls-about-copy{padding-top:12px}.cls-feature-row{grid-template-columns:1fr}.cls-service-grid{min-width:0}.cls-gallery-card,.cls-testimonial{flex-basis:100%}.cls-gallery-arrow{width:40px;height:40px}.cls-area-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cls-faq-grid{grid-template-columns:1fr}.cls-form-grid{grid-template-columns:1fr}.cls-span-2{grid-column:auto}.cls-quote aside{padding:30px 24px}.cls-quote-art{position:static;margin:18px auto -10px}.cls-quote-form{margin:0 12px 12px;padding:18px}.cls-title{font-size:34px}}
.cls-trust-grid{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:38px}.cls-trust-col{position:relative}.cls-trust-col:not(:last-child):after{content:"";position:absolute;right:-19px;top:0;bottom:0;width:1px;background:rgba(1,41,96,.1)}
@media(max-width:1024px){.cls-trust-grid{grid-template-columns:1fr 1fr}.cls-trust-col:last-child{grid-column:auto}.cls-trust-col:nth-child(2):after{display:none}.cls-trust-col:last-child{padding-top:24px}}
@media(max-width:767px){.cls-trust-grid{min-width:0}.cls-trust-col:last-child{grid-column:auto}.cls-trust-col:after{display:none!important}.cls-trust-col{padding:0 0 28px;border-bottom:1px solid rgba(1,41,96,.1)}.cls-trust-col:last-child{border-bottom:0;padding-bottom:0}}

/* =========================================================
   v1.1.0 — Premium interaction, motion and theme-color guard
   ========================================================= */
.cls-section{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:
    radial-gradient(circle at 8% 8%,rgba(252,195,30,.055),transparent 28%),
    radial-gradient(circle at 92% 88%,rgba(1,41,96,.045),transparent 30%),
    var(--cls-bg);
}
.cls-section:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.36;
  background-image:radial-gradient(rgba(1,41,96,.08) .55px,transparent .55px);
  background-size:18px 18px;
  -webkit-mask-image:linear-gradient(to bottom,transparent,black 22%,black 78%,transparent);
  mask-image:linear-gradient(to bottom,transparent,black 22%,black 78%,transparent);
}
.cls-wrap{position:relative;z-index:1}
.cls-heading{position:relative}
.cls-heading:after{
  content:"";
  display:block;
  width:54px;
  height:3px;
  border-radius:999px;
  margin:15px auto 0;
  background:linear-gradient(90deg,var(--cls-yellow),var(--cls-yellow2));
  box-shadow:0 6px 18px rgba(252,195,30,.22);
}
.cls-eyebrow{letter-spacing:.09em}
.cls-title{letter-spacing:-.025em;text-wrap:balance}

/* Prevent theme/Elementor default pink hover leakage inside this plugin. */
.cls-section .cls-service-link,
.cls-section .cls-service-link:visited{color:var(--cls-service-link-color,var(--cls-yellow))!important}
.cls-section .cls-area-note,
.cls-section .cls-area-note:visited{color:var(--cls-area-note-color,var(--cls-yellow))!important}
.cls-section .cls-service-link:hover,
.cls-section .cls-service-link:focus{color:var(--cls-service-link-hover,var(--cls-navy))!important}
.cls-section .cls-area-note:hover,
.cls-section .cls-area-note:focus{color:var(--cls-area-note-hover,var(--cls-navy))!important}
.cls-section button,
.cls-section button:hover,
.cls-section button:focus,
.cls-section input[type="submit"],
.cls-section input[type="submit"]:hover,
.cls-section input[type="submit"]:focus{
  border-color:transparent;
  outline-color:var(--cls-yellow);
}
.cls-section .cls-submit,
.cls-section .cls-submit:hover,
.cls-section .cls-submit:focus,
.cls-section .cls-gallery-arrow,
.cls-section .cls-gallery-arrow:hover,
.cls-section .cls-gallery-arrow:focus{
  background:var(--cls-control-bg,var(--cls-yellow));
  color:var(--cls-control-color,var(--cls-navy));
  border-color:transparent!important;
}
.cls-section .cls-dot,
.cls-section .cls-dot:hover,
.cls-section .cls-dot:focus{background:rgba(1,41,96,.18)!important}
.cls-section .cls-dot.is-active,
.cls-section .cls-dot.is-active:hover,
.cls-section .cls-dot.is-active:focus{background:var(--cls-dot-active-color,var(--cls-yellow))!important}
.cls-section *::selection{background:rgba(252,195,30,.32);color:var(--cls-navy)}

/* Shared premium card language */
.cls-service-card,
.cls-testimonial,
.cls-faq-item,
.cls-area-pill,
.cls-gallery-card,
.cls-feature,
.cls-quote,
.cls-trust-col{
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}
.cls-service-card,
.cls-testimonial,
.cls-faq-item,
.cls-gallery-card{
  border-color:rgba(1,41,96,.09);
  box-shadow:0 14px 38px rgba(1,41,96,.065);
}

/* About */
.cls-about-media>img{
  box-shadow:0 24px 55px rgba(1,41,96,.12);
  transition:transform .65s cubic-bezier(.22,.61,.36,1),box-shadow .65s ease,filter .65s ease;
}
.cls-about-media:hover>img{transform:scale(1.018);box-shadow:0 30px 68px rgba(1,41,96,.16);filter:saturate(1.04)}
.cls-years{border:1px solid rgba(1,41,96,.07);transition:transform .35s ease,box-shadow .35s ease}
.cls-about-media:hover .cls-years{transform:translateY(-5px);box-shadow:0 24px 58px rgba(1,41,96,.16)}
.cls-feature{padding:12px;border-radius:14px;transition:transform .3s ease,background .3s ease,box-shadow .3s ease}
.cls-feature:hover{transform:translateY(-4px);background:#fff;box-shadow:0 12px 28px rgba(1,41,96,.07)}
.cls-feature-icon{transition:transform .35s cubic-bezier(.2,.8,.2,1),background .3s ease}
.cls-feature:hover .cls-feature-icon{transform:rotate(-6deg) scale(1.08);background:rgba(252,195,30,.2)}

/* Services */
.cls-service-card{border-radius:20px;transition:transform .42s cubic-bezier(.2,.8,.2,1),box-shadow .42s ease,border-color .42s ease}
.cls-service-card:hover{transform:translateY(-9px);box-shadow:0 28px 62px rgba(1,41,96,.14);border-color:rgba(252,195,30,.48)}
.cls-service-media{overflow:hidden}
.cls-service-media img{transition:transform .75s cubic-bezier(.2,.8,.2,1),filter .55s ease}
.cls-service-card:hover .cls-service-media img{transform:scale(1.065);filter:saturate(1.05) contrast(1.02)}
.cls-service-icon{box-shadow:0 10px 24px rgba(252,195,30,.25);transition:transform .38s cubic-bezier(.2,.8,.2,1),box-shadow .38s ease}
.cls-service-card:hover .cls-service-icon{transform:translate(5px,5px) rotate(4deg);box-shadow:0 14px 30px rgba(252,195,30,.35)}
.cls-service-link{display:inline-flex;align-items:center;gap:7px;transition:gap .28s ease,color .28s ease}
.cls-service-link:after{content:"→";transition:transform .28s ease}
.cls-service-link:hover{gap:11px}
.cls-service-link:hover:after{transform:translateX(2px)}

/* Trust / why choose / areas / steps */
.cls-check-list li{padding:7px 0;transition:transform .28s ease,color .28s ease}
.cls-check-list li:hover{transform:translateX(4px);color:var(--cls-navy)}
.cls-check{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:50%;background:rgba(252,195,30,.13);transition:transform .3s ease,background .3s ease}
.cls-check-list li:hover .cls-check{transform:scale(1.1);background:rgba(252,195,30,.22)}
.cls-area-pill{position:relative;overflow:hidden;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease,background .3s ease}
.cls-area-pill:hover{transform:translateY(-3px);border-color:rgba(252,195,30,.62);box-shadow:0 12px 26px rgba(1,41,96,.08);background:linear-gradient(180deg,#fff,rgba(252,195,30,.055))}
.cls-area-note{transition:transform .28s ease,background .28s ease,color .28s ease}
.cls-area-note:hover{transform:translateY(-2px);background:rgba(252,195,30,.13)}
.cls-step-num{box-shadow:0 8px 22px rgba(252,195,30,.24);transition:transform .32s ease,box-shadow .32s ease}
.cls-step:hover .cls-step-num{transform:scale(1.08);box-shadow:0 12px 28px rgba(252,195,30,.34)}
.cls-step{transition:transform .28s ease}
.cls-step:hover{transform:translateX(4px)}

/* Gallery + testimonial carousel */
.cls-carousel{padding:8px 2px 2px}
.cls-carousel-track{transition:transform .56s cubic-bezier(.22,.61,.36,1)}
.cls-gallery-card{border-radius:20px;transition:transform .38s ease,box-shadow .38s ease}
.cls-gallery-card:hover{transform:translateY(-6px);box-shadow:0 24px 52px rgba(1,41,96,.13)}
.cls-gallery-card img{transition:transform .65s cubic-bezier(.2,.8,.2,1),filter .45s ease}
.cls-gallery-card:hover img{transform:scale(1.045);filter:saturate(1.06)}
.cls-gallery-card figcaption{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .3s ease,background .3s ease}
.cls-gallery-card:hover figcaption{transform:translateY(-3px);background:rgba(1,41,96,.95)}
.cls-gallery-arrow{
  display:grid;
  place-items:center;
  padding:0!important;
  border:1px solid rgba(255,255,255,.9)!important;
  transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease,filter .3s ease!important;
}
.cls-gallery-arrow:hover{transform:translateY(-50%) scale(1.08)!important;box-shadow:0 13px 30px rgba(1,41,96,.22);filter:brightness(1.02)}
.cls-gallery-arrow:active{transform:translateY(-50%) scale(.96)!important}
.cls-testimonials{padding-left:2px;padding-right:2px}
.cls-testimonial{
  position:relative;
  overflow:hidden;
  border-radius:20px;
  transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s ease,border-color .4s ease;
}
.cls-testimonial:before{
  content:"“";
  position:absolute;
  right:18px;
  top:-13px;
  font-family:Georgia,serif;
  font-size:98px;
  line-height:1;
  color:rgba(252,195,30,.11);
  pointer-events:none;
}
.cls-testimonial:hover{transform:translateY(-7px);box-shadow:0 26px 58px rgba(1,41,96,.13);border-color:rgba(252,195,30,.42)}
.cls-person img{border:2px solid rgba(252,195,30,.32);transition:transform .32s ease,border-color .32s ease}
.cls-testimonial:hover .cls-person img{transform:scale(1.07);border-color:var(--cls-yellow)}
.cls-stars{filter:drop-shadow(0 3px 9px rgba(252,195,30,.15))}
.cls-dots{min-height:10px}
.cls-dot{transition:width .28s ease,border-radius .28s ease,background .28s ease!important}
.cls-dot.is-active{width:24px;border-radius:999px}

/* Quote form */
.cls-quote{border:1px solid rgba(1,41,96,.08);box-shadow:0 28px 70px rgba(1,41,96,.18);transition:transform .38s ease,box-shadow .38s ease}
.cls-quote:hover{transform:translateY(-3px);box-shadow:0 34px 78px rgba(1,41,96,.22)}
.cls-quote aside:after{
  content:"";
  position:absolute;
  width:260px;height:260px;
  right:-110px;top:-120px;
  border-radius:50%;
  border:45px solid rgba(252,195,30,.07);
  pointer-events:none;
}
.cls-quote-form{box-shadow:0 14px 34px rgba(1,41,96,.11)}
.cls-form-grid input,.cls-form-grid select,.cls-form-grid textarea{transition:border-color .24s ease,box-shadow .24s ease,transform .24s ease}
.cls-form-grid input:hover,.cls-form-grid select:hover,.cls-form-grid textarea:hover{border-color:rgba(1,41,96,.25)}
.cls-submit{box-shadow:0 9px 22px rgba(252,195,30,.24);transition:transform .28s ease,box-shadow .28s ease,filter .28s ease!important}
.cls-submit:hover{transform:translateY(-3px)!important;box-shadow:0 14px 30px rgba(252,195,30,.32);filter:brightness(1.015)!important}
.cls-submit:active{transform:translateY(0)!important}

/* FAQ */
.cls-faq-item{transition:border-color .3s ease,box-shadow .3s ease,transform .3s ease}
.cls-faq-item:hover{transform:translateY(-2px);border-color:rgba(252,195,30,.38);box-shadow:0 14px 32px rgba(1,41,96,.08)}
.cls-faq-item.is-open{border-color:rgba(252,195,30,.52);box-shadow:0 16px 36px rgba(1,41,96,.09)}
.cls-faq-q{transition:background .28s ease,color .28s ease}
.cls-faq-q:hover{background:rgba(252,195,30,.055);color:var(--cls-navy)!important}
.cls-faq-q b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(1,41,96,.055);transition:transform .28s ease,background .28s ease,color .28s ease}
.cls-faq-item.is-open .cls-faq-q b{background:var(--cls-yellow);color:var(--cls-navy)}
.cls-faq-a{animation:clsFaqIn .28s ease both}
@keyframes clsFaqIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}

/* Scroll reveal — enabled by JS only, so content never gets stuck invisible. */
.cls-motion-enabled .cls-reveal{
  opacity:0;
  transform:translate3d(0,28px,0) scale(.992);
  transition:
    opacity .72s cubic-bezier(.2,.8,.2,1) var(--cls-reveal-delay,0ms),
    transform .72s cubic-bezier(.2,.8,.2,1) var(--cls-reveal-delay,0ms);
  will-change:opacity,transform;
}
.cls-motion-enabled .cls-reveal.is-visible{opacity:1;transform:none}
.cls-motion-enabled .cls-service-card.cls-reveal,
.cls-motion-enabled .cls-testimonial.cls-reveal,
.cls-motion-enabled .cls-gallery-card.cls-reveal{transform:translate3d(0,34px,0) scale(.975)}
.cls-motion-enabled .cls-service-card.cls-reveal.is-visible,
.cls-motion-enabled .cls-testimonial.cls-reveal.is-visible,
.cls-motion-enabled .cls-gallery-card.cls-reveal.is-visible{transform:none}

@media (prefers-reduced-motion:reduce){
  .cls-section *,
  .cls-section *:before,
  .cls-section *:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .cls-motion-enabled .cls-reveal{opacity:1!important;transform:none!important}
}

@media(max-width:1024px){
  .cls-section:before{opacity:.25}
  .cls-service-card:hover,.cls-testimonial:hover,.cls-gallery-card:hover{transform:translateY(-4px)}
}
@media(max-width:767px){
  .cls-heading:after{margin-top:12px}
  .cls-carousel{padding-top:5px}
  .cls-gallery-arrow{width:38px;height:38px;font-size:24px}
  .cls-testimonial{padding:22px}
  .cls-section:before{display:none}
}

/* Keep hover transforms active after reveal animation completes. */
.cls-motion-enabled .cls-service-card.cls-reveal.is-visible:hover{transform:translateY(-9px)}
.cls-motion-enabled .cls-testimonial.cls-reveal.is-visible:hover{transform:translateY(-7px)}
.cls-motion-enabled .cls-gallery-card.cls-reveal.is-visible:hover{transform:translateY(-6px)}
.cls-motion-enabled .cls-feature.cls-reveal.is-visible:hover{transform:translateY(-4px)}
.cls-motion-enabled .cls-area-pill.cls-reveal.is-visible:hover{transform:translateY(-3px)}
.cls-motion-enabled .cls-step.cls-reveal.is-visible:hover{transform:translateX(4px)}
.cls-motion-enabled .cls-quote.cls-reveal.is-visible:hover{transform:translateY(-3px)}
.cls-motion-enabled .cls-faq-item.cls-reveal.is-visible:hover{transform:translateY(-2px)}
@media(max-width:1024px){
  .cls-motion-enabled .cls-service-card.cls-reveal.is-visible:hover,
  .cls-motion-enabled .cls-testimonial.cls-reveal.is-visible:hover,
  .cls-motion-enabled .cls-gallery-card.cls-reveal.is-visible:hover{transform:translateY(-4px)}
}

/* =========================================================
   v1.1.1 — UI cleanup, icon reliability & responsive hardening
   ========================================================= */

/* Never allow widget children to create horizontal page overflow. */
.cls-section,
.cls-section .cls-wrap,
.cls-section .cls-about-grid,
.cls-section .cls-service-grid,
.cls-section .cls-trust-grid,
.cls-section .cls-carousel,
.cls-section .cls-carousel-track,
.cls-section .cls-quote,
.cls-section .cls-form-grid,
.cls-section .cls-faq-grid{max-width:100%;min-width:0}
.cls-section img{max-width:100%;height:auto}
.cls-section h1,.cls-section h2,.cls-section h3,.cls-section p,.cls-section a,.cls-section span,.cls-section small{overflow-wrap:break-word;word-break:normal}

/* Services: lighter, cleaner composition and reliable icon visibility. */
.cls-service-grid{gap:24px}
.cls-service-card{
  background:linear-gradient(180deg,#fff 0%,rgba(248,247,245,.72) 100%);
  border:1px solid rgba(1,41,96,.095);
  border-radius:22px;
  box-shadow:0 18px 46px rgba(1,41,96,.075);
}
.cls-service-media{
  margin:10px 10px 0;
  border-radius:16px;
  overflow:hidden;
  background:#eef2f5;
}
.cls-service-media:after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:34%;
  pointer-events:none;
  background:linear-gradient(to top,rgba(1,41,96,.11),transparent);
  opacity:.55;
}
.cls-service-media img{aspect-ratio:1.48/1;min-height:180px}
.cls-service-icon{
  left:14px!important;
  top:14px!important;
  width:54px;
  height:54px;
  border-radius:15px!important;
  background:var(--cls-service-icon-bg,var(--cls-yellow));
  color:var(--cls-service-icon-color,var(--cls-navy));
  border:1px solid rgba(255,255,255,.78);
  box-shadow:0 10px 28px rgba(1,41,96,.16),0 8px 22px rgba(252,195,30,.18)!important;
  z-index:2;
}
.cls-service-icon i{
  display:block!important;
  color:inherit!important;
  font-size:23px;
  line-height:1!important;
}
.cls-service-icon svg{
  display:block!important;
  width:24px;
  height:24px;
  color:inherit!important;
  fill:currentColor!important;
}
.cls-service-icon svg *{fill:currentColor!important}
.cls-service-card:hover .cls-service-icon{transform:translateY(-3px) rotate(3deg)!important}
.cls-service-body{padding:24px 22px 26px}
.cls-service-body h3{font-size:21px;letter-spacing:-.015em;margin-bottom:10px}
.cls-service-body p{margin-bottom:14px;line-height:1.62}
.cls-service-link:after{content:"→"}

/* Bulletproof theme-color guard for FAQ buttons. */
.cls-section .cls-faq-q,
.cls-section .cls-faq-q:visited,
.cls-section .cls-faq-q:hover,
.cls-section .cls-faq-q:focus,
.cls-section .cls-faq-q:focus-visible,
.cls-section .cls-faq-q:active{
  -webkit-appearance:none!important;
  appearance:none!important;
  background:var(--cls-faq-q-bg,#fff)!important;
  background-color:var(--cls-faq-q-bg,#fff)!important;
  color:var(--cls-faq-q-color,var(--cls-navy))!important;
  border:0!important;
  outline:none!important;
  box-shadow:none!important;
  text-decoration:none!important;
  -webkit-tap-highlight-color:transparent;
}
.cls-section .cls-faq-item.is-open .cls-faq-q,
.cls-section .cls-faq-item.is-open .cls-faq-q:hover,
.cls-section .cls-faq-item.is-open .cls-faq-q:focus,
.cls-section .cls-faq-item.is-open .cls-faq-q:active{
  background:var(--cls-faq-q-active-bg,rgba(252,195,30,.08))!important;
  color:var(--cls-faq-q-color,var(--cls-navy))!important;
}
.cls-faq-grid{gap:16px 20px}
.cls-faq-item{
  border-radius:16px;
  border:1px solid rgba(1,41,96,.085);
  background:var(--cls-faq-q-bg,#fff);
  box-shadow:0 14px 38px rgba(1,41,96,.055);
}
.cls-faq-item:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(1,41,96,.09)}
.cls-faq-item.is-open{box-shadow:0 20px 48px rgba(1,41,96,.10)}
.cls-faq-q{min-height:62px;padding:17px 18px 17px 20px;font-size:15.5px;line-height:1.35}
.cls-faq-q b{
  flex:0 0 32px;
  width:32px;
  height:32px;
  background:var(--cls-faq-plus-bg,rgba(1,41,96,.055))!important;
  color:var(--cls-faq-plus-color,var(--cls-navy))!important;
  border:1px solid rgba(1,41,96,.06);
}
.cls-faq-item.is-open .cls-faq-q b{
  background:var(--cls-faq-plus-active-bg,var(--cls-yellow))!important;
  color:var(--cls-faq-plus-active-color,var(--cls-navy))!important;
  border-color:var(--cls-faq-plus-active-bg,var(--cls-yellow))!important;
}
.cls-faq-a{
  padding:0 20px 19px;
  font-size:14.5px;
  line-height:1.7;
}
.cls-faq-item.is-open .cls-faq-a{padding-top:3px}

/* Make the dense three-column utility section feel intentional and premium. */
.cls-trust-grid{gap:22px;align-items:stretch}
.cls-trust-col{
  min-width:0;
  padding:28px;
  border:1px solid rgba(1,41,96,.085);
  border-radius:22px;
  background:rgba(255,255,255,.78);
  box-shadow:0 16px 42px rgba(1,41,96,.055);
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;
}
.cls-trust-col:after{display:none!important}
.cls-trust-col:hover{transform:translateY(-4px);box-shadow:0 22px 52px rgba(1,41,96,.09);border-color:rgba(252,195,30,.38)}
.cls-trust-col .cls-title{margin-bottom:22px}
.cls-area-grid{gap:10px}
.cls-area-pill{padding:10px 9px;border-radius:11px}
.cls-step{padding:3px 0}

/* Additional premium spacing for testimonials and about feature groups. */
.cls-testimonial{padding:27px}
.cls-feature{border:1px solid transparent}
.cls-feature:hover{border-color:rgba(1,41,96,.065)}

/* Laptop / tablet safeguards. */
@media(max-width:1180px){
  .cls-section{padding-left:22px;padding-right:22px}
  .cls-service-grid{gap:20px}
  .cls-service-body{padding-left:20px;padding-right:20px}
}
@media(max-width:1024px){
  .cls-service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .cls-trust-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cls-trust-col:last-child{grid-column:auto}
  .cls-trust-col{padding:24px}
  .cls-faq-grid{gap:14px 16px}
}
@media(max-width:900px){
  .cls-about-grid{grid-template-columns:1fr!important;gap:34px}
  .cls-faq-grid{grid-template-columns:1fr}
  .cls-trust-grid{min-width:0}
  .cls-trust-col,.cls-trust-col:last-child{grid-column:auto}
  .cls-quote{grid-template-columns:1fr!important}
}
@media(max-width:767px){
  .cls-section{padding:44px 16px}
  .cls-heading{margin-bottom:28px}
  .cls-service-grid{gap:17px}
  .cls-service-media{margin:8px 8px 0}
  .cls-service-media img{min-height:0;aspect-ratio:1.5/1}
  .cls-service-icon{left:12px!important;top:12px!important;width:50px;height:50px}
  .cls-service-body{padding:21px 19px 23px}
  .cls-trust-col{padding:22px 19px}
  .cls-area-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .cls-faq-q{min-height:58px;padding:15px 14px 15px 16px;gap:12px}
  .cls-faq-a{padding-left:16px;padding-right:16px}
  .cls-gallery-arrow{touch-action:manipulation}
  .cls-quote-form{width:auto;max-width:100%}
}
@media(max-width:480px){
  .cls-section{padding-left:14px;padding-right:14px}
  .cls-title{font-size:clamp(28px,9vw,32px);line-height:1.08}
  .cls-eyebrow{font-size:12px}
  .cls-area-grid{grid-template-columns:1fr 1fr}
  .cls-area-pill{font-size:12px;padding:9px 6px}
  .cls-faq-q{font-size:14px}
  .cls-testimonial{padding:22px 19px}
  .cls-quote aside{padding:28px 20px}
  .cls-quote-form{margin:0 8px 8px;padding:16px}
}


/* =========================================================
   v1.2.0 — Elementor customization compatibility
   New widget style controls intentionally override these defaults.
   ========================================================= */

/* Keep typography inherited unless a widget-level Elementor Typography control overrides it. */
.cls-section .cls-eyebrow,
.cls-section .cls-title,
.cls-section .cls-richtext,
.cls-section .cls-richtext p,
.cls-section .cls-service-body h3,
.cls-section .cls-service-body p,
.cls-section .cls-service-link,
.cls-section .cls-testimonial p,
.cls-section .cls-person strong,
.cls-section .cls-person small,
.cls-section .cls-check-list li,
.cls-section .cls-area-pill,
.cls-section .cls-area-note,
.cls-section .cls-step-num,
.cls-section .cls-step strong,
.cls-section .cls-step small,
.cls-section .cls-faq-q,
.cls-section .cls-faq-a,
.cls-section .cls-faq-a p,
.cls-section .cls-quote aside h2,
.cls-section .cls-quote aside>p,
.cls-section .cls-contact-line,
.cls-section .cls-form-grid label,
.cls-section .cls-form-grid input,
.cls-section .cls-form-grid select,
.cls-section .cls-form-grid textarea,
.cls-section .cls-submit,
.cls-section .cls-privacy{font-family:inherit}

/* Service icon theme protection without blocking Elementor controls. */
.cls-section .cls-service-icon{
  background:var(--cls-service-icon-bg,var(--cls-yellow))!important;
  color:var(--cls-service-icon-color,var(--cls-navy))!important;
}
.cls-section .cls-service-icon i,
.cls-section .cls-service-icon svg{color:inherit!important}

/* FAQ theme protection is variable-driven, so user-selected Elementor colors still work. */
.cls-section .cls-faq-q,
.cls-section .cls-faq-q:visited,
.cls-section .cls-faq-q:hover,
.cls-section .cls-faq-q:focus,
.cls-section .cls-faq-q:focus-visible,
.cls-section .cls-faq-q:active{
  background:var(--cls-faq-q-bg,#fff)!important;
  background-color:var(--cls-faq-q-bg,#fff)!important;
  color:var(--cls-faq-q-color,var(--cls-navy))!important;
}
.cls-section .cls-faq-item.is-open .cls-faq-q,
.cls-section .cls-faq-item.is-open .cls-faq-q:hover,
.cls-section .cls-faq-item.is-open .cls-faq-q:focus,
.cls-section .cls-faq-item.is-open .cls-faq-q:active{
  background:var(--cls-faq-q-active-bg,rgba(252,195,30,.08))!important;
  color:var(--cls-faq-q-color,var(--cls-navy))!important;
}
.cls-section .cls-faq-q b{
  background:var(--cls-faq-plus-bg,rgba(1,41,96,.055))!important;
  color:var(--cls-faq-plus-color,var(--cls-navy))!important;
}
.cls-section .cls-faq-item.is-open .cls-faq-q b{
  background:var(--cls-faq-plus-active-bg,var(--cls-yellow))!important;
  color:var(--cls-faq-plus-active-color,var(--cls-navy))!important;
  border-color:var(--cls-faq-plus-active-bg,var(--cls-yellow))!important;
}

/* Do not hard-lock responsive grids. Elementor responsive controls can now choose the layout. */
@media(max-width:900px){
  .cls-trust-grid{min-width:0}
}
@media(max-width:767px){
  .cls-service-grid,.cls-trust-grid,.cls-faq-grid{min-width:0}
}

.cls-section .cls-submit,.cls-section .cls-submit:hover,.cls-section .cls-submit:focus{background:var(--cls-submit-bg,var(--cls-yellow))!important;color:var(--cls-submit-color,var(--cls-navy))!important}
.cls-section .cls-gallery-arrow,.cls-section .cls-gallery-arrow:hover,.cls-section .cls-gallery-arrow:focus{background:var(--cls-arrow-bg,var(--cls-yellow))!important;color:var(--cls-arrow-color,var(--cls-navy))!important}


/* v1.2.1 — exact icon centering (Testimonials arrows + FAQ plus) */
.cls-section .cls-gallery-arrow{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  line-height:0!important;
  text-align:center!important;
  text-indent:0!important;
  overflow:visible;
}
.cls-section .cls-gallery-arrow::before,
.cls-section .cls-gallery-arrow::after{content:none!important;display:none!important}
.cls-section .cls-gallery-arrow .cls-arrow-icon{
  display:block!important;
  width:18px!important;
  height:18px!important;
  flex:0 0 18px;
  margin:0!important;
  padding:0!important;
  position:static!important;
  transform:none!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:2.25;
  stroke-linecap:round;
  stroke-linejoin:round;
  overflow:visible;
}
.cls-section .cls-faq-q b{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  margin:0!important;
  line-height:0!important;
  font-size:0!important;
  text-align:center!important;
  text-indent:0!important;
  transform-origin:50% 50%!important;
}
.cls-section .cls-faq-q b::before,
.cls-section .cls-faq-q b::after{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:10px!important;
  height:1.6px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:999px;
  background:currentColor!important;
  transform:translate(-50%,-50%)!important;
  transform-origin:center center!important;
}
.cls-section .cls-faq-q b::after{
  transform:translate(-50%,-50%) rotate(90deg)!important;
}

/* v1.2.2 — modern quote submission feedback */
.cls-form-status{
  min-height:0;
  margin-top:14px;
  text-align:left;
  font-size:13px;
}
.cls-status-card{
  display:flex;
  align-items:flex-start;
  gap:13px;
  width:100%;
  padding:15px 16px;
  border:1px solid rgba(1,41,96,.12);
  border-radius:13px;
  background:#fff;
  box-shadow:0 10px 26px rgba(1,41,96,.08);
  animation:clsStatusIn .28s ease both;
}
.cls-status-icon{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
}
.cls-status-icon svg{width:21px;height:21px;display:block}
.cls-status-copy{display:block;min-width:0;padding-top:1px}
.cls-status-copy strong{
  display:block;
  margin:0 0 3px;
  color:#012960;
  font-size:14px;
  line-height:1.35;
  font-weight:900;
}
.cls-status-copy>span{
  display:block;
  color:#536276;
  font-size:12.5px;
  line-height:1.55;
}
.cls-form-status.is-success .cls-status-card{
  border-color:rgba(21,132,82,.22);
  background:linear-gradient(135deg,#F4FCF7 0%,#FFFFFF 100%);
}
.cls-form-status.is-success .cls-status-icon{
  background:#E4F7EC;
  color:#12804B;
  box-shadow:inset 0 0 0 1px rgba(18,128,75,.12);
}
.cls-form-status.is-error .cls-status-card{
  border-color:rgba(178,72,51,.18);
  background:linear-gradient(135deg,#FFF8F6 0%,#FFFFFF 100%);
}
.cls-form-status.is-error .cls-status-icon{
  background:#FBEAE5;
  color:#A84A36;
}
.cls-form-status.is-loading .cls-status-card{
  border-color:rgba(252,195,30,.30);
  background:#FFFCF2;
}
.cls-form-status.is-loading .cls-status-icon{
  background:rgba(252,195,30,.16);
  color:#012960;
}
.cls-status-spinner{
  width:17px;
  height:17px;
  border-radius:50%;
  border:2px solid rgba(1,41,96,.18);
  border-top-color:#012960;
  animation:clsStatusSpin .7s linear infinite;
}
@keyframes clsStatusSpin{to{transform:rotate(360deg)}}
@keyframes clsStatusIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:767px){
  .cls-status-card{padding:14px;gap:11px}
  .cls-status-icon{width:34px;height:34px;flex-basis:34px}
  .cls-status-copy strong{font-size:13.5px}
  .cls-status-copy>span{font-size:12px}
}
