  :root{
    --navy-900:#0c1e30;
    --navy-800:#123350;
    --navy-700:#163c5f;
    --blue-600:#2e6690;
    --blue-500:#3f7fae;
    --orange:#e8622c;
    --orange-dark:#c14e1f;
    --paper:#f2f5f5;
    --paper-alt:#e7edee;
    --white:#ffffff;
    --ink:#101c28;
    --body:#3c4a55;
    --line:#d7e0e2;
    --mono:'IBM Plex Mono', monospace;
    --disp:'Space Grotesk', sans-serif;
    --sans:'Inter', sans-serif;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:var(--sans);
    color:var(--body);
    background:var(--paper);
    line-height:1.6;
  }
  h1,h2,h3,h4{
    font-family:var(--disp);
    color:var(--navy-900);
    margin:0;
    letter-spacing:-0.01em;
  }
  a{color:inherit; text-decoration:none;}
  ul{margin:0; padding:0; list-style:none;}
  .mono{font-family:var(--mono);}
  .wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
  .eyebrow{
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--orange-dark);
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:14px;
  }
  .eyebrow::before{
    content:"";
    width:22px; height:1px;
    background:var(--orange);
    display:inline-block;
  }

  /* ---------- Ruler divider (signature element) ---------- */
  .ruler{
    height:34px;
    width:100%;
    background:
      repeating-linear-gradient(90deg,
        var(--line) 0 1px,
        transparent 1px 12px),
      repeating-linear-gradient(90deg,
        var(--navy-700) 0 1.5px,
        transparent 1.5px 60px);
    background-position:0 100%, 0 100%;
    background-size:100% 10px, 100% 20px;
    background-repeat:repeat-x;
    position:relative;
    opacity:0.55;
  }
  .ruler.dark{
    opacity:0.18;
  }
  .ruler-tag{
    position:absolute;
    right:28px;
    top:-9px;
    background:var(--paper);
    padding:0 10px;
    font-family:var(--mono);
    font-size:11px;
    color:var(--blue-600);
    letter-spacing:0.06em;
  }

  /* ---------- Nav ---------- */
  header{
    position:sticky; top:0; z-index:100;
    background:rgba(12,30,48,0.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid rgba(255,255,255,0.08);
  }
  nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 28px;
    max-width:1180px;
    margin:0 auto;
  }
  .logo{
    display:flex; align-items:center; gap:10px;
    font-family:var(--disp);
    font-weight:700;
    font-size:20px;
    color:#fff;
  }
  .logo img.logo-img{
    height:34px;
    width:auto;
    display:block;
    background:#fff;
    border-radius:6px;
    padding:3px 6px;
  }
  .logo small{
    display:block;
    font-family:var(--mono);
    font-weight:400;
    font-size:9.5px;
    letter-spacing:0.12em;
    color:#9db4c6;
    text-transform:uppercase;
  }
  .navlinks{
    display:flex; gap:30px; align-items:center;
  }
  .navlinks a{
    font-size:14px; color:#cfe0ea; font-weight:500;
    position:relative;
    padding:4px 0;
  }
  .navlinks a:hover{color:#fff;}
  .navlinks a[aria-current="page"]:not(.cta){color:#fff;}
  .navlinks a[aria-current="page"]:not(.cta)::after{
    content:"";
    position:absolute; left:0; right:0; bottom:-2px;
    height:2px; background:var(--orange);
  }
  .navlinks .cta{
    background:var(--orange);
    color:#fff;
    padding:9px 18px;
    border-radius:5px;
    font-weight:600;
  }
  .navlinks .cta:hover{background:var(--orange-dark);}
  .navtoggle{display:none;}

  /* ---------- Hero ---------- */
  .hero{
    background:
      radial-gradient(circle at 85% -10%, rgba(232,98,44,0.25), transparent 45%),
      linear-gradient(180deg, var(--navy-900), var(--navy-800) 70%, var(--navy-700));
    color:#fff;
    padding:88px 0 70px;
    position:relative;
    overflow:hidden;
  }
  .hero::after{
    content:"";
    position:absolute; inset:0;
    background-image:repeating-linear-gradient(90deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 46px);
    pointer-events:none;
  }
  .hero-grid{
    display:grid;
    grid-template-columns:1.15fr 0.85fr;
    gap:56px;
    align-items:center;
    position:relative;
  }
  .hero h1{
    font-size:clamp(36px, 5vw, 58px);
    color:#fff;
    line-height:1.05;
    font-weight:700;
  }
  .hero h1 em{
    font-style:normal;
    color:var(--orange);
  }
  .hero p.lead{
    margin-top:20px;
    font-size:17px;
    color:#c4d3dd;
    max-width:520px;
  }
  .hero-actions{
    margin-top:32px;
    display:flex; gap:14px; flex-wrap:wrap;
  }
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:13px 24px;
    border-radius:5px;
    font-weight:600;
    font-size:14.5px;
    cursor:pointer;
    border:1px solid transparent;
  }
  .btn-primary{background:var(--orange); color:#fff;}
  .btn-primary:hover{background:var(--orange-dark);}
  .btn-ghost{border-color:rgba(255,255,255,0.35); color:#fff;}
  .btn-ghost:hover{border-color:#fff; background:rgba(255,255,255,0.06);}

  .hero-stats{
    display:flex; gap:32px;
    margin-top:44px;
    padding-top:28px;
    border-top:1px solid rgba(255,255,255,0.14);
  }
  .stat b{
    display:block;
    font-family:var(--mono);
    font-size:24px;
    color:#fff;
  }
  .stat span{
    font-size:12.5px;
    color:#9db4c6;
  }

  /* Certificate card */
  .cert{
    background:#fbfaf7;
    color:var(--ink);
    border-radius:10px;
    padding:26px 26px 22px;
    box-shadow:0 30px 60px -20px rgba(0,0,0,0.45);
    position:relative;
    transform:rotate(1.2deg);
    border:1px solid #e4ded0;
  }
  .cert::before{
    content:"";
    position:absolute; inset:8px;
    border:1px dashed #c9c1ab;
    border-radius:6px;
    pointer-events:none;
  }
  .cert-top{
    display:flex; justify-content:space-between; align-items:flex-start;
    font-family:var(--mono);
    font-size:11px;
    color:#7a7261;
    text-transform:uppercase;
    letter-spacing:0.08em;
  }
  .cert h3{
    font-size:19px;
    margin-top:14px;
  }
  .cert-row{
    display:flex; justify-content:space-between;
    font-family:var(--mono);
    font-size:12.5px;
    padding:8px 0;
    border-bottom:1px dotted #ddd6c4;
    color:#4a4535;
  }
  .cert-row b{color:var(--ink); font-weight:600;}
  .cert-seal{
    position:absolute;
    right:22px; bottom:20px;
    width:74px; height:74px;
    border-radius:50%;
    border:2.5px solid var(--orange);
    display:flex; align-items:center; justify-content:center;
    text-align:center;
    font-family:var(--mono);
    font-size:9px;
    font-weight:600;
    color:var(--orange-dark);
    transform:rotate(-14deg);
    line-height:1.3;
    letter-spacing:0.02em;
  }

  /* ---------- Sections generic ---------- */
  section{padding:76px 0;}
  .section-head{
    max-width:640px;
    margin-bottom:44px;
  }
  .section-head h2{
    font-size:clamp(26px, 3.4vw, 36px);
  }
  .section-head p{
    margin-top:14px;
    font-size:15.5px;
    color:var(--body);
  }

  /* About */
  #about{background:var(--white);}
  .about-grid{
    display:grid;
    grid-template-columns:1.1fr 0.9fr;
    gap:56px;
    align-items:start;
  }
  .about-copy p{margin:0 0 16px; font-size:15px;}
  .about-side{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:10px;
    padding:26px;
  }
  .about-side h4{font-size:13px; text-transform:uppercase; letter-spacing:0.08em; color:var(--blue-600); margin-bottom:16px;}
  .fact{
    display:flex; justify-content:space-between;
    padding:11px 0;
    border-bottom:1px solid var(--line);
    font-size:13.5px;
  }
  .fact:last-child{border-bottom:none;}
  .fact b{font-family:var(--mono); color:var(--navy-900);}

  .accred-strip{
    margin-top:40px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
  }
  .accred-card{
    border:1px solid var(--line);
    background:var(--paper);
    border-radius:10px;
    padding:22px;
    display:flex;
    gap:14px;
    align-items:flex-start;
  }
  .accred-card .num{
    font-family:var(--mono);
    color:var(--orange);
    font-weight:600;
    font-size:14px;
  }
  .accred-card h4{font-size:15.5px; margin-bottom:6px;}
  .accred-card p{font-size:13.5px; margin:0; color:var(--body);}

  /* Services */
  #services{background:var(--paper-alt);}
  .tabs{
    display:flex; gap:10px; flex-wrap:wrap;
    margin-bottom:34px;
  }
  .tab-btn{
    font-family:var(--mono);
    font-size:12.5px;
    letter-spacing:0.03em;
    padding:11px 18px;
    border-radius:6px;
    border:1px solid var(--line);
    background:var(--white);
    color:var(--navy-800);
    cursor:pointer;
    transition:all .15s ease;
  }
  .tab-btn.active{
    background:var(--navy-900);
    border-color:var(--navy-900);
    color:#fff;
  }
  .panel{display:none;}
  .panel.active{display:block; animation:fade .25s ease;}
  @keyframes fade{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}

  .panel-intro{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:24px;
    margin-bottom:28px;
    flex-wrap:wrap;
  }
  .panel-intro p{max-width:600px; font-size:14.5px; margin:8px 0 0;}
  .panel-tag{
    font-family:var(--mono);
    font-size:11px;
    color:var(--white);
    background:var(--blue-600);
    padding:5px 11px;
    border-radius:20px;
  }

  .subgroup{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:10px;
    padding:22px 24px;
    margin-bottom:18px;
  }
  .subgroup h4{
    font-size:14px;
    color:var(--navy-800);
    display:flex; align-items:center; gap:10px;
    margin-bottom:14px;
    padding-bottom:12px;
    border-bottom:1px solid var(--line);
  }
  .subgroup h4::before{
    content:"";
    width:6px; height:6px;
    background:var(--orange);
    border-radius:50%;
    display:inline-block;
  }
  .chip-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(210px, 1fr));
    gap:9px 16px;
  }
  .chip{
    font-size:13.5px;
    color:var(--body);
    display:flex; align-items:baseline; gap:8px;
  }
  .chip::before{
    content:"—";
    color:var(--blue-500);
    font-family:var(--mono);
    flex-shrink:0;
  }
  .subgroups-2col{
    display:grid; grid-template-columns:1fr 1fr; gap:18px;
  }
  .note-flag{
    margin-top:8px;
    background:#fff4ec;
    border:1px solid #f2caa8;
    color:var(--orange-dark);
    font-size:13px;
    padding:14px 18px;
    border-radius:8px;
    font-family:var(--mono);
  }

  /* Quality */
  #quality{background:var(--white);}
  .quality-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:32px;
  }
  .qcard{
    background:var(--navy-900);
    color:#e7edee;
    border-radius:12px;
    padding:32px;
    position:relative;
    overflow:hidden;
  }
  .qcard.alt{background:var(--paper); color:var(--body); border:1px solid var(--line);}
  .qcard h3{color:#fff; font-size:19px; margin-bottom:16px;}
  .qcard.alt h3{color:var(--navy-900);}
  .qcard p{font-size:14px; color:#b9cbd6; margin:0 0 14px;}
  .qcard.alt p{color:var(--body);}
  .qcard li{
    font-size:13.8px;
    padding:9px 0;
    border-bottom:1px solid rgba(255,255,255,0.1);
    display:flex; gap:10px;
  }
  .qcard.alt li{border-bottom:1px solid var(--line);}
  .qcard li b{color:var(--orange); font-family:var(--mono); flex-shrink:0;}

  .kpi-grid{
    margin-top:16px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
  }
  .kpi{
    background:rgba(255,255,255,0.06);
    border-radius:8px;
    padding:14px;
  }
  .qcard.alt .kpi{background:var(--white); border:1px solid var(--line);}
  .kpi b{
    display:block; font-family:var(--mono); font-size:17px; color:var(--orange);
  }
  .kpi span{font-size:11px; color:#9db4c6;}
  .qcard.alt .kpi span{color:var(--blue-600);}

  /* Careers */
  #careers{background:var(--navy-900); color:#e7edee;}
  #careers h2{color:#fff;}
  #careers .section-head p{color:#b9cbd6;}
  .career-grid{
    display:grid;
    grid-template-columns:1.1fr 0.9fr;
    gap:48px;
  }
  .role{
    display:flex; align-items:center; gap:16px;
    padding:16px 0;
    border-bottom:1px solid rgba(255,255,255,0.12);
  }
  .role .n{
    font-family:var(--mono);
    color:var(--orange);
    font-size:13px;
    width:26px;
  }
  .role span{font-size:15px; color:#fff; font-weight:500;}
  .apply-card{
    background:rgba(255,255,255,0.05);
    border:1px solid rgba(255,255,255,0.15);
    border-radius:10px;
    padding:28px;
  }
  .apply-card h4{color:#fff; font-size:15px; margin-bottom:12px;}
  .apply-card p{font-size:13.5px; color:#b9cbd6; margin-bottom:18px;}
  .apply-card a.email{
    display:block;
    font-family:var(--mono);
    font-size:13.5px;
    color:var(--orange);
    padding:10px 0;
    border-top:1px solid rgba(255,255,255,0.12);
  }

  /* Contact */
  #contact{background:var(--paper);}
  .contact-grid{
    display:grid;
    grid-template-columns:0.85fr 1.15fr;
    gap:48px;
  }
  .contact-list li{
    display:flex; gap:14px;
    padding:16px 0;
    border-bottom:1px solid var(--line);
    font-size:14.5px;
  }
  .contact-list .ic{
    width:34px; height:34px; border-radius:8px;
    background:var(--white);
    border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
    font-size:14px;
    color:var(--orange);
  }
  .hours-row{
    display:flex; justify-content:space-between;
    font-family:var(--mono);
    font-size:13px;
    padding:8px 0;
  }
  .office-photo{
    margin-top:20px;
    max-width:220px;
  }
  .office-photo img{
    width:100%;
    height:150px;
    object-fit:cover;
    border-radius:10px;
    border:1px solid var(--line);
    box-shadow:0 12px 24px -12px rgba(12,30,48,0.35);
    display:block;
  }
  .office-photo span{
    display:block;
    margin-top:8px;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:0.04em;
    color:var(--blue-600);
  }
  form{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:12px;
    padding:32px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
  }
  form .full{grid-column:1/-1;}
  label{
    display:block; font-size:12px; color:var(--navy-800); margin-bottom:6px; font-weight:600;
  }
  input, select, textarea{
    width:100%;
    border:1px solid var(--line);
    border-radius:6px;
    padding:11px 13px;
    font-family:var(--sans);
    font-size:14px;
    background:var(--paper);
    color:var(--ink);
  }
  textarea{resize:vertical; min-height:90px;}
  input:focus, select:focus, textarea:focus{outline:2px solid var(--blue-500); outline-offset:1px;}
  .submit-btn{
    grid-column:1/-1;
    background:var(--orange);
    color:#fff;
    border:none;
    padding:14px;
    border-radius:6px;
    font-weight:600;
    font-size:14.5px;
    cursor:pointer;
    font-family:var(--sans);
  }
  .submit-btn:hover{background:var(--orange-dark);}
  .form-note{grid-column:1/-1; font-size:12px; color:var(--blue-600); margin-top:-6px;}

  /* Footer */
  footer{
    background:var(--navy-900);
    color:#9db4c6;
    padding:56px 0 24px;
  }
  .foot-grid{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr 1fr;
    gap:36px;
    padding-bottom:32px;
    border-bottom:1px solid rgba(255,255,255,0.1);
  }
  .foot-grid h5{
    color:#fff; font-size:13px; text-transform:uppercase; letter-spacing:0.06em; margin-bottom:16px; font-family:var(--sans); font-weight:600;
  }
  .foot-grid li{padding:6px 0; font-size:13.5px;}
  .foot-grid li a:hover{color:#fff;}
  .foot-bottom{
    display:flex; justify-content:space-between; align-items:center;
    padding-top:22px;
    font-size:12.5px;
    flex-wrap:wrap;
    gap:10px;
  }

  @media (max-width:880px){
    .hero-grid, .about-grid, .quality-grid, .career-grid, .contact-grid{grid-template-columns:1fr;}
    .accred-strip{grid-template-columns:1fr;}
    .subgroups-2col{grid-template-columns:1fr;}
    .foot-grid{grid-template-columns:1fr 1fr;}
    form{grid-template-columns:1fr;}
    .navlinks{
      position:fixed; top:68px; left:0; right:0;
      height:calc(100vh - 68px);
      background:var(--navy-900);
      z-index:99;
      flex-direction:column;
      padding:28px;
      align-items:flex-start;
      transform:translateX(100%);
      transition:transform .25s ease;
    }
    .navlinks.open{transform:translateX(0);}
    .navtoggle{
      display:block; background:none; border:none; color:#fff; font-size:22px; cursor:pointer;
    }
  }
