/* 08 — FOOTER */

.c-footer {
  background-color: var(--c-bg-1);
  border-block-start: var(--line) solid var(--c-border);
}

/* --- Amorce perforée --- */

.c-footer__perfs {
  --perf-step: 32px;
  border-block-end: var(--line) solid var(--c-border);
}

/* --- Panneau de contact --- */

.c-contact {
  padding-block: var(--section-y);
}

.c-contact__panel {
  background-color: var(--c-bg-3);
  border: var(--line) solid var(--c-border);
  padding: clamp(var(--space-6), 4vw, var(--space-10));
}

/* --- Bande d'état --- */

.c-contact__status {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding-block-end: var(--space-6);
  border-block-end: var(--line) solid var(--c-border);
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-accent-1);
}

/* --- Corps --- */

.c-contact__body {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-10);
  padding-block-start: var(--space-10);
}

.c-contact__eyebrow {
  margin-block-end: var(--space-4);
  color: var(--c-text-dim);
}

.c-contact__line {
  margin-block-end: var(--space-8);
  font-family: var(--ff-display);
  font-weight: var(--fw-bold);
  font-size: var(--fs-2xl);
  line-height: var(--lh-snug);
  letter-spacing: var(--ls-tight);
  text-transform: uppercase;
  color: var(--c-text);
}

.c-contact__line-part {
  display: block;
}

/* --- Adresse --- */

.c-contact__main {
  container-type: inline-size;
}

.c-contact__mail {
  display: inline-block;
  font-family: var(--ff-display);
  font-weight: var(--fw-bold);
  font-size: min(calc(100cqi / (var(--mail-len, 24) * 0.60)), 3.75rem);
  line-height: 1.05;
  letter-spacing: var(--ls-tighter);
  text-transform: uppercase;
  color: var(--c-text);
  overflow-wrap: anywhere;
  transition: color var(--dur-base) var(--ease-out);
}

.c-contact__mail:hover,
.c-contact__mail:focus-visible {
  color: var(--c-accent-1);
}

.c-contact__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-block-start: var(--space-8);
}

.c-contact__actions .c-btn {
  flex: 1 1 auto;
  justify-content: center;
}

/* --- Fiche technique --- */

.c-contact__aside {
  display: flex;
  flex-direction: column;
}

.c-contact__aside-titre {
  margin-block-end: var(--space-4);
  color: var(--c-text-dim);
}

.c-contact__specs {
  counter-reset: spec;

  display: flex;
  flex-direction: column;
  flex: 1;
  margin: 0;
  border-block-start: var(--line) solid var(--c-border);
}

.c-contact__spec {
  counter-increment: spec;

  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: baseline;
  align-content: start;
  flex: 1 0 auto;
  gap: var(--space-2) var(--space-4);
  padding-block: var(--space-4);
  border-block-end: var(--line) solid var(--c-border);
  font-family: var(--ff-mono);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
}

.c-contact__spec::before {
  content: counter(spec, decimal-leading-zero);
  grid-row: 1 / span 2;
  color: var(--c-accent-2);
}

.c-contact__spec dt {
  color: var(--c-text-dim);
}

.c-contact__spec dd {
  margin: 0;
  color: var(--c-text);
}

/* --- Ourlet légal --- */

.c-footer__legal {
  padding-block: var(--space-5);
  border-block-start: var(--line) solid var(--c-border);
}

.c-footer__legal-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-2) var(--space-6);
}

.c-footer__copy,
.c-footer__legal-list {
  margin: 0;
  font-family: var(--ff-mono);
  font-size: var(--fs-2xs);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-text-dim);
}

.c-footer__legal-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-6);
  padding: 0;
  list-style: none;
}

.c-footer__legal-list a {
  color: inherit;
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease-out);
}

.c-footer__legal-list a:hover,
.c-footer__legal-list a:focus-visible {
  color: var(--c-text);
}

.c-footer__legal-list a[aria-current] {
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

/* PALIERS */

@media (min-width: 768px) {
  .c-contact__line {
    font-size: var(--fs-3xl);
  }

  .c-contact__actions .c-btn {
    flex: 0 0 auto;
  }

  .c-contact__spec {
    grid-template-columns: auto auto minmax(0, 1fr);
  }

  .c-contact__spec::before {
    grid-row: auto;
  }

  .c-contact__spec dd {
    justify-self: end;
    text-align: end;
  }
}

@media (min-width: 1024px) {
  .c-contact__body {
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    gap: var(--space-16);
  }
}