:where([data-region]) .hero, :where([data-region]) .section {
  --ink: #1f1418;
  --ivory: #fcf7f6;
  --sand: #f6e8e9;
  --gold: #984a5e;
  --gold-light: #e7b9c2;
  --text: #3d3034;
}

:where([data-region]) .section {
  background: var(--ivory);
  color: var(--text);
  padding-block: clamp(3.5rem, 8vw, 6.5rem);
}

:where([data-region]) .section.fond-doux {
  background: var(--sand);
}

:where([data-region]) .section.sombre {
  background: var(--ink);
  color: #eadadd;
}

:where([data-region]) .hero h1, :where([data-region]) .section h1, :where([data-region]) .section h2, :where([data-region]) .section h3 {
  font-family: Didot, "Bodoni 72", Bodoni MT, Playfair Display, Libre Baskerville, Georgia, Times New Roman, serif;
  font-weight: 400;
  color: var(--ink);
  letter-spacing: .01em;
}

:where([data-region]) .section.sombre h2, :where([data-region]) .section.sombre h3 {
  color: #fbeef0;
}

:where([data-region]) .section h1 {
  font-size: clamp(2.4rem, 6vw, 4rem);
  font-style: italic;
  line-height: 1.1;
  margin-bottom: 1.25rem;
}

:where([data-region]) .section h2 {
  font-size: clamp(1.9rem, 4vw, 2.75rem);
  line-height: 1.15;
  margin: 0 0 2rem;
}

:where([data-region]) .section h2:after {
  content: "";
  display: block;
  width: 3.5rem;
  height: 1px;
  background: var(--gold);
  margin-top: 1.1rem;
}

:where([data-region]) .section.sombre h2:after {
  background: var(--gold-light);
}

:where([data-region]) .section.centre h2:after, :where([data-region]) .section h2.centre:after {
  margin-inline: auto;
}

:where([data-region]) .section h3 {
  font-size: 1.45rem;
  margin: 0 0 .6rem;
}

:where([data-region]) .section p, :where([data-region]) .section li, :where([data-region]) .section figcaption {
  font-family: Iowan Old Style, Palatino Linotype, Palatino, Georgia, serif;
  font-size: 1.08rem;
  line-height: 1.85;
}

:where([data-region]) .section.sombre p {
  color: #e0cfd3;
}

:where([data-region]) .section a:not(.bouton) {
  color: var(--gold);
  text-decoration: none;
  border-bottom: 1px solid var(--gold-light);
}

:where([data-region]) .section a:not(.bouton):hover {
  color: var(--ink);
  border-color: var(--ink);
}

:where([data-region]) .section.sombre a:not(.bouton) {
  color: var(--gold-light);
}

:where([data-region]) .texte-grand {
  font-size: 1.3rem !important;
}

:where([data-region]) .surtitre {
  text-transform: uppercase;
  letter-spacing: .32em;
  margin: 0 0 1rem;
  font-family: Helvetica Neue, Arial, sans-serif !important;
  font-size: .72rem !important;
  color: var(--gold) !important;
}

:where([data-region]) .section.sombre .surtitre {
  color: var(--gold-light) !important;
}

:where([data-region]) .boutons {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  margin-top: 2.75rem;
}

:where([data-region]) .section .bouton {
  display: inline-block;
  font-family: Helvetica Neue, Arial, sans-serif;
  text-transform: uppercase;
  letter-spacing: .22em;
  font-size: .75rem;
  padding: 1rem 1.9rem;
  border-radius: 0;
  border: 1px solid var(--gold);
  background: var(--gold);
  color: #fff;
  text-decoration: none;
  transition: background .3s, color .3s, border-color .3s;
}

:where([data-region]) .section .bouton:hover {
  background: none;
  color: var(--gold);
}

:where([data-region]) .section.sombre .bouton:hover {
  background: none;
  color: var(--gold-light);
  border-color: var(--gold-light);
}

:where([data-region]) .section .etapes {
  list-style: none;
  padding: 0;
  margin: 0;
  border-left: 1px solid var(--gold-light);
}

:where([data-region]) .section .etapes li {
  position: relative;
  padding: 0 0 2.75rem 2.25rem;
}

:where([data-region]) .section .etapes li:before {
  content: "";
  position: absolute;
  left: -5px;
  top: .45rem;
  width: 9px;
  height: 9px;
  background: var(--gold);
  transform: rotate(45deg);
}

:where([data-region]) .section .etape-numero {
  display: block;
  font-family: Helvetica Neue, Arial, sans-serif;
  letter-spacing: .3em;
  font-size: .75rem;
  color: var(--gold);
  margin-bottom: .4rem;
  background: none;
}

:where([data-region]) .section .etapes h3 {
  font-style: italic;
}

:where([data-region]) .section ul.liste-chic {
  list-style: none;
  padding: 0;
}

:where([data-region]) .section ul.liste-chic li {
  padding: 1.1rem 0;
  border-bottom: 1px solid #984a5e40;
}

:where([data-region]) .duo {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
}

:where([data-region]) .mosaique {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
  gap: 1rem;
}

:where([data-region]) .mosaique figure {
  margin: 0;
  overflow: hidden;
}

:where([data-region]) .mosaique img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  object-position: 50% 25%;
  filter: grayscale(.2);
  transition: transform .8s, filter .8s;
}

:where([data-region]) .mosaique figure:hover img {
  transform: scale(1.04);
  filter: none;
}

:where([data-region]) #photo-cyrano {
  object-position: 96% 45%;
}
