.legal-shell { padding: clamp(3rem,6vw,6rem) var(--section-gutter,5vw); background:#f9f8f4; }
.legal-document { max-width: 850px; margin-inline: auto; overflow-wrap: anywhere; }
.legal-document h1 { margin: .7rem 0 1.5rem; font: 400 clamp(2.8rem,6vw,4.7rem)/1.04 var(--serif); text-wrap: balance; }
.legal-document h2 { margin: 2.5rem 0 .8rem; font: 500 clamp(1.6rem,3vw,2rem)/1.2 var(--serif); }
.legal-lead { font-size:1.2rem; color:var(--ink-soft); margin-bottom:2.5rem; }
.legal-date { color:#685777; font-size:.85rem; }
.legal-document p,.legal-document li { line-height:1.75; }
.legal-document a,.privacy-note a,.consent a { text-underline-offset:.2em; }
.legal-table-wrap { overflow-x:auto; }
.legal-document table { width:100%; border-collapse:collapse; font-size:.9rem; }
.legal-document caption { text-align:left; padding-bottom:1rem; font-weight:600; }
.legal-document th,.legal-document td { text-align:left; vertical-align:top; border-bottom:1px solid var(--line); padding:.8rem; }
.legal-document th { background:#e8dfff; }
.legal-document code { overflow-wrap:anywhere; font-size:.85em; }
.site-footer { display:grid; grid-template-columns:1fr auto; grid-template-areas:'name credit' 'legal legal'; align-items:center; gap:.8rem 1.5rem; padding:1.5rem var(--section-gutter,5vw); border-top:1px solid rgba(232,223,255,.28); letter-spacing:0; }
.footer-name { grid-area:name; font-size:1.05rem; white-space:nowrap; }
.footer-credit { grid-area:credit; align-self:center; justify-self:end; font-size:.7rem; letter-spacing:.01em; color:#bac0b7; white-space:nowrap; }
.footer-credit a { color:inherit; text-decoration-thickness:1px; }
.footer-credit a:hover,.footer-credit a:focus-visible { color:#e8dfff; }
.footer-legal { grid-area:legal; display:flex; flex-wrap:wrap; align-items:center; gap:.4rem 1.25rem; font-size:.8rem; line-height:1.6; }
.footer-legal a,.footer-legal button { display:inline-flex; align-items:center; min-height:32px; text-underline-offset:.25em; }
.footer-legal a { text-decoration-color:rgba(232,223,255,.45); }
.footer-legal a:hover,.footer-legal button:hover { color:#e8dfff; text-decoration-color:currentColor; }
@media (min-width:1280px) {
  .site-footer { grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:'name legal credit'; gap:1.5rem; }
  .footer-legal { justify-content:center; flex-wrap:nowrap; gap:1rem; white-space:nowrap; }
}
.form-status { margin:.5rem 0; padding:.85rem 1rem; border:1px solid var(--line); border-radius:6px; font-size:.95rem; }
.form-status[data-state="error"] { border-color:#a34135; color:#7d2e24; background:#fff2ef; }
.form-status[data-state="success"] { background:#eef3ea; color:#30372f; }
.button:disabled { opacity:.6; cursor:not-allowed; }
.newsletter-form .consent { display:flex; flex-direction:row; gap:.6rem; margin-top:.75rem; font-size:.78rem !important; line-height:1.45; align-items:flex-start; letter-spacing:0; text-transform:none; font-weight:400; }
.newsletter-form .consent > span { flex:1; min-width:0; }
.newsletter-form .consent input { min-height:0; width:18px; height:18px; flex:0 0 18px; margin-top:.25rem; padding:0; }
.form-data-note { font-size:.85rem; color:var(--ink-soft); margin-top:0; }
.contact-booking { margin:1.5rem 0 1.25rem; gap:2rem; min-height:54px; padding:1rem 1.5rem; }
.contact-booking + .section-intro { margin-top:0; }
@media (max-width:760px) {
  .legal-shell { padding:3rem 1.5rem; }
  .site-footer { grid-template-columns:1fr; grid-template-areas:'name' 'legal' 'credit'; justify-items:center; gap:.35rem; padding:1rem 1.25rem; text-align:center; }
  .footer-name { font-size:.9375rem; line-height:1.4; white-space:nowrap; }
  .footer-credit { justify-self:center; font-size:.7rem; line-height:1.4; }
  .footer-credit a { display:inline-flex; align-items:center; min-height:44px; }
  .footer-legal { width:100%; justify-content:center; align-items:center; column-gap:.85rem; row-gap:0; font-size:.8125rem; line-height:1.45; }
  .footer-legal a,.footer-legal button { display:inline-flex; align-items:center; min-height:44px; }
  .footer-legal button { flex:0 1 auto; width:auto; margin:0; padding:0; border:0; border-radius:0; text-align:center; text-decoration:underline; text-decoration-color:rgba(232,223,255,.45); text-underline-offset:.25em; }
}
@media (max-width:360px) {
  .footer-legal { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:.75rem; row-gap:0; }
  .footer-legal a,.footer-legal button { justify-content:center; text-align:center; }
}
