/* BEMH — informations légales, lisibles sur ordinateur et téléphone. */
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.footer-legal { display:flex; gap:12px 24px; align-items:center; flex-wrap:wrap; }
.footer-legal nav { display:flex; gap:8px 20px; flex-wrap:wrap; }
.footer-legal a { display:inline-block; padding:5px 0; color:#fff; text-decoration:underline; text-underline-offset:4px; text-decoration-color:#89958c; transition:color .2s; }
.footer-legal a:hover { color:#a4ee9d; }
.legal-hero h1 { font-size:clamp(38px,5.5vw,70px); line-height:1.05; overflow-wrap:break-word; }
.legal-hero p { max-width:760px; }
.legal-layout { display:grid; grid-template-columns:230px minmax(0,1fr); gap:70px; padding-top:54px; padding-bottom:72px; align-items:start; }
.legal-nav { position:sticky; top:112px; background:var(--soft); border:1px solid var(--line); border-radius:18px; padding:23px; }
.legal-nav-label { display:block; font-size:11px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; color:#267c22; margin-bottom:14px; }
.legal-nav nav { display:grid; gap:3px; }
.legal-nav nav a { padding:8px 0; font-size:14px; line-height:1.4; color:var(--anth); transition:color .2s; }
.legal-nav nav a:hover { color:#237e20; }
.legal-nav p { border-top:1px solid var(--line); padding-top:18px; margin:18px 0 0; font-size:12px; color:var(--muted); }
.legal-nav time { color:var(--anth); font-weight:700; }
.legal-copy { min-width:0; max-width:840px; }
.legal-section { scroll-margin-top:110px; padding:30px 0; border-top:1px solid var(--line); }
.legal-section:first-child { padding-top:0; border-top:0; }
.legal-section h2 { font-size:clamp(24px,2.5vw,31px); line-height:1.15; margin:0 0 19px; letter-spacing:-.03em; }
.legal-section p, .legal-section li { color:#565e62; line-height:1.75; }
.legal-section p { margin:0 0 14px; }
.legal-section p:last-child { margin-bottom:0; }
.legal-section strong { color:var(--ink); }
.legal-section ul { padding-left:22px; }
.legal-section li + li { margin-top:10px; }
.legal-copy a, .form-privacy a, .check a, .map-placeholder a { color:#21751e; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.legal-details { display:grid; grid-template-columns:180px minmax(0,1fr); gap:0; margin:22px 0 0; font-size:15px; }
.legal-details dt, .legal-details dd { padding:13px 0; border-bottom:1px solid #e8ecea; }
.legal-details dt { font-weight:700; padding-right:16px; color:var(--anth); }
.legal-details dd { margin:0; overflow-wrap:anywhere; color:#565e62; }
.legal-highlight { padding:22px 24px; margin:0 0 20px; border-left:4px solid var(--green); border-radius:0 12px 12px 0; background:#f0f9ee; }
.legal-highlight > strong { display:block; margin-bottom:8px; font-size:21px; line-height:1.35; }
.legal-contact { padding:24px 26px; border-radius:16px; background:var(--soft); border:1px solid var(--line); margin-top:12px; }
.legal-contact strong { font-size:21px; }
.legal-contact p { margin:8px 0 0; color:var(--muted); }
.form-privacy { padding:16px 18px; border:1px solid var(--line); border-radius:12px; background:#f6f8f7; font-size:12px; line-height:1.6; color:#535d58; }
.form-privacy p { margin:0 0 9px; }
.form-privacy p:last-child { margin-bottom:0; }
.map-card { background:linear-gradient(135deg,#edf3ef,#e3ede5); }
.map-consent { position:relative; padding-bottom:68px; }
.map-placeholder { min-height:262px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:26px 22px 10px; gap:10px; }
.map-placeholder > svg { color:#278923; }
.map-placeholder > strong { font-size:17px; }
.map-placeholder p { font-size:12px; line-height:1.6; margin:0; color:#505e54; max-width:340px; }
.map-placeholder .btn { margin-top:4px; font-size:12px; max-width:100%; }
.map-frame iframe { width:100%; height:310px; display:block; border:0; }
.map-disable { position:absolute; top:12px; right:12px; z-index:2; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); padding:10px 12px; font:inherit; font-size:12px; font-weight:700; cursor:pointer; box-shadow:0 3px 12px #0002; }
.map-consent [hidden] { display:none !important; }
@media(max-width:980px) { .legal-layout { grid-template-columns:190px minmax(0,1fr); gap:32px; } .legal-nav { padding:18px; } }
@media(max-width:760px) {
  .footer-legal { flex-direction:column; align-items:flex-start; gap:8px; }
  .footer-legal nav a { min-height:44px; display:inline-flex; align-items:center; }
  .legal-layout { grid-template-columns:1fr; gap:32px; padding-top:28px; padding-bottom:48px; }
  .legal-nav { position:static; }
  .legal-nav nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2px 18px; }
  .legal-nav nav a { min-height:44px; }
  .legal-nav p { padding-top:12px; margin-top:12px; }
  .legal-section { scroll-margin-top:96px; padding:24px 0; }
  .legal-details { grid-template-columns:1fr; }
  .legal-details dt { border-bottom:0; padding:13px 0 2px; }
  .legal-details dd { padding:0 0 13px; }
  .legal-highlight, .legal-contact { padding:18px; }
  .map-placeholder { padding:22px 16px 12px; }
  .map-placeholder .btn, .map-disable { min-height:44px; }
}
@media(prefers-reduced-motion:reduce) { .footer-legal a, .legal-nav nav a { transition:none; } }
@media print { .legal-layout { display:block; } .legal-nav { display:none; } .legal-section { break-inside:avoid; } }
