/* ============================================================
   GuideduFoyer — Mises en page (préfixe .p-)
   ============================================================ */

/* ============ Accueil ============ */
.p-hero { background: var(--gdf-paper-100); border-bottom: 1px solid var(--gdf-border); }
.p-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--gdf-space-9);
  padding: var(--gdf-space-9) 0 var(--gdf-space-8);
  align-items: start;
}
.p-hero__copy { display: grid; gap: var(--gdf-space-5); justify-items: start; }
.p-hero__copy h1 { font-size: var(--gdf-text-hero); max-width: 16ch; }
.p-hero__copy .u-lead { max-width: 44ch; }
.p-hero__actions { display: flex; flex-wrap: wrap; gap: var(--gdf-space-4); align-items: center; }
.p-hero__badges {
  border-top: 1px solid var(--gdf-border);
  padding: var(--gdf-space-4) 0 var(--gdf-space-6);
}

/* Carte « À la une » du hero — objet éditorial */
.p-une {
  background: var(--gdf-surface);
  border: 2px solid var(--gdf-ink);
  border-radius: var(--gdf-radius-lg);
  box-shadow: var(--gdf-shadow-md);
  overflow: hidden;
}
.p-une__band {
  display: flex;
  align-items: center;
  gap: var(--gdf-space-2);
  padding: var(--gdf-space-3) var(--gdf-space-5);
  background: var(--gdf-warn-bg);
  border-bottom: 2px solid var(--gdf-ink);
  color: var(--gdf-warn);
  font-size: var(--gdf-text-sm);
  font-weight: var(--gdf-weight-bold);
  text-transform: uppercase;
  letter-spacing: 0.07em;
}
.p-une__band svg { width: 20px; height: 20px; flex: none; }
.p-une__body { padding: var(--gdf-space-5); display: grid; gap: var(--gdf-space-3); justify-items: start; }
.p-une__title { font-size: var(--gdf-text-h3); }
.p-une__body p { color: var(--gdf-ink-soft); }

@media (max-width: 980px) {
  .p-hero__grid { grid-template-columns: 1fr; gap: var(--gdf-space-6); padding-block: var(--gdf-space-6) var(--gdf-space-6); }
  .p-hero__copy h1 { font-size: 2.125rem; }
}

.p-section { padding-block: var(--gdf-space-9); }
.p-section--alt { background: var(--gdf-surface); border-block: 1px solid var(--gdf-border); }
.p-section__head { margin-bottom: var(--gdf-space-6); }
@media (max-width: 640px) { .p-section { padding-block: var(--gdf-space-8); } }

/* Bloc promesse */
.p-promesse { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--gdf-space-9); align-items: start; }
.p-promesse__intro { display: grid; gap: var(--gdf-space-4); justify-items: start; }
.p-promesse__sign { font-family: var(--gdf-font-display); font-style: italic; color: var(--gdf-ink-soft); }
@media (max-width: 820px) { .p-promesse { grid-template-columns: 1fr; gap: var(--gdf-space-6); } }

/* ============ Article ============ */
.p-article__head { padding: var(--gdf-space-6) 0 var(--gdf-space-6); display: grid; gap: var(--gdf-space-4); }
.p-article__head h1 { max-width: 26ch; }
.p-article__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: var(--gdf-space-9);
  align-items: start;
}
.p-article__aside { position: sticky; top: 96px; display: grid; gap: var(--gdf-space-4); }
.p-article__toc-mobile { display: none; }
.p-article__body { display: grid; gap: var(--gdf-space-5); font-size: var(--gdf-text-lg); counter-reset: gdf-h2; }
.p-article__body > h2 {
  margin-top: var(--gdf-space-6);
  border-top: var(--gdf-rule-weight) solid var(--gdf-ink);
  padding-top: var(--gdf-space-4);
  counter-increment: gdf-h2;
}
/* Numérotation éditoriale auto (01, 02…) — via <span> explicite, sinon compteur */
.p-article__body > h2 > span { color: var(--gdf-accent-deep); margin-right: var(--gdf-space-2); }
.p-article__body > h2:not(:has(> span))::before {
  content: counter(gdf-h2, decimal-leading-zero);
  color: var(--gdf-accent-deep);
  margin-right: var(--gdf-space-2);
  font-variant-numeric: tabular-nums;
}
.p-article__body > h3 { margin-top: var(--gdf-space-2); }
.p-article__sources { font-size: var(--gdf-text-sm); color: var(--gdf-ink-faint); border-top: 1px solid var(--gdf-border); padding-top: var(--gdf-space-4); }

@media (max-width: 980px) {
  .p-article__layout { grid-template-columns: 1fr; gap: var(--gdf-space-5); }
  .p-article__aside { display: none; }
  .p-article__toc-mobile { display: block; }
  .p-article__toc-mobile summary {
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--gdf-space-3);
    min-height: var(--gdf-tap-target);
    padding: var(--gdf-space-3) var(--gdf-space-5);
    font-weight: var(--gdf-weight-bold);
    cursor: pointer;
    border: 1px solid var(--gdf-border);
    border-radius: var(--gdf-radius-md);
    background: var(--gdf-surface);
  }
  .p-article__toc-mobile summary::-webkit-details-marker { display: none; }
  .p-article__toc-mobile summary::after {
    content: "";
    width: 10px; height: 10px;
    border-right: 2.5px solid var(--gdf-ink-soft);
    border-bottom: 2.5px solid var(--gdf-ink-soft);
    transform: rotate(45deg);
  }
  .p-article__toc-mobile[open] summary { border-radius: var(--gdf-radius-md) var(--gdf-radius-md) 0 0; }
  .p-article__toc-mobile[open] summary::after { transform: rotate(225deg); }
  .p-article__toc-mobile .c-toc { border-top: 0; border-radius: 0 0 var(--gdf-radius-md) var(--gdf-radius-md); }
}

/* ============ Pré-landing ============ */
.p-pl { min-height: 100vh; display: flex; flex-direction: column; }
.p-pl__main { flex: 1; }
.p-pl__grid {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
  gap: var(--gdf-space-9);
  padding-block: var(--gdf-space-8);
  align-items: start;
}
.p-pl__copy { display: grid; gap: var(--gdf-space-5); justify-items: start; }
.p-pl__copy h1 { font-size: var(--gdf-text-h1); max-width: 18ch; }
.p-pl__points { margin-top: var(--gdf-space-2); }
.p-pl__trust { display: grid; gap: var(--gdf-space-5); margin-top: var(--gdf-space-2); }
.p-pl__footer { border-top: 1px solid var(--gdf-border); padding: var(--gdf-space-5) 0; }
.p-pl__footer-inner { display: flex; flex-wrap: wrap; gap: var(--gdf-space-2) var(--gdf-space-5); justify-content: space-between; align-items: center; }
@media (max-width: 900px) {
  .p-pl__grid { grid-template-columns: 1fr; gap: var(--gdf-space-6); padding-block: var(--gdf-space-6); }
  .p-pl__copy h1 { font-size: 1.875rem; }
}

/* ============ Contact ============ */
.p-contact { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--gdf-space-9); padding-block: var(--gdf-space-8); align-items: start; }
.p-contact__intro { display: grid; gap: var(--gdf-space-4); margin-bottom: var(--gdf-space-6); }
.p-contact__aside { display: grid; gap: var(--gdf-space-5); }
@media (max-width: 900px) { .p-contact { grid-template-columns: 1fr; gap: var(--gdf-space-6); } }

/* ============ 404 & légales ============ */
.p-error { padding-block: var(--gdf-space-10); display: grid; gap: var(--gdf-space-5); justify-items: start; max-width: 640px; }
.p-error__code {
  font-family: var(--gdf-font-display);
  font-weight: var(--gdf-weight-display);
  font-size: 7rem;
  line-height: 1;
  color: var(--gdf-paper-300);
  letter-spacing: -0.02em;
}
.p-error__code em { font-style: normal; color: var(--gdf-accent); }

.p-legal { padding-block: var(--gdf-space-8); display: grid; gap: var(--gdf-space-5); }
.p-legal h1 { font-size: var(--gdf-text-h2); }
.p-legal h2 { font-size: var(--gdf-text-h4); margin-top: var(--gdf-space-5); }
.p-legal p, .p-legal li { color: var(--gdf-ink-soft); }
