/* Foncière Sodaris — styles communs
   Les mises en page sont écrites directement dans chaque page (attributs style).
   Ce fichier contient les polices et les règles partagées. */

@font-face { font-family: 'Sora'; font-style: normal; font-weight: 300; font-display: swap; src: url('../fonts/sora-300.woff2') format('woff2'); }
@font-face { font-family: 'Sora'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/sora-400.woff2') format('woff2'); }
@font-face { font-family: 'Sora'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/sora-500.woff2') format('woff2'); }
@font-face { font-family: 'Sora'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/sora-600.woff2') format('woff2'); }
@font-face { font-family: 'Sora'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/sora-700.woff2') format('woff2'); }

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; scroll-behavior: smooth; }
body { background: #FFFFFF; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; }
fieldset { min-width: 0; }
input[type="file"], textarea, select, input { max-width: 100%; }
section[id] { scroll-margin-top: 88px; }
[hidden] { display: none !important; }

a { color: #0F1E3D; transition: color .25s ease, background-color .25s ease, opacity .25s ease; }
a:hover { color: #7A5A26; }
input, select, textarea, button { font: inherit; }
button { transition: background-color .25s ease, color .25s ease, border-color .25s ease; }
input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-visible, a:focus-visible { outline: 2px solid #B8935A; outline-offset: 2px; }

/* champ anti-robot : invisible pour les visiteurs */
.hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

/* pages de texte (mentions légales, confidentialité) */
.texte-legal { max-width: 820px; margin: 0 auto; padding: 64px 24px 96px; font-family: 'Sora', system-ui, sans-serif; color: #1A2440; line-height: 1.7; }
.texte-legal h1 { font-size: clamp(30px, 4vw, 42px); line-height: 1.15; font-weight: 600; letter-spacing: -0.03em; color: #0F1E3D; margin: 12px 0 8px; }
.texte-legal h2 { font-size: 20px; font-weight: 600; color: #0F1E3D; margin: 44px 0 12px; padding-top: 24px; border-top: 1px solid #E4E7EE; }
.texte-legal p, .texte-legal li { font-size: 15px; font-weight: 300; color: #3E4860; }
.texte-legal strong { font-weight: 600; color: #1A2440; }
.texte-legal dl { display: grid; grid-template-columns: minmax(140px, 220px) 1fr; gap: 8px 20px; font-size: 15px; margin: 0; }
.texte-legal dt { color: #5A6378; }
.texte-legal dd { margin: 0; font-weight: 500; }
.a-completer { background: #FFF6E0; border-radius: 4px; padding: 0 4px; }
@media (max-width: 560px) { .texte-legal dl { grid-template-columns: 1fr; gap: 2px; } .texte-legal dd { margin-bottom: 10px; } }

@media (prefers-reduced-motion: reduce) { html, body { scroll-behavior: auto; } * { transition: none !important; } }
