/* l'agence associée — feuille de style unique
   Points de rupture : tablette ≤ 1024px, mobile ≤ 767px */

@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("../fonts/montserrat-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("../fonts/montserrat-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --gold: #dbbe86;
  --gold-dark: #d2b273;
  --dark: #201e1e;
  --card: #333;
  --ink: #222;
  --light: #e4e4e4;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: #0a0a0a;
  color: #dfdede;
  font: 300 16px/1.15 "Montserrat", sans-serif;
}

h1, h2, h3, h4, p, ul { margin: 0; padding: 0; font: inherit; }
ul { list-style: none; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }

.skip-link { position: absolute; left: 0; top: -100px; background: #fff; color: #000; padding: 8px 12px; z-index: 10; }
.skip-link:focus { top: 0; }

/* En-tête */
.site-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 30px;
  background: #fff;
}
.site-header__logo { display: block; }
.site-header__logo img { width: 200px; }
.site-nav ul { display: flex; margin: 0 -20px; }
.site-nav li { margin: 0 20px; }
.site-nav a {
  display: block;
  font-size: 16px;
  font-weight: 500;
  color: var(--ink);
  text-shadow: 0 0 10px rgba(0, 0, 0, .3);
  transition: color .3s;
}
.site-nav a:hover { color: var(--gold); }

/* Bandeau */
.hero {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 600px;
  background: var(--dark) url("../images/hero.jpg") center / contain no-repeat;
}
.hero h1 {
  margin-bottom: 8px;
  font-size: 80px;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  text-align: center;
  color: #fff;
}

/* Sections */
.section { display: flex; flex-direction: column; padding: 40px 0; background: var(--dark); }
.section--conviction { padding-bottom: 0; }
.section--aoc { background: var(--dark) url("../images/nid.jpg") center / cover no-repeat; }

.kicker {
  margin-bottom: 8px;
  padding-top: 5px;
  font-size: 20px;
  font-weight: 400;
  line-height: normal;
  letter-spacing: 5px;
  text-transform: uppercase;
  text-align: center;
  color: var(--gold-dark);
}
.title {
  margin: 0 auto 8px;
  font-size: 54px;
  font-weight: 400;
  line-height: 1.2;
  text-transform: uppercase;
  text-align: center;
  color: #fff;
  text-shadow: 0 0 10px rgba(0, 0, 0, .3);
}

.lead { display: flow-root; width: 80%; margin: 20px auto; }
.lead p,
.contact__text {
  margin-bottom: 16px;
  font-size: 20px;
  line-height: 1.5;
  text-align: center;
  color: var(--light);
}
.lead--intro { padding-bottom: 30px; }
.lead--aoc { width: auto; margin: 0 0 24px; padding: 0 5%; }

/* Deux colonnes */
.duo {
  display: flex;
  gap: 50px;
  width: 70%;
  margin: 0 auto;
}
.duo > * { flex: 1 1 0; min-width: 0; }

/* Offre */
.offer--offset { margin-top: 60px; }
.offer__title,
.offer__list { background: var(--card); color: #fff; }
.offer__title { padding: 12px 30px; font-size: 28px; }
.offer__list { padding: 0 30px 16px; font-weight: 400; line-height: 1.8; }

/* Méthode */
.method { align-self: flex-start; background: #fff; color: var(--ink); }
.method__title { padding: 30px; font-size: 22px; }
.method__text { padding: 0 30px 46px; font-weight: 400; line-height: 1.8; }
.method__text b { font-weight: 700; }

/* Références */
.clients { display: flex; flex-direction: column; }
.clients__title { padding: 30px; font-size: 32px; color: #fff; }
.client {
  align-self: center;
  width: 82%;
  margin-bottom: 30px;
  background: #fff;
  border: 1px solid #000;
}
.client__title { padding: 12px 30px 6px; font-size: 18px; font-weight: 700; line-height: 1.8; color: #000; }
.client__text { padding: 0 30px 16px; font-weight: 400; line-height: 1.8; color: var(--ink); }

/* Contact */
.contacts {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 80%;
  margin: 20px auto;
}
.contact { display: flex; flex-direction: column; gap: 5px; align-self: flex-start; }
.contact--side { width: 25%; }
.contact--main { width: 49%; }
.contact__icon { display: block; width: 50px; height: 54px; margin: 0 auto; color: var(--gold); }
.contact__icon svg { display: block; width: 50px; height: 50px; fill: currentColor; }
.contact__text--small { font-size: 16px; }

/* Tablette */
@media (max-width: 1024px) {
  .site-header { padding: 12px 30px; }
  .hero { padding: 180px 30px; background-size: 100% auto; }
  .hero h1 { font-size: 48px; }
  .title { font-size: 36px; }
  .title--aoc { padding: 0 30px; }
  .lead, .contacts { width: 90%; }
  .lead--aoc { width: auto; padding: 0 30px; }
  .lead p, .contact__text, .contact__text--small { font-size: 18px; }
  .lead--intro { padding-bottom: 0; }
  .duo { width: 90%; }
}

/* Mobile */
@media (max-width: 767px) {
  .site-header { flex-direction: column; gap: 20px; padding: 12px 6px; }
  .site-header__logo { padding-top: 6px; }
  .site-header__logo img { width: 150px; }
  .site-nav ul { margin: 0 -5px; }
  .site-nav li { margin: 0 5px; }
  .site-nav a { font-size: 14px; }
  .hero { min-height: 302px; padding: 0; }
  .hero h1 { font-size: 32px; }
  .section { padding: 30px 0 0; }
  .title { font-size: 32px; }
  .title--narrow { max-width: 77%; }
  .lead, .contacts { width: 85%; }
  .lead--aoc { width: auto; }
  .lead p, .contact__text, .contact__text--small { font-size: 16px; }
  .duo { flex-wrap: wrap; gap: 0; width: 80%; }
  .duo > * { flex-basis: 100%; }
  .method__title { font-size: 16px; }
  .clients__title { font-size: 28px; }
  .client { width: 100%; }
  .contacts { flex-direction: column; }
  .contact--side, .contact--main { width: 100%; }
}
