/* Invision Group -- shared base styles */
  :root{
    --navy-950:#081327;
    --navy-900:#0d2044;
    --navy-800:#153a63;
    --gold-500:#c9a15a;
    --gold-300:#e6cd93;
    --gold-700:#9c7a37;
    --cream-100:#f6f1e4;
    --cream-050:#faf7ef;
    --ink-900:#161a20;
    --ink-600:#4a5160;
    --white:#ffffff;
    --chamfer:22px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  html, body{max-width:100%; overflow-x:hidden;}
  body{
    font-family:'Work Sans', sans-serif;
    color:var(--ink-900);
    background:var(--cream-050);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}
  .eyebrow{
    font-family:'Oswald', sans-serif;
    font-weight:600;
    letter-spacing:0.22em;
    text-transform:uppercase;
    font-size:0.78rem;
    color:var(--gold-500);
  }
  h1,h2,h3{
    font-family:'Oswald', sans-serif;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:0.01em;
    line-height:1.12;
    color:var(--navy-900);
  }
  .tagline{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-weight:500;
  }
  .wrap{
    max-width:1180px;
    margin:0 auto;
    padding:0 32px;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-family:'Oswald', sans-serif;
    font-weight:600;
    letter-spacing:0.08em;
    text-transform:uppercase;
    font-size:0.82rem;
    padding:15px 30px;
    border-radius:2px;
    transition:transform 0.2s ease, background 0.2s ease, color 0.2s ease;
  }
  .btn-gold{
    background:var(--gold-500);
    color:var(--navy-950);
  }
  .btn-gold:hover{background:var(--gold-300); transform:translateY(-2px);}
  .btn-outline{
    border:1.5px solid rgba(246,241,228,0.55);
    color:var(--cream-100);
  }
  .btn-outline:hover{border-color:var(--gold-500); color:var(--gold-300); transform:translateY(-2px);}

  /* ---------- NAV ---------- */
  .site-nav{
    position:fixed; top:0; left:0; right:0; z-index:100;
    background:rgba(8,19,39,0.86);
    backdrop-filter:blur(8px);
    border-bottom:1px solid rgba(201,161,90,0.18);
  }
  .site-nav .wrap{
    display:flex; align-items:center; justify-content:space-between;
    height:82px;
  }
  .brand{display:flex; align-items:center; gap:12px;}
  .brand-mark{height:54px; width:54px; flex-shrink:0;}
  .brand-word{display:flex; flex-direction:column; line-height:1.05;}
  .brand-word .g1{
    font-family:'Oswald', sans-serif; font-weight:600; font-size:1.02rem;
    letter-spacing:0.045em; color:var(--cream-100);
  }
  .brand-word .g2{
    font-family:'Work Sans', sans-serif; font-weight:500; font-size:0.56rem;
    letter-spacing:0.09em; color:var(--gold-500); text-transform:uppercase; margin-top:3px;
  }
  .nav-links{display:flex; gap:34px; align-items:center;}
  .nav-links a{
    font-family:'Oswald', sans-serif; font-size:0.8rem; font-weight:500;
    letter-spacing:0.06em; text-transform:uppercase; color:rgba(246,241,228,0.82);
    position:relative; padding:6px 0;
  }
  .nav-links a:hover{color:var(--gold-300);}
  .nav-links a.active{color:var(--gold-500);}
  .nav-links a.active::after{
    content:''; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--gold-500);
  }
  .nav-toggle{display:none;}
  .lang-toggle{
    border:1px solid rgba(201,161,90,0.5) !important; padding:6px 14px !important;
    border-radius:2px; font-size:0.76rem !important;
  }
  .lang-toggle:hover{border-color:var(--gold-300); background:rgba(201,161,90,0.08);}

  .brand-showcase{
    padding:60px 0;
    background:var(--cream-100);
    border-top:1px solid rgba(201,161,90,0.25);
    border-bottom:1px solid rgba(201,161,90,0.25);
  }
  .brand-mark-large{display:flex; align-items:center; justify-content:center; gap:44px;}
  .brand-mark-large img{width:130px; height:130px; flex-shrink:0;}
  .bml-text{max-width:520px;}
  .bml-text h2{
    font-size:clamp(1.6rem,2.6vw,2.3rem); letter-spacing:0.04em; margin:10px 0 12px;
    color:var(--navy-900); font-family:'Oswald',sans-serif; font-weight:600;
  }
  .bml-text p{color:var(--ink-600); font-size:1rem; margin:0;}
  @media (max-width:920px){
    .brand-mark-large{flex-direction:column; text-align:center; gap:22px;}
    .brand-mark-large img{width:100px; height:100px;}
  }

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    min-height:100vh;
    display:flex;
    align-items:flex-end;
    background-color:var(--navy-950);
    clip-path:polygon(0 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - 90px) 100%, 0 100%);
    padding-bottom:96px;
  }
  .hero-inner{max-width:760px; padding-top:180px;}
  .hero .eyebrow{color:var(--gold-300); margin-bottom:22px; display:block;}
  .hero h1{
    color:var(--cream-050);
    font-size:clamp(2.6rem, 5.4vw, 4.6rem);
    margin-bottom:20px;
  }
  .hero .tagline{
    display:block;
    color:var(--gold-300);
    font-size:clamp(1.15rem, 2vw, 1.5rem);
    margin-bottom:26px;
  }
  .hero p.lead{
    color:rgba(246,241,228,0.86);
    font-size:1.05rem;
    max-width:560px;
    margin-bottom:38px;
  }
  .hero-ctas{display:flex; gap:18px; flex-wrap:wrap;}

  /* ---------- STATS ---------- */
  .stats{
    background:var(--navy-950);
    padding:56px 0;
    margin-top:calc(var(--chamfer) * -1);
  }
  .stats-grid{
    display:grid;
    grid-template-columns:repeat(6, 1fr);
    gap:0;
  }
  .stat{
    text-align:center;
    padding:0 14px;
    border-left:1px solid rgba(201,161,90,0.22);
  }
  .stat:first-child{border-left:none;}
  .stat .num{
    font-family:'Oswald', sans-serif; font-weight:700; font-size:2.1rem;
    color:var(--gold-500); display:block; letter-spacing:0.01em;
  }
  .stat .label{
    font-size:0.72rem; letter-spacing:0.05em; text-transform:uppercase;
    color:rgba(246,241,228,0.72); margin-top:6px; display:block;
  }

  /* ---------- SECTION HEADERS ---------- */
  .section{padding:110px 0;}
  .section-head{max-width:640px; margin-bottom:60px;}
  .section-head .eyebrow{display:block; margin-bottom:14px;}
  .section-head h2{font-size:clamp(1.8rem, 3vw, 2.5rem);}
  .section-head p{color:var(--ink-600); margin-top:16px; font-size:1.02rem;}
  .section-light{background:var(--cream-050);}
  .section-dark{background:var(--navy-900); color:var(--cream-100);}
  .section-dark h2{color:var(--cream-050);}
  .section-dark .section-head p{color:rgba(246,241,228,0.72);}

  /* ---------- SERVICES ---------- */
  .services-grid{
    display:grid;
    grid-template-columns:repeat(5, 1fr);
    gap:2px;
    background:rgba(21,58,99,0.12);
  }
  .service-card{
    background:var(--cream-050);
    padding:36px 24px 30px;
    position:relative;
    transition:background 0.25s ease;
  }
  .service-card:hover{background:var(--white);}
  .service-num{
    font-family:'Oswald', sans-serif; font-weight:600; font-size:0.75rem;
    color:var(--gold-700); letter-spacing:0.08em; display:block; margin-bottom:22px;
  }
  .service-tri{
    width:0; height:0;
    border-left:11px solid transparent;
    border-right:11px solid transparent;
    border-bottom:19px solid var(--gold-500);
    margin-bottom:18px;
  }
  .service-card h3{
    font-size:0.98rem; color:var(--navy-900); margin-bottom:10px; letter-spacing:0.01em;
  }
  .service-card p{font-size:0.86rem; color:var(--ink-600); line-height:1.55;}

  /* ---------- PROJECTS ---------- */
  .projects-grid{
    display:grid;
    grid-template-columns:1.15fr 1fr 1fr;
    gap:26px;
  }
  .project-card{
    position:relative;
    background:var(--navy-900);
    overflow:hidden;
    clip-path:polygon(0 0, 100% 0, 100% 100%, 26px 100%, 0 calc(100% - 26px));
  }
  .project-card .pc-img{
    width:100%; height:340px; object-fit:cover;
    filter:saturate(0.94) contrast(1.02);
  }
  .project-card.tall .pc-img{height:460px;}
  .pc-body{padding:22px 24px 26px;}
  .pc-value{
    font-family:'Oswald', sans-serif; font-size:0.7rem; letter-spacing:0.08em;
    color:var(--gold-500); text-transform:uppercase; display:block; margin-bottom:8px;
  }
  .project-card h3{
    color:var(--cream-050); font-size:1.05rem; margin-bottom:8px; letter-spacing:0.01em;
  }
  .project-card p{color:rgba(246,241,228,0.68); font-size:0.85rem;}
  .projects-more{
    text-align:center; margin-top:52px;
  }

  /* ---------- WHY CHOOSE ---------- */
  .why-grid{
    display:grid;
    grid-template-columns:0.85fr 1.15fr;
    gap:70px;
    align-items:center;
  }
  .why-img-wrap{
    position:relative;
    clip-path:polygon(0 0, 100% 0, 100% calc(100% - 34px), calc(100% - 34px) 100%, 0 100%);
  }
  .why-img-wrap img{height:560px; width:100%; object-fit:cover;}
  .why-copy .eyebrow{display:block; margin-bottom:14px;}
  .why-copy h2{font-size:clamp(1.8rem, 3vw, 2.4rem); margin-bottom:22px; color:var(--cream-050);}
  .why-copy > p{color:rgba(246,241,228,0.78); font-size:1rem; margin-bottom:38px; max-width:520px;}
  .why-feature{
    border-left:2px solid var(--gold-500);
    padding-left:20px;
    margin-bottom:28px;
  }
  .why-feature h4{
    font-family:'Oswald', sans-serif; font-weight:600; text-transform:uppercase;
    font-size:0.92rem; letter-spacing:0.03em; color:var(--gold-300); margin-bottom:8px;
  }
  .why-feature p{color:rgba(246,241,228,0.7); font-size:0.9rem;}

  /* ---------- FOOTER ---------- */
  footer{background:var(--navy-950); padding-top:80px;}
  .footer-top{
    display:grid; grid-template-columns:1.3fr 1fr 1fr;
    gap:60px; padding-bottom:60px;
    border-bottom:1px solid rgba(201,161,90,0.16);
  }
  .footer-brand .brand{margin-bottom:18px;}
  .footer-brand p{color:rgba(246,241,228,0.6); font-size:0.88rem; max-width:320px;}
  .footer-col h5{
    font-family:'Oswald', sans-serif; font-size:0.78rem; letter-spacing:0.1em;
    text-transform:uppercase; color:var(--gold-500); margin-bottom:20px;
  }
  .footer-col a, .footer-col p{
    display:block; color:rgba(246,241,228,0.68); font-size:0.9rem; margin-bottom:12px;
  }
  .footer-col a:hover{color:var(--gold-300);}
  .footer-bottom{
    display:flex; justify-content:space-between; align-items:center;
    padding:26px 0; flex-wrap:wrap; gap:12px;
  }
  .footer-bottom p{color:rgba(246,241,228,0.55); font-size:0.78rem;}

  /* ---------- MOBILE ---------- */
  @media (max-width:920px){
    .nav-links{
      position:fixed; top:82px; left:0; right:0; height:calc(100vh - 82px); height:calc(100dvh - 82px);
      background:var(--navy-950); flex-direction:column; justify-content:flex-start;
      padding:40px 32px; gap:26px; transform:translateX(100%);
      transition:transform 0.3s ease; overflow-y:auto; z-index:105;
    }
    .nav-links.open{transform:translateX(0);}
    .nav-toggle{
      display:block; background:none; border:none; color:var(--cream-100);
      font-size:1.6rem; line-height:1; cursor:pointer; z-index:110;
      padding:10px; margin:-10px -10px -10px 0;
    }
    .stats-grid{grid-template-columns:repeat(2, 1fr); row-gap:28px;}
    .stat{border-left:none !important; border-top:1px solid rgba(201,161,90,0.22); padding-top:20px;}
    .stat:nth-child(-n+2){border-top:none;}
    .services-grid{grid-template-columns:repeat(2, 1fr);}
    .projects-grid{grid-template-columns:1fr;}
    .project-card.tall .pc-img{height:340px;}
    .why-grid{grid-template-columns:1fr; gap:40px;}
    .why-grid > *{min-width:0;}
    .why-copy{padding:40px 30px !important;}
    .why-img-wrap img{height:360px;}
    .footer-top{grid-template-columns:1fr; gap:36px;}
    .section{padding:72px 0;}
    .hero-inner{padding-top:150px;}
    .wrap{padding:0 22px;}
    .hero{
      clip-path:polygon(0 0, 100% 0, 100% calc(100% - 14px), calc(100% - 28px) 100%, 0 100%);
      padding-bottom:64px;
    }
    .hero h1{font-size:clamp(2.1rem, 8vw, 2.8rem);}
  }
  @media (max-width:420px){
    .brand-word .g2{display:none;}
    .brand{gap:10px;}
    .services-grid{grid-template-columns:1fr;}
    .stats-grid{grid-template-columns:1fr;}
    .stat{border-top:1px solid rgba(201,161,90,0.22) !important; padding-top:20px;}
    .stat:first-child{border-top:none !important;}
    .wrap{padding:0 18px;}
    .why-copy{padding:32px 22px !important;}
  }
  @media (prefers-reduced-motion: reduce){
    *{transition:none !important; scroll-behavior:auto !important;}
  }

  /* ---------- FOCUS VISIBILITY (WCAG 2.4.7) ---------- */
  a:focus-visible, button:focus-visible, [role="button"]:focus-visible,
  input:focus-visible, textarea:focus-visible, select:focus-visible{
    outline:3px solid var(--gold-500);
    outline-offset:3px;
    border-radius:2px;
  }
  .site-nav a:focus-visible, .site-nav button:focus-visible{
    outline:3px solid var(--gold-300); outline-offset:2px;
  }
  /* ---------- SKIP LINK (WCAG 2.4.1) ---------- */
  .skip-link{
    position:absolute; left:50%; transform:translateX(-50%) translateY(-200%);
    top:8px; z-index:200; background:var(--gold-500); color:var(--navy-950);
    font-family:'Oswald',sans-serif; font-size:0.82rem; letter-spacing:0.06em;
    text-transform:uppercase; padding:12px 22px; transition:transform 0.2s ease;
  }
  .skip-link:focus{ transform:translateX(-50%) translateY(0); }

  .js .reveal{opacity:0; transform:translateY(18px); transition:opacity 0.6s ease, transform 0.6s ease;}
  .js .reveal.in{opacity:1; transform:translateY(0);}
  /* ---------- PRINT (tender packs / procurement review) ---------- */
  @media print{
    *{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
    body{ background:#fff !important; color:#111 !important; font-size:11pt; }
    .site-nav, .nav-toggle, .nav-links, .skip-link,
    footer, .lightbox, .stage-toggle, .lang-toggle,
    .btn, .cta-band, form, .form-note{ display:none !important; }
    .hero, .section-dark, .stats, .warranty-box, .perf-item,
    .footer-top, .doc-card{
      background:#fff !important; color:#111 !important; border:1px solid #999 !important;
    }
    .hero{ background-image:none !important; min-height:auto !important; padding:0 0 18pt !important; }
    h1,h2,h3,h4,h5,.stat-num,.perf-item .n,.eyebrow,.stage-index,.proof-label{ color:#111 !important; }
    p,li,td,th,.proof-note,.expand-chip{ color:#222 !important; }
    img{ max-width:100% !important; page-break-inside:avoid; }
    .stage, .doc-card, .perf-item, .service-card, .project-card, table{ page-break-inside:avoid; }
    h2,h3{ page-break-after:avoid; }
    /* expose link targets on paper */
    main a[href^="http"]::after{ content:" (" attr(href) ")"; font-size:9pt; color:#555; }
    /* capability panels are collapsed by default — print them open */
    .stage-expand{ grid-template-rows:1fr !important; }
    .js .reveal{ opacity:1 !important; transform:none !important; }
    .wrap{ max-width:100% !important; padding:0 !important; }
  }
