:root{--navy:#0c1f46;--blue:#087cf2;--blue2:#0aa5ff;--line:#d7e7f7;--muted:#60718a;--soft:#f5faff;--green:#19c569;--radius:14px;--shadow:0 10px 30px rgba(15,68,125,.10)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--navy);background:#fff}img{display:block;max-width:100%}a{text-decoration:none;color:inherit}.shell{width:min(1180px,calc(100% - 40px));margin:auto}.site-header{position:sticky;top:0;z-index:80;background:rgba(255,255,255,.97);border-bottom:1px solid #e9f1fa;backdrop-filter:blur(16px)}.nav-wrap{height:72px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;width:176px;flex:0 0 176px}.brand img{width:100%;height:auto;filter:none;image-rendering:auto}.main-nav{display:flex;align-items:center;gap:28px;margin-left:auto}.main-nav a{font-size:14px;font-weight:700;color:#26364f;position:relative;padding:26px 0}.main-nav a:after{content:"";height:2px;position:absolute;left:0;right:100%;bottom:14px;background:var(--blue);transition:.25s}.main-nav a:hover:after,.main-nav a.active:after{right:0}.nav-actions{display:flex;gap:10px;align-items:center}.btn{min-height:42px;padding:0 18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:14px;font-weight:800;border:1px solid transparent;transition:.2s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,#0a72f0,#1594f7);color:#fff;box-shadow:0 8px 20px rgba(13,124,242,.22)}.btn-outline{border-color:#9dcbff;color:#066ad7;background:#fff}.btn-white{background:#fff;border-color:#bcd9f4;color:#173451}.icon{width:20px;height:20px}.menu-toggle{display:none;background:none;border:0;padding:8px}.menu-toggle span{width:24px;height:2px;background:#123;display:block;margin:5px}
.hero{position:relative;overflow:hidden;background:linear-gradient(105deg,#fff 10%,#f5fbff 58%,#dcefff 100%);border-bottom:1px solid #e5f1fb}.hero-bg{position:absolute;inset:auto -8% -28% auto;width:500px;height:500px;border-radius:50%;border:70px solid rgba(46,146,243,.09)}.hero-shell{min-height:386px;display:grid;grid-template-columns:46% 54%;align-items:center;gap:26px;padding:30px 0 42px}.hero-copy{z-index:2}.eyebrow{display:inline-flex;border:1px solid #8dc7ff;background:#f7fbff;color:#0873e2;border-radius:999px;padding:4px 11px;font-size:11px;font-weight:900;letter-spacing:.02em;text-transform:uppercase}.hero h1{font-size:44px;line-height:1.04;letter-spacing:-1.7px;margin:13px 0 14px;color:#081c43}.hero h1 em{font-style:normal;color:var(--blue)}.hero-copy>p{font-size:16px;line-height:1.55;color:#4d627f;max-width:610px;margin:0}.hero-buttons{display:flex;gap:12px;margin-top:22px}.hero-trust{display:flex;gap:0;margin-top:26px}.hero-trust>div{display:grid;grid-template-columns:28px auto;column-gap:9px;min-width:145px;padding-right:22px;margin-right:22px;border-right:1px solid #bdd8ef}.hero-trust>div:last-child{border-right:0}.hero-trust strong{font-size:12px;align-self:end}.hero-trust small{grid-column:2;font-size:10px;color:#6c8099}.mini-icon{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:#e9f5ff;color:#087df1}.mini-icon svg{width:15px;height:15px}.hero-media{position:relative;z-index:2}.hero-media img{width:100%;height:300px;object-fit:cover;object-position:center;border-radius:14px;box-shadow:0 18px 50px rgba(13,65,118,.16)}.slide-arrow{position:absolute;top:49%;width:42px;height:42px;border-radius:50%;border:1px solid #d8e9f7;background:#fff;color:#3179bd;font-size:28px;display:grid;place-items:center;z-index:4;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.08)}.slide-arrow.prev{left:14px}.slide-arrow.next{right:14px}.slide-dots{position:absolute;bottom:11px;left:50%;display:flex;gap:6px;z-index:5}.slide-dots button{width:8px;height:8px;border:0;border-radius:99px;background:#9ccfff;padding:0}.slide-dots button.active{width:26px;background:#1689f5}.section{padding:34px 0}.section-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:18px}.section-head h2,.why h2{font-size:31px;line-height:1.06;letter-spacing:-.8px;margin:8px 0 3px}.section-head p,.why p{color:#60738f;font-size:14px;line-height:1.45;margin:0}.text-link{font-size:13px;font-weight:900;color:#0876e8;white-space:nowrap;margin-bottom:4px}.service-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.service-card{position:relative;border:1px solid var(--line);background:#fff;border-radius:11px;padding:0 13px 14px;overflow:hidden;box-shadow:0 5px 18px rgba(25,99,172,.04);min-height:260px}.service-photo{height:73px;margin:0 -13px 12px;background:#eef6fd;overflow:hidden}.service-photo img{width:100%;height:100%;object-fit:cover}.server-photo{display:flex;align-items:flex-end;justify-content:center;gap:5px;background:linear-gradient(180deg,#052959,#0879db)}.server-photo span{display:block;width:15%;height:58px;background:linear-gradient(180deg,#83c5ff,#0a2e68);border:2px solid #b4ddff;border-radius:2px;box-shadow:inset 0 0 0 2px #0c4a8e}.service-icon{position:absolute;top:55px;left:12px;width:42px;height:42px;border-radius:10px;display:grid;place-items:center;color:#fff;border:3px solid #fff}.service-icon svg{width:23px;height:23px}.service-icon.blue{background:#1189f5}.service-icon.purple{background:#7847ff}.service-icon.green{background:#22c76a}.service-icon.red{background:#ff5267}.service-card h3{margin:28px 0 8px;font-size:14px}.service-card p{font-size:12px;line-height:1.4;color:#60738a;min-height:68px;margin:0}.service-card>a{color:#0a7cf0;font-size:12px;font-weight:800}.solutions{position:relative;background:linear-gradient(180deg,#f9fcff,#f4faff);overflow:hidden}.wave{position:absolute;width:430px;height:260px;border-radius:50%;border:42px solid rgba(55,151,248,.09)}.wave-left{left:-300px;bottom:-90px}.wave-right{right:-300px;bottom:-90px}.solution-grid{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.solution-card{display:grid;grid-template-columns:40% 60%;min-height:132px;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 5px 18px rgba(34,107,177,.04)}.solution-card>img{width:100%;height:100%;object-fit:cover}.solution-copy{position:relative;padding:15px 14px 11px}.solution-icon{position:absolute;left:-25px;top:15px;width:50px;height:50px;border-radius:12px;display:grid;place-items:center;background:#087df1;color:#fff;border:4px solid #fff;box-shadow:0 5px 14px rgba(15,121,235,.2)}.solution-icon svg{width:24px;height:24px}.solution-copy h3{font-size:14px;line-height:1.2;margin:2px 0 7px;padding-left:15px}.solution-copy p{font-size:11px;line-height:1.4;color:#667b94;margin:0 0 0 15px}.solution-copy>a{position:absolute;right:10px;bottom:10px;width:28px;height:28px;border:1px solid #7ebeff;color:#087df1;border-radius:50%;display:grid;place-items:center;font-weight:900}.why{background:#fff}.why-grid{display:grid;grid-template-columns:28% 40% 32%;gap:24px;align-items:center}.why-intro p{font-size:14px;margin:0 0 16px}.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.benefit{border:1px solid var(--line);border-radius:10px;padding:12px 12px 11px;background:#fff;min-height:105px}.benefit span{display:grid;place-items:center;width:34px;height:34px;color:#087df1;margin-bottom:7px;background:#eaf5ff;border-radius:9px}.benefit svg{width:23px;height:23px}.benefit strong{font-size:12px;display:block;margin-bottom:3px}.benefit p{font-size:10px;line-height:1.35;margin:0}.office-card img{width:100%;height:230px;object-fit:cover;border-radius:12px}.project-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.project-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.project-card>img{width:100%;height:128px;object-fit:cover}.project-card>div{padding:11px 12px 12px}.project-card h3{font-size:13px;margin:0 0 6px}.project-card small{display:block;font-size:10px;color:#687b91;margin:-2px 0 8px}.chips{display:flex;gap:5px;flex-wrap:wrap}.chips span{font-size:9px;color:#087df1;background:#ebf6ff;border-radius:999px;padding:4px 8px}.process{padding-top:10px}.process-line{display:grid;grid-template-columns:repeat(6,1fr);position:relative;padding-top:4px}.process-line:before{content:"";position:absolute;top:34px;left:8.4%;right:8.4%;height:1px;background:#a7d5ff}.process-step{text-align:center;position:relative;padding:0 10px}.picon{width:54px;height:54px;border:1px solid #8dc8ff;background:#f8fcff;color:#087df1;border-radius:50%;display:grid;place-items:center;margin:0 auto 7px;position:relative;z-index:2}.picon svg{width:26px;height:26px}.process-step b{position:absolute;left:calc(50% - 40px);top:43px;width:19px;height:19px;background:#087df1;color:#fff;border-radius:50%;font-size:9px;display:grid;place-items:center;z-index:3}.process-step strong{display:block;font-size:12px}.process-step p{font-size:10px;line-height:1.35;color:#687b91;margin:4px 0}.pricing{background:#f8fbff;padding-top:28px}.price-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:11px}.price-card{border:1px solid var(--line);border-radius:11px;background:#fff;padding:12px;display:flex;flex-direction:column;min-height:290px}.price-top{display:flex;gap:10px;align-items:flex-start}.price-icon{width:42px;height:42px;border-radius:11px;border:1px solid #9dceff;color:#087df1;display:grid;place-items:center;flex:0 0 auto;background:linear-gradient(180deg,#f7fbff,#eaf5ff);box-shadow:0 5px 14px rgba(14,116,225,.08)}.price-icon svg{width:23px;height:23px}.price-icon.rocket{color:#ff4c56}.price-icon.android{color:#13c865}.price-card h3{font-size:12px;margin:0}.price-card small{font-size:9px;color:#72849b}.price-card strong{display:block;color:#087df1;font-size:24px;line-height:1.1}.price-card ul{list-style:none;padding:10px 0 8px;margin:0;flex:1}.price-card li{font-size:10px;color:#58708c;margin:5px 0;padding-left:14px;position:relative}.price-card li:before{content:"•";position:absolute;left:0;color:#087df1;font-size:18px;line-height:10px}.price-card .btn{width:100%;min-height:34px;font-size:11px}.cta{background:linear-gradient(120deg,#0645a9,#087df1 58%,#09439c);color:#fff;overflow:hidden;position:relative}.cta:before{content:"";position:absolute;inset:0;background:linear-gradient(150deg,transparent 0 55%,rgba(255,255,255,.08) 55% 62%,transparent 62%)}.cta-inner{min-height:115px;display:flex;align-items:center;justify-content:space-between;gap:30px;position:relative;z-index:2}.cta h2{margin:0 0 3px;font-size:24px}.cta p{font-size:12px;margin:0;color:#d9ecff}.cta-buttons{display:flex;gap:10px}.footer{background:#08234d;color:#d7e6fb}.footer-grid{display:grid;grid-template-columns:1.5fr .8fr 1fr 1.05fr;gap:38px;padding:30px 0 22px}.footer-brand img{width:190px;height:auto;filter:none;image-rendering:auto}.footer-brand p{font-size:11px;line-height:1.45;max-width:310px}.footer h3{font-size:12px;color:#fff;margin:4px 0 10px}.footer a,.footer p{display:block;font-size:10px;color:#d4e3f5;margin:5px 0}.socials{display:flex;gap:8px;margin-top:10px}.socials a{width:30px;height:30px;border-radius:5px;background:#071a3b;display:grid;place-items:center;color:#fff}.socials svg{width:16px;height:16px}.footer-bottom{border-top:1px solid rgba(255,255,255,.16);padding:10px 0 14px;display:flex;justify-content:space-between;gap:20px;font-size:9px}.footer-bottom a{display:inline;font-size:9px}.wa-float{position:fixed;right:18px;bottom:18px;background:#20c766;color:#fff;border-radius:999px;display:flex;align-items:center;gap:8px;padding:12px 16px;box-shadow:0 10px 28px rgba(11,137,70,.25);z-index:90;font-size:12px;font-weight:900}.wa-float svg{width:23px;height:23px}.compact{margin-bottom:8px}
@media(max-width:1050px){.main-nav{gap:16px}.service-grid{grid-template-columns:repeat(3,1fr)}.solution-grid{grid-template-columns:repeat(2,1fr)}.why-grid{grid-template-columns:1fr 1.3fr}.office-card{grid-column:1/-1}.office-card img{height:280px}.price-grid{grid-template-columns:repeat(3,1fr)}.project-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.shell{width:min(100% - 26px,1180px)}.nav-wrap{height:62px;gap:10px}.brand{width:150px;flex-basis:150px}.menu-toggle{display:block;margin-left:auto}.main-nav{position:absolute;left:13px;right:13px;top:64px;display:none;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;box-shadow:var(--shadow)}.main-nav.open{display:flex}.main-nav a{padding:9px;width:100%}.nav-actions .btn-outline{display:none}.nav-actions .btn-primary{min-height:36px;padding:0 12px;font-size:11px}.hero-shell{grid-template-columns:1fr;padding-top:24px}.hero h1{font-size:37px}.hero-copy>p{font-size:14px}.hero-media img{height:230px}.hero-trust{overflow-x:auto}.slide-arrow{display:none}.service-grid,.solution-grid,.project-grid,.price-grid{grid-template-columns:1fr}.service-card{min-height:240px}.solution-card{grid-template-columns:36% 64%}.why-grid{grid-template-columns:1fr}.benefit-grid{grid-template-columns:repeat(2,1fr)}.process-line{grid-template-columns:repeat(2,1fr);gap:18px}.process-line:before{display:none}.cta-inner{flex-direction:column;align-items:flex-start;padding:22px 0}.footer-grid{grid-template-columns:1fr 1fr}.section{padding:26px 0}.section-head{align-items:flex-start}.section-head h2,.why h2{font-size:27px}.text-link{display:none}.wa-float span{display:none}.wa-float{width:50px;height:50px;padding:0;justify-content:center}.hero-buttons{flex-wrap:wrap}}
@media(max-width:480px){.nav-actions .btn-primary{display:none}.hero h1{font-size:32px}.hero-trust>div{min-width:130px}.benefit-grid,.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column}.cta-buttons{width:100%;flex-wrap:wrap}.cta-buttons .btn{flex:1}}


/* =========================================================
   MOGA MOBILE POLISH — menu, pricing, back-to-top
   ========================================================= */

/* Back-to-top button: available on desktop and mobile */
.scroll-top-btn{
  position:fixed;
  right:18px;
  bottom:82px;
  width:46px;
  height:46px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:50%;
  background:linear-gradient(135deg,#087cf2,#0aa5ff);
  color:#fff;
  display:grid;
  place-items:center;
  padding:0;
  cursor:pointer;
  z-index:94;
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  box-shadow:0 10px 28px rgba(8,124,242,.28);
  transition:opacity .22s ease,visibility .22s ease,transform .22s ease,box-shadow .22s ease;
}
.scroll-top-btn svg{width:22px;height:22px;display:block}
.scroll-top-btn.show{opacity:1;visibility:visible;transform:translateY(0)}
.scroll-top-btn:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(8,124,242,.36)}
.scroll-top-btn:focus-visible{outline:3px solid rgba(8,124,242,.28);outline-offset:3px}

@media(max-width:760px){
  /* Desktop active-link underline was stretching through the mobile menu. */
  .main-nav a:after{display:none!important}
  .main-nav a.active{color:var(--blue)}
  .main-nav a.active:before{
    content:"";
    display:inline-block;
    width:4px;
    height:20px;
    border-radius:999px;
    background:linear-gradient(180deg,var(--blue),var(--blue2));
    margin-right:10px;
    vertical-align:middle;
  }

  /* Let pricing cards size themselves to their content on phones. */
  .price-grid{grid-auto-rows:auto!important;align-items:start}
  .price-card{
    min-height:0!important;
    height:auto!important;
    padding:18px!important;
  }
  .price-card ul{
    flex:0 0 auto!important;
    margin:16px 0 18px!important;
    padding:0!important;
  }
  .price-card li{font-size:14px!important;line-height:1.35;margin:7px 0!important}
  .price-card .btn{min-height:46px!important;margin-top:0!important;font-size:13px!important}
  .price-card strong{font-size:32px!important}
  .price-card h3{font-size:14px!important}
  .price-card small{font-size:11px!important}

  /* Keep the two floating controls vertically separated. */
  .scroll-top-btn{right:18px;bottom:82px;width:46px;height:46px}
}

/* =========================================================
   FUNCTIONAL QUOTE REQUEST MODAL
   ========================================================= */
body.modal-open{overflow:hidden}.quote-modal,.portal-modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:20px}.quote-modal.open,.portal-modal.open{display:flex}.quote-modal-backdrop{position:absolute;inset:0;background:rgba(4,20,48,.62);backdrop-filter:blur(5px)}.quote-dialog{position:relative;z-index:1;width:min(760px,100%);max-height:min(90vh,850px);overflow:auto;background:#fff;border:1px solid #d8e9f7;border-radius:20px;box-shadow:0 28px 80px rgba(3,30,64,.28);padding:28px}.portal-dialog{width:min(560px,100%)}.quote-close{position:absolute;right:16px;top:14px;width:38px;height:38px;border:0;border-radius:50%;background:#edf6ff;color:#163451;font-size:25px;line-height:1;cursor:pointer}.quote-dialog-head h2,.portal-dialog h2{font-size:30px;line-height:1.1;letter-spacing:-.8px;margin:10px 42px 7px 0}.quote-dialog-head p,.portal-dialog p{margin:0 0 20px;color:#60738f;line-height:1.5}.quote-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.quote-form-grid label{display:flex;flex-direction:column;gap:6px}.quote-form-grid label>span{font-size:12px;font-weight:800;color:#233b58}.quote-form-grid input,.quote-form-grid select,.quote-form-grid textarea{width:100%;border:1px solid #cfe2f4;border-radius:10px;background:#fbfdff;color:#102946;font:inherit;font-size:14px;padding:12px 13px;outline:none}.quote-form-grid textarea{resize:vertical;min-height:120px}.quote-form-grid input:focus,.quote-form-grid select:focus,.quote-form-grid textarea:focus{border-color:#178bf3;box-shadow:0 0 0 3px rgba(23,139,243,.12)}.quote-full{grid-column:1/-1}.quote-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.quote-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:18px}.quote-error{display:none;margin-top:13px;padding:11px 13px;border-radius:9px;background:#fff1f2;color:#a7192c;font-size:13px}.quote-error.show{display:block}.quote-success{text-align:center;padding:18px 4px 4px}.quote-success-icon{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:#e9fff2;color:#15a655;font-size:30px;font-weight:900}.quote-success h3{font-size:26px;margin:0 0 7px}.quote-success p{color:#60738f;margin:0}.quote-reference{display:inline-block;margin-top:13px;padding:8px 12px;border-radius:8px;background:#eef7ff;color:#0876e8;font-weight:900;font-size:13px}.quote-success .quote-actions{justify-content:center}.quote-dialog .btn{min-height:44px}
@media(max-width:768px){.quote-modal,.portal-modal{padding:12px}.quote-dialog{padding:23px 18px 20px;border-radius:16px;max-height:92vh}.quote-dialog-head h2,.portal-dialog h2{font-size:25px}.quote-form-grid{grid-template-columns:1fr;gap:12px}.quote-full{grid-column:auto}.quote-actions .btn{flex:1 1 auto}.quote-success .quote-actions{display:grid;grid-template-columns:1fr}.quote-close{right:11px;top:10px}}

/* Internal pages - extends the approved visual system without changing the homepage */
.page-hero{background:linear-gradient(105deg,#fff 10%,#f5fbff 58%,#dcefff 100%);border-bottom:1px solid #e5f1fb;padding:48px 0}.page-hero-inner{display:grid;grid-template-columns:1.15fr .85fr;gap:38px;align-items:center}.page-hero h1{font-size:42px;line-height:1.06;letter-spacing:-1.4px;margin:12px 0;color:#081c43}.page-hero h1 em{font-style:normal;color:var(--blue)}.page-hero p{color:#60738f;line-height:1.65;max-width:720px}.page-hero img{width:100%;height:250px;object-fit:cover;border-radius:14px;box-shadow:0 18px 50px rgba(13,65,118,.12)}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.detail-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:22px;box-shadow:0 5px 18px rgba(25,99,172,.04)}.detail-card h3{margin:0 0 9px;font-size:18px}.detail-card p,.detail-card li{color:#60738a;font-size:14px;line-height:1.6}.detail-card ul{padding-left:20px}.feature-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.feature-list .detail-card{min-height:150px}.content-copy{max-width:850px}.content-copy h2{font-size:30px;margin:0 0 12px}.content-copy p{color:#60738a;line-height:1.7}.breadcrumb{font-size:11px;color:#68809a;margin-bottom:9px}.breadcrumb a{color:#087df1;font-weight:800}.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:18px}.contact-box{border:1px solid var(--line);border-radius:12px;padding:22px;background:#fff}.contact-box h3{margin-top:0}.contact-box p{color:#60738a}.contact-box a{color:#087df1;font-weight:800}.simple-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.simple-form label{font-size:12px;font-weight:800}.simple-form input,.simple-form select,.simple-form textarea{width:100%;margin-top:5px;border:1px solid #cfe1f3;border-radius:9px;padding:11px;font:inherit}.simple-form .full{grid-column:1/-1}.legal{max-width:900px}.legal h2{margin-top:28px}.legal p,.legal li{color:#60738a;line-height:1.7}.social-disabled{cursor:default;opacity:.82}.socials a[aria-disabled="true"]{pointer-events:none}
@media(max-width:760px){.page-hero{padding:32px 0}.page-hero-inner,.detail-grid,.contact-layout{grid-template-columns:1fr}.page-hero h1{font-size:34px}.feature-list{grid-template-columns:1fr}.page-hero img{height:210px}.simple-form{grid-template-columns:1fr}.simple-form .full{grid-column:auto}}

/* Client Login remains available when the approved header collapses to its mobile menu. */
.mobile-client-login{display:none}
@media(max-width:760px){.main-nav .mobile-client-login{display:block;color:#066ad7}}

/* Switch only the public header before the desktop navigation exceeds the available width. */
@media(max-width:820px){
  .nav-wrap{height:62px;gap:10px}
  .brand{width:150px;flex-basis:150px}
  .menu-toggle{display:block;margin-left:auto}
  .main-nav{position:absolute;left:13px;right:13px;top:64px;display:none;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;box-shadow:var(--shadow)}
  .main-nav.open{display:flex}
  .main-nav a{padding:9px;width:100%}
  .main-nav a:after{display:none!important}
  .main-nav a.active{color:var(--blue)}
  .main-nav a.active:before{content:"";display:inline-block;width:4px;height:20px;border-radius:999px;background:linear-gradient(180deg,var(--blue),var(--blue2));margin-right:10px;vertical-align:middle}
  .main-nav .mobile-client-login{display:block;color:#066ad7}
  .nav-actions .btn-outline{display:none}
  .nav-actions .btn-primary{min-height:36px;padding:0 12px;font-size:11px}
}

/* Dynamic content expansion: current approved layouts stay unchanged at current item counts. */
@media(min-width:1051px){
  .service-grid.dynamic-many,.project-grid.dynamic-many,.price-grid.dynamic-many{grid-template-columns:repeat(3,1fr)}
}

/* V4.3.6 – unified hero system
   One clean hero implementation replaces the earlier stacked hero patches.
   Goals:
   - fixed desktop height for every homepage slide
   - fixed desktop height for all internal page heroes
   - same soft blue background from left to right
   - small eyebrow/pill remains compact
   - hero image fades naturally on BOTH left and right edges
   - image dimensions never change the section height
   - mobile remains stacked and responsive
*/

/* Shared hero background: same visual tone across the full width. */
.hero,
.page-hero{
  background:#eef8ff;
  border-bottom:1px solid #dfeefb;
}

/* Keep the pill compact when its parent is a flex column. */
.hero-copy .eyebrow,
.page-hero-inner>div:first-child .eyebrow{
  align-self:flex-start;
  width:auto;
  max-width:max-content;
  flex:0 0 auto;
  white-space:nowrap;
}

/* Smooth image swaps without changing layout. */
.hero-media img,
.page-hero-media img{
  transition:opacity .42s ease, filter .42s ease;
}

@media(min-width:761px){
  /* -----------------------------
     HOMEPAGE HERO / SLIDER
     ----------------------------- */
  .hero{
    position:relative;
    overflow:hidden;
  }

  .hero-shell{
    height:404px;
    min-height:404px;
    max-height:404px;
    padding:0;
    align-items:stretch;
  }

  .hero-copy{
    z-index:3;
    height:404px;
    min-height:0;
    box-sizing:border-box;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:30px 0 42px;
  }

  .hero-media{
    position:relative;
    z-index:2;
    align-self:stretch;
    height:404px;
    min-height:404px;
    max-height:404px;
    overflow:visible;
    border-radius:0;
  }

  .hero-media::before,
  .hero-media::after{
    display:none!important;
  }

  .hero-media img{
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:404px;
    min-height:0;
    max-height:404px;
    object-fit:cover;
    object-position:center;
    border-radius:14px;
    box-shadow:0 16px 42px rgba(13,65,118,.10);

    /* True two-sided transparency fade.
       The same hero background is revealed at both edges. */
    -webkit-mask-image:linear-gradient(90deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,.28) 4%,
      rgba(0,0,0,.72) 9%,
      rgba(0,0,0,1) 16%,
      rgba(0,0,0,1) 84%,
      rgba(0,0,0,.72) 91%,
      rgba(0,0,0,.28) 96%,
      rgba(0,0,0,0) 100%);
    mask-image:linear-gradient(90deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,.28) 4%,
      rgba(0,0,0,.72) 9%,
      rgba(0,0,0,1) 16%,
      rgba(0,0,0,1) 84%,
      rgba(0,0,0,.72) 91%,
      rgba(0,0,0,.28) 96%,
      rgba(0,0,0,0) 100%);
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-size:100% 100%;
    mask-size:100% 100%;
  }

  /* Keep decorative right-side ring but make it subtle against
     the now-unified blue hero background. */
  .hero-bg{
    opacity:.72;
  }

  /* -----------------------------
     INTERNAL PAGE HEROES
     Services / Solutions / Work / About / Contact / detail pages
     ----------------------------- */
  .page-hero{
    padding:0;
    position:relative;
    overflow:hidden;
  }

  .page-hero-inner{
    height:344px;
    min-height:344px;
    max-height:344px;
    align-items:stretch;
  }

  .page-hero-inner>div:first-child{
    height:344px;
    min-height:0;
    box-sizing:border-box;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:48px 0;
  }

  .page-hero-media{
    position:relative;
    align-self:stretch;
    height:344px;
    min-height:344px;
    max-height:344px;
    overflow:visible;
    border-radius:0;
    box-shadow:none;
  }

  .page-hero-media::before,
  .page-hero-media::after{
    display:none!important;
  }

  .page-hero-media img{
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:344px;
    min-height:0;
    max-height:344px;
    object-fit:cover;
    object-position:center;
    border-radius:14px;
    box-shadow:0 16px 42px rgba(13,65,118,.09);

    /* Matching two-sided fade for every internal page hero image. */
    -webkit-mask-image:linear-gradient(90deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,.32) 5%,
      rgba(0,0,0,.78) 11%,
      rgba(0,0,0,1) 18%,
      rgba(0,0,0,1) 82%,
      rgba(0,0,0,.78) 89%,
      rgba(0,0,0,.32) 95%,
      rgba(0,0,0,0) 100%);
    mask-image:linear-gradient(90deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,.32) 5%,
      rgba(0,0,0,.78) 11%,
      rgba(0,0,0,1) 18%,
      rgba(0,0,0,1) 82%,
      rgba(0,0,0,.78) 89%,
      rgba(0,0,0,.32) 95%,
      rgba(0,0,0,0) 100%);
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-size:100% 100%;
    mask-size:100% 100%;
  }
}

@media(max-width:760px){
  /* Mobile keeps the existing approved stacked layout.
     No side fade is used because the image occupies its own row. */
  .hero,
  .page-hero{
    background:#eef8ff;
  }

  .hero-shell{
    height:auto;
    min-height:auto;
    max-height:none;
    grid-template-columns:1fr;
    padding-top:24px;
  }

  .hero-copy{
    height:auto;
    padding:0;
  }

  .hero-media{
    height:auto;
    min-height:0;
    max-height:none;
    overflow:hidden;
    border-radius:18px;
  }

  .hero-media img{
    position:static;
    display:block;
    width:100%;
    height:230px;
    min-height:230px;
    max-height:none;
    object-fit:cover;
    object-position:center;
    border-radius:18px;
    -webkit-mask-image:none;
    mask-image:none;
  }

  .page-hero{
    padding:32px 0;
  }

  .page-hero-inner{
    height:auto;
    min-height:0;
    max-height:none;
    grid-template-columns:1fr;
  }

  .page-hero-inner>div:first-child{
    height:auto;
    padding:0;
  }

  .page-hero-media{
    height:auto;
    min-height:0;
    max-height:none;
    overflow:hidden;
    border-radius:14px;
  }

  .page-hero-media img{
    position:static;
    display:block;
    width:100%;
    height:210px;
    min-height:210px;
    max-height:none;
    object-fit:cover;
    object-position:center;
    border-radius:14px;
    -webkit-mask-image:none;
    mask-image:none;
  }
}



/* V4.3.7 – Professional Contact / Quote workspace */
.contact-section{
  position:relative;
  overflow:hidden;
  padding:44px 0 52px;
  background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%);
}
.contact-section:before{
  content:"";
  position:absolute;
  width:420px;
  height:420px;
  right:-250px;
  top:-210px;
  border-radius:50%;
  border:54px solid rgba(16,137,245,.055);
  pointer-events:none;
}
.contact-pro-layout{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:20px;
  align-items:stretch;
}
.contact-info-panel{
  position:relative;
  overflow:hidden;
  min-height:100%;
  border-radius:18px;
  padding:30px;
  color:#fff;
  background:linear-gradient(145deg,#071c41 0%,#0a3269 58%,#086fcf 130%);
  border:1px solid rgba(141,199,255,.20);
  box-shadow:0 18px 52px rgba(10,48,98,.15);
}
.contact-info-panel:before{
  content:"";
  position:absolute;
  width:280px;
  height:280px;
  right:-150px;
  top:-120px;
  border-radius:50%;
  border:45px solid rgba(93,198,255,.10);
}
.contact-info-panel:after{
  content:"";
  position:absolute;
  width:210px;
  height:210px;
  left:-130px;
  bottom:-125px;
  border-radius:50%;
  background:rgba(28,153,246,.10);
}
.contact-info-content{position:relative;z-index:2}
.contact-kicker{
  display:inline-flex;
  width:max-content;
  border:1px solid rgba(143,211,255,.38);
  background:rgba(10,146,242,.12);
  color:#79d6ff;
  border-radius:999px;
  padding:5px 11px;
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
}
.contact-info-panel h2{
  max-width:410px;
  margin:15px 0 10px;
  font-size:31px;
  line-height:1.07;
  letter-spacing:-.9px;
  color:#fff;
}
.contact-intro{
  max-width:470px;
  margin:0;
  color:#cfe4fb;
  font-size:13px;
  line-height:1.65;
}
.contact-methods{display:grid;gap:10px;margin-top:24px}
.contact-method{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 18px;
  gap:12px;
  align-items:center;
  min-height:68px;
  padding:11px 13px;
  border:1px solid rgba(177,218,255,.17);
  border-radius:12px;
  background:rgba(255,255,255,.065);
  color:#fff!important;
  text-decoration:none;
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
.contact-method:hover{
  transform:translateY(-1px);
  border-color:rgba(147,214,255,.36);
  background:rgba(255,255,255,.095);
}
.contact-method-static:hover{transform:none}
.contact-method-icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:linear-gradient(145deg,rgba(31,169,255,.25),rgba(12,100,213,.28));
  border:1px solid rgba(143,211,255,.22);
  color:#73d4ff;
}
.contact-method-icon svg{width:20px;height:20px}
.contact-method-copy{min-width:0;display:flex;flex-direction:column;gap:3px}
.contact-method-copy small{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#9fc4e8;font-weight:800}
.contact-method-copy strong{font-size:12.5px;line-height:1.3;color:#fff;overflow-wrap:anywhere}
.contact-method-arrow{font-size:16px;color:#77d2ff;font-weight:900}
.contact-hours{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin-top:18px;
  padding:17px 0 0;
  border-top:1px solid rgba(178,218,255,.15);
}
.contact-status-dot{
  flex:0 0 auto;
  width:9px;
  height:9px;
  margin-top:5px;
  border-radius:50%;
  background:#29d58a;
  box-shadow:0 0 0 4px rgba(41,213,138,.10);
}
.contact-hours div{display:flex;flex-direction:column;gap:2px}
.contact-hours strong{font-size:11px;color:#fff}
.contact-hours small{font-size:10px;color:#a9c6e4}
.contact-whatsapp-btn{
  display:flex;
  align-items:center;
  gap:9px;
  width:100%;
  min-height:44px;
  margin-top:18px;
  padding:0 14px;
  border-radius:10px;
  background:#20c766;
  color:#fff!important;
  font-size:11px;
  font-weight:900;
  box-shadow:0 10px 24px rgba(14,130,69,.23);
}
.contact-whatsapp-btn svg{width:20px;height:20px}
.contact-whatsapp-btn span{margin-left:auto}
.quote-panel{
  border:1px solid #d7e8f7;
  border-radius:18px;
  padding:28px 28px 25px;
  background:#fff;
  box-shadow:0 12px 38px rgba(24,95,161,.075);
}
.quote-panel-head{padding-bottom:18px;margin-bottom:20px;border-bottom:1px solid #e7f0f8}
.quote-panel-head .eyebrow{font-size:9px;padding:4px 10px}
.quote-panel-head h2{
  margin:10px 0 6px;
  font-size:27px;
  line-height:1.1;
  letter-spacing:-.6px;
  color:#081c43;
}
.quote-panel-head p{
  max-width:650px;
  margin:0;
  color:#657991;
  font-size:12px;
  line-height:1.55;
}
.contact-quote-form{gap:14px 12px}
.contact-quote-form label{display:flex;flex-direction:column;gap:6px;margin:0;color:#173252}
.contact-quote-form label>span{font-size:10.5px;font-weight:900;letter-spacing:.01em}
.contact-quote-form label>span b{color:#0b82ef}
.contact-quote-form input,
.contact-quote-form select,
.contact-quote-form textarea{
  width:100%;
  margin-top:0;
  border:1px solid #cfe2f4;
  border-radius:10px;
  background:#fbfdff;
  color:#102946;
  font:inherit;
  font-size:12.5px;
  outline:none;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.contact-quote-form input,
.contact-quote-form select{height:44px;padding:0 12px}
.contact-quote-form textarea{min-height:128px;padding:12px;resize:vertical;line-height:1.5}
.contact-quote-form input::placeholder,
.contact-quote-form textarea::placeholder{color:#93a6ba}
.contact-quote-form input:focus,
.contact-quote-form select:focus,
.contact-quote-form textarea:focus{
  border-color:#1689f5;
  background:#fff;
  box-shadow:0 0 0 3px rgba(22,137,245,.10);
}
.contact-form-helper{
  margin-top:-5px;
  color:#7a8da3;
  font-size:9.5px;
  line-height:1.4;
}
.quote-submit-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:3px;
  padding-top:17px;
  border-top:1px solid #e7f0f8;
}
.quote-form-note{
  max-width:390px;
  margin:0;
  color:#8293a7;
  font-size:9.5px;
  line-height:1.5;
}
.quote-submit-btn{flex:0 0 auto;min-width:190px;min-height:43px}
.contact-quote-success{padding:34px 10px 18px}

@media(max-width:900px){
  .contact-pro-layout{grid-template-columns:1fr 1.15fr}
  .contact-info-panel{padding:25px}
  .contact-info-panel h2{font-size:27px}
}
@media(max-width:760px){
  .contact-section{padding:26px 0 32px}
  .contact-pro-layout{grid-template-columns:1fr;gap:14px}
  .contact-info-panel,.quote-panel{border-radius:15px;padding:21px}
  .contact-info-panel h2{font-size:26px}
  .contact-method{grid-template-columns:42px minmax(0,1fr) 18px}
  .contact-method-icon{width:42px;height:42px}
  .quote-panel-head h2{font-size:24px}
  .contact-quote-form{grid-template-columns:1fr}
  .contact-quote-form .full{grid-column:auto}
  .quote-submit-row{align-items:stretch;flex-direction:column}
  .quote-submit-btn{width:100%;min-width:0}
}


/* =========================================================
   V4.3.8 – consolidated responsive/contact/footer polish
   This block intentionally centralizes the final fixes so the
   approved visual design remains unchanged everywhere else.
   ========================================================= */
html,body{max-width:100%;overflow-x:hidden}

/* Contact cards: preserve icon/copy/arrow structure when Admin content loads. */
.contact-method-copy{min-width:0}
.contact-method-copy strong[data-contact-phone]{white-space:nowrap;overflow-wrap:normal;word-break:normal}
.contact-method-copy strong[data-contact-email]{overflow-wrap:anywhere;word-break:normal}

/* Quote form typography: calmer, more professional hierarchy. */
.contact-quote-form label>span{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  font-size:11.5px;
  line-height:1.35;
  font-weight:700;
  letter-spacing:.015em;
  color:#36506c;
}
.contact-quote-form label>span b{font-weight:800;color:#0b82ef}
.contact-quote-form input,
.contact-quote-form select,
.contact-quote-form textarea{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  font-weight:500;
  color:#17324f;
}
.contact-quote-form input::placeholder,
.contact-quote-form textarea::placeholder{
  font-weight:400;
  color:#8ea1b5;
  opacity:1;
}

/* Footer contact rows: keep phone/email on the same line as their icons. */
.footer-grid>div:last-child p{
  margin:7px 0;
  line-height:1.55;
}
.footer-grid>div:last-child p a{
  display:inline!important;
  margin:0!important;
  line-height:inherit;
  color:#d4e3f5;
  overflow-wrap:anywhere;
}
.footer-bottom{
  align-items:center;
  min-height:54px;
  padding:14px 0 20px;
  line-height:1.55;
}
.footer-bottom>span{min-width:0}

/* Portrait phones: prevent the hero copy/trust row from increasing grid width. */
@media(max-width:760px){
  .hero .shell,
  .hero-shell,
  .hero-copy,
  .hero-copy>*{
    min-width:0;
    max-width:100%;
  }
  .hero-shell{width:100%}
  .hero-copy{width:100%;overflow:hidden}
  .hero h1{
    max-width:100%;
    font-size:clamp(34px,9.7vw,42px);
    line-height:1.08;
    letter-spacing:-1.15px;
    overflow-wrap:normal;
    word-break:normal;
  }
  .hero-copy>p{
    width:100%;
    max-width:100%;
    font-size:16px;
    line-height:1.58;
    overflow-wrap:break-word;
  }
  .hero-buttons{
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:11px;
  }
  .hero-buttons .btn{
    width:100%;
    min-width:0;
    padding-left:10px;
    padding-right:10px;
  }
  .hero-trust{
    width:100%;
    max-width:100%;
    min-width:0;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:0;
    overflow:hidden;
    margin-top:24px;
  }
  .hero-trust>div{
    width:100%;
    min-width:0;
    margin:0;
    padding:0 10px;
    grid-template-columns:28px minmax(0,1fr);
    column-gap:8px;
  }
  .hero-trust>div:first-child{padding-left:0}
  .hero-trust>div:last-child{padding-right:0}
  .hero-trust strong,
  .hero-trust small{
    min-width:0;
    white-space:normal;
    overflow-wrap:break-word;
  }
  .hero-trust strong{font-size:11px;line-height:1.16}
  .hero-trust small{font-size:9.5px;line-height:1.22}

  .footer-grid{
    grid-template-columns:1fr!important;
    gap:27px;
    padding:27px 0 20px;
  }
  .footer-brand p{max-width:100%;font-size:12px;line-height:1.55}
  .footer h3{font-size:14px;margin-bottom:11px}
  .footer a,.footer p{font-size:12px;line-height:1.5}
  .footer-grid>div:last-child p{margin:7px 0}
  .footer-bottom{
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
    min-height:0;
    padding:15px 0 24px;
    font-size:11px;
  }
  .footer-bottom a{font-size:11px}
}

/* Very narrow phones retain the approved two-button hero without overflow. */
@media(max-width:420px){
  .hero h1{font-size:37px}
  .hero-copy>p{font-size:15.5px}
  .hero-trust>div{padding:0 7px;grid-template-columns:25px minmax(0,1fr);column-gap:6px}
  .hero-trust strong{font-size:10.5px}
  .hero-trust small{font-size:9px}
}

/* Phone landscape: use the compact navigation and an adaptive hero.
   Fixed desktop hero height can clip tall slide copy on a short viewport. */
@media (orientation:landscape) and (max-height:650px) and (max-width:1200px){
  .nav-wrap{height:62px;gap:10px}
  .brand{width:150px;flex-basis:150px}
  .menu-toggle{display:block;margin-left:auto}
  .nav-actions{display:none!important}
  .main-nav{
    position:absolute;
    left:13px;
    right:13px;
    top:64px;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    margin-left:0;
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:12px;
    box-shadow:var(--shadow);
  }
  .main-nav.open{display:flex}
  .main-nav a{width:100%;padding:9px;font-size:14px}
  .main-nav a:after{display:none!important}
  .main-nav a.active{color:var(--blue)}

  .hero{overflow:hidden}
  .hero-shell{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    grid-template-columns:1fr!important;
    gap:18px;
    padding:24px 0 28px!important;
    align-items:start;
  }
  .hero-copy{
    width:100%;
    min-width:0;
    height:auto!important;
    padding:0!important;
    overflow:visible;
  }
  .hero h1{
    max-width:100%;
    margin:10px 0 10px;
    font-size:clamp(31px,5.3vw,42px)!important;
    line-height:1.06;
  }
  .hero-copy>p{max-width:760px;font-size:14px;line-height:1.5}
  .hero-buttons{margin-top:16px}
  .hero-trust{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    width:100%;
    max-width:720px;
    min-width:0;
    overflow:hidden;
    margin-top:18px;
  }
  .hero-trust>div{min-width:0;margin:0;padding:0 12px}
  .hero-media{
    height:300px!important;
    min-height:300px!important;
    max-height:300px!important;
    overflow:hidden;
    border-radius:16px;
  }
  .hero-media img{
    position:static!important;
    width:100%!important;
    height:300px!important;
    min-height:300px!important;
    max-height:300px!important;
    object-fit:cover;
    border-radius:16px;
    -webkit-mask-image:none!important;
    mask-image:none!important;
  }
  .slide-arrow{display:none!important}

  .page-hero{padding:24px 0!important}
  .page-hero-inner{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    grid-template-columns:1fr!important;
    gap:18px;
  }
  .page-hero-inner>div:first-child{height:auto!important;padding:0!important}
  .page-hero-media{
    height:280px!important;
    min-height:280px!important;
    max-height:280px!important;
    overflow:hidden;
    border-radius:14px;
  }
  .page-hero-media img{
    position:static!important;
    width:100%!important;
    height:280px!important;
    min-height:280px!important;
    max-height:280px!important;
    object-fit:cover;
    border-radius:14px;
    -webkit-mask-image:none!important;
    mask-image:none!important;
  }
}


/* ============================================================
   V4.3.9 – LEGAL + SEO FOUNDATION
   Scoped only to Privacy, Terms and human-readable Sitemap pages.
   ============================================================ */
.legal-hero{padding:42px 0!important}
.legal-hero h1{font-size:42px;line-height:1.05;letter-spacing:-1.3px;margin:12px 0 10px;color:#081c43}
.legal-hero h1 em{font-style:normal;color:var(--blue)}
.legal-hero p{max-width:780px;margin:0;color:#60738f;font-size:15px;line-height:1.65}
.legal-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:17px}
.legal-meta span{font-size:10px;font-weight:800;color:#42627f;background:#fff;border:1px solid #cfe2f4;border-radius:999px;padding:6px 10px}
.legal-page-section{background:linear-gradient(180deg,#fff,#f8fbff)}
.legal-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:28px;align-items:start}
.legal-nav{position:sticky;top:94px;display:grid;gap:12px}
.legal-nav-card,.legal-note{border:1px solid var(--line);border-radius:13px;background:#fff;padding:17px;box-shadow:0 6px 22px rgba(25,99,172,.05)}
.legal-nav-card strong,.legal-note strong{display:block;font-size:12px;color:#081c43;margin-bottom:10px}
.legal-nav-card a{display:block;color:#59718d;font-size:11px;font-weight:700;padding:7px 0;border-bottom:1px solid #edf3f9}
.legal-nav-card a:last-child{border-bottom:0}
.legal-nav-card a:hover{color:var(--blue)}
.legal-note p{font-size:10px;line-height:1.5;color:#6a7f97;margin:0 0 10px}
.legal-language-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.legal-language-switch button{border:1px solid #cfe2f4;background:#f8fbff;color:#46617e;border-radius:8px;padding:8px 5px;font-size:10px;font-weight:900;cursor:pointer}
.legal-language-switch button.active{background:var(--blue);border-color:var(--blue);color:#fff}
.legal-content{min-width:0}
.legal-section{position:relative;border:1px solid var(--line);background:#fff;border-radius:14px;padding:25px 27px;margin-bottom:14px;box-shadow:0 6px 22px rgba(25,99,172,.045);scroll-margin-top:100px}
.legal-number{display:inline-grid;place-items:center;min-width:30px;height:25px;padding:0 8px;border-radius:999px;background:#eaf5ff;color:#087df1;font-size:9px;font-weight:900;letter-spacing:.06em}
.legal-section h2{font-size:21px;letter-spacing:-.25px;margin:10px 0 9px;color:#081c43}
.legal-section p,.legal-section li{font-size:13px;line-height:1.72;color:#5b718b}
.legal-section p{margin:7px 0}
.legal-section ul{padding-left:20px;margin:9px 0}
.legal-section li{margin:6px 0}
.legal-contact{display:flex;gap:8px;flex-wrap:wrap;margin:13px 0}
.legal-contact a,.legal-contact span{display:inline-flex;align-items:center;border:1px solid #cfe2f4;background:#f7fbff;border-radius:9px;padding:9px 11px;color:#087df1;font-size:11px;font-weight:800}
.sitemap-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.sitemap-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:24px;box-shadow:0 6px 22px rgba(25,99,172,.045)}
.sitemap-card h2{font-size:20px;color:#081c43;margin:10px 0 14px}
.sitemap-card a{display:block;padding:8px 0;border-bottom:1px solid #edf3f9;color:#58718e;font-size:12px;font-weight:700}
.sitemap-card a:last-child{border-bottom:0}
.sitemap-card a:hover{color:var(--blue)}
@media(max-width:900px){.legal-layout{grid-template-columns:1fr}.legal-nav{position:static}.legal-nav-card{display:none}.sitemap-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.legal-hero{padding:30px 0!important}.legal-hero h1{font-size:34px}.legal-hero p{font-size:14px}.legal-section{padding:20px 18px}.legal-section h2{font-size:19px}.legal-section p,.legal-section li{font-size:12.5px}.sitemap-grid{grid-template-columns:1fr}}


/* V4.4.0 – branded error pages only. Existing approved page layouts are unchanged. */
.error-page{min-height:calc(100vh - 72px);display:grid;place-items:center;background:linear-gradient(115deg,#f8fcff 0%,#eef8ff 58%,#dcefff 100%);padding:56px 0}
.error-card{position:relative;overflow:hidden;width:min(760px,100%);margin:auto;text-align:center;background:#fff;border:1px solid #cfe5f7;border-radius:22px;padding:48px 34px;box-shadow:0 24px 65px rgba(13,65,118,.12)}
.error-card:before{content:"";position:absolute;width:330px;height:330px;border:54px solid rgba(17,137,245,.07);border-radius:50%;right:-190px;top:-180px;pointer-events:none}
.error-code{display:inline-flex;align-items:center;justify-content:center;min-width:96px;height:38px;padding:0 18px;border:1px solid #8dc7ff;background:#f5fbff;color:#087df1;border-radius:999px;font-size:13px;font-weight:900;letter-spacing:.12em}
.error-card h1{position:relative;margin:18px 0 10px;color:#081c43;font-size:42px;line-height:1.04;letter-spacing:-1.3px}
.error-card p{position:relative;color:#60738f;max-width:560px;margin:0 auto;font-size:15px;line-height:1.65}
.error-actions{position:relative;display:flex;justify-content:center;gap:12px;margin-top:26px}
@media(max-width:760px){.error-page{min-height:calc(100vh - 62px);padding:34px 0}.error-card{padding:36px 20px;border-radius:18px}.error-card h1{font-size:34px}.error-actions{flex-direction:column}.error-actions .btn{width:100%}}

/* V5 image-performance sources preserve the existing image geometry. */
.optimized-picture{display:block;width:100%}
.service-photo>.optimized-picture{height:100%}
.project-card>.optimized-picture{height:128px}
.project-card>.optimized-picture>img{width:100%;height:100%;object-fit:cover}
