/* Public pages (About, Contact, Privacy, Terms, 404): same tokens as the app. */
:root{
  /* LearnHub (Codescandy, MIT) : vert #09C82C sur gris neutres, police Geist. */
  --color-primary:#06801c;--color-primary-soft:#e6f9ea;--color-primary-strong:#d3f5da;
  --color-brand:#09c82c;--color-brand-strong:#00b014;--color-on-brand:#ffffff;
  --color-bg:#ffffff;--color-surface:#ffffff;--color-surface-muted:#f5f5f5;
  --color-heading:#171717;--color-text:#525252;--color-text-muted:#737373;--color-border:#e5e5e5;
  --radius-sm:999px;--radius-md:24px;--radius-lg:32px;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;
  --font-sans:"Geist","Geist Fallback","Geist Fallback Android",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color-scheme:light;
  --public-safe-top:var(--safe-area-inset-top,env(safe-area-inset-top,0px));
  --public-safe-bottom:var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px));
  --public-safe-left:var(--safe-area-inset-left,env(safe-area-inset-left,0px));
  --public-safe-right:var(--safe-area-inset-right,env(safe-area-inset-right,0px));
}
:root[data-theme="dark"]{
  --color-primary:#3ddc5c;--color-primary-soft:#10301a;--color-primary-strong:#163f22;
  --color-bg:#0a0a0a;--color-surface:#171717;--color-surface-muted:#262626;
  --color-heading:#fafafa;--color-text:#d4d4d4;--color-text-muted:#a3a3a3;--color-border:#262626;
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(76px + var(--public-safe-top))}
body{margin:0;background:var(--color-bg);color:var(--color-text);font:400 16px/1.6 var(--font-sans);min-height:100dvh;display:flex;flex-direction:column}
a{color:var(--color-primary)}
a:focus-visible,button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:6px}
.public-shell{width:min(100%,1180px);margin:0 auto;padding:0 calc(var(--space-6) + var(--public-safe-right)) 0 calc(var(--space-6) + var(--public-safe-left))}
.public-top{position:sticky;top:0;z-index:5;padding-top:var(--public-safe-top);background:var(--color-bg);border-bottom:1px solid var(--color-border);flex-shrink:0}
.public-top .public-shell{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);height:60px}
.public-brand{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-text);text-decoration:none;font-weight:700;font-size:18px}
.public-brand img{width:30px;height:30px}
.public-back{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 var(--space-4);border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary);text-decoration:none;font-weight:600;font-size:14px}
.public-back:hover{background:var(--color-primary-strong)}
main{flex:1 0 auto;padding:var(--space-10) 0 var(--space-12)}
.page-head{margin:0 0 var(--space-8)}
.page-head h1{margin:0;font-size:clamp(28px,4vw,40px);line-height:1.2;font-weight:700;letter-spacing:-.01em}
.page-head p{margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:17px}
.surface{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6)}
.reading{max-width:860px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:42px;padding:0 var(--space-5);border-radius:var(--radius-sm);font:600 15px var(--font-sans);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}
.btn-primary{background:var(--color-primary-soft);color:var(--color-primary)}
.btn-primary:hover{background:var(--color-primary-strong)}
.btn-ghost{background:transparent;color:var(--color-text-muted);border-color:var(--color-border)}
.btn-ghost:hover{color:var(--color-text);border-color:var(--color-text-muted)}
/* About */
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);margin:var(--space-6) 0}
.feature{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5)}
.feature h2{margin:0 0 var(--space-1);font-size:17px;line-height:1.35}
.feature p{margin:0;color:var(--color-text-muted);font-size:15px}
.note{color:var(--color-text-muted);margin:0}
/* Contact */
.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,440px);gap:var(--space-8);align-items:start}
.contact-card{display:grid;gap:var(--space-4)}
.contact-card dt{font-size:13px;color:var(--color-text-muted);margin:0}
.contact-card dd{margin:2px 0 0;font-weight:600;font-size:17px;word-break:break-all}
.contact-card dl{margin:0}
.contact-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.safety{margin:0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-surface-muted);color:var(--color-text-muted);font-size:14px}
/* Legal documents (same markup as the app) */
.legal-summary h2,.legal-page h2{font-size:clamp(20px,2.4vw,24px);line-height:1.3;margin:var(--space-8) 0 var(--space-3)}
.legal-summary p,.legal-page p{margin:0 0 var(--space-3)}
.legal-page{display:grid;gap:var(--space-2)}
.legal-page .card,.legal-page section{background:transparent;border:0;padding:0}
.legal-page-head h1{font-size:clamp(28px,4vw,40px);line-height:1.2;margin:var(--space-1) 0 var(--space-3)}
.legal-kicker{display:inline-block;font-size:13px;font-weight:600;color:var(--color-primary);text-transform:uppercase;letter-spacing:.04em}
.legal-notice{padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-primary-soft);color:var(--color-text);margin:var(--space-3) 0}
.legal-toc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-2);margin:var(--space-4) 0 var(--space-6)}
.legal-toc-grid a{display:flex;gap:var(--space-2);align-items:baseline;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);text-decoration:none;font-size:14px}
.legal-toc-grid a:hover{border-color:var(--color-primary)}
.legal-section-number{color:var(--color-primary);font-weight:700;margin-right:var(--space-2);font-variant-numeric:tabular-nums}
.legal-section-title{display:flex;align-items:baseline;gap:var(--space-2)}
.legal-bullets{margin:0 0 var(--space-3);padding-left:1.2em}
.legal-bullets li{margin:0 0 var(--space-2)}
.legal-table-wrap{overflow-x:auto;margin:0 0 var(--space-4)}
.legal-table{width:100%;border-collapse:collapse;font-size:15px}
.legal-table th,.legal-table td{text-align:left;vertical-align:top;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border)}
.legal-contact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-3);margin:var(--space-3) 0}
.legal-contact-item{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border)}
.legal-reference-links{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.legal-page [data-icon] svg,.legal-page svg{width:18px;height:18px}
/* 404 */
.not-found{max-width:560px}
.not-found .code{font-size:14px;font-weight:700;color:var(--color-primary);letter-spacing:.08em}
/* Footer */
.public-footer{border-top:1px solid var(--color-border);padding:var(--space-5) 0 calc(var(--space-5) + var(--public-safe-bottom));color:var(--color-text-muted);font-size:14px}
.public-footer nav{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4)}
.public-footer a{color:var(--color-text-muted);text-decoration:none}
.public-footer a:hover,.public-footer a[aria-current="page"]{color:var(--color-primary)}
@media (max-width:860px){
  .public-shell{padding:0 calc(var(--space-4) + var(--public-safe-right)) 0 calc(var(--space-4) + var(--public-safe-left))}
  main{padding:var(--space-6) 0 var(--space-10)}
  .feature-grid{grid-template-columns:1fr}
  .contact-layout{grid-template-columns:1fr;gap:var(--space-5)}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
/* The document header from the app uses a two-column layout: stack it here. */
.legal-page-head{display:block!important;min-width:0}
.legal-page-head>*{min-width:0;max-width:100%}
.legal-page,.legal-page *{overflow-wrap:anywhere}
.legal-page h1{word-break:normal;overflow-wrap:break-word}

/* ---------- LearnHub : police, titres, pilules, cartes 32 px ---------- */
@font-face{font-family:"Geist";font-style:normal;font-weight:100 900;font-display:swap;src:url("/assets/fonts/geist/geist-latin-wght-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Geist";font-style:normal;font-weight:100 900;font-display:swap;src:url("/assets/fonts/geist/geist-latin-ext-wght-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Geist Fallback";src:local("Arial"),local("Helvetica Neue"),local("Helvetica"),local("Liberation Sans");size-adjust:101.4%;ascent-override:99.7%;descent-override:29.6%;line-gap-override:0%}
@font-face{font-family:"Geist Fallback Android";src:local("Roboto");size-adjust:110.3%;ascent-override:91.6%;descent-override:27.2%;line-gap-override:0%}
h1,h2,h3,.public-brand,.contact-card dd{color:var(--color-heading)}
.page-head h1,.legal-page-head h1{font-weight:700;letter-spacing:-.02em}
.public-top{background:color-mix(in srgb,var(--color-surface) 92%,transparent);backdrop-filter:saturate(1.4) blur(10px);box-shadow:0 .125rem .25rem rgba(0,0,0,.075);border-bottom:0}
.public-back{border-radius:999px;color:#06801c}
:root[data-theme="dark"] .public-back{color:var(--color-primary)}
.btn{border-radius:999px}
.btn-primary{background:var(--color-brand);color:var(--color-on-brand)}
.btn-primary:hover{background:var(--color-brand-strong)}
.btn-ghost{background:var(--color-surface-muted);border-color:transparent;color:var(--color-heading)}
.btn-ghost:hover{background:var(--color-border);border-color:transparent;color:var(--color-heading)}
.surface{border-radius:var(--radius-lg);box-shadow:0 .125rem .25rem rgba(0,0,0,.075)}
.feature{border-radius:var(--radius-md);box-shadow:0 .125rem .25rem rgba(0,0,0,.075);transition:transform .2s ease,box-shadow .2s ease}
.feature:hover{transform:translateY(-4px);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}
.legal-kicker,.not-found .code{color:#06801c;letter-spacing:.125rem}
:root[data-theme="dark"] :is(.legal-kicker,.not-found .code){color:var(--color-primary)}
.legal-notice,.safety,.legal-contact-item{border-radius:20px}
.legal-toc-grid a{border-radius:16px}

