:root{
      --navy:#0F4A6D;
      --green:#2CF16A;
      --ink:#10212a;
      --paper:#f6f7f4;
      --white:#fff;
      --muted:#66737a;
      --line:#cfd6d6;
      --soft:#e8ecea;
      --max:1540px;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;background:#fff;color:var(--ink);
      font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
      -webkit-font-smoothing:antialiased;overflow-x:hidden
    }
    a{color:inherit;text-decoration:none}
    img{display:block;max-width:100%}
    button{font:inherit}
    .shell{width:min(calc(100% - 48px),var(--max));margin:0 auto}
    .text-link{display:inline-flex;align-items:center;gap:12px;font-size:12px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:6px}
    .text-link:hover{color:#087e3c}

    /* HEADER */
    .site-header{
      position:sticky;top:0;z-index:50;background:#fff;
      backdrop-filter:blur(14px);border-bottom:1px solid var(--line)
    }
    .header-inner{height:88px;display:grid;grid-template-columns:280px 1fr auto;align-items:center;gap:28px}
    .brand img{width:285px;height:auto}
    .desktop-nav{display:flex;justify-content:center;gap:34px;font-size:13px;font-weight:650;letter-spacing:.02em}
    .desktop-nav a{padding:34px 0 31px;border-bottom:3px solid transparent;transition:.2s ease}
    .desktop-nav a:hover,.desktop-nav a.is-active{border-color:var(--green)}
    .header-cta{display:flex;align-items:center;gap:16px;font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
    .header-cta::after{content:"↗";font-size:18px}
    .menu-btn{display:none;border:0;background:none;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:12px 0}

    /* PRIMARY NAV + DROPDOWN */
    .nav-item{position:relative;display:flex;align-items:stretch}
    .nav-item > .nav-link{display:flex;align-items:center}
    .submenu-toggle{
      border:0;background:transparent;color:var(--navy);cursor:pointer;
      padding:0 0 0 7px;font-size:13px;line-height:1;display:flex;align-items:center;
    }
    .submenu-toggle span{display:block;transition:transform .2s ease}
    .nav-item:hover .submenu-toggle span,
    .nav-item:focus-within .submenu-toggle span,
    .nav-item.submenu-open .submenu-toggle span{transform:rotate(180deg)}
    .nav-dropdown{
      position:absolute;left:50%;top:calc(100% - 1px);z-index:80;
      min-width:310px;transform:translate(-50%,10px);
      background:#fff;border:1px solid var(--line);border-top:3px solid var(--green);
      box-shadow:0 18px 40px rgba(10,32,43,.12);
      opacity:0;visibility:hidden;pointer-events:none;
      transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
      padding:7px 0;
    }
    .nav-item:hover .nav-dropdown,
    .nav-item:focus-within .nav-dropdown,
    .nav-item.submenu-open .nav-dropdown{
      opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)
    }
    .desktop-nav .nav-dropdown a{
      display:block;padding:13px 18px;border:0;border-bottom:1px solid rgba(207,214,214,.7);
      font-size:12px;line-height:1.35;font-weight:700;letter-spacing:.01em;
      color:#30464f;text-transform:none;
    }
    .desktop-nav .nav-dropdown a:last-child{border-bottom:0}
    .desktop-nav .nav-dropdown a:hover{background:#edf1ed;color:var(--navy);padding-left:22px}

    /* HERO */
    .page-hero{border-bottom:1px solid var(--line)}
    .page-hero-grid{
      min-height:620px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.65fr);
      border-left:1px solid var(--line);border-right:1px solid var(--line)
    }
    .page-hero-copy{padding:88px 64px 58px;display:flex;flex-direction:column;justify-content:space-between}
    .page-hero h1{font-size:clamp(68px,7vw,126px);line-height:.87;letter-spacing:-.07em;margin:0;font-weight:760;max-width:1080px}
    .page-hero h1 span{display:block;color:var(--navy)}
    .hero-bottom{display:grid;grid-template-columns:minmax(280px,700px) auto;gap:44px;align-items:end;margin-top:80px}
    .hero-bottom p{font-size:20px;line-height:1.55;color:#41545b;margin:0;max-width:700px}
    .hero-visual{position:relative;background:var(--navy);overflow:hidden}
    .hero-visual::before{
      content:"";position:absolute;inset:0;
      background:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),
                 linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);
      background-size:68px 68px
    }
    .hero-visual img{position:absolute;width:125%;max-width:none;right:-35%;bottom:-18%;opacity:.085}
    .hero-visual-copy{position:absolute;left:34px;right:34px;bottom:34px;color:#fff;border-top:1px solid rgba(255,255,255,.25);padding-top:22px}
    .hero-visual-copy strong{display:block;font-size:15px;margin-bottom:8px}
    .hero-visual-copy span{font-size:13px;line-height:1.55;color:rgba(255,255,255,.66);max-width:360px;display:block}

    /* SERVICE INDEX */
    .service-index{background:var(--white);border-bottom:1px solid var(--line)}
    .service-index-grid{
      display:grid;grid-template-columns:repeat(6,1fr);
      border-left:1px solid var(--line);border-right:1px solid var(--line)
    }
    .service-index a{
      min-height:118px;display:flex;align-items:flex-end;padding:24px 20px;
      border-right:1px solid var(--line);font-size:13px;line-height:1.3;font-weight:780;
      color:var(--navy);transition:.2s ease;position:relative
    }
    .service-index a:last-child{border-right:0}
    .service-index a::before{content:"";position:absolute;left:20px;top:24px;width:24px;height:3px;background:var(--green);transition:width .2s ease}
    .service-index a:hover{background:#f1f4f1}
    .service-index a:hover::before{width:48px}

    /* INTRO */
    .services-intro{padding:104px 0 82px}
    .intro-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:80px;align-items:start}
    .intro-grid h2{font-size:clamp(46px,5vw,80px);line-height:.94;letter-spacing:-.055em;margin:0}
    .intro-copy p{font-size:20px;line-height:1.65;color:#42545b;margin:0 0 28px;max-width:780px}
    .intro-note{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #aeb8b9;margin-top:44px}
    .intro-note div{padding:24px 0;border-bottom:1px solid #aeb8b9;font-size:14px;line-height:1.55;color:#596a70}
    .intro-note div:nth-child(odd){padding-right:28px;border-right:1px solid #aeb8b9}
    .intro-note div:nth-child(even){padding-left:28px}

    /* SERVICE SECTIONS */
    .service-block{border-top:1px solid var(--line);scroll-margin-top:88px}
    .service-layout{
      display:grid;grid-template-columns:minmax(330px,.72fr) minmax(0,1.28fr);
      min-height:680px;border-left:1px solid var(--line);border-right:1px solid var(--line)
    }
    .service-copy{padding:62px 54px;display:flex;flex-direction:column;justify-content:space-between;background:var(--paper)}
    .service-copy h2{font-size:clamp(46px,4.8vw,78px);line-height:.94;letter-spacing:-.055em;color:var(--navy);margin:0 0 30px}
    .service-copy > div > p{font-size:18px;line-height:1.65;color:#45575e;margin:0;max-width:620px}
    .service-capabilities{border-top:1px solid #aeb8b9;margin-top:46px}
    .cap-row{display:grid;grid-template-columns:1fr auto;gap:18px;padding:17px 0;border-bottom:1px solid #aeb8b9;align-items:center;font-size:14px}
    .cap-row span:last-child{color:#087e3c;font-size:18px}
    .service-copy-footer{margin-top:48px}
    .service-media{position:relative;min-height:680px;background:var(--navy);overflow:hidden}
    .service-media.alt{background:#e6ebe6}
    .service-slot{
      position:absolute;inset:40px;border:1px solid rgba(255,255,255,.28);
      display:flex;flex-direction:column;justify-content:space-between;padding:28px;color:#fff;
      overflow:hidden
    }
    .service-media.alt .service-slot{border-color:#9eaaaa;color:var(--navy)}
    .service-slot::before{
      content:"";position:absolute;inset:0;
      background:linear-gradient(135deg,rgba(255,255,255,.05),transparent 46%),
                 linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),
                 linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);
      background-size:auto,64px 64px,64px 64px
    }
    .service-media.alt .service-slot::before{
      background:linear-gradient(135deg,rgba(15,74,109,.06),transparent 48%),
                 linear-gradient(rgba(15,74,109,.07) 1px,transparent 1px),
                 linear-gradient(90deg,rgba(15,74,109,.07) 1px,transparent 1px);
      background-size:auto,64px 64px,64px 64px
    }
    .slot-top,.slot-bottom{position:relative;z-index:2}
    .slot-top{display:flex;justify-content:space-between;gap:24px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.68)}
    .service-media.alt .slot-top{color:#607178}
    .slot-bottom strong{font-size:28px;letter-spacing:-.04em;display:block;margin-bottom:9px}
    .slot-bottom span{font-size:13px;line-height:1.55;color:rgba(255,255,255,.68);max-width:360px;display:block}
    .service-media.alt .slot-bottom span{color:#607178}
    .slot-icon{position:absolute;width:48%;right:-10%;top:15%;opacity:.09}
    .service-media.alt .slot-icon{opacity:.10}
    .service-block.reverse .service-layout{grid-template-columns:minmax(0,1.28fr) minmax(330px,.72fr)}
    .service-block.reverse .service-media{order:1}
    .service-block.reverse .service-copy{order:2}

    /* COMBINED WORK */
    .combined{background:var(--navy);color:#fff;padding:110px 0}
    .combined-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:start}
    .combined h2{font-size:clamp(54px,6vw,94px);line-height:.9;letter-spacing:-.06em;margin:0}
    .combined-copy p{font-size:19px;line-height:1.65;color:rgba(255,255,255,.74);margin:0 0 34px;max-width:660px}
    .combined-flow{border-top:1px solid rgba(255,255,255,.25)}
    .combined-flow div{padding:19px 0;border-bottom:1px solid rgba(255,255,255,.25);display:flex;justify-content:space-between;gap:20px}
    .combined-flow strong{font-size:15px}
    .combined-flow span{color:var(--green)}


    /* CTA */
    .final-cta{background:var(--green);color:#092c1e;overflow:hidden}
    .cta-grid{min-height:500px;display:grid;grid-template-columns:1.25fr .75fr;align-items:center}
    .cta-grid h2{font-size:clamp(62px,7vw,116px);line-height:.87;letter-spacing:-.065em;margin:0;max-width:1050px;padding-right:60px}
    .cta-side{align-self:stretch;border-left:1px solid rgba(0,0,0,.23);padding:70px 50px;display:flex;flex-direction:column;justify-content:space-between}
    .cta-side p{font-size:18px;line-height:1.6;margin:0;max-width:420px}
    .cta-side .text-link{color:#082c1d;border-color:#082c1d;align-self:flex-start}

    /* FOOTER */
    footer{background:#081d28;color:#fff;padding:70px 0 30px}
    .footer-grid{display:grid;grid-template-columns:1.35fr .65fr .65fr .65fr;gap:50px;padding-bottom:64px}
    .footer-brand img{width:230px;margin-bottom:28px}
    .footer-brand p{max-width:420px;color:rgba(255,255,255,.58);line-height:1.6;font-size:14px}
    .footer-col h4{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin:0 0 22px}
    .footer-col a{display:block;color:rgba(255,255,255,.74);font-size:14px;margin:12px 0}
    .footer-bottom{border-top:1px solid rgba(255,255,255,.16);padding-top:24px;display:flex;justify-content:space-between;gap:30px;font-size:12px;color:rgba(255,255,255,.48)}

    /* RESPONSIVE */
    @media(max-width:1100px){
      .header-inner{grid-template-columns:230px 1fr auto}.desktop-nav{gap:18px}
      .page-hero-grid{grid-template-columns:1fr .65fr}.page-hero-copy{padding:70px 40px 50px}
      .hero-bottom{grid-template-columns:1fr}
      .service-index-grid{grid-template-columns:repeat(3,1fr)}
      .service-index a:nth-child(3){border-right:0}.service-index a:nth-child(-n+3){border-bottom:1px solid var(--line)}
      .intro-grid{grid-template-columns:1fr;gap:34px}
      .service-layout,.service-block.reverse .service-layout{grid-template-columns:1fr}
      .service-block.reverse .service-media,.service-block.reverse .service-copy{order:initial}
      .service-media{min-height:560px}.service-copy{min-height:auto}
      .combined-grid{grid-template-columns:1fr;gap:48px}
      
      .cta-grid{grid-template-columns:1fr}.cta-side{border-left:0;border-top:1px solid rgba(0,0,0,.23)}
      .footer-grid{grid-template-columns:1.3fr 1fr 1fr}
    }
    @media(max-width:850px){
      .shell{width:min(calc(100% - 28px),var(--max))}
      .desktop-nav.mobile-open{
        display:flex!important;position:absolute;left:0;right:0;top:74px;
        background:#f6f7f4;flex-direction:column;padding:12px 24px 20px;
        border-bottom:1px solid #cfd6d6;gap:0;align-items:stretch
      }
      .desktop-nav.mobile-open > a,
      .desktop-nav.mobile-open > .nav-item > .nav-link{
        padding:17px 0;border-bottom:1px solid var(--line);width:100%
      }
      .desktop-nav.mobile-open .nav-item{
        display:grid;grid-template-columns:1fr auto;align-items:center;width:100%;
        border-bottom:1px solid var(--line)
      }
      .desktop-nav.mobile-open .nav-item > .nav-link{border-bottom:0}
      .desktop-nav.mobile-open .submenu-toggle{padding:16px 4px 16px 18px}
      .desktop-nav.mobile-open .nav-dropdown{
        display:none;position:static;grid-column:1/-1;min-width:0;transform:none!important;
        opacity:1;visibility:visible;pointer-events:auto;box-shadow:none;
        border:0;border-top:1px solid var(--line);background:#edf1ed;padding:4px 0 6px
      }
      .desktop-nav.mobile-open .nav-item.submenu-open .nav-dropdown{display:block}
      .desktop-nav.mobile-open .nav-dropdown a{padding:13px 14px;border-bottom:1px solid rgba(207,214,214,.8)}

      .desktop-nav,.header-cta{display:none}.menu-btn{display:block}
      .header-inner{height:74px;grid-template-columns:1fr auto}.brand img{width:220px}
      .page-hero-grid{display:block;border-left:0;border-right:0}
      .page-hero-copy{padding:58px 0 52px;min-height:560px}
      .page-hero h1{font-size:clamp(62px,16vw,100px)}
      .hero-visual{min-height:460px}
      .service-index-grid{grid-template-columns:1fr 1fr;border-left:0;border-right:0}
      .service-index a:nth-child(odd){border-right:1px solid var(--line)}
      .service-index a:nth-child(even){border-right:0}
      .service-index a{border-bottom:1px solid var(--line)}
      .services-intro{padding:78px 0 68px}
      .intro-note{grid-template-columns:1fr}.intro-note div:nth-child(odd),.intro-note div:nth-child(even){padding-left:0;padding-right:0;border-right:0}
      .service-copy{padding:54px 28px}.service-media{min-height:470px}.service-slot{inset:24px;padding:22px}
      .combined{padding:84px 0}
      .cta-grid{padding-top:84px}.cta-side{padding:48px 0}
      .footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.footer-bottom{flex-direction:column}
    }
    @media(max-width:560px){
      .page-hero-copy{min-height:500px}.hero-bottom p{font-size:18px}
      .service-index-grid{grid-template-columns:1fr}.service-index a{border-right:0!important;min-height:86px}
      .service-copy{padding-left:0;padding-right:0}
      .service-media{min-height:390px}.service-slot{inset:18px}
      .service-capabilities{margin-top:34px}.cap-row{font-size:13px}
      
      .footer-grid{grid-template-columns:1fr}.footer-col{border-top:1px solid rgba(255,255,255,.12);padding-top:22px}
    }

.footer-social{display:flex;flex-wrap:wrap;gap:14px;margin-top:18px}.footer-social a{font-size:12px;color:rgba(255,255,255,.72);text-decoration:none}.footer-social a:hover{color:#2CF16A}

.hero-visual.has-custom-image::before{display:none}
.hero-visual.has-custom-image > img.services-hero-uploaded{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;opacity:1;right:auto;bottom:auto}
.service-uploaded-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}


/* ==========================================================
   V13 — SERVICES PAGE MOBILE SERVICE GROUPING
   ========================================================== */
.mobile-only-service-media{
  display:none;
}

@media(max-width:850px){

  /* Desktop alternating media is replaced by an inline image that appears
     directly after each service introduction on mobile. */
  .service-block .service-layout > .service-media{
    display:none !important;
  }

  .service-block .service-layout,
  .service-block.reverse .service-layout{
    display:block;
    border-left:0;
    border-right:0;
  }

  .service-block.reverse .service-copy,
  .service-block .service-copy{
    order:initial;
  }

  .service-copy{
    padding:54px 0 58px;
  }

  .service-copy > div > p{
    margin-bottom:0;
  }

  .mobile-only-service-media{
    display:block;
    position:relative;
    width:100%;
    aspect-ratio:1.08 / 1;
    overflow:hidden;
    background:var(--navy);
    margin:32px 0 36px;
  }

  .mobile-only-service-media img{
    width:100%;
    height:100%;
    max-width:none;
    object-fit:cover;
    object-position:center;
    display:block;
  }

  .service-inline-placeholder{
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    gap:8px;
    padding:24px;
    color:#fff;
    background:
      linear-gradient(180deg,rgba(15,74,109,.25),rgba(15,74,109,.88)),
      #0F4A6D;
  }

  .service-inline-placeholder span{
    font-size:11px;
    letter-spacing:.12em;
    text-transform:uppercase;
    opacity:.72;
  }

  .service-inline-placeholder strong{
    font-size:26px;
    letter-spacing:-.03em;
  }

  /* Stronger separation between complete service groups.
     The divider comes AFTER image/capabilities/CTA, so image ownership is clear. */
  .service-block{
    border-top:0;
    position:relative;
  }

  .service-block + .service-block{
    border-top:12px solid #e7ebe7;
  }

  .service-block + .service-block::before{
    content:"";
    position:absolute;
    top:0;
    left:14px;
    right:14px;
    height:1px;
    background:#9faaaa;
  }

  .service-capabilities{
    margin-top:0;
  }

  .service-copy-footer{
    margin-top:38px;
    padding-top:6px;
  }
}

@media(max-width:560px){
  .service-copy{
    padding:46px 0 52px;
  }

  .mobile-only-service-media{
    aspect-ratio:1 / 1.02;
    margin:28px 0 32px;
  }

  .service-block + .service-block{
    border-top-width:10px;
  }
}
