/*
Theme Name: TechNiek-IT
Theme URI: https://techniek-it.nl
Author: Niek Rozeboom
Description: Eigen thema voor TechNiek-IT – Nutanix-specialist in Groningen.
Version: 1.1
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: techniek-it
*/
/* Layout: single column site, split hero (pitch + spec sheet), service grid, numbered migration path, quiet EUC band, contact strip */
:root{
  --bg:#F4F6F9; --surface:#FFFFFF; --ink:#0E1A2B; --muted:#55627A; --line:#D6DDE7;
  --accent:#1A4A9C; --accent-ink:#FFFFFF; --signal:#8A6D00; --band:#E8EDF4;
  --brand:#012456; --brand-ink:#FFFFFF; --brand-muted:#9FB3D1; --brand-line:rgba(255,255,255,.14); --volt:#FFFF35; --chip:#2B5797; --ok:#5BD18B; --down:#FF7A7A;
  --display:"Archivo", "Arial Narrow", Arial, sans-serif;
  --body:"IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
  --mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;
  --wrap:72rem;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0A1424; --surface:#101D33; --ink:#E7EDF6; --muted:#9AA9C0; --line:#22314B;
  --accent:#8FB4FF; --accent-ink:#06122A; --signal:#FFFF35; --band:#0D1A2E;
  --brand:#012456; --brand-ink:#FFFFFF; --brand-muted:#9FB3D1; --brand-line:rgba(255,255,255,.14); --volt:#FFFF35; --chip:#2B5797; --ok:#5BD18B; --down:#FF7A7A; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0A1424; --surface:#101D33; --ink:#E7EDF6; --muted:#9AA9C0; --line:#22314B;
  --accent:#8FB4FF; --accent-ink:#06122A; --signal:#FFFF35; --band:#0D1A2E;
  --brand:#012456; --brand-ink:#FFFFFF; --brand-muted:#9FB3D1; --brand-line:rgba(255,255,255,.14); --volt:#FFFF35; --chip:#2B5797; --ok:#5BD18B; --down:#FF7A7A; 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(--body);font-size:1.0625rem;line-height:1.6}
a{color:var(--accent)}
a:focus-visible,.btn:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(16px,4vw,40px)}
h1,h2,h3{font-family:var(--display);font-stretch:85%;line-height:1.08;text-wrap:balance;margin:0}
h1{font-size:clamp(2.3rem,5.4vw,4rem);font-weight:800;letter-spacing:-.01em}
h2{font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:750}
h3{font-size:1.3rem;font-weight:700;font-stretch:95%}
p{margin:0;max-width:65ch}
.eyebrow{font-family:var(--mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.eyebrow::before{content:"> ";color:var(--accent);font-weight:500}

/* header */
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:var(--brand);border-bottom:1px solid var(--brand-line)}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.9rem;flex-wrap:wrap}
.logo{display:block;line-height:0}
.logo img{height:40px;width:auto;border-radius:5px;display:block}
nav ul{display:flex;gap:1.4rem;list-style:none;margin:0;padding:0;flex-wrap:wrap}
nav a{color:var(--brand-ink);text-decoration:none;font-size:.95rem;font-weight:500;font-family:var(--mono)}
nav a:hover{color:var(--volt)}

/* hero */
.hero{padding-block:clamp(3rem,8vw,6rem) clamp(2.5rem,6vw,4.5rem)}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);align-items:center}
.hero-copy{display:grid;gap:1.4rem;min-width:0}
.hero-copy p.lead{font-size:1.2rem;color:var(--muted)}
.ctas{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:.4rem}
.btn{display:inline-block;padding:.8rem 1.25rem;border-radius:6px;font-weight:600;text-decoration:none;font-size:1rem;border:1.5px solid var(--accent)}
.btn.primary{background:var(--accent);color:var(--accent-ink)}
.btn.ghost{color:var(--accent);background:transparent}
.btn:hover{filter:brightness(1.12)}
.contact .lines a:hover{color:var(--volt)}

.spec{background:var(--brand);color:var(--brand-ink);border:1px solid var(--brand);border-radius:10px;font-family:var(--mono);font-size:.88rem;min-width:0;overflow:hidden}
.spec-head{display:flex;justify-content:space-between;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--brand-line);color:var(--brand-muted);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
.spec-head .ok{color:var(--volt)}
.spec-head span:first-child::before{content:"> ";color:var(--volt)}
.spec dl{margin:0;display:grid;grid-template-columns:auto 1fr}
.spec dt,.spec dd{margin:0;padding:.6rem 1rem;border-bottom:1px solid var(--brand-line)}
.spec dt{color:var(--brand-muted)}
.spec dd{color:var(--brand-ink)}
.spec dl > :nth-last-child(-n+2){border-bottom:0}
.nodes{display:flex;gap:6px;padding:.9rem 1rem;border-top:1px solid var(--brand-line);align-items:center}
.nodes span{flex:1;height:30px;border:1px solid var(--brand-line);border-radius:3px;background:repeating-linear-gradient(0deg,rgba(255,255,255,.08) 0 5px,transparent 5px 8px);position:relative}
.nodes span::after{content:"";position:absolute;right:6px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--volt)}
.nodes small{flex:0 0 auto;color:var(--brand-muted);font-size:.75rem;padding-left:.4rem}

.proof{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;font-size:.95rem;color:var(--muted)}
.proof li{display:flex;align-items:center;gap:.5rem}
.proof li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);flex:0 0 auto}
.proof b{color:var(--ink);font-weight:600}
.exp-box{border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:8px;background:var(--surface);padding:clamp(1.4rem,3vw,2rem);display:grid;gap:1.2rem}
.exp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.exp-grid strong{font-family:var(--display);font-stretch:85%;font-size:1.6rem;font-weight:800;display:block;margin-bottom:.3rem}
.exp-grid p{color:var(--muted);font-size:.97rem}
@media (max-width:700px){.exp-grid{grid-template-columns:minmax(0,1fr)}}

/* HCI-visualisatie (altijd op logo-navy) */
.hci{background:var(--brand);color:var(--brand-ink)}
.hci .eyebrow{color:var(--brand-muted)}
.hci .eyebrow::before{color:var(--volt)}
.hci-head{display:grid;gap:.9rem;margin-bottom:2rem}
.hci-head p{color:var(--brand-muted);font-size:1.08rem}
.hci-tabs{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--brand-line);border-radius:8px;margin-bottom:1.2rem;flex-wrap:wrap}
.hci-tabs button{font:500 .9rem var(--mono);color:var(--brand-muted);background:transparent;border:0;border-radius:5px;padding:.55rem .9rem;cursor:pointer}
.hci-tabs button[aria-selected="true"]{background:var(--brand-ink);color:var(--brand)}
.hci-tabs button:focus-visible,.sim:focus-visible{outline:2px solid var(--volt);outline-offset:2px}
.hci-stage{border:1px solid var(--brand-line);border-radius:12px;padding:clamp(1rem,3vw,1.6rem);background:rgba(255,255,255,.03)}
.layer{font-family:var(--mono);font-size:.82rem;text-align:center;padding:.6rem .8rem;border:1px dashed var(--brand-line);border-radius:6px;color:var(--brand-muted)}
.cluster{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-block:.7rem}
.node{border:1px solid var(--brand-line);border-radius:8px;background:rgba(255,255,255,.05);padding:.7rem;display:grid;gap:.55rem;align-content:start;transition:opacity .5s,border-color .5s;min-width:0}
.node-head{display:flex;justify-content:space-between;align-items:center;font:500 .8rem var(--mono)}
.node-head .dot{width:8px;height:8px;border-radius:50%;background:var(--ok)}
.node.down{opacity:.38;border-color:var(--down)}
.node.down .dot{background:var(--down)}
.node .lbl{font:400 .68rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--brand-muted)}
.chips2{display:flex;flex-wrap:wrap;gap:4px;min-height:22px}
.vm{font:500 .7rem var(--mono);padding:.2rem .4rem;border-radius:3px;background:var(--chip);color:var(--brand-ink);transition:background .4s,color .4s}
.vm.moved{background:var(--volt);color:var(--brand)}
.cvm{font:500 .7rem var(--mono);text-align:center;padding:.25rem;border-radius:3px;border:1px solid var(--brand-muted);color:var(--brand-muted)}
.blocks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}
.blk{font:500 .68rem var(--mono);text-align:center;padding:.18rem 0;border-radius:2px;background:var(--brand-ink);color:var(--brand)}
.blk.rep{background:transparent;color:var(--brand-ink);box-shadow:inset 0 0 0 1px var(--brand-ink)}
.blk.rebuilt{box-shadow:inset 0 0 0 1px var(--volt);color:var(--volt)}
.blk.lost{background:transparent;box-shadow:inset 0 0 0 1px var(--down);color:var(--down)}
.hci-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-top:1rem}
.btn.sim{background:var(--volt);color:var(--brand);border-color:var(--volt);cursor:pointer;font-family:var(--body)}
.status{font:400 .88rem var(--mono);color:var(--brand-ink);min-width:0;flex:1 1 16rem}
.legend{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;font-size:.8rem;color:var(--brand-muted)}
.legend li{display:flex;align-items:center;gap:.4rem}
.lg{display:inline-block;width:14px;height:10px;border-radius:2px}
.lg.vm{background:var(--chip)} .lg.cvm{border:1px solid var(--brand-muted)} .lg.blk{background:var(--brand-ink)} .lg.rep{box-shadow:inset 0 0 0 1px var(--brand-ink)}
.tiers{display:grid;gap:1.6rem}
.tier{display:grid;gap:.5rem;position:relative}
.tier + .tier::before{content:"";position:absolute;left:50%;top:-1.6rem;height:1.6rem;border-left:1px dashed var(--brand-muted)}
.tier-label{font:400 .7rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--brand-muted)}
.tier-row{display:grid;grid-template-columns:minmax(0,1fr);gap:.6rem}
.tier-row.t4{grid-template-columns:repeat(4,minmax(0,1fr))}
.tier-row.t2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:60%;margin-inline:auto;width:100%}
.box{font:500 .8rem var(--mono);text-align:center;padding:.9rem .4rem;border:1px solid var(--brand-line);border-radius:6px;background:rgba(255,255,255,.05);min-width:0}
.box.wide{padding-block:1.4rem}
.hci-notes{margin:1.4rem 0 0;padding-left:1.1rem;display:grid;gap:.3rem;color:var(--brand-muted);font-size:.95rem}
.hci-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin-top:2rem}
.hci-points h3{color:var(--brand-ink);font-size:1.15rem;margin-bottom:.35rem}
.hci-points p{color:var(--brand-muted);font-size:.95rem}
@media (max-width:760px){
  .cluster{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hci-points{grid-template-columns:minmax(0,1fr)}
  .tier-row.t4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tier-row.t2{max-width:none}
}
@media (prefers-reduced-motion: reduce){.node,.vm{transition:none}}

/* sections */
section{padding-block:clamp(3rem,7vw,5.5rem)}
.sec-head{display:grid;gap:.8rem;margin-bottom:2.5rem}
.sec-head p{color:var(--muted);font-size:1.1rem}

.why{background:var(--band);border-block:1px solid var(--line)}
.why .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(1.5rem,5vw,4rem);align-items:start}
.why .body{display:grid;gap:1rem;min-width:0}

.services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.svc{background:var(--surface);padding:clamp(1.4rem,3vw,2rem);display:grid;gap:.7rem;align-content:start}
.svc .tag{font-family:var(--mono);font-size:.75rem;color:var(--signal);letter-spacing:.08em;text-transform:uppercase}
.svc p{color:var(--muted)}
.svc ul{margin:.2rem 0 0;padding-left:1.1rem;display:grid;gap:.25rem;font-size:.97rem}

.path{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;counter-reset:step}
.path li{counter-increment:step;display:grid;gap:.5rem;align-content:start;padding-top:1rem;border-top:3px solid var(--accent);min-width:0}
.path li::before{content:"Fase " counter(step);font-family:var(--mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.path h3{font-size:1.1rem}
.path p{font-size:.95rem;color:var(--muted)}

.euc .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,5vw,4rem);align-items:start}
.euc .body{display:grid;gap:1rem;min-width:0}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}
.chips li{font-family:var(--mono);font-size:.85rem;padding:.35rem .7rem;border:1px solid var(--line);border-radius:4px;background:var(--surface)}
.chips li.key{border-color:var(--accent);color:var(--accent)}
.stackgroup{display:grid;gap:1.4rem}
.stackgroup h3{font-size:.8rem;font-family:var(--mono);font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.6rem}

.about{background:var(--band);border-block:1px solid var(--line)}
.about .wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(1.5rem,5vw,4rem)}
.about .body{display:grid;gap:1rem;min-width:0}
.facts{display:grid;gap:0;margin:0;border-top:1px solid var(--line)}
.facts div{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line);font-size:.97rem}
.facts dt{color:var(--muted)} .facts dd{margin:0;text-align:right;font-weight:500}

.contact .box{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:2rem;align-items:center;background:var(--brand);color:var(--brand-ink);border-radius:12px;padding:clamp(1.8rem,5vw,3.2rem)}
.contact h2{color:var(--brand-ink)}
.contact h2::after{content:"_";color:var(--volt);margin-left:.1em}
.contact p{color:var(--brand-ink);opacity:.8;margin-top:.8rem}
.contact .lines{display:grid;gap:.8rem;font-family:var(--mono);font-size:.95rem;min-width:0}
.contact .lines a{color:var(--brand-ink);text-decoration:none;border-bottom:1px solid currentColor;word-break:break-all}
.contact .lines span{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;opacity:.65}

footer{padding-block:2rem;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem}
footer .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}

@media (max-width:900px){
  .hero .wrap,.why .wrap,.euc .wrap,.about .wrap,.contact .box{grid-template-columns:minmax(0,1fr)}
  .path{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .services,.path{grid-template-columns:minmax(0,1fr)}
  nav ul{gap:1rem}
}

/* WordPress-adminbalk (alleen zichtbaar als je ingelogd bent) */
.admin-bar header.top{top:32px}
@media (max-width:782px){.admin-bar header.top{top:46px}}
