/* ===========================================================================
   PACS Solutions — site stylesheet
   Navy / steel / white with signal-green + safety-orange accents.
   Archivo (display) · IBM Plex Sans (body) · IBM Plex Mono (labels/data)
   =========================================================================== */

:root{
  color-scheme: light;
  --navy:#0C2340;
  --navy-deep:#081A2F;
  --navy-800:#12305A;
  --ink:#0E1A24;
  --paper:#F3F6F9;
  --paper-2:#E9EEF3;
  --white:#FFFFFF;
  --steel:#7C8A9B;
  --steel-2:#5A6675;
  --line:#D2DBE4;
  --line-navy:#1F3B5C;
  --green:#00C389;
  --green-ink:#04231A;
  --green-bright:#2AE6A9;
  --orange:#FF6A1A;

  --maxw:1180px;
  --gut:clamp(20px,5vw,64px);
  --sec:clamp(60px,9vw,116px);

  --f-display:"Archivo",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --f-sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --s-1:.8rem;
  --s0:1rem;
  --s1:1.15rem;
  --s2:1.4rem;
  --s3:1.85rem;
  --s4:clamp(1.9rem,4vw,2.7rem);
  --s5:clamp(2.5rem,6.2vw,4.3rem);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--f-sans);
  font-size:var(--s0);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

a{color:inherit;text-decoration:none}
img,svg{max-width:100%;display:block}
::selection{background:var(--green);color:var(--green-ink)}
:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:2px}

.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}
.prose{max-width:62ch}
.tnum{font-variant-numeric:tabular-nums}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:100;background:var(--green);color:var(--green-ink);padding:10px 16px;font-family:var(--f-mono);font-size:.8rem}

/* ---------- type ---------- */
h1,h2,h3,h4{font-family:var(--f-display);font-weight:700;line-height:1.08;letter-spacing:-.02em;text-wrap:balance}
.display{font-size:var(--s5);font-weight:800;letter-spacing:-.03em}
.h2{font-size:var(--s4);margin-bottom:.5em}
.h3{font-size:var(--s2);font-weight:600;letter-spacing:-.01em}
.lead{font-size:var(--s1);color:var(--steel-2);max-width:58ch}
.band--navy .lead{color:#AEC0D4}

.eyebrow{
  font-family:var(--f-mono);font-size:var(--s-1);font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--steel-2);
  display:inline-flex;align-items:center;gap:12px;margin-bottom:22px;
}
.eyebrow::before{content:"";width:24px;height:2px;background:var(--green);flex:none}
.band--navy .eyebrow{color:var(--green-bright)}
.band--navy .eyebrow::before{background:var(--green)}

/* ---------- bands ---------- */
.band{padding-block:var(--sec);position:relative}
.band--white{background:var(--white)}
.band--paper{background:var(--paper)}
.band--paper2{background:var(--paper-2)}
.band--navy{background:var(--navy);color:#EAF1F8}
.band--navy h1,.band--navy h2,.band--navy h3{color:#fff}
.band + .band{border-top:1px solid var(--line)}
.band--navy + .band,.band + .band--navy{border-top:0}

/* ---------- header ---------- */
header.site{
  position:sticky;top:0;z-index:50;background:var(--navy-deep);
  border-bottom:1px solid var(--line-navy);
}
header.site::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--green)}
.bar{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:12px;color:#fff}
.brand b{font-family:var(--f-display);font-weight:800;font-size:1.15rem;letter-spacing:.02em}
.brand i{width:1px;height:20px;background:var(--green);display:block}
.brand span{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.24em;color:#9FB4C9}
nav.main{display:flex;gap:2px}
nav.main a{
  font-family:var(--f-mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;
  color:#B7C6D6;padding:9px 12px;border:1px solid transparent;transition:color .15s,border-color .15s;
}
nav.main a:hover{color:#fff}
nav.main a[aria-current="page"]{color:#fff;border-color:var(--line-navy);border-bottom-color:var(--green)}
.navtoggle{display:none;background:none;border:1px solid var(--line-navy);color:#fff;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;padding:8px 12px;text-transform:uppercase;cursor:pointer}

@media (max-width:1000px){
  nav.main{
    position:absolute;left:0;right:0;top:64px;background:var(--navy-deep);
    flex-direction:column;gap:0;padding:8px var(--gut) 16px;border-bottom:1px solid var(--line-navy);
    display:none;
  }
  nav.main.open{display:flex}
  nav.main a{padding:12px 4px;border:0;border-bottom:1px solid var(--line-navy)}
  nav.main a[aria-current="page"]{border-color:var(--line-navy);color:var(--green-bright)}
  .navtoggle{display:block}
}

/* ---------- buttons ---------- */
.btns{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.btn{
  font-family:var(--f-mono);font-size:.8rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  padding:14px 24px;border:1px solid var(--green);display:inline-flex;align-items:center;gap:10px;
  transition:background .15s,color .15s,transform .15s;
}
.btn::after{content:"→";font-family:var(--f-sans)}
.btn--primary{background:var(--green);color:var(--green-ink)}
.btn--primary:hover{background:var(--green-bright);border-color:var(--green-bright)}
.btn--ghost{background:transparent;color:inherit;border-color:currentColor}
.band--navy .btn--ghost{border-color:#3C5C82}
.btn--ghost:hover{border-color:var(--green);color:var(--green)}
.band--navy .btn--ghost:hover{color:var(--green-bright)}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center}
.hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(8,20,35,.82) 0%,rgba(10,26,47,.78) 45%,rgba(12,35,64,.9) 100%),
             linear-gradient(90deg,rgba(8,20,35,.9) 0%,rgba(8,20,35,.28) 70%);
}
.hero .blueprint{
  position:absolute;inset:0;z-index:-1;opacity:.22;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:34px 34px;
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 30% 20%,#000,transparent 75%);
          mask-image:radial-gradient(ellipse 80% 70% at 30% 20%,#000,transparent 75%);
}
.hero .wrap{position:relative}
.hero .display{max-width:16ch}
.hero-home .display{max-width:20ch}
.statstrip{
  margin-top:40px;display:flex;flex-wrap:wrap;gap:8px 34px;
  font-family:var(--f-mono);font-size:var(--s-1);letter-spacing:.05em;color:#9FB4C9;
  padding-top:22px;border-top:1px solid var(--line-navy);
}
.statstrip b{color:#fff;font-weight:600}

.hero-home::before{background-image:url("img/hero.jpg")}
.hero-solutions::before{background-image:url("img/panelwork.jpg")}
.hero-industries::before{background-image:url("img/brewmaster.jpg")}
.hero-products::before{background-image:url("img/controlroom.jpg")}
.hero-delivery::before{background-image:url("img/workers.jpg")}
.hero-insights::before{background-image:url("img/tankdetail.jpg")}
.hero-about::before{background-image:url("img/digester.jpg")}
.hero-contact::before{background-image:url("img/refinery.jpg")}

/* ---------- process schematic ---------- */
.schematic{margin-top:52px;width:100%;height:auto}
.schematic text{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;fill:#8EA6C0}
.schematic .node{fill:none;stroke:#4C688C;stroke-width:1.4}
.schematic .pipe{fill:none;stroke:#5E7BA0;stroke-width:1.6}
.schematic .tick{stroke:var(--green);stroke-width:2}
.schematic .flow{fill:var(--green-bright)}
@media (prefers-reduced-motion:no-preference){.schematic .flow{animation:flow 6s linear infinite}}
@keyframes flow{
  0%{transform:translateX(0);opacity:0}
  6%{opacity:1}
  94%{opacity:1}
  100%{transform:translateX(1020px);opacity:0}
}

/* ---------- media ---------- */
.media{
  aspect-ratio:4/3;border:1px solid var(--line);
  background-size:cover;background-position:center;position:relative;
}
.band--navy .media{border-color:var(--line-navy)}
.media::before,.media::after{content:"";position:absolute;width:14px;height:14px;border:2px solid var(--green)}
.media::before{left:-1px;top:-1px;border-right:0;border-bottom:0}
.media::after{right:-1px;bottom:-1px;border-left:0;border-top:0}
.m-brew{background-image:url("img/brewhouse.jpg")}
.m-bottling{background-image:url("img/bottling.jpg")}
.m-workers{background-image:url("img/workers.jpg")}
.m-multi{background-image:url("img/multimeter.jpg")}
.m-serverblue{background-image:url("img/serverblue.jpg")}
.m-panel{background-image:url("img/panel-terminals.jpg")}
.m-controlroom{background-image:url("img/controlroom.jpg")}

/* ---------- industry image cards ---------- */
.icards{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:44px;grid-template-columns:repeat(3,1fr)}
.icard{background:var(--white);display:flex;flex-direction:column}
.icard__img{aspect-ratio:16/10;background-size:cover;background-position:center;background-color:var(--paper-2)}
.icard__b{padding:22px 22px 26px}
.icard .k{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.12em;color:var(--green);margin-bottom:10px;display:block}
.icard h3{margin-bottom:6px}
.icard p{font-size:.92rem;color:var(--steel-2)}
.ic-brew{background-image:url("img/brewhouse.jpg")}
.ic-food{background-image:url("img/foodline.jpg")}
.ic-dairy{background-image:url("img/dairy.jpg")}
.ic-chem{background-image:url("img/refinery.jpg")}
.ic-bio{background-image:url("img/digester.jpg")}
.ic-more{background-image:url("img/brewfill.jpg")}
@media (max-width:900px){.icards{grid-template-columns:1fr 1fr}}

/* ---------- partner logo wall ---------- */
.logos{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:40px}
.logos > *{background:var(--white);aspect-ratio:2.6/1;display:grid;place-items:center;padding:18px 20px}
.band--paper .logos > *,.band--paper2 .logos > *{background:var(--paper)}
.logos img{max-height:46px;max-width:100%;width:auto;object-fit:contain;filter:grayscale(1) contrast(.9);opacity:.72;transition:filter .2s,opacity .2s}
.logos a:hover img,.logos > *:hover img{filter:none;opacity:1}
.logos .ph{font-family:var(--f-mono);font-size:.82rem;font-weight:500;letter-spacing:.12em;color:var(--steel);text-transform:uppercase}
@media (max-width:700px){.logos{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.icards{grid-template-columns:1fr}}

/* ---------- grids & cards ---------- */
.grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:44px}
.grid.c2{grid-template-columns:repeat(2,1fr)}
.grid.c3{grid-template-columns:repeat(3,1fr)}
.grid.c4{grid-template-columns:repeat(4,1fr)}
.cell{background:var(--white);padding:28px 26px}
.band--paper .cell,.band--paper2 .cell{background:var(--paper)}
.band--navy .grid{background:var(--line-navy);border-color:var(--line-navy)}
.band--navy .cell{background:var(--navy)}
.cell .k{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.12em;color:var(--green);margin-bottom:14px}
.cell h3{margin-bottom:8px}
.cell p{font-size:.95rem;color:var(--steel-2)}
.band--navy .cell p{color:#A9BCD0}
@media (max-width:900px){.grid.c4{grid-template-columns:repeat(2,1fr)}.grid.c3{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.grid.c2,.grid.c3,.grid.c4{grid-template-columns:1fr}}

/* ---------- tick list ---------- */
.ticklist{list-style:none;margin-top:26px;display:grid;gap:14px;max-width:60ch}
.ticklist li{position:relative;padding-left:26px}
.ticklist li::before{content:"";position:absolute;left:0;top:.6em;width:12px;height:2px;background:var(--green)}
.ticklist b{font-weight:600}
.ticklist.two{max-width:none}
@media (min-width:720px){.ticklist.two{grid-template-columns:1fr 1fr;gap:14px 40px}}

/* ---------- numbered steps ---------- */
.steps{list-style:none;margin-top:44px;counter-reset:s;border-top:1px solid var(--line)}
.band--navy .steps{border-color:var(--line-navy)}
.steps li{counter-increment:s;display:grid;grid-template-columns:64px 1fr;gap:18px;padding:22px 0;border-bottom:1px solid var(--line)}
.band--navy .steps li{border-color:var(--line-navy)}
.steps li::before{content:counter(s,decimal-leading-zero);font-family:var(--f-mono);font-size:.85rem;color:var(--green);font-weight:600;padding-top:3px}
.steps h3{font-size:var(--s1);margin-bottom:4px}
.steps p{color:var(--steel-2);font-size:.95rem}
.band--navy .steps p{color:#A9BCD0}

/* ---------- split ---------- */
.split{display:grid;gap:44px;align-items:start}
@media (min-width:860px){.split{grid-template-columns:1.05fr .95fr;gap:64px}.split.wide-left{grid-template-columns:1fr}}

.cta .h2{max-width:18ch}

/* ---------- big stats ---------- */
.bigstats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-navy);border:1px solid var(--line-navy);margin-top:44px}
.bigstats div{background:var(--navy);padding:24px}
.bigstats .n{font-family:var(--f-display);font-weight:700;font-size:var(--s3);color:#fff;letter-spacing:-.02em}
.bigstats .l{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#8EA6C0;margin-top:6px}
@media (max-width:760px){.bigstats{grid-template-columns:1fr 1fr}}

/* ---------- tech row ---------- */
.techrow{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.techrow span{font-family:var(--f-mono);font-size:.78rem;letter-spacing:.03em;padding:9px 14px;border:1px solid var(--line);background:var(--white);color:var(--steel-2)}
.band--navy .techrow span{border-color:var(--line-navy);background:var(--navy-deep);color:#A9BCD0}

/* ---------- form ---------- */
form.enq{margin-top:44px;display:grid;gap:20px;max-width:640px}
form.enq .row{display:grid;gap:20px}
@media (min-width:620px){form.enq .row{grid-template-columns:1fr 1fr}}
form.enq label{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--steel-2);display:block;margin-bottom:8px}
form.enq input,form.enq select,form.enq textarea{
  width:100%;font-family:var(--f-sans);font-size:.95rem;padding:12px 14px;
  border:1px solid var(--line);background:var(--white);color:var(--ink);border-radius:0;
}
form.enq textarea{min-height:130px;resize:vertical}
form.enq input:focus,form.enq select:focus,form.enq textarea:focus{outline:2px solid var(--green);outline-offset:0;border-color:var(--green)}
.hp{position:absolute;left:-9999px}
.formnote{font-family:var(--f-mono);font-size:.72rem;color:var(--steel-2);letter-spacing:.04em;margin-top:4px}
.formstatus{margin-top:16px;font-family:var(--f-mono);font-size:.8rem;padding:12px 14px;display:none}
.formstatus.ok{display:block;background:rgba(0,195,137,.12);border-left:2px solid var(--green);color:var(--green-ink)}
.formstatus.err{display:block;background:rgba(255,106,26,.12);border-left:2px solid var(--orange);color:#7a3000}

.contactgrid{display:grid;gap:44px}
@media (min-width:900px){.contactgrid{grid-template-columns:1fr 340px;gap:64px}}
.details{font-family:var(--f-mono);font-size:.86rem;line-height:2;color:var(--steel-2)}
.details b{display:block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin-top:22px}
.details b:first-child{margin-top:0}
.details a:hover{color:var(--green)}

.mapembed{border:1px solid var(--line);margin-top:30px;width:100%;aspect-ratio:4/3;filter:grayscale(.25)}

/* ---------- article list ---------- */
.articles{list-style:none;margin-top:44px;border-top:1px solid var(--line)}
.articles li{border-bottom:1px solid var(--line);padding:26px 0;display:grid;gap:6px}
.articles .m{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--green)}
.articles h3{font-size:var(--s2);font-weight:600}
.articles p{color:var(--steel-2);font-size:.95rem;max-width:64ch}

/* ---------- footer ---------- */
footer.site{background:var(--navy-deep);color:#9FB4C9;border-top:2px solid var(--green);padding-block:56px 30px}
.fgrid{display:grid;gap:38px}
@media (min-width:820px){.fgrid{grid-template-columns:1.4fr 1fr 1.3fr 1fr}}
footer.site h4{font-family:var(--f-mono);font-weight:500;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#6C8299;margin-bottom:16px}
footer.site a{display:block;padding:5px 0;font-size:.9rem;color:#B7C6D6}
footer.site a:hover{color:var(--green-bright)}
.fbadge{font-family:var(--f-mono);font-size:.76rem;line-height:1.7;color:#B7C6D6}
.fbadge s{display:block;text-decoration:none;color:var(--green-bright);letter-spacing:.06em}
.fbot{margin-top:44px;padding-top:22px;border-top:1px solid var(--line-navy);display:flex;flex-wrap:wrap;gap:8px 24px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.04em;color:#6C8299}

.backlink{font-family:var(--f-mono);font-size:.76rem;letter-spacing:.06em;color:var(--green);display:inline-flex;gap:8px;margin-top:8px}
.backlink::before{content:"←"}

@media (max-width:560px){
  :root{--s5:2.5rem;--s4:2rem}
}

/* ---------- scroll reveal (opt-in; only hides once JS confirms it can reveal) ---------- */
@media (prefers-reduced-motion:no-preference){
  html.reveal-ready .reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
  html.reveal-ready .reveal.in{opacity:1;transform:none}
}
