:root {
  color-scheme: light;
  --legal-bg: #f4f7f5;
  --legal-surface: #ffffff;
  --legal-text: #16231d;
  --legal-muted: #66736d;
  --legal-border: #dce5e0;
  --legal-primary: #0d6b46;
  --legal-primary-strong: #075438;
  --legal-soft: #eaf5ef;
  --legal-danger: #b42318;
  --legal-shadow: 0 24px 60px rgba(22, 35, 29, 0.09);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--legal-bg); }
body { margin: 0; min-height: 100vh; color: var(--legal-text); background: radial-gradient(circle at top left, rgba(13,107,70,.08), transparent 34rem), var(--legal-bg); }
a { color: var(--legal-primary); }
button, input, textarea, select { font: inherit; }

.legal-topbar {
  position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  min-height: 72px; padding: 0 5vw;
  background: rgba(255,255,255,.93); border-bottom: 1px solid var(--legal-border);
  backdrop-filter: blur(16px);
}
.legal-brand { display: flex; align-items: center; gap: .8rem; text-decoration: none; color: var(--legal-text); font-weight: 800; }
.legal-brand-mark { display:grid; place-items:center; width:38px; height:38px; border-radius:12px; background:var(--legal-primary); color:#fff; font-size:1rem; box-shadow:0 8px 24px rgba(13,107,70,.2); }
.legal-top-actions { display:flex; align-items:center; gap:.65rem; flex-wrap:wrap; justify-content:flex-end; }
.legal-link-button { display:inline-flex; align-items:center; min-height:40px; padding:.55rem .85rem; border:1px solid var(--legal-border); border-radius:10px; background:#fff; color:var(--legal-text); text-decoration:none; font-weight:700; }
.legal-link-button:hover { border-color:#a9beb3; background:#fbfdfc; }

.legal-shell { width:min(1180px, 92vw); margin: 3rem auto 5rem; display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:2rem; align-items:start; }
.legal-document-card, .legal-side-card, .legal-consent-card {
  background:var(--legal-surface); border:1px solid var(--legal-border); border-radius:22px; box-shadow:var(--legal-shadow);
}
.legal-document-card { overflow:hidden; }
.legal-document-head { padding:clamp(1.5rem,4vw,3.2rem); border-bottom:1px solid var(--legal-border); background:linear-gradient(135deg,#fff,#f2faf6); }
.legal-eyebrow { margin:0 0 .65rem; text-transform:uppercase; letter-spacing:.12em; font-size:.76rem; font-weight:800; color:var(--legal-primary); }
.legal-document-head h1 { margin:0; font-size:clamp(2rem,4vw,3.25rem); line-height:1.05; letter-spacing:-.045em; }
.legal-document-head p { max-width:760px; margin:1rem 0 0; color:var(--legal-muted); font-size:1.03rem; line-height:1.7; }
.legal-meta { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.35rem; }
.legal-meta span { display:inline-flex; align-items:center; gap:.35rem; padding:.5rem .7rem; border-radius:999px; background:#fff; border:1px solid var(--legal-border); color:var(--legal-muted); font-size:.84rem; font-weight:700; }
.legal-content { padding:clamp(1.5rem,4vw,3.2rem); }
.legal-content h2 { margin:2.1rem 0 .75rem; font-size:1.35rem; letter-spacing:-.02em; }
.legal-content h2:first-child { margin-top:0; }
.legal-content h3 { margin:1.6rem 0 .55rem; font-size:1.05rem; }
.legal-content p, .legal-content li { color:#39463f; line-height:1.8; }
.legal-content ul { padding-left:1.25rem; }
.legal-warning { margin:0 0 1.4rem; padding:1rem 1.1rem; border:1px solid #f1c9a8; background:#fff7ed; color:#8a3b12; border-radius:12px; font-weight:700; line-height:1.55; }
.legal-side { position:sticky; top:96px; display:grid; gap:1rem; }
.legal-side-card { padding:1.2rem; box-shadow:0 12px 34px rgba(22,35,29,.06); }
.legal-side-card h2 { margin:0 0 .75rem; font-size:1rem; }
.legal-side-card p, .legal-side-card li { color:var(--legal-muted); font-size:.9rem; line-height:1.6; }
.legal-side-card ul { margin:.6rem 0 0; padding-left:1.1rem; }
.legal-side-card a { font-weight:700; }
.legal-loading { padding:3rem; text-align:center; color:var(--legal-muted); }
.legal-error { padding:1rem; border-radius:12px; background:#fef3f2; color:var(--legal-danger); border:1px solid #fecdca; }

.legal-consent-page { min-height:100vh; display:grid; place-items:center; padding:2rem; }
.legal-consent-shell { width:min(1020px,100%); display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:1.5rem; align-items:stretch; }
.legal-consent-intro { padding:clamp(1.5rem,4vw,3rem); border-radius:22px; background:linear-gradient(145deg,#073f2c,#0d6b46); color:#fff; box-shadow:var(--legal-shadow); }
.legal-consent-intro h1 { margin:.5rem 0 1rem; font-size:clamp(2rem,4vw,3rem); line-height:1.06; letter-spacing:-.045em; }
.legal-consent-intro p { color:rgba(255,255,255,.8); line-height:1.7; }
.legal-consent-list { margin:2rem 0 0; padding:0; list-style:none; display:grid; gap:.9rem; }
.legal-consent-list li { display:flex; gap:.75rem; align-items:flex-start; color:rgba(255,255,255,.9); }
.legal-consent-list b { display:grid; place-items:center; min-width:28px; height:28px; border-radius:9px; background:rgba(255,255,255,.14); }
.legal-consent-card { padding:clamp(1.5rem,4vw,2.4rem); }
.legal-consent-card h2 { margin:0; font-size:1.55rem; }
.legal-consent-card > p { color:var(--legal-muted); line-height:1.65; }
.legal-consent-docs { display:grid; gap:.85rem; margin:1.3rem 0; }
.legal-consent-doc { padding:1rem; border:1px solid var(--legal-border); border-radius:14px; background:#fbfdfc; }
.legal-consent-doc-head { display:flex; align-items:flex-start; justify-content:space-between; gap:.8rem; }
.legal-consent-doc h3 { margin:0; font-size:1rem; }
.legal-consent-doc p { margin:.45rem 0 0; color:var(--legal-muted); font-size:.9rem; line-height:1.55; }
.legal-consent-doc a { display:inline-flex; margin-top:.7rem; font-weight:800; }
.legal-check { display:flex; align-items:flex-start; gap:.75rem; margin:1rem 0; padding:1rem; border:1px solid var(--legal-border); border-radius:12px; cursor:pointer; }
.legal-check input { width:20px; height:20px; margin:.1rem 0 0; accent-color:var(--legal-primary); }
.legal-check span { line-height:1.55; color:#344139; }
.legal-primary-button { width:100%; min-height:52px; border:0; border-radius:12px; background:var(--legal-primary); color:#fff; font-weight:800; cursor:pointer; box-shadow:0 12px 28px rgba(13,107,70,.2); }
.legal-primary-button:hover { background:var(--legal-primary-strong); }
.legal-primary-button:disabled { opacity:.55; cursor:not-allowed; box-shadow:none; }
.legal-consent-status { min-height:24px; margin:.8rem 0 0; color:var(--legal-muted); font-size:.9rem; }

.legal-footer { width:min(1180px,92vw); margin:0 auto 2rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; color:var(--legal-muted); font-size:.85rem; }

@media (max-width: 900px) {
  .legal-shell, .legal-consent-shell { grid-template-columns:1fr; }
  .legal-side { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .legal-consent-intro { min-height:auto; }
}
@media (max-width: 620px) {
  .legal-topbar { padding:.8rem 1rem; align-items:flex-start; }
  .legal-brand span:last-child { display:none; }
  .legal-shell { width:min(100% - 1rem,1180px); margin:1rem auto 3rem; gap:1rem; }
  .legal-document-card, .legal-side-card, .legal-consent-card, .legal-consent-intro { border-radius:16px; }
  .legal-side { grid-template-columns:1fr; }
  .legal-consent-page { padding:.75rem; align-items:start; }
  .legal-consent-shell { gap:.75rem; }
  .legal-top-actions .legal-link-button:first-child { display:none; }
}
