/* NJANSANG — styles propres à la page Contact et accès. Chargé après styles.css (même ordre de couches). */
@layer pages {
  .acces__grid { display: grid; gap: var(--space-6); }
  .acces__text { display: grid; gap: var(--space-4); justify-items: start; align-content: start; }
  .acces__addr { font-family: var(--font-display); font-size: 1.4rem; line-height: 1.35; }
  .acces__map { display: grid; gap: .5rem; }
  .acces__map figcaption { font-size: .8125rem; color: var(--color-encre-2); }
  @media (min-width: 64em) { .acces__grid { grid-template-columns: .9fr 1.1fr; gap: var(--space-8); align-items: center; } }
  .plan { width: 100%; height: auto; border-radius: var(--radius-l); border: 1px solid var(--color-sable); font-family: var(--font-body); }
  .plan__bg { fill: var(--color-lin); }
  .plan__zones ellipse { fill: var(--color-sable); opacity: .75; }
  .plan__river { fill: var(--color-foret-clair); opacity: .8; }
  .plan__docks { stroke: var(--color-encre-2); stroke-width: 3; stroke-linecap: round; opacity: .55; }
  .plan__bridge { stroke: var(--color-encre); stroke-width: 5; stroke-linecap: round; }
  .plan__road { fill: none; stroke: var(--color-ivoire); stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; }
  .plan__runway { stroke: var(--color-encre-2); stroke-width: 9; stroke-linecap: round; opacity: .45; }
  .plan__route { fill: none; stroke: var(--color-terracotta); stroke-width: 3; stroke-dasharray: 2 7; stroke-linecap: round; }
  .plan__labels text { font-size: 19px; font-weight: 600; fill: var(--color-encre-2); letter-spacing: .03em; }
  .plan__labels .plan__note { font-size: 15px; font-weight: 500; font-style: italic; fill: var(--color-encre-2); }
  .plan__labels .plan__river-label { font-style: italic; fill: var(--color-foret); font-family: var(--font-display); font-size: 24px; font-weight: 500; }
  .plan__north path { fill: var(--color-encre-2); }
  .plan__north text { font-size: 13px; font-weight: 700; fill: var(--color-encre-2); }
  .plan__halo { fill: var(--color-terracotta); opacity: .18; }
  .plan__seed { fill: var(--color-terracotta); }
  .plan__seed-line { stroke: var(--color-ocre); stroke-width: 1.6; stroke-linecap: round; }
  .plan__villa-label { font-size: 21px; font-weight: 700; fill: var(--color-terracotta-texte); letter-spacing: .12em; font-family: var(--font-display); }
  .plan__quartier { font-size: 17px; fill: var(--color-encre); font-weight: 600; }
  .contact-form-grid { display: grid; gap: var(--space-6); }
  .contact-form-grid > div:first-child { display: grid; gap: var(--space-4); align-content: start; }
  @media (min-width: 64em) { .contact-form-grid { grid-template-columns: .8fr 1.2fr; gap: var(--space-8); } }
}
