/* KOMPETENZTEAM · support pages (Impressum, Datenschutz, app policies, 404)
   Loaded after site.css: same tokens, fonts, nav, buttons and footer; this file only adds the reading layout. */

.page { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; }
.page main { flex: 1; }

/* Nav: always solid and in the flow (no hero underneath) */
.page .nav { position: sticky; top: 0; }
.page .nav__actions { margin-left: auto; }
.nav__home { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: .95rem; color: var(--text); transition: color .2s; }
.nav__home svg { width: 16px; height: 16px; transition: transform .2s; }
.nav__home:hover { color: #fff; }
.nav__home:hover svg { transform: translateX(-3px); }

/* ── Document ── */
.doc { padding-block: clamp(48px, 7vw, 104px) clamp(64px, 8vw, 120px); }
.doc__body { max-width: 760px; }
.doc__body h1 {
    font-family: var(--display);
    font-stretch: 66%;
    font-weight: 800;
    text-transform: uppercase;
    line-height: .95;
    letter-spacing: -.005em;
    font-size: clamp(2.5rem, 7.4vw, 5.8rem);
    overflow-wrap: anywhere;
    hyphens: auto;
}
/* "Last updated" reads as an on-screen graphic, like the tags on the main page */
.doc__body .updated {
    display: inline-block;
    margin-top: 20px;
    padding: 5px 9px 4px;
    background: #fff;
    color: var(--ink);
    font-family: var(--display);
    font-stretch: 80%;
    font-weight: 800;
    font-size: .8rem;
    letter-spacing: .05em;
    line-height: 1.2;
    text-transform: uppercase;
}
.doc__body h1 + p, .doc__body .updated + p { margin-top: clamp(28px, 4vw, 44px); }
.doc__body h2 {
    margin-top: clamp(48px, 6vw, 72px);
    margin-bottom: 16px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
    font-family: var(--display);
    font-stretch: 72%;
    font-weight: 800;
    text-transform: uppercase;
    line-height: 1;
    font-size: clamp(1.6rem, 2.6vw, 2.2rem);
    overflow-wrap: anywhere;
}
.doc__body h3 {
    margin-top: 32px;
    margin-bottom: 10px;
    font-family: var(--display);
    font-stretch: 80%;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .03em;
    line-height: 1.15;
    font-size: 1.12rem;
}
.doc__body p, .doc__body li { max-width: 68ch; color: var(--soft); line-height: 1.7; }
.doc__body p { margin-bottom: 12px; }
.doc__body ul { margin-bottom: 16px; }
.doc__body li { position: relative; padding-left: 22px; margin-bottom: 10px; }
.doc__body li::before { content: ""; position: absolute; left: 2px; top: .68em; width: 6px; height: 6px; background: var(--accent); }
.doc__body strong { font-weight: 600; color: var(--text); }
.doc__body a {
    color: var(--text);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-decoration-color: rgba(255, 255, 255, .35);
    text-underline-offset: .25em;
    overflow-wrap: anywhere;
    transition: color .2s, text-decoration-color .2s;
}
.doc__body a:hover { color: #fff; text-decoration-color: var(--accent); }

/* campaignifyOS wordmark: always lowercase with "OS", "ai" in the accent colour, also inside uppercase headings */
.wordmark { text-transform: none; }

/* Footer: the current page is marked */
.footer a[aria-current="page"] { color: var(--text); }

/* ── 404: the camera lost its signal ── */
.error { display: flex; align-items: center; padding-block: clamp(32px, 5vw, 64px); }
.error__screen { position: relative; padding: clamp(40px, 7vw, 88px) clamp(20px, 5vw, 64px); }
.error__screen i { position: absolute; width: 34px; height: 34px; border: 0 solid rgba(255, 255, 255, .7); }
.error__screen i:nth-child(1) { top: 0; left: 0; border-top-width: 2px; border-left-width: 2px; }
.error__screen i:nth-child(2) { top: 0; right: 0; border-top-width: 2px; border-right-width: 2px; }
.error__screen i:nth-child(3) { bottom: 0; left: 0; border-bottom-width: 2px; border-left-width: 2px; }
.error__screen i:nth-child(4) { bottom: 0; right: 0; border-bottom-width: 2px; border-right-width: 2px; }
.error__fmt { position: absolute; top: 14px; right: 18px; font-family: var(--mono); font-weight: 500; font-size: .8rem; letter-spacing: .06em; color: rgba(255, 255, 255, .8); }
.error__code { font-size: clamp(7rem, 26vw, 19rem); line-height: .82; color: var(--text); }
.error__title { margin-top: clamp(20px, 3vw, 32px); }
.error__desc { max-width: 46ch; margin-top: 20px; color: var(--soft); }
.error__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

@media (max-width: 640px) {
    .nav__home { display: none; } /* the logo leads home on phones */
    .doc__body h2 { font-size: 1.6rem; }
    .error__fmt { display: none; }
    .error__actions .btn { flex: 1 1 100%; justify-content: center; }
}
