:root{
  --ink:#0c1210;
  --ink-soft:#3d4a45;
  --paper:#f5f6f4;
  --paper-dim:#e8eae6;
  --panel:#101915;
  --panel-soft:#16211b;
  --green:#004220;
  --orange:#f1580c;
  --orange-dim:#c94608;
  --orange-text:#c04305;
  --muted:#a7b1ac;
  --muted-light:#c7d0cb;
  --muted-lighter:#dfe4e1;
  --line:rgba(255,255,255,0.10);
  --line-dark:rgba(12,18,16,0.10);
  --shadow:0 20px 50px -20px rgba(12,18,16,0.35);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',system-ui,sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  overflow-x:hidden;
}
h1,h2,h3,.eyebrow,.stat-num{font-family:'Oswald',sans-serif; text-transform:uppercase;}
img{max-width:100%; display:block;}
a{color:inherit;}
.wrap{max-width:1180px; margin:0 auto; padding:0 24px;}
section{position:relative;}

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap; border:0;
}
.skip-link{
  position:absolute; left:1rem; top:-3.5rem; z-index:200;
  background:var(--orange); color:var(--ink);
  padding:0.8rem 1.3rem; border-radius:2px;
  font-weight:600; text-decoration:none;
  transition:top .2s ease;
}
.skip-link:focus{top:1rem;}

.eyebrow{
  display:inline-block;
  font-size:0.76rem;
  letter-spacing:0.2em;
  font-weight:600;
  color:var(--orange-text);
  margin-bottom:0.9rem;
}
.hero .eyebrow, .process .eyebrow, .gallery .eyebrow, .contact .eyebrow{color:var(--orange);}
.section-head{max-width:640px; margin-bottom:3rem;}
.section-head h2{font-size:clamp(1.9rem,3.4vw,2.6rem); line-height:1.12; font-weight:600;}
.section-head p{color:var(--ink-soft); margin-top:1rem; font-size:1.05rem;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}

/* reveal */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease;}
.reveal.is-visible{opacity:1; transform:translateY(0);}
.reveal-delay-1{transition-delay:.08s;}
.reveal-delay-2{transition-delay:.16s;}
.reveal-delay-3{transition-delay:.24s;}
.reveal-delay-4{transition-delay:.32s;}

/* buttons */
.btn{
  display:inline-flex; align-items:center; gap:0.6rem;
  padding:0.95rem 1.7rem;
  font-size:0.95rem; font-weight:600;
  border-radius:2px;
  text-decoration:none;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}
.btn-primary{background:var(--orange); color:var(--ink);}
.btn-primary:hover{background:var(--orange-dim); color:#fff; transform:translateY(-2px); box-shadow:var(--shadow);}
.btn-ghost{border-color:rgba(255,255,255,0.35); color:#fff;}
.btn-ghost:hover{border-color:#fff; background:rgba(255,255,255,0.08);}
.btn-dark{border-color:var(--ink); color:var(--ink);}
.btn-dark:hover{background:var(--ink); color:#fff;}

/* HEADER */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(12,18,16,0.0);
  border-bottom:1px solid transparent;
  transition:background .3s ease, border-color .3s ease, backdrop-filter .3s ease;
}
header.scrolled{
  background:rgba(12,18,16,0.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
nav.wrap{display:flex; align-items:center; justify-content:space-between; height:104px;}
.brand{display:flex; align-items:center; gap:0.7rem; text-decoration:none;}
.brand img{height:60px; width:auto;}
.navlinks{display:flex; align-items:center; gap:2.1rem; list-style:none;}
.navlinks a{color:var(--muted-lighter); text-decoration:none; font-size:0.92rem; font-weight:500; transition:color .2s;}
.navlinks a:hover, .navlinks a:focus-visible{color:#fff;}
.nav-cta{margin-left:0.5rem;}
.nav-toggle{display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:8px;}
.nav-toggle span{width:24px; height:2px; background:#fff; display:block;}

@media(max-width:860px){
  .navlinks{
    position:fixed; inset:104px 0 0 0; height:calc(100vh - 104px);
    background:var(--panel); flex-direction:column; justify-content:flex-start;
    padding:2.5rem 24px; gap:1.6rem;
    transform:translateX(100%); transition:transform .35s ease;
  }
  .navlinks.open{transform:translateX(0);}
  .navlinks a{font-size:1.3rem;}
  .nav-toggle{display:flex;}
  .nav-cta{display:none;}
}

/* HERO */
.hero{
  background:radial-gradient(ellipse 120% 80% at 50% -10%, #1c2b22 0%, var(--ink) 55%, #060907 100%);
  color:#fff;
  padding:180px 0 120px;
  overflow:hidden;
}
.hero-gear{
  position:absolute; top:-140px; right:-140px;
  width:620px; height:620px;
  color:#fff;
  opacity:0.05;
  animation:spin 90s linear infinite;
}
@keyframes spin{from{transform:rotate(0deg);} to{transform:rotate(360deg);}}
.hero-grid{
  display:grid; grid-template-columns:1.15fr 0.85fr; gap:3.5rem; align-items:center;
  position:relative;
}
.hero h1{
  font-size:clamp(2.5rem,5.4vw,3.9rem);
  line-height:1.06; font-weight:600; margin-bottom:1.4rem;
}
.hero h1 span{color:var(--orange);}
.hero p.lead{font-size:1.12rem; color:var(--muted-light); max-width:48ch; margin-bottom:2.3rem;}
.btn-row{display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:3rem;}
.hero-stats{display:flex; gap:2.4rem; flex-wrap:wrap;}
.hero-stats div{border-left:2px solid var(--orange); padding-left:0.9rem;}
.stat-num{font-size:2rem; font-weight:600; display:block; line-height:1;}
.stat-label{font-size:0.82rem; color:var(--muted); letter-spacing:0.03em;}
.hero-visual{position:relative;}
.hero-visual img{
  border-radius:4px;
  box-shadow:0 40px 80px -30px rgba(0,0,0,0.6);
}
.hero-visual::before{
  content:"";
  position:absolute; inset:-14px;
  border:1px solid rgba(241,88,12,0.35);
  border-radius:4px;
  z-index:-1;
}

/* MARQUEE */
.marquee-bar{
  background:var(--orange); color:var(--ink);
  overflow:hidden; white-space:nowrap; padding:0.9rem 0;
}
.marquee-track{display:inline-block; animation:marquee 26s linear infinite;}
.marquee-track span{
  display:inline-block; font-family:'Oswald',sans-serif; text-transform:uppercase;
  font-size:0.92rem; letter-spacing:0.08em; font-weight:600; padding:0 2.2rem;
}
@keyframes marquee{from{transform:translateX(0);} to{transform:translateX(-50%);}}

/* SERVICES */
.services{padding:120px 0; background:var(--paper);}
.service-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem;}
.service-card{
  background:#fff; border:1px solid var(--line-dark); border-left:3px solid var(--green); border-radius:4px;
  padding:2rem 1.9rem 2rem 2.1rem; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.service-card:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-top-color:transparent; border-right-color:transparent; border-bottom-color:transparent;}
.service-card h3{font-size:1.18rem; font-weight:600; margin-bottom:0.6rem; text-transform:none; font-family:'Inter',sans-serif; color:var(--green);}
.service-card p{color:var(--ink-soft); font-size:0.96rem;}

/* PROCESS */
.process{padding:120px 0; background:var(--panel); color:#fff;}
.process .section-head p{color:var(--muted);}
.process-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; counter-reset:step;}
.process-step{
  border-top:2px solid rgba(255,255,255,0.18); padding-top:1.6rem; position:relative;
}
.process-step::before{
  counter-increment:step; content:"0" counter(step);
  font-family:'Oswald',sans-serif; font-size:0.85rem; color:var(--orange); letter-spacing:0.08em;
  display:block; margin-bottom:0.9rem;
}
.process-step h3{font-size:1.08rem; font-weight:600; margin-bottom:0.6rem; text-transform:none; font-family:'Inter',sans-serif;}
.process-step p{color:var(--muted); font-size:0.92rem;}

/* TEAM */
.team{padding:120px 0; background:var(--paper);}
.team-grid{display:grid; grid-template-columns:1fr 1fr; gap:2.2rem;}
.team-card{
  background:#fff; border:1px solid var(--line-dark); border-radius:4px; overflow:hidden;
  display:grid; grid-template-columns:180px 1fr;
}
.team-avatar{
  background:var(--green);
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-family:'Oswald',sans-serif; font-size:2.6rem; font-weight:600;
  min-height:100%;
}
.team-body{padding:1.8rem 1.7rem;}
.team-body .role{color:var(--orange-text); font-size:0.8rem; letter-spacing:0.06em; text-transform:uppercase; font-weight:600; display:block; margin-bottom:0.3rem;}
.team-body h3{font-size:1.2rem; font-weight:600; text-transform:none; font-family:'Inter',sans-serif; margin-bottom:0.7rem;}
.team-body p{color:var(--ink-soft); font-size:0.94rem;}
.team-note{
  margin-top:1.6rem; font-size:0.84rem; color:var(--ink-soft);
  border-left:3px solid var(--orange); padding-left:0.9rem;
}

/* GALLERY */
.gallery{padding:120px 0; background:var(--panel); color:#fff;}
.gallery .section-head p{color:var(--muted);}
.gallery-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem;}
.gallery-item{position:relative; overflow:hidden; border-radius:4px; aspect-ratio:4/5;}
.gallery-item img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.gallery-item:hover img{transform:scale(1.06);}
.gallery-caption{
  position:absolute; left:0; right:0; bottom:0;
  background:linear-gradient(0deg, rgba(0,0,0,0.75), transparent);
  padding:1.4rem 1.1rem 1rem;
  font-size:0.9rem; font-weight:600;
}

/* USP STRIP */
.usp{padding:100px 0; background:var(--paper);}
.usp-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1.6rem;}
.usp-item{text-align:left;}
.usp-icon{
  width:46px; height:46px; border-radius:50%;
  border:2px solid var(--orange); color:var(--orange);
  display:flex; align-items:center; justify-content:center; margin-bottom:1.1rem;
}
.usp-icon svg{width:22px; height:22px;}
.usp-item h3{font-size:1rem; font-weight:600; text-transform:none; font-family:'Inter',sans-serif; margin-bottom:0.4rem;}
.usp-item p{color:var(--ink-soft); font-size:0.9rem;}

/* CONTACT */
.contact{padding:120px 0; background:var(--ink); color:#fff; position:relative; overflow:hidden;}
.contact-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:3.5rem;}
.contact-info h2{font-size:clamp(1.9rem,3.4vw,2.6rem); font-weight:600; margin-bottom:1.2rem;}
.contact-info p{color:var(--muted); margin-bottom:2rem; max-width:42ch;}
.contact-list{list-style:none; display:flex; flex-direction:column; gap:1.1rem;}
.contact-list li{display:flex; gap:0.9rem; align-items:flex-start; font-size:0.96rem;}
.contact-list svg{width:20px; height:20px; flex-shrink:0; color:var(--orange); margin-top:2px;}
.contact-list a{text-decoration:none;}
.contact-list a:hover{color:var(--orange);}
.contact-sub{font-size:0.82rem; color:var(--muted);}

form#contact-form{
  background:var(--panel); border:1px solid var(--line); border-radius:6px; padding:2.2rem;
}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; margin-bottom:1.1rem;}
.form-group{display:flex; flex-direction:column; gap:0.5rem; margin-bottom:1.1rem;}
.form-group label{font-size:0.82rem; color:var(--muted-light);}
.form-group input, .form-group select, .form-group textarea{
  background:#0b110e; border:1px solid var(--line); border-radius:3px;
  padding:0.85rem 0.95rem; color:#fff; font-family:inherit; font-size:0.95rem;
}
.form-group input::placeholder, .form-group textarea::placeholder{color:var(--muted);}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus{
  outline:2px solid var(--orange); outline-offset:1px; border-color:var(--orange);
}
.form-group textarea{resize:vertical; min-height:120px;}
.form-consent{display:flex; gap:0.6rem; align-items:flex-start; font-size:0.82rem; color:var(--muted); margin-bottom:1.3rem;}
.form-consent input{margin-top:3px;}
.form-status{font-size:0.88rem; min-height:1.2em; margin-bottom:0.9rem;}
.form-status.ok{color:#5fd889;}
.form-status.err{color:#ff8a6b;}
button[type="submit"]{width:100%; justify-content:center; border:none;}
button[type="submit"]:disabled{opacity:0.6; cursor:not-allowed;}

/* FOOTER */
footer{background:var(--panel-soft); color:var(--muted); padding:3.5rem 0 2rem;}
.footer-grid{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1.5rem; padding-bottom:2rem; border-bottom:1px solid var(--line);}
.footer-brand{display:flex; align-items:center; gap:0.7rem;}
.footer-brand img{height:64px;}
.footer-links{display:flex; gap:1.8rem; list-style:none; flex-wrap:wrap;}
.footer-links a{color:var(--muted); text-decoration:none; font-size:0.9rem;}
.footer-links a:hover{color:#fff;}
.footer-bottom{padding-top:1.6rem; font-size:0.82rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.8rem;}

/* LEGAL PAGES */
.legal-page{padding:160px 24px 100px; max-width:820px; margin:0 auto;}
.legal-page h1{font-size:2.2rem; margin-bottom:1.6rem; font-weight:600;}
.legal-page h2{font-size:1.3rem; margin:2.2rem 0 0.8rem; font-weight:600;}
.legal-page p, .legal-page li{color:var(--ink-soft); margin-bottom:0.8rem;}
.legal-page a{color:var(--orange-text);}
.legal-back{display:inline-block; margin-bottom:2rem; color:var(--ink-soft); text-decoration:none; font-size:0.9rem;}

@media(max-width:980px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-visual{order:-1; margin-bottom:24px;}
  .service-grid{grid-template-columns:repeat(2,1fr);}
  .process-grid{grid-template-columns:repeat(2,1fr);}
  .team-grid{grid-template-columns:1fr;}
  .team-card{grid-template-columns:1fr;}
  .team-avatar{min-height:140px;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .usp-grid{grid-template-columns:repeat(2,1fr);}
  .contact-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
}
@media(max-width:560px){
  .service-grid, .process-grid, .gallery-grid, .usp-grid{grid-template-columns:1fr;}
  .hero{padding:150px 0 90px;}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .hero-gear{animation:none;}
  .marquee-track{animation:none;}
  .reveal{transition:none; opacity:1; transform:none;}
  .navlinks, .service-card, .gallery-item img, .btn, header{transition:none;}
}
