/* ============================================================
   GROUND FORCE PROPERTY SERVICES
   Palette pulled from the mark: gun-black, field olive, camo tan,
   galvanized steel. Angled "blade" cuts echo the GF slash.
   ============================================================ */

:root{
  --ink:        #070806;
  --ink-2:      #0E110B;
  --panel:      #14180E;
  --panel-2:    #1B2013;
  --line:       #2C3320;

  --olive:      #6E7A33;
  --olive-lt:   #8FA03F;
  --olive-dk:   #4C551F;
  --tan:        #BCAE86;
  --steel:      #CBCDC8;
  --steel-dim:  #9AA096;

  --paper:      #E8E7E1;
  --body:       #A7ADA0;

  --wrap: 1180px;
  --blade: polygon(0 0, 100% 0, 100% calc(100% - 22px), calc(100% - 22px) 100%, 0 100%);
  --ease: cubic-bezier(.2,.7,.3,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:86px; }
body{
  margin:0; background:var(--ink); color:var(--body);
  font-family:'Barlow',system-ui,-apple-system,sans-serif;
  font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
h1,h2,h3,h4{
  font-family:'Oswald',Impact,sans-serif; font-weight:700;
  color:var(--paper); margin:0; line-height:1.04;
  text-transform:uppercase; letter-spacing:.005em;
}
p{ margin:0 0 1em; }
ul,ol{ margin:0; padding:0; list-style:none; }

.wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding:0 24px; }

.skip{
  position:absolute; left:-9999px; top:0; background:var(--olive); color:#fff;
  padding:12px 18px; z-index:200; font-weight:700;
}
.skip:focus{ left:8px; top:8px; }

:focus-visible{ outline:2px solid var(--olive-lt); outline-offset:3px; }

.eyebrow{
  font-family:'Barlow Condensed',sans-serif; text-transform:uppercase;
  letter-spacing:.24em; font-size:13px; font-weight:600;
  color:var(--olive-lt); margin:0 0 14px;
}

/* ---------------- BUTTONS ---------------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:'Oswald',sans-serif; font-weight:600; text-transform:uppercase;
  letter-spacing:.09em; font-size:14px; text-decoration:none;
  padding:13px 24px; border:2px solid transparent; cursor:pointer; white-space:nowrap;
  transition:background .18s var(--ease), color .18s var(--ease), border-color .18s var(--ease), transform .18s var(--ease);
  clip-path:polygon(0 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%);
}
.btn-lg{ padding:16px 30px; font-size:16px; }
.btn-block{ width:100%; }
.btn-solid{ background:var(--olive); color:#fff; }
.btn-solid:hover{ background:var(--olive-lt); transform:translateY(-2px); }
.btn-outline{ border-color:var(--olive-lt); color:var(--paper); }
.btn-outline:hover{ background:var(--olive); border-color:var(--olive); }
.btn-ghost{ color:var(--steel-dim); border-color:var(--line); padding:11px 18px; font-size:13px; }
.btn-ghost:hover{ color:var(--paper); border-color:var(--olive); }
.btn-dark{ background:var(--ink); color:var(--paper); }
.btn-dark:hover{ background:#000; transform:translateY(-2px); }
.btn-dark-outline{ border-color:rgba(7,8,6,.55); color:var(--ink); }
.btn-dark-outline:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

/* ---------------- HEADER ---------------- */
.site-head{
  position:sticky; top:0; z-index:100;
  background:rgba(7,8,6,.86); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  transition:background .25s var(--ease);
}
.site-head.solid{ background:rgba(7,8,6,.97); }
.head-inner{ display:flex; align-items:center; gap:24px; height:78px; }
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; flex-shrink:0; }
.brand-mark{ width:50px; height:50px; object-fit:contain; }
.brand-txt{ display:flex; flex-direction:column; line-height:1; }
.brand-l1{
  font-family:'Oswald',sans-serif; font-weight:700; font-size:19px;
  letter-spacing:.06em; color:var(--steel); text-transform:uppercase;
}
.brand-l2{
  font-family:'Barlow Condensed',sans-serif; font-size:11px; font-weight:600;
  letter-spacing:.26em; color:var(--olive-lt); text-transform:uppercase; margin-top:3px;
}
.nav{ display:flex; gap:22px; margin-left:auto; }
.nav a{
  font-family:'Barlow Condensed',sans-serif; text-transform:uppercase;
  letter-spacing:.13em; font-size:15px; font-weight:600;
  color:var(--steel-dim); text-decoration:none; padding:6px 0; white-space:nowrap;
  border-bottom:2px solid transparent; transition:color .18s, border-color .18s;
}
.nav a:hover{ color:var(--paper); border-color:var(--olive-lt); }
.head-cta{ display:flex; gap:10px; }
.burger{
  display:none; background:none; border:0; padding:10px; cursor:pointer; margin-left:auto;
}
.burger span{ display:block; width:26px; height:2px; background:var(--steel); margin:5px 0; transition:.25s var(--ease); }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.mobile-nav{ display:none; flex-direction:column; border-top:1px solid var(--line); background:var(--ink-2); }
.mobile-nav a{
  padding:16px 24px; border-bottom:1px solid var(--line); text-decoration:none;
  font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.1em;
  font-size:15px; color:var(--steel);
}
.mobile-nav .mn-call{ background:var(--olive); color:#fff; border:0; }

/* ---------------- HERO ---------------- */
.hero{ position:relative; overflow:hidden; background:var(--ink); }
.hero::before{
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(900px 480px at 78% 18%, rgba(110,122,51,.30), transparent 62%),
    radial-gradient(700px 420px at 8% 90%, rgba(76,85,31,.22), transparent 65%);
}
.hero-grain{
  position:absolute; inset:0; opacity:.05; pointer-events:none;
  background-image:
    repeating-linear-gradient(115deg, rgba(188,174,134,.6) 0 2px, transparent 2px 7px),
    repeating-linear-gradient(-40deg, rgba(203,205,200,.35) 0 1px, transparent 1px 9px);
}
.hero-inner{
  position:relative; display:grid; grid-template-columns:1.15fr .85fr;
  gap:50px; align-items:center; padding:78px 24px 74px;
}
h1{ font-size:clamp(48px,8.4vw,104px); margin:0 0 22px; }
.h1-a{ display:block; color:var(--steel); }
.h1-b{
  display:block; color:var(--olive-lt);
  text-shadow:0 0 40px rgba(143,160,63,.30);
}
.lede{ font-size:19px; max-width:56ch; color:var(--body); margin-bottom:30px; }
.hero-btns{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:34px; }
.hero-points{ display:flex; flex-wrap:wrap; gap:12px 28px; }
.hero-points li{
  position:relative; padding-left:24px;
  font-family:'Barlow Condensed',sans-serif; text-transform:uppercase;
  letter-spacing:.1em; font-size:14px; font-weight:600; color:var(--tan);
}
.hero-points li::before{
  content:''; position:absolute; left:0; top:7px; width:11px; height:11px;
  background:var(--olive-lt); clip-path:polygon(0 0,100% 0,100% 60%,60% 100%,0 100%);
}
.hero-mark{ display:flex; justify-content:center; }
.hero-mark img{
  width:min(100%,400px); filter:drop-shadow(0 26px 60px rgba(0,0,0,.75));
  animation:rise .9s var(--ease) both;
}
@keyframes rise{ from{ opacity:0; transform:translateY(26px) scale(.97);} to{ opacity:1; transform:none;} }

/* ticker */
.ticker{
  position:relative; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:var(--ink-2); overflow:hidden; padding:13px 0;
}
.ticker-run{
  display:flex; align-items:center; gap:22px; width:max-content;
  animation:slide 42s linear infinite;
}
.ticker-run span{
  font-family:'Barlow Condensed',sans-serif; text-transform:uppercase;
  letter-spacing:.2em; font-size:14px; font-weight:600; color:var(--steel-dim); white-space:nowrap;
}
.ticker-run i{ width:7px; height:7px; background:var(--olive); transform:rotate(45deg); flex:none; }
@keyframes slide{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* ---------------- WHO ---------------- */
.who{ background:var(--olive-dk); border-bottom:1px solid var(--olive); }
.who-inner{ display:flex; align-items:center; gap:14px 34px; flex-wrap:wrap; padding-top:20px; padding-bottom:20px; }
.who-lbl{
  margin:0; font-family:'Barlow Condensed',sans-serif; text-transform:uppercase;
  letter-spacing:.24em; font-size:13px; font-weight:700; color:var(--tan);
}
.who-list{ display:flex; flex-wrap:wrap; gap:10px 30px; }
.who-list li{
  font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.07em;
  font-size:15px; font-weight:500; color:#EFEEE7;
}

/* ---------------- SECTION HEADS ---------------- */
.sec-head{ max-width:760px; margin:0 0 46px; }
.sec-head h2{ font-size:clamp(31px,4.4vw,50px); margin:0 0 16px; }
.sec-sub{ font-size:18px; margin:0; }

/* ---------------- SERVICES ---------------- */
.services{ padding:92px 0; background:var(--ink); }
.svc-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.svc{
  position:relative; background:var(--panel); border:1px solid var(--line);
  padding:34px 32px 32px; clip-path:var(--blade);
  transition:border-color .22s var(--ease), transform .22s var(--ease), background .22s var(--ease);
}
.svc::after{
  content:''; position:absolute; right:0; bottom:0; width:22px; height:22px;
  background:var(--olive); clip-path:polygon(100% 0,100% 100%,0 100%);
  transition:background .22s var(--ease);
}
.svc:hover{ transform:translateY(-4px); border-color:var(--olive); background:var(--panel-2); }
.svc:hover::after{ background:var(--olive-lt); }
.svc-ico{
  width:54px; height:54px; display:grid; place-items:center;
  background:var(--olive-dk); color:var(--tan); margin-bottom:20px;
  clip-path:polygon(0 0,100% 0,100% 74%,74% 100%,0 100%);
}
.svc-ico svg{ width:27px; height:27px; }
.svc h3{ font-size:26px; margin:0 0 12px; color:var(--paper); }
.svc > p{ margin:0 0 20px; font-size:16px; }
.svc-list{ border-top:1px solid var(--line); padding-top:16px; }
.svc-list li{
  position:relative; padding-left:20px; margin-bottom:8px;
  font-size:15px; color:var(--steel-dim);
}
.svc-list li::before{
  content:''; position:absolute; left:0; top:9px; width:8px; height:8px;
  background:var(--olive); transform:rotate(45deg);
}
.svc-note{
  margin:34px 0 0; text-align:center; font-size:17px; color:var(--tan);
  font-style:italic;
}

/* ---------------- BAND ---------------- */
.band{
  background:var(--olive); color:var(--ink);
  border-top:3px solid var(--olive-lt); border-bottom:3px solid var(--olive-dk);
}
.band-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:30px; flex-wrap:wrap; padding-top:44px; padding-bottom:44px;
}
.band-h{ font-size:clamp(30px,4.6vw,48px); color:var(--ink); margin:0 0 8px; }
.band-p{ margin:0; color:rgba(7,8,6,.78); font-size:17px; font-weight:500; }
.band-btns{ display:flex; gap:12px; flex-wrap:wrap; }

/* ---------------- HOW ---------------- */
.how{ padding:92px 0; background:var(--ink-2); }
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; counter-reset:s; }
.steps li{
  position:relative; padding:34px 28px 30px;
  background:var(--panel); border:1px solid var(--line); border-top:3px solid var(--olive);
}
.step-n{
  display:block; font-family:'Oswald',sans-serif; font-weight:700; font-size:54px;
  line-height:1; color:transparent; -webkit-text-stroke:1.5px var(--olive);
  margin-bottom:14px;
}
.steps h3{ font-size:22px; margin:0 0 10px; }
.steps p{ margin:0; font-size:16px; }

/* ---------------- WHY ---------------- */
.why{ padding:92px 0; background:var(--ink); }
.why-inner{ display:grid; grid-template-columns:.95fr 1.05fr; gap:56px; align-items:start; }
.why-copy h2{ font-size:clamp(30px,4.2vw,46px); margin:0 0 20px; }
.why-copy p{ font-size:17px; }
.why-copy .btn{ margin-top:12px; }
.why-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.why-grid li{
  background:var(--panel); border:1px solid var(--line); padding:26px 24px;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%);
}
.why-grid h3{ font-size:19px; margin:0 0 9px; color:var(--tan); }
.why-grid p{ margin:0; font-size:15px; }

/* ---------------- AREAS ---------------- */
.areas{ padding:88px 0; background:var(--ink-2); }
.area-list{ display:grid; grid-template-columns:repeat(5,1fr); gap:10px; }
.area-list li{
  background:var(--panel); border:1px solid var(--line); padding:13px 14px;
  font-family:'Barlow Condensed',sans-serif; text-transform:uppercase;
  letter-spacing:.09em; font-size:15px; font-weight:600; color:var(--steel-dim);
  text-align:center; transition:.18s var(--ease);
}
.area-list li:hover{ border-color:var(--olive); color:var(--paper); }

/* ---------------- QUOTE ---------------- */
.quote{ padding:92px 0; background:var(--ink); border-top:1px solid var(--line); }
.quote-inner{ display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:start; }
.quote-copy h2{ font-size:clamp(30px,4.2vw,46px); margin:0 0 18px; }
.quote-copy p{ font-size:17px; }
.q-contact{ margin-top:30px; border-top:1px solid var(--line); }
.q-line{
  display:flex; justify-content:space-between; align-items:baseline; gap:16px;
  padding:15px 0; border-bottom:1px solid var(--line); text-decoration:none;
}
a.q-line:hover .q-val{ color:var(--olive-lt); }
.q-lbl{
  font-family:'Barlow Condensed',sans-serif; text-transform:uppercase;
  letter-spacing:.18em; font-size:12px; font-weight:600; color:var(--steel-dim);
}
.q-val{ font-family:'Oswald',sans-serif; font-size:19px; color:var(--paper); transition:color .18s; }

.qform{
  background:var(--panel); border:1px solid var(--line); padding:34px 32px;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 26px),calc(100% - 26px) 100%,0 100%);
}
.hp{ position:absolute; left:-9999px; }
.f-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field{ margin-bottom:16px; }
.field label{
  display:block; font-family:'Barlow Condensed',sans-serif; text-transform:uppercase;
  letter-spacing:.16em; font-size:12px; font-weight:600; color:var(--tan); margin-bottom:7px;
}
.field input,.field select,.field textarea{
  width:100%; background:var(--ink); border:1px solid var(--line); color:var(--paper);
  padding:13px 14px; font-family:'Barlow',sans-serif; font-size:16px;
  border-radius:0; transition:border-color .18s;
}
.field textarea{ resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--olive-lt); }
.field select{ appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--olive-lt) 50%),linear-gradient(135deg,var(--olive-lt) 50%,transparent 50%);
  background-position:calc(100% - 20px) 22px, calc(100% - 14px) 22px;
  background-size:6px 6px,6px 6px; background-repeat:no-repeat;
}
.f-fine{ margin:14px 0 0; font-size:13px; color:var(--steel-dim); text-align:center; }

/* ---------------- FAQ ---------------- */
.faq{ padding:88px 0 96px; background:var(--ink-2); }
.faq-list{ border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{
  cursor:pointer; list-style:none; padding:22px 42px 22px 0; position:relative;
  font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.05em;
  font-size:18px; color:var(--paper);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:''; position:absolute; right:6px; top:29px; width:12px; height:12px;
  border-right:2px solid var(--olive-lt); border-bottom:2px solid var(--olive-lt);
  transform:rotate(45deg); transition:transform .22s var(--ease);
}
.faq details[open] summary::after{ transform:rotate(-135deg); top:33px; }
.faq details p{ margin:0 0 22px; padding-right:42px; font-size:16px; }

/* ---------------- FOOTER ---------------- */
.site-foot{ background:#040503; border-top:3px solid var(--olive); padding-top:60px; }
.foot-top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.1fr; gap:38px; padding-bottom:46px; }
.foot-brand img{ width:120px; margin-bottom:16px; }
.foot-brand p{ font-size:15px; margin:0; color:var(--steel-dim); }
.foot-col h4{
  font-size:14px; letter-spacing:.18em; color:var(--olive-lt); margin:0 0 16px;
  font-family:'Barlow Condensed',sans-serif; font-weight:700;
}
.foot-col a,.foot-static{
  display:block; text-decoration:none; color:var(--steel-dim);
  font-size:15px; margin-bottom:10px; transition:color .18s;
}
.foot-col a:hover{ color:var(--olive-lt); }
.foot-bottom{
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
  border-top:1px solid var(--line); padding-top:22px; padding-bottom:26px;
}
.foot-bottom p{ margin:0; font-size:13px; color:#5F675A; }
.foot-tag{
  font-family:'Barlow Condensed',sans-serif !important; text-transform:uppercase;
  letter-spacing:.2em; font-weight:600; color:var(--olive) !important;
}

/* ---------------- MOBILE CALL BAR ---------------- */
.callbar{ display:none; position:fixed; left:0; right:0; bottom:0; z-index:120; }
.callbar a{
  flex:1; text-align:center; padding:16px 8px; text-decoration:none;
  font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.1em;
  font-size:15px; background:var(--olive); color:#fff;
}
.callbar .cb-alt{ background:var(--ink-2); color:var(--paper); border-top:1px solid var(--line); }

/* ---------------- RESPONSIVE ---------------- */
@media (max-width:1000px){
  .nav,.head-cta{ display:none; }
  .burger{ display:block; }
  .mobile-nav{ display:flex; }
  .mobile-nav[hidden]{ display:none; }
  .hero-inner{ grid-template-columns:1fr; padding:56px 24px 60px; }
  .hero-mark{ order:-1; }
  .hero-mark img{ width:min(62%,240px); }
  .svc-grid{ grid-template-columns:1fr; }
  .steps{ grid-template-columns:1fr; }
  .why-inner,.quote-inner{ grid-template-columns:1fr; gap:40px; }
  .area-list{ grid-template-columns:repeat(3,1fr); }
  .foot-top{ grid-template-columns:1fr 1fr; }
}
@media (max-width:620px){
  body{ font-size:16px; }
  .wrap{ padding:0 18px; }
  .services,.how,.why,.areas,.quote,.faq{ padding:60px 0; }
  .hero-btns .btn{ width:100%; }
  .band-inner{ flex-direction:column; align-items:flex-start; }
  .band-btns{ width:100%; }
  .band-btns .btn{ flex:1; }
  .f-row{ grid-template-columns:1fr; gap:0; }
  .area-list{ grid-template-columns:repeat(2,1fr); }
  .foot-top{ grid-template-columns:1fr; gap:30px; }
  .qform{ padding:26px 20px; }
  .callbar{ display:flex; }
  body{ padding-bottom:54px; }
  .foot-bottom{ padding-bottom:20px; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  html{ scroll-behavior:auto; }
}
