
:root { color-scheme: light; --ink:#202b32; --muted:#566670; --border:#dfe7e7; --accent:#176c65; --paper:#fffefa; --bg:#f6f8f7; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--bg); color:var(--ink); font:16px/1.72 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; }
a { color:var(--accent); text-underline-offset:3px; overflow-wrap:anywhere; }
a:hover { color:#0a4740; }
a:focus-visible { outline:3px solid #e8bc63; outline-offset:3px; border-radius:2px; }
.site-header { background:var(--paper); border-bottom:1px solid var(--border); }
.header-wrap { max-width:1040px; margin:auto; padding:20px 26px; display:flex; justify-content:space-between; gap:16px; align-items:center; }
.brand { color:var(--ink); text-decoration:none; line-height:1.2; font-weight:780; letter-spacing:-.03em; font-size:23px; }
.brand em { font-style:normal; color:var(--accent); }
.header-link { color:var(--muted); text-decoration:none; font-size:14px; }
main { width:min(100% - 36px,1040px); margin:46px auto 74px; }
.document { background:var(--paper); border:1px solid var(--border); box-shadow:0 8px 40px rgba(34,59,55,.035); border-radius:14px; padding:clamp(24px,5vw,62px); }
.eyebrow { text-transform:uppercase; letter-spacing:.14em; font-size:12px; font-weight:700; color:var(--accent); }
h1 { font-family:Georgia,"Times New Roman",serif; font-weight:600; letter-spacing:-.032em; font-size:clamp(35px,5vw,54px); line-height:1.15; margin:14px 0 16px; }
.lead { font-size:17px; line-height:1.7; color:var(--muted); margin:0; }
.metadata { border-top:1px solid var(--border); margin-top:25px; padding-top:19px; font-size:14px; color:var(--muted); }
.toc { margin:40px 0 12px; background:#f2f7f5; border:1px solid var(--border); border-radius:10px; padding:21px 26px; }
.toc h2 { margin:0 0 12px; font:700 15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif; letter-spacing:0; }
.toc ol { margin:0; padding-left:20px; columns:2; column-gap:40px; }
.toc li { break-inside:avoid; padding:3px 0; font-size:14px; }
.toc a { color:var(--ink); text-decoration:none; }
.toc a:hover { color:var(--accent); text-decoration:underline; }
.policy-section { border-top:1px solid var(--border); padding-top:28px; margin-top:33px; scroll-margin-top:25px; }
.policy-section h2 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(22px,3vw,28px); line-height:1.35; letter-spacing:-.025em; margin:0 0 15px; }
.policy-section h3 { font-size:17px; margin:25px 0 10px; }
.policy-section p { margin:0 0 12px; }
.policy-section ul { margin:6px 0 16px; padding-left:25px; }
.policy-section li { margin-bottom:5px; padding-left:2px; }
.manifesto { color:var(--accent); font-family:Georgia,serif; font-size:25px; margin:19px 0!important; }
.responsable { margin-bottom:0!important; }
.footer { border-top:1px solid var(--border); padding:24px; text-align:center; color:var(--muted); font-size:13px; }
.footer a { color:inherit; }
.coming-soon { max-width:700px; margin:0 auto; padding:80px 0; text-align:center; }
.coming-soon h1 { margin-top:10px; }
.coming-soon .note { background:var(--paper); border:1px solid var(--border); border-radius:12px; padding:25px; margin-top:34px; }
@media(max-width:640px) { .header-wrap{padding:16px 18px} .brand{font-size:21px} main{width:min(100% - 20px,1040px);margin:14px auto 35px} .document{padding:24px 20px;border-radius:10px} .toc{padding:20px} .toc ol{columns:1} .policy-section{padding-top:25px;margin-top:30px} .coming-soon{padding:60px 0} }
@media print { body{background:#fff;font-size:11pt} .site-header,.toc,.footer{display:none} main{width:100%;margin:0} .document{box-shadow:none;border:0;padding:0} .policy-section{break-inside:avoid} a{color:inherit;text-decoration:none} }
