/* Shared look for the Privacy, Terms and Support pages: the same sky and Moodle, a calm reading column. */
:root { --ink:#2A2340; --body:#4B4563; --brand:#127F59; --cream:#FFF8EF; --accent:#1E98C8; --ease:cubic-bezier(.22,.8,.3,1); }
* { box-sizing: border-box; margin: 0; }
html { -webkit-text-size-adjust: 100%; }
body { font: 600 1.05rem/1.7 'Nunito', system-ui, -apple-system, 'Segoe UI', sans-serif; color: var(--body); background: linear-gradient(180deg, #8FD6F0 0, #EAF8FB 420px, var(--cream) 900px) no-repeat, var(--cream); min-height: 100vh; -webkit-font-smoothing: antialiased; }
h1, h2, h3 { font-family: 'Outfit', 'Nunito', sans-serif; font-weight: 600; color: var(--ink); line-height: 1.15; letter-spacing: -.01em; }
h1 { font-size: clamp(2.1rem, 5vw, 3rem); }
h2 { font-size: 1.5rem; margin: 2.2em 0 .5em; }
h3 { font-size: 1.15rem; margin: 1.4em 0 .3em; }
a { color: var(--brand); text-underline-offset: 3px; }
:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; border-radius: 8px; }
.top { width: min(760px, 100% - 32px); margin: 0 auto; padding: 22px 0 0; display: flex; align-items: center; justify-content: space-between; }
.logo { display: flex; align-items: center; gap: 8px; font: 700 1.3rem 'Outfit', sans-serif; color: var(--ink); text-decoration: none; }
.logo img { width: 36px; height: 36px; margin: -4px 0; }
.top a.back { font: 600 .95rem 'Outfit', sans-serif; color: var(--ink); text-decoration: none; padding: 8px 16px; border-radius: 999px; background: rgba(255,255,255,.6); }
main { width: min(760px, 100% - 32px); margin: 28px auto 0; padding: 34px clamp(20px, 5vw, 44px) 40px; border-radius: 32px; background: rgba(255,255,255,.72); -webkit-backdrop-filter: blur(24px) saturate(150%); backdrop-filter: blur(24px) saturate(150%); box-shadow: 0 30px 56px -30px rgba(42,35,64,.3); }
main > p, main > ul, main > ol { margin-top: .8em; }
ul, ol { padding-left: 1.3em; } li { margin-top: .35em; }
.meta { font-size: .92rem; opacity: .8; margin-top: .5em; }
.lead { font-size: 1.15rem; margin-top: 1em; color: var(--ink); }
table { width: 100%; border-collapse: collapse; margin-top: 1em; font-size: .95rem; }
th, td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid rgba(42,35,64,.1); }
th { font-family: 'Outfit', sans-serif; font-weight: 600; color: var(--ink); }
.card { margin-top: 1.2em; padding: 18px 20px; border-radius: 20px; background: rgba(255,255,255,.7); }
footer { width: min(760px, 100% - 32px); margin: 0 auto; padding: 26px 0 44px; display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; font-size: .92rem; }
footer nav { display: flex; gap: 20px; } footer a { color: var(--ink); text-decoration: none; } footer a:hover { text-decoration: underline; }
@media (prefers-reduced-motion: no-preference) { main { animation: in 1s var(--ease) both; } @keyframes in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } } }
