/* ==========================================================================
   CYBERNYX V1.2 — legal documents (privacy, cookies, terms, contract)
   Editorial two-column layout: sticky contents on the left, text on the right.
   Uses v12.css tokens only.
   ========================================================================== */

/* ---- page head ---- */
.page-head.doc-head{padding:80px 0 48px}
.doc-head h1{max-width:900px}
.doc-head .lead{max-width:680px}
.doc-meta{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:28px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--muted)}
.doc-meta b{font-weight:500;color:var(--ink)}

/* ---- two-column frame ---- */
.doc{display:grid;grid-template-columns:240px minmax(0,1fr);gap:72px;align-items:start;padding-top:64px;padding-bottom:128px}

/* ---- table of contents ---- */
.doc-toc{position:sticky;top:104px;max-height:calc(100vh - 128px);overflow-y:auto;padding-right:4px;scrollbar-width:thin}
.doc-toc summary{list-style:none;font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);display:flex;align-items:center;gap:10px;padding-bottom:14px;border-bottom:1px solid var(--ink)}
.doc-toc summary::-webkit-details-marker{display:none}
.doc-toc summary::before{content:"";width:7px;height:7px;background:var(--neon);border-radius:1px;flex:none}
.doc-toc ol{list-style:none;margin-top:6px}
.doc-toc li a{display:grid;grid-template-columns:26px 1fr;gap:6px;padding:8px 0 8px 10px;margin-left:-10px;border-left:2px solid transparent;font-family:var(--mono);font-size:12.5px;line-height:1.45;color:var(--muted);text-decoration:none;transition:color .2s,border-color .2s}
.doc-toc li a .n{color:var(--faint)}
.doc-toc li a:hover{color:var(--ink)}
.doc-toc li a.active{color:var(--ink);border-left-color:var(--neon)}
.doc-toc li a.active .n{color:var(--green-deep)}
@media(min-width:961px){
  .doc-toc summary{pointer-events:none;cursor:default}
}

/* ---- document text ---- */
.doc-body{max-width:68ch;font-size:16px;line-height:1.75;color:var(--text)}
.doc-body section{padding:0 0 56px;margin-bottom:56px;border-bottom:1px solid var(--line);scroll-margin-top:96px}
.doc-body section:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.doc-body h2{font-size:clamp(24px,2.4vw,30px);font-weight:600;line-height:1.2;margin-bottom:22px}
.doc-body h2 .sec-n,.doc-body h3 .sec-n{display:block;font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--green-deep);margin-bottom:10px}
.doc-body h3{font-size:18px;font-weight:600;line-height:1.3;margin:36px 0 12px}
.doc-body h3 .sec-n{display:inline;margin:0 10px 0 0;font-size:13px;letter-spacing:.02em;text-transform:none}
.doc-body p{margin-bottom:16px}
.doc-body p:last-child{margin-bottom:0}
.doc-body strong,.doc-body b{font-weight:600;color:var(--ink)}
.doc-body a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px;transition:text-decoration-color .2s}
.doc-body a:hover{text-decoration-color:var(--ink)}
.doc-body a.url{word-break:break-word}

/* lists */
.doc-list{list-style:none;margin:0 0 18px}
.doc-list > li{position:relative;padding:6px 0 6px 22px}
.doc-list > li::before{content:"";position:absolute;left:2px;top:19px;width:9px;height:1px;background:var(--ink)}
.doc-list.tight > li{padding:3px 0 3px 22px}
.doc-list.tight > li::before{top:16px}

/* numbered clauses (a), (b)… */
.clauses{list-style:none;counter-reset:cl;margin:0 0 18px}
.clauses > li{counter-increment:cl;display:grid;grid-template-columns:34px 1fr;padding:10px 0;border-top:1px solid var(--line)}
.clauses > li:last-child{border-bottom:1px solid var(--line)}
.clauses > li::before{content:"(" counter(cl,lower-alpha) ")";font-family:var(--mono);font-size:13px;color:var(--green-deep);padding-top:2px}

/* definition lists */
.defs{margin:8px 0 20px;border-top:1px solid var(--ink)}
.defs > div{display:grid;grid-template-columns:180px 1fr;gap:24px;padding:18px 0;border-bottom:1px solid var(--line)}
.defs dt{font-family:var(--head);font-weight:600;font-size:16px;color:var(--ink);line-height:1.5}
.defs dd{margin:0;color:var(--text)}
.defs dd p{margin-bottom:10px}

/* small mono tag under a term */
.doc-tag{display:inline-block;margin-top:6px;font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--green-deep)}

/* notes */
.note{background:var(--soft);border-radius:8px;padding:20px 22px;margin:22px 0;font-size:15px;line-height:1.7}
.note-lbl{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin-bottom:8px}
.note-lbl::before{content:"";width:6px;height:6px;background:var(--neon);border-radius:1px}
.note p{margin-bottom:8px}
.note p:last-child{margin-bottom:0}

/* quotes (legislation) */
.doc-quote{border-left:1px solid var(--ink);padding:4px 0 4px 22px;margin:18px 0;color:var(--muted);font-size:15px}

/* tables */
.doc-table-wrap{margin:18px 0 22px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.doc-table{width:100%;border-collapse:collapse;font-size:14.5px;line-height:1.6}
.doc-table th{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:left;padding:0 14px 12px 0;border-bottom:1px solid var(--ink);vertical-align:bottom}
.doc-table td{padding:14px 14px 14px 0;border-bottom:1px solid var(--line);vertical-align:top}
.doc-table td:last-child,.doc-table th:last-child{padding-right:0}
.doc-table td.k{font-weight:600;color:var(--ink);white-space:nowrap}
.doc-table code,.doc-body code{font-family:var(--mono);font-size:13px;color:var(--ink);background:var(--soft);padding:1px 6px;border-radius:4px}

/* plan blocks (contract) */
.plans{margin:18px 0 22px;border-top:1px solid var(--ink)}
.plan-def{display:grid;grid-template-columns:180px 1fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--line)}
.plan-def .pn{font-family:var(--head);font-weight:700;font-size:19px;color:var(--ink);line-height:1.3}
.plan-def .pn small{display:block;font-family:var(--mono);font-weight:400;font-size:11.5px;letter-spacing:.04em;color:var(--muted);margin-top:6px;line-height:1.5}
.plan-def .inv{font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:10px;line-height:1.6}
.plan-def .inv b{color:var(--ink);font-weight:500}

/* parties (contract) */
.parties{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:8px 0 8px}
.party{border-top:1px solid var(--ink);padding-top:18px;font-size:15px;line-height:1.7}
.party-role{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}

/* ---- password gate (contract) ---- */
#gate{position:fixed;inset:0;z-index:9999;background:var(--soft);display:flex;align-items:center;justify-content:center;padding:20px;overflow-y:auto}
.gate-box{width:100%;max-width:400px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:36px 32px 30px}
.gate-logo img{height:30px;width:auto;display:block;margin-bottom:30px}
.gate-kicker{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.gate-title{font-size:24px;font-weight:600;margin-bottom:10px}
.gate-sub{font-size:14.5px;color:var(--muted);line-height:1.6;margin-bottom:24px}
.gate-label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:7px}
.gate-input{width:100%;font-family:var(--mono);font-size:15px;letter-spacing:.12em;color:var(--ink);background:#fff;border:1px solid var(--line-2);border-radius:6px;padding:12px 14px;margin-bottom:12px}
.gate-input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(15,250,111,.25)}
.gate-input.error{border-color:#b42318}
.gate-btn{width:100%}
.gate-error{display:none;margin-top:12px;font-size:13.5px;color:#b42318}
.gate-error.show{display:block}
.gate-back{display:inline-block;margin-top:20px;font-size:13.5px;color:var(--muted);text-decoration:none}
.gate-back:hover{color:var(--ink)}
#main{display:none}
#main.visible{display:block}

/* ---- responsive ---- */
@media(max-width:960px){
  .doc{grid-template-columns:1fr;gap:0;padding-top:28px;padding-bottom:88px}
  .doc-toc{position:static;max-height:none;overflow:visible;padding:0;margin-bottom:44px;border:1px solid var(--line);border-radius:8px}
  .doc-toc summary{cursor:pointer;padding:16px 18px;border-bottom:0}
  .doc-toc summary::after{content:"+";margin-left:auto;font-size:16px;line-height:1;color:var(--muted)}
  .doc-toc[open] summary{border-bottom:1px solid var(--line)}
  .doc-toc[open] summary::after{content:"\2212"}
  .doc-toc ol{margin:0;padding:6px 18px 10px}
  .doc-toc li a{margin-left:0;padding-left:0;border-left:0}
  .doc-body{max-width:none}
}
@media(max-width:640px){
  .page-head.doc-head{padding:56px 0 36px}
  .doc-body section{padding-bottom:44px;margin-bottom:44px}
  .defs > div,.plan-def{grid-template-columns:1fr;gap:6px}
  .parties{grid-template-columns:1fr;gap:28px}
  .doc-table td.k{white-space:normal}
  .gate-box{padding:30px 22px 24px}
}
@media print{
  #mainNav,footer,.doc-toc,#gate{display:none!important}
  .doc{display:block;padding:0}
  .doc-body{max-width:none}
}
