/* ===========================================================
   ESTN Group — shared stylesheet
   Heavy-industry credibility. Orange as precise accent.
   =========================================================== */
:root{
  --orange:#F0761B;
  --orange-deep:#C85F14;
  --ink:#2B2B2B;
  --steel:#6B6E70;
  --white:#FFFFFF;
  --panel:#F5F4F2;
  --hair:#D9D9D9;
  --dark:#1C1C1E;
  --container:1320px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;color:var(--ink);background:var(--white);line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.cond{font-family:'Barlow Condensed','Inter',sans-serif;font-weight:700;line-height:1.05;letter-spacing:.01em}
.container{max-width:var(--container);margin:0 auto;padding:0 32px}
.eyebrow{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.14em;font-weight:600;font-size:14px;color:var(--orange-deep)}
a{color:inherit;text-decoration:none}
section{padding:104px 0}
.tabnum{font-variant-numeric:tabular-nums}
.band-dark{background:var(--dark);color:#fff}
.band-dark .sec-head p{color:#b9b9bc}
.band-panel{background:var(--panel)}

/* ---------- Header ---------- */
header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.1) blur(2px);border-bottom:1px solid var(--hair)}
.nav{display:flex;align-items:center;justify-content:space-between;height:78px}
.brand-logo{height:52px;width:auto;display:block}
.nav ul{display:flex;gap:30px;list-style:none;align-items:center}
.nav ul a{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.08em;font-weight:600;font-size:16px;color:var(--ink);padding-bottom:4px;border-bottom:2px solid transparent}
.nav ul a:hover,.nav ul a.active{color:var(--orange-deep);border-color:var(--orange)}
.btn{display:inline-block;font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.08em;font-weight:700;font-size:16px;padding:12px 22px;border-radius:4px;background:var(--orange);color:#fff;border:1px solid var(--orange);transition:background .15s;cursor:pointer}
.btn:hover{background:var(--orange-deep);border-color:var(--orange-deep)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.btn.lg{font-size:19px;padding:15px 30px}
.btn.ondark.ghost{color:#fff;border-color:#fff}
.btn.ondark.ghost:hover{background:#fff;color:var(--ink)}

/* ---------- Hero (home) ---------- */
.hero{position:relative;background:var(--dark);color:#fff;overflow:hidden;padding:96px 0 80px}
.grid-bg{position:absolute;inset:0;opacity:.16;background-image:linear-gradient(var(--orange) 1px,transparent 1px),linear-gradient(90deg,var(--orange) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(120% 90% at 78% 20%,#000 0%,transparent 68%);mask-image:radial-gradient(120% 90% at 78% 20%,#000 0%,transparent 68%)}
.hero .container{position:relative}
.hero h1{font-size:clamp(38px,4.7vw,58px);max-width:19ch;text-wrap:balance;margin:16px 0 0}
.hero h1 span{color:var(--orange)}
.hero p{max-width:60ch;color:#cfcfd1;font-size:18px;margin:20px 0 30px}
.cta-row{display:flex;gap:16px;flex-wrap:wrap}

/* ---------- Page hero (inner pages) ---------- */
.page-hero{position:relative;background:var(--dark);color:#fff;overflow:hidden;padding:96px 0 72px}
.page-hero .grid-bg{opacity:.13}
.page-hero .container{position:relative}
.page-hero h1{font-size:clamp(36px,4.8vw,58px);max-width:20ch;text-wrap:balance;margin:14px 0 0}
.page-hero p{max-width:60ch;color:#cfcfd1;font-size:18px;margin:18px 0 0}

/* ---------- Stat strip ---------- */
.stats{background:var(--panel);border-bottom:1px solid var(--hair);padding:0}
.stats .container{display:grid;grid-template-columns:repeat(3,1fr)}
.stat{padding:40px 24px;border-left:1px solid var(--hair)}
.stat:first-child{border-left:none}
.stat .num{font-family:'Barlow Condensed',sans-serif;font-weight:700;color:var(--orange);font-size:clamp(42px,4.4vw,60px);line-height:1}
.stat .lbl{font-size:15px;color:var(--steel);margin-top:6px;max-width:24ch}

/* ---------- Section heading ---------- */
.sec-head{max-width:64ch;margin-bottom:48px}
.sec-head h2{font-size:clamp(32px,4vw,42px);margin-top:10px}
.sec-head p{color:var(--steel);font-size:18px;margin-top:14px}

/* ---------- Track record cards ---------- */
.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.pcard{background:#242427;border:1px solid #333}
.pcard .photo{aspect-ratio:4/3;background:repeating-linear-gradient(135deg,#2f2f33 0 12px,#333338 12px 24px);display:flex;align-items:center;justify-content:center;color:#6b6e70;font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-family:'Barlow Condensed',sans-serif;text-align:center;padding:12px}
.pcard .facts{padding:20px 22px 24px}
.pcard .client{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:22px;color:#fff}
.pcard .loc{color:#9a9a9e;font-size:14px;margin:2px 0 16px}
.pcard .tons{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:30px;color:var(--orange);line-height:1}
.pcard .scope{color:#b9b9bc;font-size:14px;margin-top:4px}
.center-link{text-align:center;margin-top:44px}
.center-link a{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--orange);font-size:18px;border-bottom:2px solid var(--orange);padding-bottom:3px}
.footprint{display:flex;flex-wrap:wrap;gap:10px 12px;margin-top:8px}
.footprint span{font-size:14px;color:#cfcfd1;border:1px solid #3a3a3d;border-radius:3px;padding:6px 12px}

/* ---------- Location locator (client sites are secure — no photos) ---------- */
.pcard .geo{aspect-ratio:4/3;position:relative;background:#202023;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;overflow:hidden}
.pcard .geo .g{position:absolute;inset:0;background-image:linear-gradient(#34343a 1px,transparent 1px),linear-gradient(90deg,#34343a 1px,transparent 1px);background-size:26px 26px;opacity:.55;-webkit-mask-image:radial-gradient(120% 120% at 50% 42%,#000,transparent 82%);mask-image:radial-gradient(120% 120% at 50% 42%,#000,transparent 82%)}
.pcard .geo svg{position:relative;width:auto;height:46px}
.pcard .geo .coord{position:relative;font-family:ui-monospace,'Cascadia Code',Consolas,monospace;color:var(--orange);font-size:15px;letter-spacing:.02em;font-weight:600}
.pcard .geo .reg{position:relative;font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.12em;font-size:12px;color:#9a9a9e}

/* ---------- Region footprint grid ---------- */
.regiongrid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair)}
.regiongrid .rt{background:#fff;padding:26px 20px}
.regiongrid .rt .n{font-family:'Barlow Condensed',sans-serif;font-weight:700;color:var(--orange);font-size:42px;line-height:1;font-variant-numeric:tabular-nums}
.regiongrid .rt .r{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.07em;font-size:15px;margin-top:6px}
.regiongrid .rt .c{font-size:12.5px;color:var(--steel);margin-top:5px;line-height:1.4}

/* ---------- Network / entity list ---------- */
.network{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.entity-list{list-style:none;border-top:1px solid var(--hair)}
.entity-list li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:15px 2px;border-bottom:1px solid var(--hair)}
.entity-list .name{font-weight:600;font-size:16px}
.entity-list .name b{color:var(--orange-deep)}
.entity-list .meta{color:var(--steel);font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}
.map-note{background:var(--panel);border:1px solid var(--hair);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;color:var(--steel);text-align:center;padding:24px;font-size:14px}
.band-panel .map-note{background:#fff}

/* ---------- Why / value cards ---------- */
.why{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.whycard{background:#fff;border:1px solid var(--hair);border-top:4px solid var(--orange);padding:30px 26px 30px;display:flex;flex-direction:column}
.whycard .k{font-family:'Barlow Condensed',sans-serif;font-weight:700;color:var(--orange-deep);font-size:14px;letter-spacing:.1em;text-transform:uppercase}
.whycard h3{font-size:21px;margin:10px 0 10px}
.whycard p{color:var(--steel);font-size:15px;flex:1}
.whycard .pf{margin-top:14px;font-size:13.5px;color:var(--ink);border-top:1px solid var(--hair);padding-top:12px}
.whycard .pf b{color:var(--orange-deep)}

/* ---------- Capability cards (products) ---------- */
.cap{display:grid;grid-template-columns:1.25fr 1fr;gap:26px}
.capcard{background:#fff;border:1px solid var(--hair);padding:34px 34px 38px}
.capcard.primary{border-top:4px solid var(--orange)}
.capcard h3{font-size:26px}
.capcard .lead{color:var(--steel);margin:10px 0 18px;font-size:16px}
.capcard ul{list-style:none}
.capcard li{padding:9px 0;border-top:1px solid var(--hair);font-size:15px;display:flex;gap:10px}
.capcard li::before{content:"";width:7px;height:7px;background:var(--orange);margin-top:8px;flex:none}
.service-note{margin-top:22px;padding:18px 20px;background:var(--panel);border-left:3px solid var(--orange);font-size:15px}
.service-note b{color:var(--ink)}
.cap-note{margin-top:26px;color:var(--steel);font-size:14.5px;max-width:80ch}

/* ---------- Clients strip ---------- */
.clients-strip{text-align:center;padding:76px 0}
.clients-strip .lbl{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.12em;font-weight:600;font-size:15px;color:var(--steel);margin-bottom:26px}
.client-names{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 36px;align-items:center}
.client-names span{font-family:'Barlow Condensed',sans-serif;font-weight:600;font-size:24px;color:var(--ink);letter-spacing:.02em}

/* ---------- Quality steps ---------- */
.qc{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-bottom:48px}
.qcstep{border-top:3px solid var(--orange);padding-top:22px}
.qcstep .n{font-family:'Barlow Condensed',sans-serif;color:var(--orange);font-weight:700;font-size:15px;letter-spacing:.12em}
.qcstep h3{font-size:23px;margin:6px 0 10px}
.qcstep p{color:var(--steel);font-size:15px}
.cert-wrap{background:var(--panel);border:1px solid var(--hair);padding:34px}
.band-panel .cert-wrap{background:#fff}
.cert-wrap .lbl{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.1em;font-weight:600;font-size:14px;color:var(--steel);margin-bottom:16px}
.certs{display:flex;flex-wrap:wrap;gap:12px}
.certs span{font-family:'Barlow Condensed',sans-serif;font-weight:700;letter-spacing:.04em;font-size:17px;padding:12px 20px;border:1px solid var(--hair);background:#fff;color:var(--ink)}
.certs span b{color:var(--orange-deep)}
.std-line{margin-top:20px;font-size:14.5px;color:var(--steel)}
.std-line b{color:var(--ink)}

/* ---------- Generic columns ---------- */
.cols-3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.cols-2{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.valuecard{border-top:3px solid var(--orange);padding-top:20px}
.valuecard h3{font-size:22px;margin-bottom:8px}
.valuecard p{color:var(--steel);font-size:15px}

/* ---------- Prose ---------- */
.prose{max-width:70ch}
.prose p{font-size:17px;margin-bottom:18px;color:var(--ink)}
.prose p.lead{font-size:20px;color:var(--ink)}

/* ---------- Timeline (history) ---------- */
.timeline{list-style:none;border-left:2px solid var(--hair);margin-left:8px}
.timeline li{position:relative;padding:0 0 34px 34px}
.timeline li:last-child{padding-bottom:0}
.timeline li::before{content:"";position:absolute;left:-9px;top:4px;width:16px;height:16px;background:var(--orange);border:3px solid #fff;border-radius:50%}
.timeline .yr{font-family:'Barlow Condensed',sans-serif;font-weight:700;color:var(--orange-deep);font-size:22px;letter-spacing:.02em}
.timeline .ev{font-size:16px;color:var(--ink);margin-top:2px}
.timeline .ev b{font-weight:600}

/* ---------- Data table ---------- */
.table-wrap{overflow-x:auto;border:1px solid var(--hair)}
table.data{border-collapse:collapse;width:100%;min-width:640px;font-size:15px}
table.data th{background:var(--dark);color:#fff;text-align:left;font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.06em;font-weight:600;font-size:14px;padding:14px 18px}
table.data td{padding:14px 18px;border-top:1px solid var(--hair);vertical-align:top}
table.data tr:nth-child(even) td{background:var(--panel)}
table.data td .t{font-variant-numeric:tabular-nums;font-weight:600;color:var(--orange-deep);white-space:nowrap}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px}
.field{margin-bottom:18px}
.field label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1px solid var(--steel);border-radius:4px;font:inherit;font-size:15px;background:#fff;color:var(--ink)}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--orange);border-color:var(--orange)}
.contact-info h3{font-size:20px;margin-bottom:6px}
.contact-info address{font-style:normal;line-height:1.9;font-size:16px;margin-bottom:22px}
.contact-info a:hover{color:var(--orange-deep)}

/* ---------- Photo band ---------- */
.photoband{position:relative;min-height:440px;background-size:cover;background-position:center;display:flex;align-items:flex-end}
.photoband::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(28,28,30,.9),rgba(28,28,30,.4))}
.photoband .container{position:relative;z-index:1;width:100%}
.photoband .cap{color:#fff;padding:44px 0;max-width:60ch}
.photoband .cap h2{font-size:clamp(26px,3.2vw,38px);margin-top:8px;text-wrap:balance;color:#fff}
.photoband .cap p{color:#d7d7d9;margin-top:10px;font-size:16px}

/* ---------- Certificate gallery ---------- */
.certgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}
.certcard{border:1px solid var(--hair);background:#fff;padding:12px}
.certcard img{width:100%;height:auto;display:block;border:1px solid var(--hair)}
.certcard .cn{font-size:12px;color:var(--steel);margin-top:9px;text-align:center;font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.05em;line-height:1.3}

/* ---------- CTA band ---------- */
.ctaband{background:var(--dark);color:#fff;text-align:center;padding:96px 0}
.ctaband h2{font-size:clamp(30px,4vw,44px);text-wrap:balance;max-width:22ch;margin:0 auto 10px}
.ctaband p{color:#b9b9bc;font-size:18px;max-width:54ch;margin:0 auto 30px}

/* ---------- Footer ---------- */
footer{background:var(--dark);color:#c9c9cc;border-top:1px solid #333;padding:64px 0 40px}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1.2fr;gap:40px}
.flogo{height:60px;width:auto;margin-bottom:18px}
footer h4{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.1em;font-size:14px;color:#fff;margin-bottom:14px}
footer address{font-style:normal;font-size:15px;line-height:1.8}
footer ul{list-style:none}
footer ul li{font-size:14.5px;padding:5px 0}
footer a:hover{color:var(--orange)}
.fbottom{border-top:1px solid #333;margin-top:44px;padding-top:22px;font-size:13px;color:#7a7a7e;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}

/* ---------- Responsive ---------- */
@media(max-width:960px){
  .network,.cap,.contact-grid,.cols-2{grid-template-columns:1fr}
  .projects,.qc,.why,.cols-3{grid-template-columns:1fr 1fr}
  .fgrid,.regiongrid{grid-template-columns:1fr 1fr 1fr}
  .nav ul{display:none}
}
@media(max-width:640px){
  section{padding:72px 0}
  .container{padding:0 20px}
  .stats .container{grid-template-columns:1fr}
  .stat{border-left:none;border-top:1px solid var(--hair)}
  .stat:first-child{border-top:none}
  .projects,.qc,.fgrid,.why,.cols-3,.regiongrid{grid-template-columns:1fr 1fr}
}
