@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
--deep:#0A1119; --panel:#16232F; --paper:#F2F5F7; --muted:#7C93A6;
--r1:#2D0A4E; --r2:#6B21A8; --r3:#C2410C; --r4:#F59E0B; --r5:#FDE047; --r6:#FEF9C3;
--signal:#F59E0B;          /* fills, imagery, the ramp — the heat */
--signal-text:#C084FC;     /* accent WORDING on dark */
--signal-ink:#6B21A8;      /* accent wording on paper */
--icon-dot:#6B21A8;        /* the finding dot inside every icon */
--ramp:linear-gradient(115deg,var(--r1) 0%,var(--r2) 20%,var(--r3) 45%,var(--r4) 66%,var(--r5) 84%,var(--r6) 100%);
/* Vegetation-index ramp — bare soil through sparse cover to vigorous canopy,
   as a multispectral index image actually looks. Used on agricultural pages
   so the imagery on screen matches the sensor the service is built on. */
--ramp-veg:linear-gradient(115deg,#3B1F0B 0%,#7C2D12 14%,#B45309 28%,#D97706 40%,#EAB308 52%,#BEF264 66%,#65A30D 80%,#3F6212 92%,#1A3409 100%);
--red:#16232F; --red-bright:#233650; --accent:#F59E0B; --accent-bright:#FDE047;
--rag-red:#C00000; --amber:#E8A33D; --green:#4F8A4F;
--ink:#0A1119; --grey:#5b6a78; --light:#F2F5F7; --line:#e1e6ea;
--agri:#1f6e2f; --agri-bright:#2d8a41; --map:#16232F;
--f-head:'Archivo Black',Arial,sans-serif; --f-body:'IBM Plex Sans',system-ui,sans-serif; --f-mono:'IBM Plex Mono',monospace;
}
*{margin:0;padding:0;box-sizing:border-box;}
img,svg,video{max-width:100%;}
img{height:auto;}
body{font-family:var(--f-body);color:var(--ink);line-height:1.6;background:#fff;}
.wrap{max-width:1100px;margin:0 auto;padding:0 24px;}
h1,h2,h3,.logo{font-family:var(--f-head);letter-spacing:-.03em;text-wrap:balance;}
/* NAV */
nav{position:sticky;top:0;background:var(--deep);border-bottom:1px solid rgba(255,255,255,.1);z-index:50;}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;}
.logo{display:flex;align-items:center;gap:10px;font-size:1.05rem;color:#fff;letter-spacing:.2px;}
.logo img{height:30px;display:block;}
.logo span{color:var(--muted);font-family:var(--f-body);font-weight:600;}
.logo a{color:inherit;text-decoration:none;display:flex;align-items:center;gap:10px;}
nav ul{display:flex;gap:28px;list-style:none;font-size:.95rem;}
nav a{color:var(--muted);text-decoration:none;}
nav a:hover{color:var(--signal-text);}
.btn{display:inline-block;background:var(--signal);color:#0A1119 !important;padding:14px 26px;border-radius:2px;font-family:var(--f-mono);font-weight:600;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border:none;cursor:pointer;font-size:.78rem;transition:background .15s;}
.btn:hover{background:var(--accent-bright);color:#0A1119 !important;}
.btn.ghost{background:transparent;color:var(--deep) !important;border:2px solid var(--deep);}
nav .btn.ghost{color:#fff !important;border-color:#fff;}
.hero .btn.ghost{color:#fff !important;border-color:rgba(255,255,255,.55);}
/* HERO */
.hero{background:var(--deep);color:#fff;padding:0 0 64px;}
.rampbar{height:4px;background:var(--ramp);}
.hero .inner{padding-top:70px;}
.hero .wrap.inner{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center;}
.hero h1{font-size:clamp(2.6rem,5.4vw,4.3rem);line-height:.95;font-weight:400;letter-spacing:-.035em;}
.hero h1 em{font-style:normal;color:var(--signal-text);}
.hero p.lead{margin:26px 0 32px;font-size:1.12rem;line-height:1.55;color:var(--muted);max-width:34em;font-family:var(--f-body);}
.hero .cred{display:flex;gap:18px;margin-top:26px;flex-wrap:wrap;}
.cred span{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);padding:6px 14px;border-radius:2px;font-size:.8rem;font-family:var(--f-mono);color:#dbe4ee;}
/* mock report card in hero */
.mockcard{background:#fff;color:var(--ink);border-radius:2px;box-shadow:0 20px 50px rgba(0,0,0,.45);overflow:hidden;}
.mockcard .mc-head{background:var(--panel);color:#fff;padding:12px 18px;font-weight:600;font-size:.82rem;font-family:var(--f-mono);letter-spacing:.3px;}
.mockcard .mc-body{padding:18px;font-size:.82rem;font-family:var(--f-mono);}
.mc-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:7px 0;}
.mc-row b{color:var(--grey);font-weight:500;font-family:var(--f-body);}
.ragpill{padding:2px 12px;border-radius:2px;color:#fff;font-weight:700;font-size:.75rem;font-family:var(--f-mono);}
.findingframe{position:relative;margin:14px 0 0;border-radius:2px;overflow:hidden;line-height:0;}
.findingframe img{width:100%;height:124px;object-fit:cover;display:block;}
.findingframe .bracket{position:absolute;left:32%;top:20%;width:34%;height:52%;
  background:
    linear-gradient(#F2F5F7,#F2F5F7) left top/26% 2px no-repeat,linear-gradient(#F2F5F7,#F2F5F7) left top/2px 26% no-repeat,
    linear-gradient(#F2F5F7,#F2F5F7) right top/26% 2px no-repeat,linear-gradient(#F2F5F7,#F2F5F7) right top/2px 26% no-repeat,
    linear-gradient(#F2F5F7,#F2F5F7) left bottom/26% 2px no-repeat,linear-gradient(#F2F5F7,#F2F5F7) left bottom/2px 26% no-repeat,
    linear-gradient(#F2F5F7,#F2F5F7) right bottom/26% 2px no-repeat,linear-gradient(#F2F5F7,#F2F5F7) right bottom/2px 26% no-repeat;}
.findingframe figcaption{position:absolute;right:8px;bottom:8px;background:rgba(10,17,25,.78);color:#F2F5F7;
  font-family:var(--f-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:2px;line-height:1.4;}
/* real photo hero strip */
.heroPhotoRow{position:relative;z-index:1;margin-top:44px;max-width:760px;display:grid;grid-template-columns:1fr 1fr;gap:2px;border-radius:2px;overflow:hidden;border:1px solid rgba(255,255,255,.12);}
.heroPhotoRow img{width:100%;height:132px;object-fit:cover;display:block;}
.heroPhotoRow .cap{position:absolute;bottom:8px;left:10px;background:rgba(10,17,25,.8);color:#F2F5F7;font-size:.64rem;font-family:var(--f-mono);font-weight:500;padding:4px 10px;border-radius:2px;letter-spacing:.12em;text-transform:uppercase;}
.heroPhotoRow .capR{left:auto;right:16px;}

/* SERVICE RAIL — the whole offer, directly under the hero */
.servicerail{background:var(--panel);color:#fff;padding:34px 0 38px;border-bottom:1px solid rgba(255,255,255,.08);}
.railkick{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--signal-text);margin-bottom:18px;}
.railgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;}
.railcol h3{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.1);}
.railcol h3 a{color:inherit;text-decoration:none;}
.railcol h3 a:hover{color:var(--signal-text);}
.railcol ul{list-style:none;display:grid;gap:7px;}
.railcol li a{color:#dbe4ee;text-decoration:none;font-size:.92rem;display:inline-block;border-bottom:1px solid transparent;}
.railcol li a:hover{color:#fff;border-bottom-color:var(--signal);}
@media(max-width:860px){.railgrid{grid-template-columns:1fr;gap:26px;}}
/* SECTIONS */
section{padding:80px 0;}
section.alt{background:var(--paper);}
h2{font-size:clamp(1.7rem,3.2vw,2.4rem);color:var(--deep);font-weight:400;letter-spacing:-.03em;margin-bottom:14px;line-height:1.02;}
.sub{color:var(--grey);max-width:44em;margin-bottom:44px;font-size:1.05rem;}
/* HOW IT WORKS */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.step{background:#fff;border:1px solid var(--line);border-radius:2px;padding:26px 22px;position:relative;}
.alt .step{box-shadow:0 2px 10px rgba(0,0,0,.04);}
.stepnum{width:36px;height:36px;border-radius:2px;background:var(--signal);color:#0A1119;font-weight:700;font-family:var(--f-mono);display:flex;align-items:center;justify-content:center;margin-bottom:14px;font-size:1rem;}
.step h3{font-size:1.02rem;margin-bottom:8px;font-family:var(--f-body);font-weight:700;}
.step p{font-size:.9rem;color:var(--grey);}
/* SERVICES */
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.svc{border:1px solid var(--line);border-radius:2px;padding:28px 24px;background:#fff;display:flex;flex-direction:column;}
.svc .ico{width:40px;height:40px;border-radius:2px;background:var(--paper);display:flex;align-items:center;justify-content:center;margin-bottom:14px;color:var(--deep);}
.svc .ico svg{width:24px;height:24px;stroke:var(--deep);}
.svc .ico svg circle[data-dot]{fill:var(--icon-dot);stroke:none;}
.svc h3{font-size:1.05rem;margin-bottom:8px;font-family:var(--f-body);font-weight:700;}
.svc p{font-size:.9rem;color:var(--grey);}
.svc .tag{display:inline-block;margin-top:14px;font-size:.72rem;font-weight:600;font-family:var(--f-mono);color:var(--deep);background:var(--paper);border:1px solid var(--line);padding:4px 10px;border-radius:2px;letter-spacing:.3px;}
.svc .learnmore{display:inline-block;margin-top:16px;font-size:.72rem;font-family:var(--f-mono);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--signal-ink);text-decoration:none;}
.svc .learnmore:hover{text-decoration:underline;}
/* The cards in a row are already equal height, but their contents were pinned
   to the top, so the sensor chip and the "learn more" link finished at a
   different height in every card — that ragged bottom edge is what reads as
   spacing being out of sync, worst on the agriculture grid where the
   descriptions vary most in length. Letting the description absorb the slack
   lines the bottom of every card up.
   The chip and link are also declared inline-block, which a flex column
   overrides by stretching them to the full card width; align-self restores
   the intended shrink-to-fit. */
.svc p{flex:1 1 auto;}
.svc .tag,.svc .learnmore{align-self:flex-start;}
.svc{position:relative;}
a.svc{text-decoration:none;color:inherit;transition:box-shadow .15s,border-color .15s;}
a.svc:hover{box-shadow:0 8px 24px rgba(10,17,25,.1);border-color:var(--deep);}
/* UPLOAD DEMO */
.demo{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start;}
.dropzone{border:3px dashed var(--deep);border-radius:2px;background:#fff;padding:48px 30px;text-align:center;cursor:pointer;transition:background .2s;}
.dropzone:hover,.dropzone.drag{background:var(--paper);}
.dropzone .big{font-size:2.6rem;}
.dropzone p{color:var(--grey);font-size:.92rem;margin-top:8px;}
.filelist{margin-top:18px;text-align:left;font-size:.85rem;font-family:var(--f-mono);}
.filelist li{list-style:none;padding:8px 12px;background:#fff;border:1px solid var(--line);border-radius:2px;margin-bottom:6px;display:flex;justify-content:space-between;}
.filelist .ok{color:var(--green);font-weight:700;}
.jobform label{display:block;font-size:.85rem;font-weight:700;margin:16px 0 5px;}
.jobform input,.jobform select,.jobform textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:2px;font-size:.92rem;font-family:var(--f-body);background:#fff;}
.typegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:8px;margin-top:2px;}
.typetile{border:1px solid var(--line);border-radius:2px;padding:10px 6px;text-align:center;cursor:pointer;font-size:.74rem;font-weight:600;background:#fff;line-height:1.3;transition:border-color .15s,background .15s;}
.typetile .ti{display:flex;align-items:center;justify-content:center;margin-bottom:4px;color:var(--deep);}
.typetile .ti svg{width:20px;height:20px;}
.typetile:hover{border-color:var(--deep);}
.typetile.sel{border:2px solid var(--deep);background:var(--paper);padding:9px 5px;}
.progresswrap{margin-top:22px;display:none;}
.progressbar{height:10px;background:var(--line);border-radius:999px;overflow:hidden;}
.progressbar div{height:100%;width:0;background:var(--signal);transition:width .3s;}
.status{font-size:.85rem;color:var(--grey);margin-top:8px;}
/* QUOTE CALCULATOR */
.quotegrid{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:start;}
.qcard{background:#fff;border:1px solid var(--line);border-radius:2px;padding:30px 28px;box-shadow:0 2px 12px rgba(0,0,0,.05);}
.qcard label{display:block;font-size:.85rem;font-weight:700;margin:18px 0 6px;}
.qcard label:first-of-type{margin-top:0;}
.qcard select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:2px;font-size:.95rem;font-family:var(--f-body);background:#fff;}
.qcard input[type=text],.qcard input[type=email]{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:2px;font-size:.95rem;font-family:var(--f-body);background:#fff;}
.qopt{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:2px;margin-top:8px;cursor:pointer;transition:border-color .15s,background .15s;}
.qopt:hover{border-color:var(--deep);}
.qopt.on{border:2px solid var(--deep);background:var(--paper);padding:9px 11px;}
.qopt input{margin-top:4px;accent-color:var(--deep);}
.qopt .qt{font-size:.88rem;font-weight:600;}
.qopt .qd{font-size:.78rem;color:var(--grey);}
.qopt .qp{margin-left:auto;font-weight:700;color:var(--deep);font-size:.88rem;white-space:nowrap;font-family:var(--f-mono);}
.estimate{background:var(--deep);color:#fff;border-radius:2px;padding:30px 28px;position:sticky;top:84px;}
.estimate h3{color:var(--signal-text);letter-spacing:1px;text-transform:uppercase;font-size:.75rem;font-family:var(--f-mono);font-weight:600;}
.estprice{font-size:2.5rem;font-weight:400;margin:8px 0 2px;font-family:var(--f-head);}
.estprice small{font-size:1rem;font-weight:400;color:var(--muted);}
.estnote{font-size:.82rem;color:var(--muted);margin-top:2px;}
.estlines{margin:18px 0;border-top:1px solid rgba(255,255,255,.15);padding-top:14px;font-size:.85rem;font-family:var(--f-mono);}
.estline{display:flex;justify-content:space-between;padding:4px 0;color:#dde6ef;}
.estline b{font-weight:600;color:#fff;}
.estincl{margin-top:16px;font-size:.8rem;color:var(--muted);line-height:1.6;font-family:var(--f-body);}
.estincl li{list-style:none;padding-left:18px;position:relative;}
.estincl li::before{content:"✓";position:absolute;left:0;color:var(--signal-text);font-weight:800;}
.estimate .btn{width:100%;text-align:center;margin-top:18px;}
/* PRICING */
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:22px;}
.plan{border:1px solid var(--line);border-radius:2px;padding:32px 28px;background:#fff;text-align:center;}
.plan.featured{border:3px solid var(--deep);position:relative;}
.plan.featured::before{content:"MOST POPULAR";position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--deep);color:var(--signal-text);font-size:.68rem;font-weight:700;font-family:var(--f-mono);padding:4px 14px;border-radius:2px;letter-spacing:1px;}
.plan h3{font-size:1.1rem;font-family:var(--f-body);font-weight:700;}
.price{font-size:2.2rem;font-weight:400;color:var(--deep);margin:12px 0 2px;font-family:var(--f-head);}
.price small{font-size:.9rem;color:var(--grey);font-weight:400;font-family:var(--f-body);}
.plan ul{list-style:none;text-align:left;margin:20px 0 26px;font-size:.88rem;}
.plan li{padding:7px 0;border-bottom:1px solid var(--line);}
.plan li::before{content:"✓ ";color:var(--green);font-weight:800;}
/* TRUST */
.trust{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.tcard{background:#fff;border-left:4px solid var(--deep);border-radius:2px;padding:24px;font-size:.92rem;box-shadow:0 2px 10px rgba(0,0,0,.05);}
.tcard b{display:block;margin-bottom:6px;font-family:var(--f-body);}
/* FOOTER */
footer{background:var(--deep);color:var(--muted);padding:50px 0 30px;font-size:.88rem;}
footer .wrap{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;}
footer h4{color:#fff;margin-bottom:12px;font-size:.9rem;font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.5px;font-weight:600;}
footer ul{list-style:none;}
footer li{margin-bottom:8px;}
footer a{color:var(--muted);text-decoration:none;}
footer a:hover{color:#fff;text-decoration:underline;}
.finePrint{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);margin-top:30px;padding-top:20px;font-size:.76rem;color:#5c7186;}
.footerSocial{display:flex;gap:12px;margin-top:16px;}
.footerSocial a{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;transition:background .15s;}
.footerSocial a:hover{background:var(--r3);}
.footerSocial svg{width:16px;height:16px;stroke:var(--muted);}
.footerSocial a:hover svg{stroke:#fff;}
a:focus-visible,.btn:focus-visible,button:focus-visible,.typetile:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--signal);outline-offset:2px;}
@media(max-width:860px){
/* nav becomes two rows: identity + action, then the links on their own scrolling line */
nav .wrap{height:auto;flex-wrap:wrap;padding-top:12px;padding-bottom:10px;row-gap:10px;}
nav ul{order:3;width:100%;min-width:0;max-width:100%;flex:1 1 100%;gap:20px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;}
nav ul::-webkit-scrollbar{display:none;}
nav li{flex:0 0 auto;}
.hero .wrap.inner,.demo,.steps,.services,.plans,.trust,.quotegrid,footer .wrap{grid-template-columns:1fr;}

.estimate{position:static;}
.heroPhotoRow{grid-template-columns:1fr;}
}

/* SAMPLE REPORT */
.report{max-width:820px;margin:50px auto 0;background:#fff;border:1px solid var(--line);border-radius:2px;box-shadow:0 10px 40px rgba(0,0,0,.1);padding:56px 64px;font-size:.92rem;}
.report .rh{color:var(--deep);font-weight:700;font-size:1.25rem;margin:28px 0 10px;border-bottom:2px solid var(--signal);padding-bottom:4px;font-family:var(--f-body);}
.report .rh.first{margin-top:0;}
.rtable{width:100%;border-collapse:collapse;margin:10px 0 18px;font-family:var(--f-mono);font-size:.85rem;}
.rtable td{border:1px solid var(--line);padding:8px 12px;vertical-align:top;}
.rtable td.lbl{background:var(--paper);font-weight:600;width:34%;}
.report .covertitle{text-align:center;padding:30px 0 40px;border-bottom:3px double var(--deep);margin-bottom:36px;}
.report .covertitle h3{color:var(--deep);font-size:1.9rem;font-weight:400;letter-spacing:-.03em;}
.report .covertitle p{color:var(--grey);margin-top:6px;}
.yourlogo{display:inline-block;border:2px dashed #bbb;color:#999;padding:10px 26px;border-radius:2px;font-weight:700;margin-bottom:18px;font-size:.85rem;}
.rfinding{border:1px solid var(--line);border-radius:2px;padding:22px;margin-top:16px;background:#fdfdfc;}
.rfinding h4{color:var(--deep);margin-bottom:12px;font-family:var(--f-body);}
.rimg{height:150px;border-radius:2px;margin:14px 0 4px;background:var(--ramp);position:relative;overflow:hidden;}
.rimg::after{content:"";position:absolute;left:30%;top:15%;width:38%;height:64%;border:2px solid var(--deep);border-radius:2px;}
.rimg.rgb{background:
radial-gradient(ellipse at 22% 28%,rgba(255,255,255,.14) 0%,transparent 45%),
radial-gradient(ellipse at 78% 70%,rgba(0,0,0,.16) 0%,transparent 50%),
linear-gradient(135deg,#8b93a0 0%,#767f8c 22%,#5e6773 46%,#4a525d 68%,#3a414a 100%);}
.rimg.rgb::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(100deg,rgba(255,255,255,.05) 0 3px,transparent 3px 9px);mix-blend-mode:overlay;}
.rimg.rgb::after{content:"RGB reference — redacted for this example";border:none;left:auto;top:auto;width:auto;height:auto;right:10px;bottom:10px;background:rgba(0,0,0,.62);color:#fff;font-weight:600;font-size:.68rem;padding:4px 10px;border-radius:2px;display:block;font-family:var(--f-mono);}
.rcap{text-align:center;font-size:.78rem;color:var(--grey);font-style:italic;margin-bottom:10px;}
.redact{background:#eee;color:transparent;border-radius:2px;user-select:none;}

/* AGRI + MAPPING */
.agrihero{background:var(--deep);color:#fff;border-radius:2px;padding:48px 46px;margin-bottom:40px;display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;position:relative;overflow:hidden;}
.agrihero::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--ramp);}
.agrihero h3{font-size:clamp(1.6rem,3vw,2.1rem);font-weight:400;letter-spacing:-.03em;display:flex;align-items:center;gap:12px;}
.agrihero h3 svg{width:28px;height:28px;flex-shrink:0;stroke:#F2F5F7;}
.agrihero p{margin-top:14px;color:var(--muted);font-size:1rem;}
.agrihero .fieldviz{background:repeating-linear-gradient(90deg,#1a3a12 0 26px,#245017 26px 52px);border-radius:2px;height:190px;position:relative;overflow:hidden;}
.fieldviz::after{content:"";position:absolute;left:12%;top:20%;width:30%;height:44%;background:rgba(245,158,11,.5);border:2px solid var(--r4);border-radius:50%;filter:blur(1px);}
.fieldviz span{position:absolute;right:10px;bottom:8px;background:rgba(0,0,0,.5);color:#fff;font-size:.68rem;font-family:var(--f-mono);padding:3px 10px;border-radius:2px;}
.agrigrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.agrigrid .svc{border-top:2px solid var(--signal-ink);}
.agrigrid .tag{color:var(--signal-ink);background:#F3E8FF;border-color:#E4D4F7;}
.statrow{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:36px 0 8px;}
.stat{background:#fff;border:1px solid var(--line);border-radius:2px;padding:20px;text-align:center;}
.stat b{display:block;font-size:1.6rem;color:var(--signal-ink);font-weight:700;font-family:var(--f-head);}
.stat span{font-size:.8rem;color:var(--grey);}
.maphero{background:var(--deep);color:#fff;border-radius:2px;padding:48px 46px;margin-bottom:40px;display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;position:relative;overflow:hidden;}
.maphero::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--ramp);}
.maphero h3{font-size:clamp(1.6rem,3vw,2.1rem);font-weight:400;letter-spacing:-.03em;display:flex;align-items:center;gap:12px;}
.maphero h3 svg{width:28px;height:28px;flex-shrink:0;stroke:#F2F5F7;}
.maphero p{margin-top:14px;color:var(--muted);font-size:1rem;}
.pileviz{border-radius:2px;height:190px;position:relative;overflow:hidden;background:#0d1723;}
.pileviz i{position:absolute;bottom:0;border-radius:50% 50% 0 0;background:linear-gradient(180deg,#41576c,#2e3f4f);}
.pileviz i:nth-child(1){left:6%;width:34%;height:62%;}
.pileviz i:nth-child(2){left:38%;width:28%;height:44%;}
.pileviz i:nth-child(3){left:64%;width:32%;height:74%;}
.pileviz b{position:absolute;color:#fff;font-size:.66rem;font-family:var(--f-mono);background:rgba(0,0,0,.55);padding:2px 8px;border-radius:2px;font-weight:500;}
.pileviz b:nth-of-type(1){left:12%;top:28%;}
.pileviz b:nth-of-type(2){left:42%;top:48%;}
.pileviz b:nth-of-type(3){left:70%;top:16%;}
.mapgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.mapgrid .svc{border-top:2px solid var(--signal-ink);}
.mapgrid .tag{color:var(--deep);background:var(--paper);border-color:var(--line);}
@media(max-width:860px){.agrihero,.maphero,.agrigrid,.mapgrid,.statrow{grid-template-columns:1fr;}}

/* ===== service detail pages, legal pages ===== */
.breadcrumb{font-size:.82rem;color:var(--grey);margin-bottom:18px;font-family:var(--f-mono);}
.breadcrumb a{color:var(--signal-ink);text-decoration:none;}
.breadcrumb a:hover{text-decoration:underline;}
.svchero{color:#fff;border-radius:2px;padding:52px 46px;position:relative;overflow:hidden;margin-bottom:44px;display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;}
.svchero.core{background:var(--deep);}
.svchero.agri{background:var(--deep);}
.svchero.map{background:var(--deep);}
.svchero::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--ramp);}
.svchero>*{position:relative;}
.svchero .ico{margin-bottom:14px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);border-radius:2px;}
.svchero .ico svg{width:26px;height:26px;stroke:#F2F5F7;}
.svchero .ico svg circle[data-dot]{fill:var(--signal-text);stroke:none;}
.svchero h1{font-size:clamp(2rem,3.8vw,3rem);font-weight:400;letter-spacing:-.035em;line-height:1;}
.svchero p{margin-top:14px;color:var(--muted);font-size:1.02rem;max-width:34em;}
.svchero .tag{display:inline-block;margin-top:18px;font-size:.72rem;font-weight:600;font-family:var(--f-mono);color:#fff;background:rgba(255,255,255,.14);padding:5px 12px;border-radius:2px;letter-spacing:.5px;}
.svchero .heroviz{border-radius:2px;height:190px;position:relative;overflow:hidden;
  background:var(--ramp);display:flex;align-items:center;justify-content:center;}
.svchero .vizicon{width:104px;height:104px;display:block;}
.svchero .vizicon svg{width:100%;height:100%;fill:none;stroke:var(--deep);
  stroke-width:1.05;stroke-linecap:square;stroke-linejoin:miter;}
.svchero .vizicon svg [data-dot]{fill:var(--deep);stroke:var(--deep);}
/* agricultural pages carry the vegetation ramp instead of the thermal one */
.svchero.agri::before,.svchero.agri .heroviz{background:var(--ramp-veg);}
.agrihero::before{background:var(--ramp-veg);}
.rimg.veg{background:var(--ramp-veg);}
/* the strapline sits where the small icon chip used to, so every service page
   states the arrangement before the visitor reads the service name */
.svchero .strapline{display:block;font-family:var(--f-mono);font-size:.74rem;
  font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--signal-text);margin-bottom:14px;}
.checklist{list-style:none;margin:18px 0;}
.checklist li{padding:10px 0 10px 30px;border-bottom:1px solid var(--line);position:relative;font-size:.96rem;}
.checklist li:last-child{border-bottom:none;}
.checklist li::before{content:"✓";position:absolute;left:0;top:10px;color:var(--green);font-weight:800;}
.twocol{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start;}
.sidebox{background:#fff;border:1px solid var(--line);border-radius:2px;padding:26px 24px;box-shadow:0 2px 12px rgba(0,0,0,.05);position:sticky;top:84px;}
.sidebox h3{font-size:1rem;margin-bottom:12px;font-family:var(--f-body);font-weight:700;}
.sidebox .price{font-size:1.8rem;margin:4px 0;}
.sidebox ul{list-style:none;font-size:.85rem;margin:14px 0;}
.sidebox li{padding:6px 0;color:var(--grey);}
.sidebox li::before{content:"✓ ";color:var(--green);font-weight:800;}
.sidebox .btn{width:100%;text-align:center;margin-top:10px;}
.ragrow{display:flex;gap:10px;align-items:center;padding:8px 0;font-size:.85rem;}
.ragdot{width:12px;height:12px;border-radius:50%;flex-shrink:0;}
.legalbody{max-width:760px;}
.legalbody h2{margin-top:34px;font-size:1.25rem;}
.legalbody h2:first-of-type{margin-top:0;}
.legalbody p,.legalbody li{color:#333;font-size:.96rem;margin-bottom:12px;font-family:var(--f-body);}
.legalbody ul{padding-left:22px;}
.legalbody .updated{color:var(--grey);font-size:.85rem;margin-bottom:30px;}
@media(max-width:860px){
.svchero{grid-template-columns:1fr;}
.twocol{grid-template-columns:1fr;}
.sidebox{position:static;}
}

/* ---------- PHONE ---------- */
@media(max-width:640px){
.wrap{padding:0 20px;}
section{padding:52px 0;}
.hero{padding-bottom:44px;}
.hero .inner{padding-top:40px;}
.hero .wrap.inner{gap:30px;}
.hero h1{font-size:clamp(2.1rem,8.6vw,2.8rem);line-height:.98;}
.hero p.lead{font-size:1rem;margin:20px 0 26px;}
.hero .btn,.hero .btn.ghost{display:block;width:100%;text-align:center;margin:0 0 10px 0 !important;}
.hero .cred{gap:8px;margin-top:20px;}
.cred span{font-size:.66rem;padding:6px 10px;}
.heroPhotoRow{margin-top:30px;}
.heroPhotoRow img{height:104px;}
.findingframe img{height:112px;}
.servicerail{padding:28px 0 30px;}
h2{font-size:1.55rem;}
.sub{margin-bottom:28px;font-size:.98rem;}
.steps,.services,.agrigrid,.mapgrid,.statrow,.trust,.plans{gap:14px;}
.svc{padding:22px 20px;}
.agrihero,.maphero{padding:30px 22px;gap:24px;}
.agrihero .fieldviz,.pileviz{height:150px;}
.svchero{padding:32px 22px;gap:24px;}
.svchero .heroviz{height:150px;}
.quotegrid{gap:26px;}
.qcard,.estimate{padding:24px 20px;}
.report{padding:28px 20px;}
.demo{gap:26px;}
footer{padding:38px 0 26px;}
footer .wrap{gap:26px;}
.twocol{gap:28px;}
.sidebox{padding:22px 20px;}
}

/* ---------- CAPTURE GUIDES ---------- */
.gkick{display:block;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--signal-ink);margin-bottom:12px;}
.gtitle{font-size:clamp(2rem,4.4vw,3rem);color:var(--deep);font-weight:400;letter-spacing:-.035em;line-height:1;margin-bottom:16px;}
.glede{color:var(--grey);font-size:1.06rem;max-width:60ch;margin-bottom:8px;}
.gsec{font-family:var(--f-mono);font-size:.76rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--signal-ink);margin:42px 0 16px;padding-bottom:9px;border-bottom:1px solid var(--line);}
.gnote{color:var(--grey);font-size:.96rem;max-width:62ch;margin-bottom:18px;}
.gcheck{list-style:none;margin:0;padding:0;display:grid;gap:13px;}
.gcheck li{position:relative;padding-left:30px;max-width:64ch;}
.gcheck li::before{content:"";position:absolute;left:0;top:.42em;width:14px;height:14px;border:1.5px solid #b8c8d4;border-radius:2px;}
.gsteps{list-style:none;margin:0;padding:0;counter-reset:g;display:grid;gap:18px;}
.gsteps li{position:relative;padding-left:42px;counter-increment:g;max-width:64ch;}
.gsteps li::before{content:counter(g,decimal-leading-zero);position:absolute;left:0;top:.2em;font-family:var(--f-mono);font-size:.78rem;font-weight:600;color:var(--signal-ink);}
.gcheck b,.gsteps b{font-family:var(--f-mono);font-weight:500;font-size:.95em;background:#EEF3F7;padding:1px 5px;border-radius:2px;border-bottom:2px dotted #b8c8d4;}
.srcref{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--green);border:1px solid var(--green);padding:2px 7px;border-radius:2px;margin-left:5px;white-space:nowrap;}
.gstop{background:#FBE9E9;border-left:3px solid var(--rag-red);padding:18px 22px;border-radius:2px;}
.gstop ul{margin:0;padding-left:20px;display:grid;gap:9px;}
.gstop li::marker{color:var(--rag-red);}
.gstop strong{color:var(--rag-red);}
.glist{list-style:none;margin:0;padding:0;display:grid;gap:2px;}
.glist li{padding:14px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;}
.glist li:last-child{border-bottom:none;}
.glist a{color:var(--deep);font-weight:600;text-decoration:none;border-bottom:1px solid var(--signal);}
.glist a:hover{color:var(--signal-ink);}
.gready,.gsoon{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;padding:3px 9px;border-radius:2px;white-space:nowrap;}
.gready{color:var(--green);border:1px solid var(--green);}
.gsoon{color:var(--grey);border:1px solid var(--line);}
.gfine{margin-top:38px;padding-top:16px;border-top:1px solid var(--line);font-size:.84rem;color:var(--grey);max-width:70ch;}
@media(max-width:640px){.gcheck li,.gsteps li{max-width:none;}}

/* footer social icons — the .footerSocial button treatment already exists;
   these two rules only add the fill, since that sheet styles stroke */
.footerSocial svg{fill:#7C93A6;stroke:none;}
.footerSocial a:hover svg{fill:#fff;stroke:none;}

/* ===== NAV SERVICES MENU =====
   "Services" in the header used to mean only the seven core survey types,
   sitting as a peer next to Agriculture and Mapping — so the word promised
   everything and delivered a third of it. It is now one menu holding all
   nineteen, grouped. The panel is a sibling of .wrap rather than a child of
   the <ul>, because on narrow screens that <ul> becomes a horizontally
   scrolling strip with overflow:auto, which would clip a panel inside it. */
.navdropbtn{background:none;border:0;padding:0;font:inherit;font-size:.95rem;
  color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
.navdropbtn:hover,.navdropbtn[aria-expanded="true"]{color:var(--signal-text);}
.navdropbtn .chev{width:9px;height:9px;transition:transform .15s;flex:0 0 auto;}
.navdropbtn[aria-expanded="true"] .chev{transform:rotate(180deg);}
.navpanel{background:var(--panel);border-top:1px solid rgba(255,255,255,.1);
  box-shadow:0 18px 40px rgba(10,17,25,.35);}
.navpanel[hidden]{display:none;}
/* The panel's inner element also carries .wrap for the site's page gutter, and
   `nav .wrap` is a 64px-high flex row — more specific than a bare
   .navpanelinner, so it won the display and height and squashed the menu into
   the nav bar. Qualifying with .navpanel outranks it. */
.navpanel .navpanelinner{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;
  height:auto;align-items:start;justify-content:normal;
  padding-top:26px;padding-bottom:30px;}
.navcol h4{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--signal-text);margin-bottom:13px;font-weight:600;}
.navcol h4 a{color:inherit;}
.navcol h4 a:hover{color:#fff;}
.navcol ul{display:block;list-style:none;gap:0;font-size:inherit;}
.navcol li{margin-bottom:9px;}
.navcol a{color:#C6D3DC;font-size:.9rem;}
.navcol a:hover{color:#fff;}
@media(max-width:860px){
  .navpanel .navpanelinner{grid-template-columns:1fr;gap:24px;padding-top:20px;padding-bottom:24px;}
  .navcol li{margin-bottom:11px;}
}
