/* Atelier Fil Rouge — International Typographic Style, image-free */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --paper:#F7F7F5;
  --ink:#111111;
  --red:#E10600;
  --hair:rgba(17,17,17,.22);
  --hair-soft:rgba(17,17,17,.12);
}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:"Archivo Narrow","Helvetica Neue",Arial,sans-serif;
  font-size:17px;line-height:1.5;font-weight:400;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
a:hover{color:var(--red)}
sup{font-size:.55em;vertical-align:super}
ul,ol{list-style:none}
h1,h2,h3{font-weight:700;text-transform:uppercase;line-height:.96;letter-spacing:-.01em}
button{font-family:inherit}
.wrap{max-width:1260px;margin:0 auto;padding:0 24px;width:100%}
.hair{height:1px;background:var(--hair);margin:16px 0}
.meta{font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:600}

/* ---------- top bar ---------- */
.top{border-top:4px solid var(--ink)}
.top__in{display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap;padding:14px 0 12px}
.brand{font-size:21px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.brand span{color:var(--red)}
.topmeta{display:flex;gap:26px;flex-wrap:wrap}

/* ---------- nav ---------- */
.nav{border-top:1px solid var(--hair);border-bottom:1px solid var(--ink)}
.nav__in{display:flex;flex-wrap:wrap}
.nav__in a{
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;
  padding:12px 26px 12px 0;
}
.nav__in a.is-active{color:var(--red)}

/* ---------- hero poster ---------- */
.hero{padding:46px 0 0}
.hero__grid{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;row-gap:14px;align-items:start}
.hero__num{
  grid-column:1 / span 4;color:var(--red);
  font-size:clamp(130px,19vw,290px);line-height:.72;font-weight:700;letter-spacing:-.05em;
}
.hero__num small{
  display:block;color:var(--ink);font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;font-weight:600;line-height:1.4;margin-top:18px;
  border-top:2px solid var(--ink);padding-top:10px;max-width:260px;
}
.hero__head{grid-column:5 / span 8}
h1{font-size:clamp(34px,5.4vw,80px)}
.dek{margin-top:20px;max-width:58ch;font-size:clamp(16px,1.3vw,19px)}
.btnrow{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}
.cta{
  display:inline-block;background:var(--red);color:var(--paper);
  padding:15px 32px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;
  border:2px solid var(--red);border-radius:0;cursor:pointer;
}
.cta:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.cta--ghost{background:transparent;color:var(--ink);border:2px solid var(--ink)}
.cta--ghost:hover{background:var(--ink);color:var(--paper)}
.herofoot{
  display:flex;flex-wrap:wrap;gap:0 34px;margin-top:40px;
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:12px 0;
}
.herofoot span{position:relative;padding-left:16px}
.herofoot span::before{content:"";position:absolute;left:0;top:50%;width:8px;height:2px;background:var(--red)}

/* ---------- section heads ---------- */
.section{padding:62px 0}
.shead{border-top:2px solid var(--ink);padding-top:14px;margin-bottom:30px}
.eyebrow{display:block;color:var(--red);font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:700}
.shead h2{margin-top:10px;font-size:clamp(26px,3.6vw,46px)}

/* ---------- services strip (4 columns) ---------- */
.svc{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink)}
.svc__col{padding:20px 22px 24px 0;border-right:1px solid var(--hair)}
.svc__col:last-child{border-right:0}
.svc__col h3{font-size:19px;margin-bottom:14px;letter-spacing:.02em}
.svc__col h3 em{display:block;font-style:normal;color:var(--red);font-size:12px;letter-spacing:.24em;margin-bottom:6px}
.svc__col li{padding:10px 0;border-top:1px solid var(--hair-soft);font-size:16px}
.svc__col li:first-child{border-top:0}

/* ---------- fact band ---------- */
.factband{padding:0 0 10px}
.facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:3px solid var(--ink);border-bottom:3px solid var(--ink)}
.fact{padding:26px 22px 28px 0;border-right:1px solid var(--hair);display:flex;flex-direction:column;gap:14px}
.fact:last-child{border-right:0}
.fact__n{color:var(--red);font-size:clamp(54px,7vw,104px);line-height:.8;font-weight:700;letter-spacing:-.04em}
.fact__l{max-width:22ch;line-height:1.5}

/* ---------- method / asymmetric ---------- */
.method{display:grid;grid-template-columns:7fr 5fr;column-gap:52px;row-gap:34px;align-items:start}
.method__text p{margin-bottom:16px;font-size:17px}
.steps{border-top:2px solid var(--ink)}
.steps li{display:flex;gap:16px;padding:13px 0;border-bottom:1px solid var(--hair);font-size:16px;text-transform:uppercase;letter-spacing:.03em;font-weight:600}
.steps li span{color:var(--red);font-weight:700;letter-spacing:.1em}

/* ---------- quote ---------- */
.section--quote{padding-top:10px}
.quote{border-left:9px solid var(--red);padding:4px 0 4px 28px;max-width:62ch}
.quote p{font-size:clamp(21px,2.8vw,34px);line-height:1.18;font-weight:600}
.quote cite{display:block;margin-top:20px;font-style:normal}

/* ---------- contact row ---------- */
.crow{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);margin-top:10px}
.crow__c{padding:20px 22px 24px 0;border-right:1px solid var(--hair)}
.crow__c:last-child{border-right:0}
.crow__c .meta{display:block;color:var(--red);margin-bottom:10px}
.crow__c p{margin-bottom:14px}

/* ---------- table (tarifs) ---------- */
.table{border-top:2px solid var(--ink)}
.table__row{display:grid;grid-template-columns:6fr 2fr 2fr;gap:16px;padding:13px 0;border-bottom:1px solid var(--hair);align-items:baseline}
.table__row--head{border-bottom:2px solid var(--ink)}
.table__row--head span{color:var(--red)}
.table__row b{font-weight:700}
.table__row span:nth-child(2),.table__row span:nth-child(3){text-transform:uppercase;font-size:14px;letter-spacing:.08em}
.note{margin-top:22px;max-width:70ch;border-left:3px solid var(--ink);padding-left:16px;font-size:16px}

/* ---------- form ---------- */
.form{display:grid;grid-template-columns:1fr 1fr;column-gap:22px;row-gap:20px;border-top:2px solid var(--ink);padding-top:24px}
.field{display:flex;flex-direction:column;gap:7px}
.field--full{grid-column:1 / -1}
.field label{color:var(--ink)}
input[type="text"],input[type="email"],input[type="tel"],select,textarea{
  font-family:inherit;font-size:17px;color:var(--ink);background:transparent;
  border:2px solid var(--ink);border-radius:0;padding:11px 12px;width:100%;
}
input:focus,select:focus,textarea:focus{outline:3px solid var(--red);outline-offset:1px}
textarea{resize:vertical}
.is-bad{border-color:var(--red)}
.err{color:var(--red)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:15px}
.check input{width:18px;height:18px;margin-top:3px;accent-color:var(--red)}
.formmsg{margin-top:16px;font-size:14px;letter-spacing:.04em;text-transform:uppercase;font-weight:600}
.is-bad-msg{color:var(--red)}
.is-ok-msg{color:var(--ink);border-left:4px solid var(--red);padding-left:12px}
.aside{border-top:2px solid var(--ink);padding-top:24px}
.aside .meta{display:block;color:var(--red);margin-bottom:6px}
.aside .big{font-size:21px;font-weight:600;line-height:1.25}
.aside p{margin-bottom:12px}

/* ---------- schematic plan (CSS only) ---------- */
.plan{
  position:relative;height:330px;border:3px solid var(--ink);
  background-color:var(--paper);
  background-image:
    repeating-linear-gradient(0deg,var(--hair-soft) 0 1px,transparent 1px 44px),
    repeating-linear-gradient(90deg,var(--hair-soft) 0 1px,transparent 1px 44px);
}
.plan__h{position:absolute;left:0;right:0;top:55%;height:3px;background:var(--ink)}
.plan__v{position:absolute;top:0;bottom:0;left:38%;width:3px;background:var(--ink)}
.plan__pin{position:absolute;left:38%;top:55%;width:24px;height:24px;background:var(--red);transform:translate(-50%,-50%)}
.plan__lab{position:absolute;background:var(--paper);padding:3px 7px;border:1px solid var(--ink)}

/* ---------- legal ---------- */
.legal{border-top:2px solid var(--ink)}
.legal__row{display:grid;grid-template-columns:4fr 8fr;column-gap:46px;row-gap:12px;padding:26px 0;border-bottom:1px solid var(--hair)}
.legal__row h2{font-size:21px}
.legal__row h2 em{display:block;font-style:normal;color:var(--red);font-size:12px;letter-spacing:.24em;margin-bottom:8px}
.legal__row p{margin-bottom:12px;max-width:70ch}
.legal__row p:last-child{margin-bottom:0}

/* ---------- footer ---------- */
.foot{border-top:4px solid var(--ink);margin-top:30px;padding:28px 0 36px}
.foot__grid{display:grid;grid-template-columns:repeat(4,1fr);column-gap:24px;row-gap:26px}
.foot__grid .meta{display:block;color:var(--red);margin-bottom:10px}
.brand--foot{font-size:19px;margin-bottom:8px}
.flist li{padding:5px 0;border-bottom:1px solid var(--hair-soft);font-size:15px}
.foot__bar{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:30px;border-top:1px solid var(--hair);padding-top:14px}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .svc{grid-template-columns:1fr 1fr}
  .svc__col:nth-child(2){border-right:0}
  .foot__grid{grid-template-columns:1fr 1fr}
  .crow{grid-template-columns:1fr 1fr}
  .crow__c:nth-child(2){border-right:0}
}
@media (max-width:860px){
  .hero__num{grid-column:1 / -1}
  .hero__head{grid-column:1 / -1}
  .method{grid-template-columns:1fr}
  .facts{grid-template-columns:1fr}
  .fact{border-right:0;border-bottom:1px solid var(--hair);padding-right:0}
  .fact:last-child{border-bottom:0}
  .legal__row{grid-template-columns:1fr;row-gap:8px}
  .table__row{grid-template-columns:1fr auto;row-gap:4px}
  .table__row span:nth-child(2){grid-column:1}
  .table__row span:nth-child(3){grid-column:2;grid-row:1;text-align:right}
  .form{grid-template-columns:1fr}
}
@media (max-width:560px){
  body{font-size:16px}
  .section{padding:44px 0}
  .svc{grid-template-columns:1fr}
  .svc__col{border-right:0;border-bottom:1px solid var(--hair);padding-right:0}
  .svc__col:last-child{border-bottom:0}
  .crow{grid-template-columns:1fr}
  .crow__c{border-right:0;border-bottom:1px solid var(--hair);padding-right:0}
  .crow__c:last-child{border-bottom:0}
  .foot__grid{grid-template-columns:1fr}
  .plan{height:260px}
  .plan__lab{font-size:10px;letter-spacing:.14em}
  .topmeta{gap:4px 18px}
}
