:root{
  --paper:#FBFBF8;
  --ink:#141414;
  --red:#660000;
  --hair:rgba(20,20,20,.22);
  --hair-soft:rgba(20,20,20,.12);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Roboto Condensed","Helvetica Neue",Arial,sans-serif;
  font-weight:400;
  font-size:17px;
  line-height:1.52;
}
h1,h2,h3,.brand,.hero__num,.fact__num,.col__idx,.cta,.nav__menu a,.legal__num{
  font-family:"Archivo Narrow","Helvetica Neue",Arial,sans-serif;
}
a{color:var(--ink)}
a:hover{color:var(--red)}
img{display:none}

.wrap{max-width:1240px;margin:0 auto;padding:0 20px}

.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:10px 14px;z-index:10}
.skip:focus{left:0}

/* ---- top bar ---- */
.topbar{border-top:4px solid var(--ink);border-bottom:1px solid var(--hair)}
.topbar__inner{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-top:10px;padding-bottom:10px;flex-wrap:wrap}
.brand{font-weight:700;font-size:21px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.meta{margin:0;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(20,20,20,.72)}

/* ---- nav ---- */
.nav{border-bottom:1px solid var(--ink)}
.nav__inner{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px}
.nav__label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(20,20,20,.6)}
.nav__menu{display:flex;list-style:none;margin:0;padding:0;gap:26px}
.nav__menu a{font-size:13px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;padding:12px 0;display:inline-block}
.nav__menu a[aria-current="page"]{color:var(--red);border-bottom:2px solid var(--red)}
.nav__toggle{display:none;background:none;border:1px solid var(--ink);color:var(--ink);font-family:"Archivo Narrow",Arial,sans-serif;font-size:12px;letter-spacing:.2em;padding:7px 14px;cursor:pointer;text-transform:uppercase}

/* ---- hero poster ---- */
.hero{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:0 26px;
  padding-top:46px;
  padding-bottom:54px;
  border-bottom:1px solid var(--ink);
}
.hero__num{
  grid-column:1 / 5;
  grid-row:1 / 3;
  color:var(--red);
  font-weight:700;
  font-size:clamp(7rem,17vw,16rem);
  line-height:.74;
  letter-spacing:-.04em;
  border-top:4px solid var(--red);
  padding-top:12px;
}
.hero__head{grid-column:5 / 13;grid-row:1;border-top:1px solid var(--ink);padding-top:12px}
.hero__dek{grid-column:5 / 13;grid-row:2;padding-top:18px}
.kicker{margin:0 0 14px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:rgba(20,20,20,.7)}
.hero h1{
  margin:0;
  font-weight:700;
  text-transform:uppercase;
  font-size:clamp(2.1rem,4.6vw,4.3rem);
  line-height:.95;
  letter-spacing:-.015em;
}
.hero__dek p{margin:0 0 14px;max-width:62ch}
.hero__note{font-size:14px;color:rgba(20,20,20,.72);border-top:1px solid var(--hair);padding-top:12px}

.cta{
  display:inline-block;
  margin-top:10px;
  background:var(--red);
  color:var(--paper);
  text-decoration:none;
  border:0;
  border-radius:0;
  padding:16px 30px;
  font-size:14px;
  letter-spacing:.2em;
  text-transform:uppercase;
  font-weight:600;
  cursor:pointer;
}
.cta:hover{background:var(--ink);color:var(--paper)}

/* ---- section titles ---- */
.section-title{
  margin:0 0 22px;
  font-size:12px;
  letter-spacing:.26em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--red);
}
.vis-h{margin:0 0 18px;font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--red);font-weight:600}

/* ---- services strip ---- */
.strip{padding-top:40px;padding-bottom:44px;border-bottom:1px solid var(--ink)}
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 26px}
.cols3--single{margin-top:34px;grid-template-columns:repeat(3,1fr)}
.cols3--single .col{grid-column:1 / 2}
.col{border-top:1px solid var(--ink);padding-top:12px}
.col__idx{margin:0 0 6px;font-size:34px;line-height:1;font-weight:700;color:var(--red)}
.col h3{margin:0 0 14px;font-size:21px;text-transform:uppercase;letter-spacing:.02em;font-weight:700}
.col .line{margin:0;padding:11px 0;border-top:1px solid var(--hair-soft);font-size:15.5px;color:rgba(20,20,20,.86)}
.col .line:first-of-type{border-top:0}

/* ---- facts band ---- */
.facts{border-bottom:1px solid var(--ink);background:var(--paper)}
.facts__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.fact{padding:30px 26px 30px 0;border-left:1px solid var(--hair);padding-left:22px;display:flex;flex-direction:column;gap:10px}
.fact:first-child{border-left:0;padding-left:0}
.fact__num{font-size:clamp(3.4rem,7vw,6rem);line-height:.8;font-weight:700;color:var(--red);letter-spacing:-.03em}
.fact__lbl{font-size:12px;letter-spacing:.18em;text-transform:uppercase;max-width:28ch;color:rgba(20,20,20,.78)}

/* ---- method ---- */
.method{display:grid;grid-template-columns:7fr 5fr;gap:0 48px;padding-top:50px;padding-bottom:54px;border-bottom:1px solid var(--ink)}
.method__text h2,.method__list h2{margin:0 0 18px;font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--red);font-weight:600}
.method__text p{margin:0 0 16px;max-width:66ch}
.method__list{border-left:1px solid var(--hair);padding-left:34px}
.steps{list-style:none;counter-reset:s;margin:0;padding:0}
.steps li{counter-increment:s;border-top:1px solid var(--hair-soft);padding:13px 0 13px 52px;position:relative}
.steps li:first-child{border-top:1px solid var(--ink)}
.steps li::before{
  content:counter(s,decimal-leading-zero);
  position:absolute;left:0;top:12px;
  font-family:"Archivo Narrow",Arial,sans-serif;
  font-weight:700;font-size:20px;color:var(--red);
}
.steps span{display:block;font-family:"Archivo Narrow",Arial,sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:17px}
.steps em{display:block;font-style:normal;font-size:15px;color:rgba(20,20,20,.78)}

/* ---- table ---- */
.tbl{width:100%;border-collapse:collapse;font-size:15.5px}
.tbl caption{text-align:left;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(20,20,20,.65);padding-bottom:10px}
.tbl th,.tbl td{text-align:left;padding:10px 0;border-top:1px solid var(--hair-soft)}
.tbl thead th{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);font-family:"Archivo Narrow",Arial,sans-serif;text-transform:uppercase;letter-spacing:.12em;font-size:12px}
.tbl td:last-child{text-align:right;font-weight:700}
.small{font-size:13.5px;color:rgba(20,20,20,.7);margin-top:16px}

/* ---- quote ---- */
.quote-band{padding:52px 0;border-bottom:1px solid var(--ink)}
.quote{margin:0;border-left:12px solid var(--red);padding:4px 0 4px 30px;max-width:78ch}
.quote p{margin:0 0 16px;font-family:"Archivo Narrow",Arial,sans-serif;font-size:clamp(1.3rem,2.6vw,2.05rem);line-height:1.18;font-weight:400}
.quote footer{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:rgba(20,20,20,.7)}

/* ---- contact row ---- */
.contactrow{padding-top:44px;padding-bottom:50px;border-bottom:4px solid var(--ink)}

/* ---- form ---- */
.form{max-width:52ch}
.field{margin-bottom:18px}
.field label{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:6px;color:rgba(20,20,20,.75)}
.field input[type=text],.field input[type=email],.field select,.field textarea{
  width:100%;background:transparent;border:0;border-bottom:1px solid var(--ink);
  padding:10px 2px;font-family:"Roboto Condensed",Arial,sans-serif;font-size:16px;color:var(--ink);border-radius:0;
}
.field select{border:1px solid var(--ink);padding:10px}
.field textarea{border:1px solid var(--ink);padding:10px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--red);outline-offset:2px}
.field--check{display:flex;gap:10px;align-items:flex-start}
.field--check input{margin-top:4px;accent-color:var(--red)}
.field--check label{text-transform:none;letter-spacing:0;font-size:14px;line-height:1.4;margin:0}
.field.is-error input,.field.is-error select,.field.is-error textarea{outline:2px solid var(--red);outline-offset:2px}
.form__msg{min-height:22px;font-size:14px;letter-spacing:.04em;margin-top:14px}
.form__msg.ok{color:var(--red);font-weight:700}
.form__msg.err{color:var(--red)}

/* ---- legal ---- */
.legal{display:grid;grid-template-columns:8fr 4fr;gap:0 48px;padding-top:48px;padding-bottom:56px;border-bottom:4px solid var(--ink)}
.legal__body h2{margin:30px 0 10px;font-size:19px;text-transform:uppercase;letter-spacing:.04em;border-top:1px solid var(--hair);padding-top:12px}
.legal__body h2:first-child{margin-top:0}
.legal__body p{margin:0 0 14px;max-width:72ch}
.legal__body ul{margin:0 0 14px;padding-left:18px}
.legal__body li{margin-bottom:8px;max-width:70ch}
.legal__aside{border-left:1px solid var(--hair);padding-left:30px}
.legal__num{margin:0 0 10px;font-size:5rem;line-height:.8;font-weight:700;color:var(--red)}

/* ---- footer ---- */
.foot{padding-top:38px;padding-bottom:26px}
.foot__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.foot__brand{margin:0 0 10px;font-family:"Archivo Narrow",Arial,sans-serif;font-weight:700;letter-spacing:.16em;font-size:17px}
.foot__h{margin:0 0 10px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--red)}
.foot__small{margin:0;font-size:14px;color:rgba(20,20,20,.75);max-width:34ch}
.foot__list{list-style:none;margin:0;padding:0;font-size:14.5px}
.foot__list li{padding:5px 0;border-top:1px solid var(--hair-soft)}
.foot__list li:first-child{border-top:0}
.foot__list a{text-decoration:none}
.foot__list a:hover{text-decoration:underline}
.foot__base{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:30px;padding-top:12px;border-top:1px solid var(--ink);font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.foot__base p{margin:0}

/* ---- responsive ---- */
@media (max-width:980px){
  .method{grid-template-columns:1fr;gap:34px}
  .method__list{border-left:0;padding-left:0;border-top:1px solid var(--hair);padding-top:26px}
  .legal{grid-template-columns:1fr;gap:34px}
  .legal__aside{border-left:0;padding-left:0;border-top:1px solid var(--hair);padding-top:24px}
  .foot__grid{grid-template-columns:repeat(2,1fr);gap:30px}
}
@media (max-width:760px){
  .nav__toggle{display:inline-block}
  .nav__menu{display:none;width:100%;flex-direction:column;gap:0;padding-bottom:10px}
  .nav__menu.is-open{display:flex}
  .nav__menu li{border-top:1px solid var(--hair-soft)}
  .nav__menu a{padding:12px 0;display:block}
  .nav__inner{flex-wrap:wrap;padding-top:8px;padding-bottom:4px}
  .hero{grid-template-columns:1fr;padding-top:30px}
  .hero__num,.hero__head,.hero__dek{grid-column:1 / -1;grid-row:auto}
  .hero__num{font-size:clamp(6rem,34vw,11rem);margin-bottom:12px}
  .cols3,.cols3--single{grid-template-columns:1fr;gap:28px}
  .cols3--single .col{grid-column:1 / -1}
  .facts__grid{grid-template-columns:1fr}
  .fact{border-left:0;padding-left:0;border-top:1px solid var(--hair);padding-top:22px;padding-bottom:22px}
  .fact:first-child{border-top:0}
  .quote{border-left-width:8px;padding-left:18px}
  .meta{font-size:10px;letter-spacing:.14em}
}
@media (max-width:460px){
  .foot__grid{grid-template-columns:1fr}
  .brand{font-size:18px}
}
