  :root{
    --navy:#093254;
    --red:#b12028;
    --steel:#a6bbd8;
    --white:#ffffff;
    --ink:#111111;
    --red-dk:#8f181f;
    --navy-dk:#06233d;
  }


  /* ---------- Buttons ---------- */
  .btn-cc{display:inline-flex; align-items:center; gap:9px; font-family:'Barlow Condensed',sans-serif;
    font-weight:600; text-transform:uppercase; letter-spacing:.6px; font-size:19px; padding:14px 30px;
    border-radius:8px; border:2px solid transparent; cursor:pointer; transition:transform .2s, box-shadow .2s, background .2s, color .2s;}
  .btn-cc:active{transform:scale(.97);}
  .btn-red{background:var(--red); color:#fff; box-shadow:0 8px 22px rgba(177,32,40,.38);}
  .btn-red:hover{background:var(--red-dk); color:#fff; transform:translateY(-2px); box-shadow:0 14px 30px rgba(177,32,40,.5);}
  .btn-outline-white{background:transparent; color:#fff; border-color:rgba(255,255,255,.7);}
  .btn-outline-white:hover{background:#fff; color:var(--navy); transform:translateY(-2px); box-shadow:0 12px 26px rgba(0,0,0,.25);}
  .btn-navy{background:var(--navy); color:#fff; box-shadow:0 8px 22px rgba(9,50,84,.35);}
  .btn-navy:hover{background:var(--navy-dk); color:#fff; transform:translateY(-2px);}

  /* ---------- Eyebrow / headings ---------- */
  .eyebrow{font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:2.5px;
    color:var(--red); font-weight:600; font-size:16px;}
  .h-section{font-family:'Barlow Condensed',sans-serif; font-weight:700; text-transform:uppercase;
    font-size:clamp(32px,4vw,52px); line-height:1.02;}

  /* ---------- Top bar + nav ---------- */
  .cc-topbar{background:var(--red); color:#fff; height:36px; font-size:14px; font-weight:600;}
  .cc-topbar a{color:#fff;}
  .cc-topbar a:hover{text-decoration:underline;}
  .cc-nav{background:#fff; box-shadow:0 2px 16px rgba(9,50,84,.12);}
  .cc-nav .nav-link{position:relative; font-family:'Barlow Condensed',sans-serif; text-transform:uppercase;
    font-weight:600; font-size:18px; letter-spacing:.5px; color:var(--navy); padding:8px 4px;}
  .cc-nav .nav-link::after{content:""; position:absolute; left:0; bottom:0; height:3px; width:0; background:var(--red); transition:width .25s;}
  .cc-nav .nav-link:hover::after,.cc-nav .nav-link:focus::after{width:100%;}
  .cc-nav .nav-link:hover{color:var(--red);}

  /* ---------- Hero slider ---------- */
  .cc-hero{position:relative; min-height:100vh; display:flex; align-items:center; overflow:hidden;}
  .cc-slides{position:absolute; inset:0;}
  .cc-slide{position:absolute; inset:0; background-size:cover; background-position:center;
    opacity:0; transition:opacity 1.2s ease; transform:scale(1.06);}
  .cc-slide.active{opacity:1;}
  .cc-hero-overlay{position:absolute; inset:0; background:rgba(9,50,84,.65);}
  .cc-hero-accent{position:absolute; top:0; left:0; width:100%; height:6px; background:var(--red); z-index:3;}
  .cc-hero-inner{position:relative; z-index:2; color:#fff;}
  .cc-hero h1{font-weight:700; text-transform:uppercase; font-size:clamp(40px,6.2vw,72px); line-height:1.0; text-shadow:0 4px 26px rgba(0,0,0,.4);}
  .trust-strip{display:flex; flex-wrap:wrap; gap:26px; margin-top:34px;}
  .trust-strip .ts{display:flex; align-items:center; gap:11px; font-family:'Barlow Condensed',sans-serif;
    text-transform:uppercase; letter-spacing:.5px; font-size:16px;}
  .trust-strip .ts i{color:var(--red); font-size:24px;}

  /* placeholder image treatment (swap for real photos) */
  .imgph{position:relative; background:linear-gradient(135deg,var(--navy),#12507f); display:flex; flex-direction:column;
    align-items:center; justify-content:center; color:rgba(255,255,255,.85); text-align:center;}
  .imgph i{font-size:40px; margin-bottom:10px; color:var(--steel);}
  .imgph span{font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:1px; font-size:14px; padding:0 12px;}

  /* ---------- USP cards ---------- */
  .usp-card{background:#fff; border-top:4px solid var(--steel); border-left:4px solid transparent;
    border-radius:12px; padding:34px 28px; height:100%; box-shadow:0 10px 30px rgba(9,50,84,.08);
    transition:transform .28s, box-shadow .28s, border-color .28s;}
  .usp-card:hover{transform:translateY(-6px); border-left-color:var(--navy); box-shadow:0 22px 46px rgba(9,50,84,.16);}
  .usp-ico{width:66px; height:66px; border-radius:14px; background:rgba(177,32,40,.1); color:var(--red);
    display:flex; align-items:center; justify-content:center; font-size:28px; margin-bottom:20px;}

  /* ---------- Form ---------- */
  .cc-form-card{background:#fff; border-top:5px solid var(--navy); border-radius:14px; padding:34px 30px;
    box-shadow:0 22px 50px rgba(9,50,84,.16);}
  .cc-form-card label{font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; font-size:14px;
    letter-spacing:.5px; color:var(--navy); font-weight:600; margin-bottom:5px;}
  .cc-form-card .form-control,.cc-form-card .form-select{border:1.5px solid #d5dded; border-radius:8px; padding:11px 13px; font-size:15px;}
  .cc-form-card .form-control:focus,.cc-form-card .form-select:focus{border-color:var(--navy); box-shadow:0 0 0 .2rem rgba(9,50,84,.15);}
  .cc-inline-trust{display:flex; align-items:center; gap:10px; font-weight:600; color:var(--navy);}
  .cc-inline-trust i{color:var(--red); font-size:19px;}

  /* ---------- Service cards (navy section) ---------- */
  .svc-card{background:#0e3a61; border:2px solid transparent; border-radius:14px; overflow:hidden; height:100%;
    transition:transform .3s, border-color .3s, box-shadow .3s;}
  .svc-card:hover{transform:translateY(-6px) scale(1.02); border-color:var(--red); box-shadow:0 24px 50px rgba(0,0,0,.35);}
  .svc-card .svc-img{height:200px;}
  .svc-card .svc-body{padding:26px 24px 30px; color:#fff;}
  .svc-card h3{font-size:26px; text-transform:uppercase; margin:0 0 14px;}
  .svc-card ul{list-style:none; padding:0; margin:0 0 20px;}
  .svc-card li{display:flex; gap:10px; align-items:flex-start; margin-bottom:9px; color:var(--steel); font-size:15px;}
  .svc-card li i{color:var(--red); margin-top:3px;}

  /* ---------- Combined services chips ---------- */
  .combo-item{display:flex; align-items:center; gap:14px; background:#fff; border-radius:10px; padding:18px 20px;
    box-shadow:0 6px 18px rgba(9,50,84,.07); height:100%; transition:transform .22s, box-shadow .22s;}
  .combo-item:hover{transform:translateY(-4px); box-shadow:0 16px 34px rgba(9,50,84,.15);}
  .combo-item .ci-ico{flex:0 0 auto; width:50px; height:50px; border-radius:10px; background:var(--navy); color:#fff;
    display:flex; align-items:center; justify-content:center; font-size:20px;}
  .combo-item h4{margin:0; font-size:20px; text-transform:uppercase; color:var(--navy);}
  .combo-item p{margin:2px 0 0; font-size:13.5px; color:#5a6675;}

  /* ---------- Mid CTA ---------- */
  .pulse-dot{display:inline-block; width:12px; height:12px; border-radius:50%; background:var(--red); position:relative;}
  .pulse-dot::after{content:""; position:absolute; inset:0; border-radius:50%; background:var(--red); animation:ccpulse 1.6s ease-out infinite;}
  @keyframes ccpulse{0%{transform:scale(1); opacity:.7;}100%{transform:scale(3); opacity:0;}}

  /* ---------- Affiliations ---------- */
  .affil-logo{filter:grayscale(1) brightness(1.8); opacity:.75; transition:filter .3s, opacity .3s, transform .3s;
    background:#fff; border-radius:10px; padding:18px 22px; display:flex; align-items:center; justify-content:center; height:96px;}
  .affil-logo:hover{filter:none; opacity:1; transform:translateY(-4px);}

  /* ---------- Testimonials ---------- */
  .cc-testi{position:relative;}
  .cc-testi-overlay{position:absolute; inset:0; background:rgba(9,50,84,.82);}
  .testi-track{position:relative; min-height:270px;}
  .testi-card{position:absolute; inset:0; opacity:0; transition:opacity .6s; pointer-events:none;}
  .testi-card.active{opacity:1; pointer-events:auto; position:relative;}
  .testi-inner{background:#fff; border-radius:16px; padding:38px 40px; max-width:820px; margin:0 auto; box-shadow:0 24px 56px rgba(0,0,0,.3);}
  .testi-stars{color:#f6b21b; font-size:18px; letter-spacing:2px;}
  .testi-dots{display:flex; gap:10px; justify-content:center; margin-top:26px;}
  .testi-dot{width:12px; height:12px; border-radius:50%; background:rgba(255,255,255,.4); border:none; cursor:pointer; transition:background .25s, transform .25s;}
  .testi-dot.active{background:var(--red); transform:scale(1.25);}

  /* ---------- Service area USP list ---------- */
  .sa-usp{display:flex; gap:16px; align-items:flex-start; padding:16px 0; border-bottom:1px solid rgba(166,187,216,.2);}
  .sa-usp:last-child{border-bottom:none;}
  .sa-usp i{color:var(--red); font-size:24px; margin-top:3px; flex:0 0 auto;}
  .sa-usp h4{margin:0 0 3px; color:#fff; text-transform:uppercase; font-size:20px;}
  .sa-usp p{margin:0; color:var(--steel); font-size:14.5px;}

  #sa-map,#full-map{width:100%; min-height:460px; background:#dfe5ec; border-radius:14px; z-index:0;}
  .leaflet-container{font-family:'Open Sans',sans-serif;}
  .cc-marker{width:18px; height:18px; border-radius:50% 50% 50% 0; transform:rotate(-45deg);
    border:3px solid #fff; box-shadow:0 2px 6px rgba(0,0,0,.4); background:var(--red);}
  .cc-marker.hq{width:26px; height:26px; background:var(--navy);}

  /* ---------- CTA3 diagonal split ---------- */
  .cta3{position:relative; overflow:hidden; background:var(--navy);}
  .cta3::before{content:""; position:absolute; top:0; left:0; height:100%; width:56%;
    background:var(--red); clip-path:polygon(0 0, 100% 0, 82% 100%, 0% 100%);}
  @media(max-width:991px){.cta3::before{width:100%; height:52%; clip-path:polygon(0 0,100% 0,100% 82%,0 100%);}}
  .cta3-inner{position:relative; z-index:2;}
  .cta3-badge{width:132px; height:132px; border-radius:50%; background:#fff; color:var(--navy);
    display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
    font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; line-height:1.02; box-shadow:0 14px 34px rgba(0,0,0,.3);}

  /* ---------- Map-section city grid ---------- */
  .city-grid-item{display:flex; align-items:center; gap:10px; padding:12px 4px; font-weight:600; color:var(--navy);}
  .city-grid-item i{color:var(--red);}
  .addr-bar{background:var(--navy); color:#fff; border-radius:10px;}

  /* ---------- Footer ---------- */
  .cc-footer{background:var(--navy); color:#c6d3e4;}
  .cc-footer h4{color:#fff; text-transform:uppercase; font-size:19px; margin-bottom:16px;}
  .cc-footer a{color:#c6d3e4; transition:color .2s;}
  .cc-footer a:hover{color:var(--red);}
  .cc-footer ul{list-style:none; padding:0; margin:0; line-height:2.15; font-size:15px;}
  .cc-social{width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.08); display:flex;
    align-items:center; justify-content:center; color:#fff; transition:background .2s, transform .2s;}
  .cc-social:hover{background:var(--red); transform:translateY(-2px); color:#fff;}

  /* ---------- Scroll reveal ---------- */
  .reveal{opacity:0; transform:translateY(30px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);}
  .reveal.in{opacity:1; transform:none;}

  .to-top{position:fixed; right:22px; bottom:22px; width:50px; height:50px; border-radius:50%; background:var(--red);
    color:#fff; border:none; font-size:19px; cursor:pointer; opacity:0; pointer-events:none; transition:opacity .3s, transform .2s;
    box-shadow:0 8px 22px rgba(177,32,40,.4); z-index:900;}
  .to-top.show{opacity:1; pointer-events:auto;}
  .to-top:hover{transform:translateY(-3px);}
