
:root{
  --graphite:#16181C;
  --steel:#2A2F36;
  --slate:#5A6472;
  --paper:#FFFFFF;
  --mist:#F2F4F6;
  --rule:#D8DDE3;
  --kg25:#C8102E;
  --kg20:#0057B8;
  --kg15:#FFB81C;
  --kg10:#00843D;
  --kg5:#B9BEC6;
  --shell:1240px;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
  --disp:"Archivo","Inter",system-ui,sans-serif;
  --body:"Inter",system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{margin:0;font-family:var(--body);font-size:16px;line-height:1.65;color:var(--graphite);background:var(--paper);}
img{max-width:100%;display:block;}
a{color:inherit;}
.shell{max-width:var(--shell);margin:0 auto;padding:0 28px;}
.skip{position:absolute;left:-9999px;}
.skip:focus{left:8px;top:8px;background:var(--graphite);color:#fff;padding:8px 14px;z-index:99;}
:focus-visible{outline:2px solid var(--kg20);outline-offset:2px;}

/* ---------- header ---------- */
.site-head{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--rule);}
.bar{background:var(--graphite);color:#A8B0BB;font-size:12px;font-family:var(--mono);}
.barflex{display:flex;justify-content:space-between;gap:16px;padding-top:7px;padding-bottom:7px;}
.bar a{color:#DDE3EA;text-decoration:none;}
.bar a:hover{color:#fff;}
.bar .sep{margin:0 10px;color:#4A535F;}
.headflex{display:flex;align-items:center;gap:24px;padding-top:14px;padding-bottom:14px;}
.brand{text-decoration:none;display:flex;flex-direction:column;line-height:1;}
.mark{font-family:var(--disp);font-weight:800;font-size:25px;letter-spacing:-.035em;}
.mark b{color:var(--kg25);font-weight:800;}
.brand .tag{font-family:var(--mono);font-size:9.5px;letter-spacing:.19em;text-transform:uppercase;color:var(--slate);margin-top:5px;}
.mainnav{margin-left:auto;}
.mainnav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0;}
.mainnav a{text-decoration:none;font-size:14.5px;font-weight:500;color:var(--steel);padding-bottom:3px;border-bottom:2px solid transparent;}
.mainnav a:hover,.mainnav a.on{border-bottom-color:var(--kg25);color:var(--graphite);}
.cta{background:var(--kg25);color:#fff;text-decoration:none;font-weight:600;font-size:14px;
  padding:11px 20px;letter-spacing:.02em;white-space:nowrap;}
.cta:hover{background:#A50D26;}
.burger{display:none;background:none;border:1px solid var(--rule);font-size:19px;padding:5px 11px;cursor:pointer;}
.codebar{display:flex;height:5px;}
.codebar i{flex:1;}
.codebar i[data-kg="25"]{background:var(--kg25);}
.codebar i[data-kg="20"]{background:var(--kg20);}
.codebar i[data-kg="15"]{background:var(--kg15);}
.codebar i[data-kg="10"]{background:var(--kg10);}
.codebar i[data-kg="5"]{background:var(--kg5);}

/* ---------- hero ---------- */
.hero{background:var(--graphite);color:#fff;padding:76px 0 0;}
.hero .shell{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:end;}
.eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--kg15);margin:0 0 20px;}
.hero h1{font-family:var(--disp);font-weight:800;font-size:clamp(38px,5.4vw,66px);line-height:1.02;
  letter-spacing:-.035em;margin:0 0 22px;}
.hero h1 em{font-style:normal;color:var(--kg25);}
.hero p.lede{font-size:18px;color:#C3CAD4;max-width:52ch;margin:0 0 30px;}
.herobtns{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:56px;}
.btn{display:inline-block;text-decoration:none;font-weight:600;font-size:14.5px;padding:13px 26px;}
.btn.primary{background:var(--kg25);color:#fff;}
.btn.primary:hover{background:#A50D26;}
.btn.ghost{border:1px solid #4A535F;color:#fff;}
.btn.ghost:hover{border-color:#fff;}
.herofig{border:1px solid #2E353E;background:#1C1F25;padding:22px;margin-bottom:56px;}
.herofig .ph{aspect-ratio:4/3;background:repeating-linear-gradient(45deg,#20242B,#20242B 12px,#1C1F25 12px,#1C1F25 24px);
  display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;}

/* ---------- trust strip ---------- */
.trust{background:var(--steel);color:#fff;}
.trust .shell{display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.trust div{padding:24px 26px 24px 0;border-right:1px solid #3B434D;}
.trust div:last-child{border-right:none;}
.trust b{display:block;font-family:var(--disp);font-size:29px;font-weight:800;letter-spacing:-.02em;line-height:1.1;}
.trust span{font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#9AA4B1;}

/* ---------- generic sections ---------- */
main{display:block;}
section.band{padding:76px 0;}
section.band.tint{background:var(--mist);}
.secthead{max-width:60ch;margin-bottom:36px;}
.secthead .eyebrow{color:var(--kg25);}
h2{font-family:var(--disp);font-weight:800;font-size:clamp(25px,3vw,36px);line-height:1.14;
  letter-spacing:-.025em;margin:0 0 14px;}
h3{font-family:var(--disp);font-weight:600;font-size:19px;letter-spacing:-.01em;margin:0 0 8px;}
p{margin:0 0 14px;}
.lead{font-size:17.5px;color:var(--slate);}

/* page header */
.pagehead{background:var(--mist);border-bottom:1px solid var(--rule);padding:44px 0 40px;}
.crumbs{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin:0 0 16px;}
.crumbs a{text-decoration:none;}
.crumbs a:hover{color:var(--kg25);}
.pagehead h1{font-family:var(--disp);font-weight:800;font-size:clamp(30px,4.2vw,50px);
  line-height:1.06;letter-spacing:-.032em;margin:0 0 14px;max-width:20ch;}
.pagehead p{max-width:66ch;color:var(--slate);font-size:17px;margin:0;}

/* cards */
.cards{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);}
.cards.c3{grid-template-columns:repeat(3,1fr);}
.cards.c2{grid-template-columns:repeat(2,1fr);}
.cards.c5{grid-template-columns:repeat(5,1fr);}
.card{background:var(--paper);padding:26px 24px 24px;text-decoration:none;display:block;transition:background .12s;}
.card:hover{background:var(--mist);}
.card .idx{font-family:var(--mono);font-size:11px;color:var(--slate);letter-spacing:.12em;}
.card h3{margin:10px 0 8px;}
.card p{font-size:14.5px;color:var(--slate);margin:0;}
.card .ph{aspect-ratio:4/3;background:var(--mist);border:1px dashed var(--rule);margin-bottom:16px;
  display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px;color:var(--slate);padding:12px;}

/* spec tables */
.spec{width:100%;border-collapse:collapse;font-size:14.5px;margin:18px 0 26px;}
.spec caption{text-align:left;font-family:var(--mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--slate);padding-bottom:9px;}
.spec th,.spec td{border:1px solid var(--rule);padding:9px 12px;text-align:left;vertical-align:top;}
.spec thead th{background:var(--graphite);color:#fff;font-size:12.5px;font-weight:600;letter-spacing:.02em;}
.spec tbody th{background:var(--mist);font-weight:600;width:34%;}
.spec td{font-family:var(--mono);font-size:13.5px;}
.spec tr:nth-child(even) td{background:#FAFBFC;}

/* colour code legend */
.codelegend{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin:22px 0;}
.codelegend div{background:#fff;padding:0 0 16px;text-align:center;}
.codelegend i{display:block;height:9px;margin-bottom:14px;}
.codelegend b{display:block;font-family:var(--disp);font-size:22px;font-weight:800;letter-spacing:-.02em;}
.codelegend span{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);}

/* steps */
.steps{counter-reset:s;display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);}
.step{background:#fff;padding:24px 26px;display:grid;grid-template-columns:64px 1fr 190px;gap:20px;align-items:start;}
.step .n{counter-increment:s;font-family:var(--mono);font-size:12px;color:var(--kg25);letter-spacing:.1em;}
.step .n::before{content:"0" counter(s);font-family:var(--disp);font-size:30px;font-weight:800;display:block;color:var(--graphite);letter-spacing:-.03em;}
.step .when{font-family:var(--mono);font-size:12.5px;color:var(--slate);border-left:2px solid var(--kg15);padding-left:14px;}
.step p{font-size:14.5px;color:var(--slate);margin:0;}

/* lists */
ul.ticks{list-style:none;padding:0;margin:14px 0;}
ul.ticks li{padding-left:22px;position:relative;margin:9px 0;font-size:15px;}
ul.ticks li::before{content:"";position:absolute;left:0;top:9px;width:9px;height:9px;background:var(--kg10);}

/* faq */
.faq dl{margin:0;border-top:1px solid var(--rule);}
.faq dt{font-weight:600;font-size:16.5px;padding:20px 0 6px;border-top:1px solid var(--rule);}
.faq dt:first-of-type{border-top:none;}
.faq dd{margin:0 0 18px;color:var(--slate);font-size:15px;max-width:78ch;}

/* forms */
.quoteform{background:var(--graphite);color:#fff;padding:52px 0;}
.quoteform.compact{padding:40px 0;}
.quoteform > *{max-width:var(--shell);margin-left:auto;margin-right:auto;padding-left:28px;padding-right:28px;}
.qf-head h2{margin-bottom:10px;}
.qf-head p{color:#B4BCC7;max-width:62ch;}
.quoteform form{display:block;margin-top:26px;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.quoteform label{display:block;font-size:13px;font-family:var(--mono);letter-spacing:.06em;
  text-transform:uppercase;color:#9AA4B1;margin-bottom:16px;}
.quoteform label span{color:var(--kg25);}
.quoteform input,.quoteform select,.quoteform textarea{width:100%;margin-top:7px;background:#1E222A;
  border:1px solid #39414C;color:#fff;padding:11px 13px;font-family:var(--body);font-size:15px;
  text-transform:none;letter-spacing:0;}
.quoteform textarea{resize:vertical;}
.quoteform input:focus,.quoteform select:focus,.quoteform textarea:focus{border-color:var(--kg20);outline:none;}
.quoteform label.check{display:flex;align-items:center;gap:9px;}
.quoteform label.check input{width:auto;margin:0;}
.quoteform button{background:var(--kg25);color:#fff;border:none;font-weight:600;font-size:15px;
  padding:14px 34px;cursor:pointer;font-family:var(--body);}
.quoteform button:hover{background:#A50D26;}
.formnote{font-size:12.5px;color:#79838F;margin-top:14px;}

/* downloads */
.dl{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);}
.dlrow{background:#fff;padding:18px 24px;display:grid;grid-template-columns:1fr 130px 150px;gap:18px;align-items:center;}
.dlrow b{font-size:15.5px;font-weight:600;}
.dlrow p{margin:3px 0 0;font-size:13.5px;color:var(--slate);}
.dlrow .fmt{font-family:var(--mono);font-size:12px;color:var(--slate);}
.dlrow a.get{text-decoration:none;border:1px solid var(--graphite);padding:9px 16px;font-size:13.5px;
  font-weight:600;text-align:center;}
.dlrow a.get:hover{background:var(--graphite);color:#fff;}

/* todo marker */
.todo{background:#FFF3D6;border-bottom:1.5px dashed #C08A14;color:#7A5405;padding:1px 5px;
  font-size:.92em;white-space:normal;}
.todo em{font-style:normal;font-family:var(--mono);font-size:.82em;letter-spacing:.05em;opacity:.75;}

/* callout */
.callout{border-left:3px solid var(--kg20);background:var(--mist);padding:20px 24px;margin:26px 0;}
.callout p:last-child{margin-bottom:0;}

/* footer */
.site-foot{background:var(--graphite);color:#A8B0BB;padding:58px 0 0;margin-top:0;}
.footgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;padding-bottom:44px;}
.site-foot .mark{color:#fff;font-size:23px;display:block;margin-bottom:14px;}
.footgrid p{font-size:14px;max-width:44ch;}
.footgrid .addr{font-size:12.5px;color:#79838F;margin-top:16px;}
.fcol h3{color:#fff;font-size:12px;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px;}
.fcol ul{list-style:none;margin:0;padding:0;}
.fcol li{margin:8px 0;}
.fcol a{text-decoration:none;font-size:14px;}
.fcol a:hover{color:#fff;}
.footend{border-top:1px solid #2A3038;padding-top:20px;padding-bottom:26px;display:flex;
  justify-content:space-between;gap:20px;font-size:11.5px;font-family:var(--mono);color:#69727E;flex-wrap:wrap;}

@media(max-width:1000px){
  .hero .shell{grid-template-columns:1fr;gap:30px;}
  .herofig{margin-bottom:40px;}
  .trust .shell{grid-template-columns:1fr 1fr;}
  .trust div{border-bottom:1px solid #3B434D;}
  .cards.c3,.cards.c5{grid-template-columns:1fr 1fr;}
  .footgrid{grid-template-columns:1fr 1fr;}
  .step{grid-template-columns:56px 1fr;}
  .step .when{grid-column:2;border-left:none;border-top:2px solid var(--kg15);padding:10px 0 0;}
}
@media(max-width:720px){
  .mainnav{display:none;width:100%;order:3;}
  .mainnav.open{display:block;}
  .mainnav ul{flex-direction:column;gap:0;}
  .mainnav li{border-top:1px solid var(--rule);}
  .mainnav a{display:block;padding:13px 0;border-bottom:none;}
  .headflex{flex-wrap:wrap;}
  .burger{display:block;margin-left:auto;}
  .cta{order:2;}
  .barflex{flex-direction:column;gap:4px;}
  .cards.c3,.cards.c5,.cards.c2{grid-template-columns:1fr;}
  .grid2{grid-template-columns:1fr;}
  .codelegend{grid-template-columns:1fr 1fr;}
  .dlrow{grid-template-columns:1fr;}
  section.band{padding:52px 0;}
  .footgrid{grid-template-columns:1fr;}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto;}}
