/* Impeccable Tech · site styles · Direction B "Tick" */
@font-face{font-family:"Inter";src:url(../fonts/Inter-Regular.woff) format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url(../fonts/Inter-Medium.woff) format("woff");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url(../fonts/Inter-SemiBold.woff) format("woff");font-weight:600 700;font-display:swap}
@font-face{font-family:"Inter Display";src:url(../fonts/InterDisplay-Medium.woff) format("woff");font-weight:500;font-display:swap}
@font-face{font-family:"Inter Display";src:url(../fonts/InterDisplay-SemiBold.woff) format("woff");font-weight:600 700;font-display:swap}
@font-face{font-family:"Brand Mono";src:url(../fonts/DejaVuSansMono.woff) format("woff");font-weight:400;font-display:swap}

:root{
  --graphite:#0F1720; --paper:#F4F5F2; --white:#FFFFFF; --steel:#566370; --steel-2:#6B7680;
  --rule:#D3D7D1; --rule-dark:#2B343B; --ink-2:#2A3540; --accent:#C8430E; --accent-dark:#A9370A;
  --on-dark:#C9D0CC; --on-dark-mut:#8C979F;
  --f-display:"Inter Display","Inter",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --f-body:"Inter",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --f-mono:"Brand Mono",ui-monospace,Menlo,Consolas,monospace;
  --wrap:1200px; --gut:clamp(20px,5vw,72px);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--paper);color:var(--graphite);font:400 17px/1.6 var(--f-body);font-feature-settings:"ss01" off;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;display:block}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:600;letter-spacing:-.025em;line-height:1.08;margin:0;text-wrap:balance}
p,ul,ol{margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gut)}
.label{font:400 12px/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--steel)}
.label.accent{color:var(--accent)}
.skip{position:absolute;left:-999px;top:8px;background:var(--graphite);color:var(--paper);padding:8px 14px;z-index:100}
.skip:focus{left:8px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 20px;font:500 15px/1.2 var(--f-body);text-decoration:none;border:1px solid var(--graphite);background:var(--graphite);color:var(--paper);cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.ghost{background:transparent;color:var(--graphite)}
.btn.ghost:hover{background:var(--graphite);color:var(--paper);border-color:var(--graphite)}
.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.accent:hover{background:var(--accent-dark);border-color:var(--accent-dark)}
.textlink{font-weight:500;text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px}
.textlink:hover{color:var(--accent)}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--rule)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:76px;gap:24px}
.brand img{height:26px;width:auto}
.nav{display:flex;align-items:center;gap:32px}
.nav a{text-decoration:none;font-size:15px}
.nav a:not(.btn):hover,.nav a[aria-current="page"]{color:var(--accent)}
.nav .btn{padding:11px 18px;font-size:14.5px}
.burger{display:none;background:none;border:0;padding:10px;margin-right:-10px;cursor:pointer}
.burger span{display:block;width:22px;height:2px;background:var(--graphite);margin:5px 0;transition:transform .2s,opacity .2s}
@media (max-width:900px){
  .burger{display:block}
  .nav{position:absolute;left:0;right:0;top:76px;background:var(--paper);border-bottom:1px solid var(--rule);flex-direction:column;align-items:stretch;gap:0;padding:8px var(--gut) 24px;display:none}
  .nav.open{display:flex}
  .nav a:not(.btn){padding:14px 0;border-bottom:1px solid var(--rule);font-size:17px}
  .nav .btn{margin-top:18px}
  .burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .burger[aria-expanded="true"] span:nth-child(2){opacity:0}
  .burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}

/* tick rule */
.tickrule{width:100%;height:16px;color:#9AA39C}

/* hero */
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center;padding-block:96px 88px}
.hero h1{font-size:clamp(42px,6vw,74px);line-height:1;letter-spacing:-.035em;margin:18px 0 26px}
.hero .lede{font-size:clamp(17px,1.6vw,20px);line-height:1.55;color:var(--ink-2);max-width:34em}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.figure{background:var(--white);border:1px solid var(--rule);padding:24px 24px 14px}
.figure .v{display:none}
@media (max-width:900px){
  .hero .wrap{grid-template-columns:1fr;gap:44px;padding-block:56px 56px}
  .figure .h{display:none}.figure .v{display:block;max-width:360px}
}

/* page header (interior) */
.page-head .wrap{padding-block:88px 40px;display:grid;gap:20px}
.page-head h1{font-size:clamp(38px,5.4vw,64px);line-height:1.02;letter-spacing:-.035em;max-width:18ch}
.page-head .lede{font-size:clamp(17px,1.6vw,20px);color:var(--ink-2);max-width:40em}
.page-head .tickrule{margin-top:28px}
@media (max-width:700px){.page-head .wrap{padding-block:56px 28px}}

/* sections */
.sec{border-top:1px solid var(--rule)}
.sec>.wrap{padding-block:96px}
@media (max-width:700px){.sec>.wrap{padding-block:64px}}
.sec-head{display:grid;grid-template-columns:1fr 1.4fr;gap:64px;align-items:end;margin-bottom:56px}
.sec-head h2{font-size:clamp(32px,4vw,48px);margin-top:14px}
.sec-head p{font-size:18px;color:var(--ink-2)}
@media (max-width:900px){.sec-head{grid-template-columns:1fr;gap:16px;margin-bottom:36px}}

.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.grid4>*{border-top:1px solid var(--graphite);padding-top:20px;display:grid;gap:12px;align-content:start}
.grid4 h3{font-size:22px;line-height:1.2}
.grid4 p{font-size:15.5px;color:var(--ink-2)}
.grid4 .muted-top{border-top-color:var(--rule)}
@media (max-width:1000px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 28px}}
@media (max-width:600px){.grid4{grid-template-columns:1fr}}

.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;counter-reset:s}
.steps>div{display:grid;gap:10px;align-content:start}
.steps .n{font:400 13px var(--f-mono);color:var(--accent)}
.steps h3{font-size:21px}
.steps p{font-size:15px;color:var(--ink-2)}
@media (max-width:1000px){.steps{grid-template-columns:1fr;gap:22px}.steps>div{grid-template-columns:44px 1fr;gap:4px 12px}.steps>div p{grid-column:2}}

.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}
.grid3 h3{font-size:24px;margin-bottom:10px}
.grid3 p{font-size:16px;color:var(--ink-2)}
@media (max-width:900px){.grid3{grid-template-columns:1fr;gap:32px}}

.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px}
.grid2>div{border-top:1px solid var(--graphite);padding-top:22px;display:grid;gap:12px;align-content:start}
.grid2 h3{font-size:28px;line-height:1.15}
.grid2 p{font-size:16px;color:var(--ink-2)}
@media (max-width:800px){.grid2{grid-template-columns:1fr;gap:40px}}

/* detail blocks (services / approach pages) */
.detail{display:grid;grid-template-columns:1fr 1.4fr;gap:64px;padding-block:56px;border-top:1px solid var(--rule)}
.detail:first-child{border-top:1px solid var(--graphite)}
.detail h2{font-size:clamp(28px,3.2vw,38px);margin-top:12px}
.detail .body{display:grid;gap:18px}
.detail .body>p{font-size:18px;color:var(--ink-2)}
.list{list-style:none;padding:0;display:grid;gap:0;border-top:1px solid var(--rule)}
.list li{padding:14px 0 14px 26px;border-bottom:1px solid var(--rule);position:relative;font-size:16px}
.list li::before{content:"";position:absolute;left:0;top:23px;width:9px;height:9px;background:var(--graphite)}
.list li b{font-weight:600}
@media (max-width:900px){.detail{grid-template-columns:1fr;gap:18px;padding-block:40px}}

.prose{max-width:46em;display:grid;gap:16px}
.prose h2{font-size:26px;margin-top:22px}
.prose p,.prose li{font-size:16.5px;color:var(--ink-2)}
.prose ul{padding-left:20px;display:grid;gap:6px}

/* dark band: contact */
.band{background:var(--graphite);color:var(--paper)}
.band .wrap{padding-block:96px;display:grid;grid-template-columns:1fr 1fr;gap:80px}
.band h2{color:var(--paper);font-size:clamp(36px,4.6vw,54px);line-height:1.02;margin:14px 0 22px}
.band p{color:var(--on-dark)}
.band .label{color:var(--on-dark-mut)}
.band .label.accent{color:#FF7D47}
.facts{margin-top:40px;border-top:1px solid var(--rule-dark)}
.facts div{display:grid;grid-template-columns:140px 1fr;padding:13px 0;border-bottom:1px solid var(--rule-dark);font-size:15.5px}
.facts span:first-child{font:400 12px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--on-dark-mut);padding-top:3px}
.facts a{color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent)}
@media (max-width:900px){.band .wrap{grid-template-columns:1fr;gap:44px;padding-block:64px}.facts div{grid-template-columns:100px 1fr}}

.band.cta .wrap{grid-template-columns:1fr auto;align-items:end;padding-block:80px}
.band.cta h2{margin-bottom:10px}
@media (max-width:800px){.band.cta .wrap{grid-template-columns:1fr;gap:24px}}

/* form */
.form{display:grid;gap:18px;align-content:start}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:600px){.form .row{grid-template-columns:1fr}}
.field{display:grid;gap:7px}
.field label{font:400 12px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--on-dark-mut)}
.field label .opt{text-transform:none;letter-spacing:0;color:#6F7A82}
.field input,.field textarea{width:100%;font:400 16px/1.5 var(--f-body);color:var(--paper);background:#151D23;border:1px solid #3A454D;border-radius:0;padding:13px 14px;appearance:none}
.field textarea{min-height:150px;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.form .btn{justify-self:start;margin-top:4px}
.form small{font-size:13px;color:var(--on-dark-mut)}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.notice{padding:12px 14px;border:1px solid #FF7D47;color:#FFD9C9;font-size:15px}
.notice[hidden]{display:none}
/* light variant of the form (contact page) */
.form.light .field label{color:var(--steel)}
.form.light .field input,.form.light .field textarea{background:var(--white);color:var(--graphite);border-color:#BFC5BE}
.form.light small{color:var(--steel)}
.form.light .notice{color:var(--accent-dark);border-color:var(--accent);background:#FBEDE6}

/* footer */
.site-footer{border-top:1px solid var(--rule);background:var(--paper)}
.site-footer .wrap{padding-block:56px 36px;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.site-footer img{height:22px;width:auto}
.site-footer p{font-size:14.5px;color:var(--steel);margin-top:14px;max-width:30em}
.site-footer ul{list-style:none;padding:0;display:grid;gap:8px;font-size:15px;margin-top:12px}
.site-footer a{text-decoration:none}
.site-footer a:hover{color:var(--accent)}
.legal{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;border-top:1px solid var(--rule);padding-top:22px;margin-top:12px;font-size:13.5px;color:var(--steel)}
.legal nav{display:flex;gap:22px}
@media (max-width:800px){.site-footer .wrap{grid-template-columns:1fr 1fr}.site-footer .wrap>div:first-child{grid-column:1/-1}}

/* misc */
.center-msg .wrap{padding-block:120px;display:grid;gap:20px;justify-items:start}
.center-msg h1{font-size:clamp(38px,5vw,60px)}
.center-msg p{font-size:18px;color:var(--ink-2);max-width:36em}
