/* M2 Solutions site styles.
   Brand colours live in the :root block below. Swap them for the official
   palette when the brand pack arrives; nothing else needs to change. */

:root{
  --bg:#020703;
  --bg-2:#051009;
  --panel:#08160D;
  --panel-2:#0C1F13;
  --line:#143020;
  --line-2:#1E462E;
  --ink:#E8F5EC;
  --ink-2:#A2BFAB;
  --ink-3:#6E8E78;
  --accent:#3BEA62;        /* primary brand green, taken from the landing artwork */
  --accent-ink:#021207;    /* text on accent buttons */
  --accent-soft:rgba(59,234,98,.14);
  --delivery:#3BEA62;      /* Delivery department */
  --delivery-soft:rgba(59,234,98,.10);
  --software:#B8F36A;      /* Software department (lime) */
  --software-soft:rgba(184,243,106,.10);
  --leader:#C8D2D6;        /* directors, logo silver */
  --leader-soft:rgba(200,210,214,.08);
  --ok:#3BEA62;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono","Cascadia Mono","Segoe UI Mono",Menlo,Consolas,monospace;
  --radius:12px;
  --max:1160px;
  color-scheme:dark;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:20px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;background:var(--panel);padding:8px 12px;z-index:10}

/* Header */
.site-header{position:sticky;top:0;z-index:5;background:rgba(2,7,3,.84);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink)}
.brand:hover{text-decoration:none}
.brand img{height:52px;width:auto}
.nav{display:flex;gap:4px;flex-wrap:wrap}
.nav a{color:var(--ink-2);font-size:14px;padding:8px 12px;border-radius:8px}
.nav a:hover,.nav a[aria-current="page"]{color:var(--ink);background:var(--panel);text-decoration:none}

/* Type */
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
h1,h2,h3{line-height:1.1;letter-spacing:-.02em;text-wrap:balance;margin:0}
h1{font-size:clamp(36px,5vw,60px);font-weight:700}
h2{font-size:clamp(28px,3.6vw,40px);font-weight:700}
h3,.h3{font-size:19px;font-weight:600;line-height:1.2;letter-spacing:-.01em;margin:0}
.lede{font-size:clamp(17px,1.6vw,19px);color:var(--ink-2);max-width:60ch}
.muted{color:var(--ink-2)}
.section{padding-block:88px}
.section-head{display:grid;gap:12px;margin-bottom:40px;max-width:720px}
.section + .section{border-top:1px solid var(--line)}

/* Buttons */
.btns{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:10px;font-weight:600;font-size:15px;border:1px solid transparent}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 24px rgba(59,234,98,.35)}
.btn-primary:hover{filter:brightness(1.1)}
.btn-ghost{border-color:var(--line-2);color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink-3);background:var(--panel)}

/* Stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2)}
.stat{padding:22px 24px;border-left:1px solid var(--line)}
.stat:first-child{border-left:0}
.stat b{display:block;font-size:34px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stat span{font-size:14px;color:var(--ink-2)}

/* Services */
.depts-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.svc{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px;display:grid;gap:16px;align-content:start}
.svc .tag{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.svc.delivery .tag{color:var(--delivery)} .svc.software .tag{color:var(--software)}
.svc ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.svc li{display:grid;grid-template-columns:18px 1fr;gap:10px;color:var(--ink-2)}
.svc li strong{color:var(--ink);font-weight:600}
.svc li::before{content:"";width:8px;height:8px;margin-top:9px;border-radius:2px}
.svc.delivery li::before{background:var(--delivery)} .svc.software li::before{background:var(--software)}

/* Process */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:16px;counter-reset:step}
.steps li{counter-increment:step;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;display:grid;gap:8px;align-content:start;position:relative}
.steps li::before{content:counter(step,decimal-leading-zero);font-family:var(--mono);font-size:13px;color:var(--accent)}
.steps .who{font-family:var(--mono);font-size:12px;color:var(--ink-3)}
.steps p{margin:0;color:var(--ink-2);font-size:15px}

/* Leadership */
.leaders{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.leader{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px;display:grid;gap:14px;align-content:start}
.leader .photo{width:88px;height:88px;border-radius:50%;overflow:hidden;background:var(--panel-2);border:1px solid var(--line-2)}
.leader .photo img{width:100%;height:100%;object-fit:cover}
.leader .role{font-family:var(--mono);font-size:12.5px;color:var(--accent);letter-spacing:.04em}
.leader p{margin:0;color:var(--ink-2);font-size:15px}
.kind{display:inline-block;margin-left:8px;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line-2);color:var(--ink-3);border-radius:4px;padding:1px 6px;vertical-align:3px}

/* CTA + contact */
.cta{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;background:linear-gradient(120deg,var(--accent-soft),transparent 70%),var(--panel);border:1px solid var(--line);border-radius:20px;padding:36px}
.contact-list{display:grid;gap:4px;margin-top:12px;font-family:var(--mono);font-size:14px;color:var(--ink-2)}
.contact-list p{margin:0}

/* Footer */
.site-footer{border-top:1px solid var(--line);padding-block:32px;color:var(--ink-3);font-size:14px}
.site-footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* ---------- Team page ---------- */
.page-head{padding-block:64px 32px;border-bottom:1px solid var(--line);display:grid;gap:16px}
.counts{display:flex;gap:28px;flex-wrap:wrap;font-family:var(--mono);font-size:13px;color:var(--ink-2)}
.counts b{display:block;font-family:var(--sans);font-size:30px;font-weight:700;color:var(--ink);line-height:1.1;font-variant-numeric:tabular-nums}
.counts .d b{color:var(--delivery)} .counts .s b{color:var(--software)}

.org{display:flex;flex-direction:column;align-items:center}
.node{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 14px 8px 8px;color:var(--ink);min-width:0;max-width:100%}
.node:hover{border-color:var(--ink-3);text-decoration:none}
.node .av{width:40px;height:40px;flex:none;border-radius:50%}
.node .nm{display:block;font-weight:600;font-size:14px;line-height:1.25}
.node .rl{display:block;font-size:12.5px;color:var(--ink-2);line-height:1.3}
.node.head{border-width:2px}
.node.lead{border-color:var(--accent)}
.node.lead .av{width:48px;height:48px}
.stem{width:2px;height:24px;background:var(--line-2)}
.directors{display:flex;flex-direction:column;align-items:center;gap:12px;background:var(--leader-soft);border:1px solid var(--line);border-radius:14px;padding:16px 20px}
.directors .row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.group-label{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.depts{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:24px;width:100%;position:relative;padding-top:24px}
.depts::before{content:"";position:absolute;top:0;left:25%;right:25%;height:2px;background:var(--line-2)}
.dept{position:relative;border-radius:14px;padding:20px 16px 16px;display:flex;flex-direction:column;align-items:center;border:1px solid var(--line)}
.dept::before{content:"";position:absolute;top:-25px;left:50%;width:2px;height:24px;background:var(--line-2)}
.dept.delivery{background:var(--delivery-soft)} .dept.software{background:var(--software-soft)}
.delivery .group-label{color:var(--delivery)} .software .group-label{color:var(--software)}
.dept .group-label{margin-bottom:12px}
.delivery .node.head{border-color:var(--delivery)} .software .node.head{border-color:var(--software)}
.reports{list-style:none;margin:0;padding:0 0 0 18px;width:100%;max-width:360px;position:relative}
.reports::before{content:"";position:absolute;left:0;top:0;bottom:26px;width:2px;background:var(--line-2)}
.reports>li{position:relative;padding-top:10px}
.reports>li::before{content:"";position:absolute;left:-18px;top:36px;width:18px;height:2px;background:var(--line-2)}
.reports .reports{margin-left:26px;max-width:none;width:auto}

.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.filters button{font:500 13px var(--mono);padding:8px 14px;border-radius:999px;border:1px solid var(--line-2);background:var(--panel);color:var(--ink-2);cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:12px;scroll-margin-top:84px}
.card:target{outline:2px solid var(--accent);outline-offset:2px}
.card-top{display:flex;gap:14px;align-items:center}
.card .av{width:76px;height:76px;flex:none;border-radius:50%}
img.av{object-fit:cover;background:#08160D}
.card h3{font-size:20px}
.card .role{font-weight:500;font-size:14px}
.card.delivery .role{color:var(--delivery)} .card.software .role{color:var(--software)} .card.leadership .role{color:var(--accent)}
.card .id{font-family:var(--mono);font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.card .bio{margin:0;color:var(--ink-2);font-size:14.5px}
.tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.tags li{font-size:12.5px;padding:2px 9px;border-radius:6px;background:var(--panel-2);color:var(--ink-2);border:1px solid var(--line)}
dl.meta{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;margin-top:auto;padding-top:12px;border-top:1px solid var(--line);font-size:13px}
dl.meta dt{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding-top:2px}
dl.meta dd{margin:0;color:var(--ink)}
.status{display:inline-flex;align-items:center;gap:6px}
.status::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ok)}

@media (max-width:960px){
  .steps{grid-template-columns:1fr 1fr}
  .leaders{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .stats{grid-template-columns:1fr 1fr}
  .stat:nth-child(3){border-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
  .depts-2,.leaders,.steps{grid-template-columns:1fr}
  .depts{grid-template-columns:1fr;gap:28px;padding-top:28px}
  .depts::before{display:none}
  .dept::before{top:-29px;height:28px}
  .dept:nth-child(2)::before{display:none}
  .section{padding-block:64px}
  .nav a{padding:6px 8px}
}

/* ---------- Landing page ---------- */
body.landing{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;
  background-color:var(--bg);
  /* Jeff's artwork at full brightness: no darkening overlay (Jeff, 2026-09-28). */
  background-image:url("../brand/landing-background.jpg");
  background-image:image-set(url("../brand/landing-background.webp") type("image/webp"),url("../brand/landing-background.jpg") type("image/jpeg"));
  background-size:cover;background-position:center;background-repeat:no-repeat}
/* Tall screens (phones, portrait tablets) get the 9:16 artwork. */
@media (max-aspect-ratio:4/5){
  body.landing{background-image:url("../brand/landing-background-portrait.jpg");
    background-image:image-set(url("../brand/landing-background-portrait.webp") type("image/webp"),url("../brand/landing-background-portrait.jpg") type("image/jpeg"))}
}
.landing-header{display:flex;justify-content:center;padding-inline:20px;padding-block:18px}
.landing-header .nav{background:rgba(2,7,3,.55);border:1px solid var(--line);border-radius:12px;padding:4px;backdrop-filter:blur(8px);justify-content:center}
.landing-header .nav a{color:var(--ink)}
/* Phones: keep all five links on one row (Jeff, 2026-09-28). */
@media (max-width:520px){
  .landing-header{padding-inline:8px}
  .landing-header .nav{flex-wrap:nowrap;gap:0;padding:3px}
  .landing-header .nav a{font-size:clamp(11px,3.5vw,14px);padding:7px clamp(4px,1.6vw,8px);white-space:nowrap}
  /* Same one-line menu on the other pages. */
  .site-header .nav{flex-wrap:nowrap;gap:0}
  .site-header .nav a{font-size:clamp(11px,3.4vw,13px);padding:6px clamp(3px,1.3vw,8px);white-space:nowrap}
}
.landing-hero{flex:1;display:grid;place-items:center;padding-inline:20px;padding-block:32px}
.landing-logo{margin:0;width:100%;max-width:920px}
.landing-logo img{width:100%;height:auto;margin:0 auto;filter:drop-shadow(0 0 28px rgba(0,0,0,.85)) drop-shadow(0 0 60px rgba(59,234,98,.18))}
.landing-footer{text-align:center;padding-block:20px;padding-inline:20px;font-size:13px;color:var(--ink-2);text-shadow:0 1px 8px rgba(0,0,0,.9)}
@media (prefers-reduced-motion:no-preference){
  .landing-logo{animation:rise .9s ease-out both}
  @keyframes rise{from{opacity:.001;transform:translateY(12px)}to{opacity:1;transform:none}}
}

/* ---------- Sub pages ---------- */
.page-hero{border-bottom:1px solid var(--line);background-color:var(--bg);background-size:cover;background-position:right center;background-repeat:no-repeat}
.page-hero .wrap{display:grid;gap:16px;align-content:center;min-height:clamp(300px,38vw,440px);padding-block:56px}
.page-hero .lede{color:var(--ink)}
.page-hero h1{max-width:16ch}
.bg-services{background-image:linear-gradient(90deg,var(--bg) 0%,rgba(2,7,3,.85) 32%,rgba(2,7,3,.1) 70%),url("../brand/bg-services.svg")}
.bg-how{background-image:linear-gradient(90deg,var(--bg) 0%,rgba(2,7,3,.85) 32%,rgba(2,7,3,.1) 70%),url("../brand/bg-how.svg")}
.bg-leadership{background-image:linear-gradient(90deg,var(--bg) 0%,rgba(2,7,3,.85) 32%,rgba(2,7,3,.1) 70%),url("../brand/bg-leadership.svg")}
.bg-team{background-image:linear-gradient(90deg,var(--bg) 0%,rgba(2,7,3,.85) 32%,rgba(2,7,3,.1) 70%),url("../brand/bg-team.svg")}
.bg-contact{background-image:linear-gradient(90deg,var(--bg) 0%,rgba(2,7,3,.85) 32%,rgba(2,7,3,.1) 70%),url("../brand/bg-contact.svg")}
.page-body{padding-block:56px 88px;display:grid;gap:40px}
.page-body > .section:first-of-type{padding-top:0}
.contact-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px;max-width:560px}
.contact-details{display:grid;grid-template-columns:auto 1fr;gap:12px 24px;margin:0}
.contact-details dt{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding-top:3px}
.contact-details dd{margin:0;font-size:17px}
@media (max-width:720px){
  .page-hero{background-position:70% center}
  .page-hero .wrap{padding-block:40px}
}
