  :root{
    --navy: #0F3947;
    --navy-deep: #0A2932;
    --teal: #1C93A8;
    --teal-light: #4DB8CB;
    --ink: #16262C;
    --paper: #FFFFFF;
    --offwhite: #F4F7F8;
    --line: #E1E8EA;
    --grey: #5C6E74;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth; overflow-x:hidden;}
  body{
    font-family:'Inter', sans-serif;
    color:var(--ink);
    background:var(--paper);
    line-height:1.6;
    overflow-x:hidden;
  }
  h1,h2,h3,h4{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:700;
    letter-spacing:0.2px;
    line-height:1.05;
    color:var(--navy-deep);
  }
  img{max-width:100%; display:block;}
  a{text-decoration:none; color:inherit;}
  .wrap{max-width:1200px; margin:0 auto; padding:0 32px;}

  /* Nav */
  header.nav{
    background:var(--navy);
    border-bottom:1px solid rgba(255,255,255,0.08);
    position:relative;
    z-index:50;
  }
  .nav-inner{
    display:flex; align-items:stretch; justify-content:space-between;
    height:100px;
  }
  .brand-panel{
    display:flex; align-items:center;
    padding:0 24px 0 0;
  }
  .brand{
    display:flex; flex-direction:column; align-items:flex-start; gap:4px;
  }
  .brand-mark{
    width:56px;
    display:flex; align-items:center; justify-content:flex-start;
  }
  .brand-mark img{width:100%; height:auto; object-fit:contain; display:block;}
  .brand-text{color:#fff; line-height:1.1; text-align:left;}
  .brand-text .line1{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:700; font-size:16px; letter-spacing:1.3px;
    white-space:nowrap;
  }
  .brand-text .line2{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:600; font-size:16px; letter-spacing:1.3px;
    color:var(--teal-light);
  }
  .brand-text .tag{
    font-size:8.5px; letter-spacing:2.2px; color:#B9D3D9; margin-top:5px;
    white-space:nowrap;
  }
  nav.links{
    display:flex; align-items:center; gap:36px;
    padding-right:8px;
  }
  nav.links a{
    font-family:'Barlow Condensed', sans-serif;
    font-size:17px; font-weight:600; letter-spacing:0.3px;
    color:#7FA0A8;
    padding:8px 2px;
    border-bottom:2px solid transparent;
    transition:color 0.15s ease;
  }
  nav.links a.active, nav.links a:hover{
    color:var(--teal-light);
    border-bottom-color:var(--teal-light);
  }
  .dropdown{position:relative;}
  .dropdown-menu{
    position:absolute; top:100%; left:0; margin-top:12px;
    background:#fff; border:1px solid var(--line); border-radius:4px;
    box-shadow:0 12px 30px rgba(10,41,50,0.12);
    min-width:230px; padding:8px 0;
    opacity:0; visibility:hidden; transform:translateY(6px);
    transition:0.15s ease;
    z-index:60;
  }
  .dropdown:hover .dropdown-menu{opacity:1; visibility:visible; transform:translateY(0);}
  .dropdown-menu a{
    display:block; padding:9px 20px 9px 24px; font-family:'Inter'; font-size:14.5px; font-weight:500;
    border-bottom:none; border-left:3px solid transparent; color:var(--ink);
  }
  .dropdown-menu a:hover{background:var(--offwhite); color:var(--teal); border-left-color:var(--teal); padding-left:21px;}

  /* Hero */
  .first-fold{
    display:flex; flex-direction:column;
    height:100vh;
  }
  .hero{
    position:relative;
    flex:1 1 auto;
    min-height:0;
    display:flex; align-items:center;
    background:#0A2932;
  }
  .hero-bg{
    position:absolute; inset:0;
    background-image:url('../photos/hero.jpg');
    background-size:cover; background-position:center;
  }
  .hero-overlay{
    position:absolute; inset:0;
    background:linear-gradient(90deg, rgba(10,41,50,0.94) 0%, rgba(10,41,50,0.82) 32%, rgba(10,41,50,0.35) 62%, rgba(10,41,50,0.15) 100%);
  }
  .hero-content{
    position:relative; z-index:2;
    max-width:620px;
    padding:60px 0;
  }
  .hero-content h1{
    color:#fff;
    font-size:56px;
    margin-bottom:22px;
  }
  .hero-content h1 span{color:var(--teal-light);}
  .hero-content p{
    color:#D7E6EA;
    font-size:17px;
    max-width:480px;
    margin-bottom:32px;
  }
  .btn{
    display:inline-block;
    background:var(--teal);
    color:#fff;
    font-family:'Barlow Condensed', sans-serif;
    font-weight:600; font-size:17px; letter-spacing:0.5px;
    padding:15px 34px;
    border-radius:2px;
    transition:0.15s ease;
    border:2px solid var(--teal);
    text-align:center;
  }
  .btn:hover{background:var(--teal-light); border-color:var(--teal-light);}
  .btn-outline{
    background:transparent; border:2px solid #fff; color:#fff; margin-left:14px;
  }
  .btn-outline:hover{background:#fff; color:var(--navy-deep); border-color:#fff;}
  .hero-buttons{display:flex; flex-wrap:wrap; gap:14px 0;}

  /* Trust strip */
  .trust{
    background:var(--offwhite);
    border-bottom:1px solid var(--line);
    flex:0 0 auto;
    display:flex;
    align-items:center;
  }
  .trust .wrap{
    display:flex; justify-content:center; flex-wrap:nowrap;
    padding:20px 32px;
    gap:60px;
    width:100%;
  }
  .trust-item{
    display:flex; align-items:center; gap:12px;
    font-family:'Barlow Condensed', sans-serif;
    font-weight:600; font-size:16px; color:var(--navy-deep);
    flex:0 1 auto; min-width:0; white-space:nowrap;
  }
  .trust-item .ic{
    width:38px; height:38px; border-radius:50%;
    background:var(--teal); color:#fff;
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
  }
  .trust-item .ic svg{width:19px; height:19px;}

  /* Section shell */
  section{padding:88px 0;}
  .eyebrow-row{
    display:flex; align-items:baseline; gap:16px; margin-bottom:14px;
  }
  .section-head{max-width:640px; margin-bottom:52px;}
  .section-head h2{font-size:40px; margin-bottom:14px;}
  .section-head p{color:var(--grey); font-size:16.5px;}
  .rule{width:56px; height:3px; background:var(--teal); margin-bottom:18px;}

  /* Services categories */
  .service-categories{
    display:grid; grid-template-columns:repeat(3, 1fr); gap:2px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .service-cat{
    background:#fff;
    padding:36px 34px;
    position:relative;
    transition:0.15s ease;
    cursor:pointer;
    display:block;
    text-decoration:none;
    color:inherit;
  }
  .service-cat:hover{background:var(--navy-deep);}
  .service-cat:hover h3, .service-cat:hover p{color:#fff;}
  .service-cat:hover p{color:#B9D3D9;}
  .service-cat:hover .cat-num{color:var(--teal-light);}
  .service-cat .cat-num{
    font-family:'Barlow Condensed', sans-serif;
    font-size:14px; font-weight:600; color:var(--teal);
    margin-bottom:16px; display:block;
    transition:0.15s ease;
  }
  .service-cat h3{
    font-size:22px; margin-bottom:12px; color:var(--navy-deep);
    transition:0.15s ease;
  }
  .service-cat p{
    color:var(--grey); font-size:14.5px; line-height:1.55;
    transition:0.15s ease;
  }
  .find-more{
    display:inline-block;
    margin-top:16px;
    font-family:'Barlow Condensed', sans-serif;
    font-size:14.5px; font-weight:600; letter-spacing:0.3px;
    color:var(--teal);
    transition:0.15s ease;
  }
  .service-cat:hover .find-more{color:var(--teal-light);}
  .service-cat-wide{grid-column:span 2;}

  /* Gallery */
  .gallery-band{background:var(--navy-deep);}
  .gallery-band .section-head h2, .gallery-band .section-head p{color:#fff;}
  .gallery-band .section-head p{color:#B9D3D9;}
  .gallery-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    grid-auto-rows:170px;
    gap:6px;
  }
  .gallery-grid .g1{grid-column:span 2; grid-row:span 2;}
  .gallery-grid figure{
    position:relative; overflow:hidden; margin:0;
  }
  .gallery-grid img{
    width:100%; height:100%; object-fit:cover;
    transition:transform 0.4s ease;
  }
  .gallery-grid figure:hover img{transform:scale(1.06);}
  .gallery-grid figcaption{
    position:absolute; left:0; right:0; bottom:0;
    background:linear-gradient(to top, rgba(10,41,50,0.85), transparent);
    color:#fff; padding:14px 16px 10px;
    font-family:'Barlow Condensed', sans-serif; font-size:15px; font-weight:600;
  }

  /* About */
  .about{
    display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;
  }
  .about-img{position:relative;}
  .about-img img{border-radius:2px;}
  .about-img::before{
    content:"";
    position:absolute; top:-18px; left:-18px;
    width:120px; height:120px;
    border-top:4px solid var(--teal); border-left:4px solid var(--teal);
  }
  .about-copy h2{font-size:38px; margin-bottom:18px;}
  .about-copy p{color:var(--grey); margin-bottom:16px; font-size:16px;}
  .stat-row{display:flex; gap:40px; margin-top:28px;}
  .stat b{
    font-family:'Barlow Condensed', sans-serif; font-size:34px; color:var(--navy-deep); display:block;
  }
  .stat span{font-size:13.5px; color:var(--grey);}

  /* CTA band */
  .cta-band{
    background:var(--teal);
    padding:56px 0;
  }
  .cta-band .wrap{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:24px;
  }
  .cta-band h3{color:#fff; font-size:30px;}
  .cta-band .btn{background:var(--navy-deep); border-color:var(--navy-deep);}
  .cta-band .btn:hover{background:#fff; color:var(--navy-deep); border-color:#fff;}

  /* Footer */
  footer{background:var(--navy-deep); color:#B9D3D9;}
  .footer-grid{
    display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px;
    padding-top:72px; padding-bottom:40px;
  }
  .footer-grid h4{
    color:#fff; font-size:19px; margin-bottom:18px; letter-spacing:0.5px;
  }
  .footer-grid p, .footer-grid a{color:#9FBCC3; font-size:14.5px;}
  .footer-grid ul{list-style:none;}
  .footer-grid li{margin-bottom:10px;}
  .footer-grid a:hover{color:#fff;}
  .footer-brand{display:flex; flex-direction:column; align-items:flex-start; gap:6px; margin-bottom:18px;}
  .footer-brand .brand-mark{width:56px;}
  .footer-brand .brand-mark img{width:100%; height:auto;}
  .footer-brand .brand-text{text-align:left;}
  .footer-brand .brand-text .line1, .footer-brand .brand-text .line2{font-size:18px;}
  .footer-brand .brand-text .tag{font-size:8px; letter-spacing:2px; margin-top:3px;}
  .footer-bottom{
    border-top:1px solid rgba(255,255,255,0.1);
    padding:22px 0;
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px 24px;
    font-size:13px; color:#7FA0A8;
  }
  .footer-bottom span{overflow-wrap:anywhere;}

  .nav-toggle-checkbox{display:none;}
  .nav-toggle-btn{
    display:none;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    width:32px; height:32px;
    cursor:pointer;
  }
  .nav-toggle-btn span{
    display:block;
    width:100%; height:2px;
    background:#fff;
    border-radius:2px;
    transition:0.2s ease;
  }

  @media (max-width: 980px){
    .wrap{padding:0 20px;}
    .first-fold{height:auto;}
    .hero{min-height:auto; padding:80px 0;}
    .trust{padding:24px 0;}
    .trust .wrap{flex-direction:column; align-items:center; gap:16px; flex-wrap:wrap;}
    .trust-item{white-space:normal;}
    .nav-inner{
      height:auto; flex-direction:row; flex-wrap:wrap;
      align-items:center; justify-content:space-between;
    }
    .nav-toggle-btn{display:flex; order:2;}
    nav.links{
      display:none;
      order:3;
      width:100%;
      flex-direction:column;
      align-items:flex-start;
      gap:4px;
      padding:16px 0 8px;
    }
    .nav-toggle-checkbox:checked ~ nav.links{display:flex;}
    nav.links a{padding:10px 0; width:100%;}
    .dropdown{width:100%;}
    .dropdown-menu{
      position:static;
      opacity:1; visibility:visible; transform:none;
      box-shadow:none; border:none; border-left:2px solid var(--teal);
      margin:4px 0 4px 4px;
      padding:4px 0 4px 16px;
      min-width:0;
    }
    .brand-panel{padding:18px 24px;}
    .hero-content h1{font-size:38px;}
    .hero-content p{max-width:100%;}
    .hero-buttons{flex-direction:column; align-items:stretch; gap:12px;}
    .btn-outline{margin-left:0;}
    .service-categories{grid-template-columns:1fr;}
    .service-cat-wide{grid-column:1;}
    .gallery-grid{grid-template-columns:repeat(2,1fr);}
    .gallery-grid .g1{grid-column:span 2;}
    .about{grid-template-columns:1fr;}
    .about-img{margin-top:20px;}
    .footer-grid{grid-template-columns:1fr; gap:32px; padding-top:56px; padding-bottom:32px;}
    .footer-col-location{order:1;}
    .footer-col-hours{order:2;}
    .footer-col-contact{order:3;}
    .footer-col-brand{order:4;}
    .cta-band .wrap{flex-direction:column; align-items:flex-start;}
    .footer-bottom{flex-direction:column; align-items:flex-start; text-align:left;}
  }

  /* Service sub-page specific */
  .page-header{
    background:var(--navy-deep);
    padding:150px 0 64px;
    position:relative;
  }
  .breadcrumb{
    font-size:13.5px; color:#7FA0A8; margin-bottom:18px;
  }
  .breadcrumb a{color:#B9D3D9;}
  .breadcrumb a:hover{color:#fff;}
  .page-header h1{color:#fff; font-size:46px; margin-bottom:16px;}
  .page-header p{color:#B9D3D9; font-size:16.5px; max-width:640px;}

  .service-detail{
    display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;
    padding:64px 0;
    border-bottom:1px solid var(--line);
  }
  .service-detail:last-of-type{border-bottom:none;}
  .service-detail.reverse .detail-img{order:2;}
  .service-detail.reverse .detail-copy{order:1;}
  .detail-img{
    aspect-ratio:4/3;
    overflow:hidden;
    border-radius:2px;
  }
  .detail-img img{
    width:100%; height:100%;
    object-fit:cover;
    display:block;
  }
  .detail-copy .cat-num{
    font-family:'Barlow Condensed', sans-serif;
    font-size:14px; font-weight:600; color:var(--teal);
    margin-bottom:12px; display:block;
  }
  .detail-copy h2{font-size:32px; margin-bottom:16px;}
  .detail-copy p{color:var(--grey); font-size:16px; margin-bottom:14px;}

  @media (max-width: 980px){
    .page-header{padding:120px 0 48px;}
    .page-header h1{font-size:32px;}
    .service-detail{grid-template-columns:1fr; gap:24px; padding:40px 0;}
    .service-detail.reverse .detail-img{order:1;}
    .service-detail.reverse .detail-copy{order:2;}
  }

