:root{
    --navy:#0f2138;
    --navy-soft:#17304f;
    --navy-line:#2a4467;
    --muted-on-navy:#aebbcb;
    --bg:#ffffff;
    --bg-alt:#f5f4f1;
    --line:#e4e1da;
    --text:#171d26;
    --muted:#5c6672;
    --gold:#b8923f;
    --gold-strong:#93712e;
    --gold-soft:rgba(184,146,63,0.13);
    --radius:6px;
    --wrap:1220px;
    --font-display:'Poppins', 'Segoe UI', sans-serif;
    --font-body:'Work Sans', 'Segoe UI', sans-serif;
  }

  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *,*::before,*::after{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }

  body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;}
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  ul{margin:0;padding:0;list-style:none;}
  h1,h2,h3,h4{margin:0;font-family:var(--font-display);text-wrap:balance;}
  p{margin:0;}
  button{font:inherit;cursor:pointer;}
  svg{display:block;}

  .wrap{max-width:var(--wrap);margin:0 auto;padding-inline:24px;}
  .eyebrow{
    font-size:0.8rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;
    display:inline-flex;align-items:center;gap:10px;color:var(--gold-strong);
  }
  .eyebrow::before{content:"";width:22px;height:2px;background:var(--gold);display:inline-block;}
  .eyebrow.on-navy{color:var(--gold);}

  .section{padding-block:96px;}
  .section-head{max-width:680px;margin-bottom:48px;}
  .section-head.center{margin-inline:auto;text-align:center;}
  .section-head.center .eyebrow{justify-content:center;}
  .section-title{font-size:clamp(1.9rem, 3.2vw, 2.7rem);font-weight:700;letter-spacing:-0.01em;margin-top:14px;color:var(--text);}
  .section-title.on-navy{color:#fff;}
  .section-sub{margin-top:14px;color:var(--muted);font-size:1.02rem;max-width:58ch;}
  .section-sub.center{margin-inline:auto;}
  .section-sub.on-navy{color:var(--muted-on-navy);}

  .btn{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;border-radius:3px;font-weight:600;font-size:0.9rem;border:1px solid transparent;transition:transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;}
  .btn-gold{background:var(--gold);color:#1a1204;}
  .btn-gold:hover{background:var(--gold-strong);transform:translateY(-2px);box-shadow:0 12px 26px -12px rgba(184,146,63,0.55);}
  .btn-ghost-light{border-color:rgba(255,255,255,0.45);color:#fff;}
  .btn-ghost-light:hover{border-color:#fff;transform:translateY(-2px);}
  .btn-ghost-navy{border-color:var(--navy);color:var(--navy);}
  .btn-ghost-navy:hover{background:var(--navy);color:#fff;}

  /* ---------- intro overlay ---------- */
  .intro-overlay{position:fixed;inset:0;z-index:999;background:var(--navy);display:flex;align-items:center;justify-content:center;animation:introHide .6s ease forwards;animation-delay:1.3s;}
  .intro-overlay .mark{width:150px;height:auto;opacity:0;animation:markIn .7s ease forwards .1s;}
  @keyframes markIn{from{opacity:0;transform:scale(0.85);}to{opacity:1;transform:scale(1);}}
  @keyframes introHide{to{opacity:0;visibility:hidden;pointer-events:none;}}
  @media (prefers-reduced-motion: reduce){ .intro-overlay{animation-delay:0.05s;} }

  /* ---------- header ---------- */
  header.site{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line);}
  header.site .wrap{display:flex;align-items:center;gap:26px;padding-block:14px;}
  .logo{display:flex;align-items:center;gap:10px;flex:none;}
  .logo img{height:52px;width:auto;display:block;}
  nav.main{display:flex;gap:28px;margin-left:auto;align-items:center;}
  nav.main a{font-size:0.88rem;font-weight:500;color:var(--text);transition:color .15s ease;}
  nav.main a:hover{color:var(--gold-strong);}
  .lang-toggle{display:flex;align-items:center;gap:6px;font-size:0.78rem;font-weight:700;color:var(--muted);border:1px solid var(--line);border-radius:20px;padding:5px 12px;}
  .lang-toggle b{color:var(--navy);}
  .nav-cta{margin-left:4px;}
  .nav-toggle{display:none;margin-left:auto;background:none;border:1px solid var(--line);border-radius:4px;width:38px;height:34px;color:var(--navy);align-items:center;justify-content:center;}

  @media (max-width:960px){
    nav.main{position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;padding:18px 24px 26px;gap:16px;display:none;box-shadow:0 16px 26px -20px rgba(15,33,56,0.3);}
    nav.main.open{display:flex;}
    .nav-cta{margin-left:0;}
    .nav-toggle{display:inline-flex;}
    header.site .wrap{position:relative;}
  }

  /* ---------- hero carousel ---------- */
  .hero{position:relative;background:var(--navy);color:#fff;overflow:hidden;}
  .hero-slides{position:relative;min-height:560px;}
  .hero-slide{
    position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:40px;
    padding-block:64px;opacity:0;visibility:hidden;transition:opacity .8s ease;
  }
  .hero-slide.active{opacity:1;visibility:visible;position:relative;}
  .hero-slide .wrap{display:contents;}
  .hero-copy{padding-inline:24px;}
  .hero-copy .num{font-family:var(--font-display);font-weight:700;color:var(--gold);font-size:0.95rem;letter-spacing:0.08em;}
  .hero-copy h1{font-size:clamp(2.2rem, 4.4vw, 3.6rem);font-weight:700;line-height:1.06;margin-top:14px;}
  .hero-copy .tagline{margin-top:16px;font-size:1.15rem;color:var(--muted-on-navy);max-width:40ch;}
  .hero-copy .meta{display:flex;gap:22px;margin-top:22px;font-size:0.86rem;color:var(--muted-on-navy);flex-wrap:wrap;}
  .hero-copy .meta b{color:#fff;}
  .hero-copy .actions{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap;}

  .hero-visual{position:relative;padding-right:24px;}
  .hero-visual svg{width:100%;height:auto;max-height:420px;}

  .hero-dots{position:absolute;bottom:24px;left:0;right:0;display:flex;justify-content:center;gap:10px;z-index:5;}
  .hero-dots button{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--gold);background:transparent;padding:0;cursor:pointer;transition:background .2s ease;}
  .hero-dots button.active{background:var(--gold);}

  @media (max-width:900px){
    .hero-slide{grid-template-columns:1fr;padding-block:44px 90px;}
    .hero-visual{order:-1;padding-right:0;}
    .hero-visual svg{max-height:220px;}
  }

  /* ---------- intro line ---------- */
  .intro-band{padding-block:88px;background:var(--bg-alt);}
  .intro-band .wrap{display:grid;grid-template-columns:0.9fr 1.1fr;gap:56px;align-items:center;}
  .intro-band p{color:var(--muted);font-size:1.05rem;}
  .intro-band p + p{margin-top:14px;}
  .intro-band .big{font-family:var(--font-display);font-size:clamp(1.6rem,2.6vw,2.1rem);font-weight:600;color:var(--navy);line-height:1.35;}
  @media (max-width:900px){ .intro-band .wrap{grid-template-columns:1fr;} }

  /* ---------- stats ---------- */
  .stat-strip{background:var(--navy);}
  .stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--navy-line);}
  .stat-cell{background:var(--navy);padding:40px 26px;text-align:center;}
  .stat-cell .n{font-family:var(--font-display);font-size:2.5rem;font-weight:700;font-variant-numeric:tabular-nums;color:#fff;}
  .stat-cell .n span{color:var(--gold);}
  .stat-cell .l{margin-top:6px;font-size:0.86rem;color:var(--muted-on-navy);}
  @media (max-width:760px){ .stat-grid{grid-template-columns:repeat(2,1fr);} }

  /* ---------- services ---------- */
  .card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
  .svc-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px 24px;display:flex;flex-direction:column;gap:14px;transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;}
  .svc-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px -24px rgba(15,33,56,0.25);border-color:var(--gold);}
  .svc-card .ic{width:44px;height:44px;border-radius:4px;background:var(--gold-soft);color:var(--gold-strong);display:flex;align-items:center;justify-content:center;}
  .svc-card h3{font-family:var(--font-body);font-size:1.04rem;font-weight:600;}
  .svc-card p{color:var(--muted);font-size:0.9rem;}
  @media (max-width:960px){ .card-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .card-grid{grid-template-columns:1fr;} }

  /* ---------- projects ---------- */
  .projects{background:var(--bg-alt);}
  .proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .proj-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .22s ease, box-shadow .22s ease;}
  .proj-card:hover{transform:translateY(-6px);box-shadow:0 24px 44px -28px rgba(15,33,56,0.28);}
  .proj-art{aspect-ratio:480/359;position:relative;overflow:hidden;background:linear-gradient(150deg, #dfe6ee, #c9d3df);}
  .proj-art .bldg{position:absolute;bottom:0;left:0;right:0;height:66%;display:flex;align-items:flex-end;gap:4px;padding:0 14px;}
  .proj-art .bldg i{flex:1;background:linear-gradient(180deg, rgba(15,33,56,0.55), rgba(15,33,56,0.18));border-top:2px solid var(--gold);position:relative;transition:transform .3s ease;}
  .proj-card:hover .proj-art .bldg i{transform:translateY(-4px);}
  .proj-art .bldg i::before{content:"";position:absolute;inset:6px 4px;background-image:linear-gradient(rgba(255,255,255,0.35) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,0.35) 1px, transparent 1px);background-size:7px 9px;}
  .proj-badge{position:absolute;top:14px;left:14px;background:rgba(15,33,56,0.85);color:#fff;font-size:0.72rem;font-weight:600;padding:5px 12px;border-radius:3px;}
  .proj-body{padding:22px;display:flex;flex-direction:column;gap:10px;flex:1;}
  .proj-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
  .proj-body h3{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--navy);}
  .status-pill{flex:none;font-size:0.68rem;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;padding:4px 10px;border-radius:16px;}
  .status-done{background:var(--gold-soft);color:var(--gold-strong);}
  .status-progress{background:rgba(15,33,56,0.08);color:var(--navy);}
  .proj-body p.tagline{color:var(--muted);font-size:0.9rem;}
  .proj-meta{display:flex;gap:16px;font-size:0.82rem;color:var(--muted);flex-wrap:wrap;margin-top:auto;padding-top:10px;border-top:1px solid var(--line);}
  .proj-meta b{color:var(--text);font-weight:600;}
  .proj-link{margin-top:6px;font-size:0.86rem;font-weight:600;color:var(--gold-strong);display:inline-flex;align-items:center;gap:6px;}

  @media (max-width:960px){ .proj-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:640px){ .proj-grid{grid-template-columns:1fr;} }

  .view-all{text-align:center;margin-top:40px;}

  /* ---------- contact ---------- */
  .contact{background:var(--bg-alt);}
  .contact .wrap{display:grid;grid-template-columns:0.85fr 1.15fr;gap:60px;}
  .contact-info{display:flex;flex-direction:column;gap:18px;}
  .info-row{display:flex;gap:14px;align-items:flex-start;}
  .info-row .ic{flex:none;width:38px;height:38px;border-radius:4px;background:var(--gold-soft);color:var(--gold-strong);display:flex;align-items:center;justify-content:center;}
  .info-row h4{font-size:0.74rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--muted);font-weight:700;}
  .info-row p{font-size:1.02rem;font-weight:600;margin-top:3px;color:var(--navy);}
  form.contact-form{display:flex;flex-direction:column;gap:14px;}
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .field{display:flex;flex-direction:column;gap:6px;}
  .field label{font-size:0.72rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--muted);font-weight:600;}
  .field input,.field textarea{font:inherit;border:1px solid var(--line);border-radius:4px;padding:12px 14px;background:#fff;color:var(--text);}
  .field input:focus,.field textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold);}
  .field textarea{resize:vertical;min-height:110px;}
  @media (max-width:900px){ .contact .wrap{grid-template-columns:1fr;} .form-row{grid-template-columns:1fr;} }

  /* ---------- footer ---------- */
  footer.site{background:var(--navy);color:var(--muted-on-navy);}
  footer.site .top{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;padding-block:52px 32px;border-bottom:1px solid var(--navy-line);}
  .foot-brand .logo img{height:60px;}
  .foot-brand p{margin-top:14px;max-width:34ch;font-size:0.9rem;}
  .foot-social{display:flex;gap:10px;margin-top:18px;}
  .foot-social a{width:34px;height:34px;border:1px solid var(--navy-line);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--muted-on-navy);transition:border-color .15s ease, color .15s ease;}
  .foot-social a:hover{border-color:var(--gold);color:var(--gold);}
  footer h5{font-size:0.78rem;text-transform:uppercase;letter-spacing:0.08em;color:#fff;margin-bottom:16px;font-weight:700;}
  footer.site ul{display:flex;flex-direction:column;gap:10px;}
  footer.site ul a{font-size:0.9rem;transition:color .15s ease;}
  footer.site ul a:hover{color:#fff;}
  .foot-bottom{font-size:0.82rem;}
  .foot-bottom .wrap{padding-block:18px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}
  .foot-bottom .credit a{color:var(--gold);}

  .js .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease;}
  .js .reveal.in{opacity:1;transform:none;}
  .reveal{opacity:1;transform:none;}

  /* ---------- dynamic content extras ---------- */
  .proj-art img{width:100%;height:100%;object-fit:cover;display:block;}
  .hero-visual img{width:100%;height:auto;max-height:420px;object-fit:cover;border-radius:6px;}
  .hp-field{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden;}
  .form-alert{padding:12px 16px;border-radius:5px;font-size:0.9rem;margin-bottom:16px;}
  .form-alert.ok{background:var(--gold-soft);color:var(--gold-strong);}
  .form-alert.err{background:rgba(179,58,58,0.1);color:#b33a3a;}
