/* =========================================================
   GENELIS DESIGN LANGUAGE — PAGE UTILITIES
   Shared page-level styling
   ========================================================= */

.page {
    min-height: 100vh;
}

.page-hero {
    padding-top: var(--space-8);
    padding-bottom: var(--space-8);
}

.page-content {
    padding: var(--space-8) 0;
}

.section {
    padding: var(--space-8) 0;
}

.section-sm {
    padding: var(--space-6) 0;
}

.section-lg {
    padding: 140px 0;
}

.center {
    text-align: center;
}

.center > * {
    margin-left: auto;
    margin-right: auto;
}

.content-width {
    max-width: 760px;
}

.content-width-lg {
    max-width: 980px;
}

@media (max-width: 900px) {
    .page-hero {
        padding-top: var(--space-6);
    }

    .section-lg {
        padding: 90px 0;
    }
}
/* =====================================================
   Standard Page Hero
===================================================== */

.page-hero {
    width: 92%;
    max-width: var(--container-xl);
    margin: 90px auto var(--space-9);
    padding: 80px 0 40px;
    text-align: center;
}

.page-hero-content {
    max-width: 980px;
    margin: 0 auto;
}

.page-badge {
    display: inline-flex;
    align-items: center;
    padding: 8px 16px;
    border-radius: var(--radius-pill);
    background: rgba(96, 165, 250, 0.12);
    border: 1px solid rgba(96, 165, 250, 0.22);
    color: var(--color-accent);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 22px;
}

.page-hero h1 {
    max-width: 980px;
    margin: 0 auto 24px;
    font-size: clamp(44px, 6vw, 72px);
}

.page-hero p {
    max-width: 760px;
    margin: 0 auto 32px;
    font-size: 20px;
}

@media (max-width: 900px) {
    .page-hero {
        margin-top: 60px;
        padding-top: 50px;
    }

    .page-hero h1 {
        font-size: clamp(38px, 10vw, 56px);
    }

    .page-hero p {
        font-size: 18px;
    }
}
/* ---------- Legal Pages ---------- */

.legal-page {
    width: 92%;
    max-width: 1500px;
    margin: 110px auto var(--space-9);
}

.legal-header {
    margin-bottom: 52px;
    padding: 52px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    background:
        radial-gradient(circle at top left, rgba(0, 229, 255, 0.14), transparent 36%),
        rgba(255, 255, 255, 0.04);
    box-shadow: var(--shadow-card);
}

.legal-header span {
    color: var(--color-accent);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.legal-header h1 {
    margin-top: 18px;
    font-size: clamp(42px, 6vw, 76px);
    line-height: 1.05;
}

.legal-header p {
    margin-top: 18px;
    color: var(--color-text-muted);
    line-height: 1.8;
    max-width: 780px;
}

.legal-content {
    display: grid;
    gap: 28px;
}

.legal-block {
    padding: 34px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.035);
}

.legal-block h2 {
    font-size: clamp(24px, 3vw, 34px);
    margin-bottom: 18px;
}

.legal-block h3 {
    font-size: 20px;
    margin-top: 24px;
    margin-bottom: 10px;
    color: var(--color-text);
}

.legal-block h4 {
    font-size: 17px;
    margin-top: 18px;
    margin-bottom: 8px;
    color: var(--color-text-muted);
}

.legal-block p,
.legal-block li {
    color: var(--color-text-muted);
    line-height: 1.85;
}

.legal-block p + p {
    margin-top: 14px;
}

.legal-block ul {
    margin-top: 14px;
    margin-left: 0;
    padding-left: 0;
    list-style: none;
    display: grid;
    gap: 10px;
}

.legal-block li {
    position: relative;
    padding-left: 24px;
}

.legal-block li::before {
    content: "•";
    position: absolute;
    left: 0;
    color: var(--color-accent);
    font-weight: 900;
}

.legal-footer-note {
    margin-top: 42px;
    padding-top: 28px;
    border-top: 1px solid var(--color-border);
    color: var(--color-text-muted);
}

@media (max-width: 768px) {
    .legal-page {
        width: 90%;
        margin-top: 88px;
    }

    .legal-header,
    .legal-block {
        padding: 26px;
    }
}
/* ===========================
404 PAGE
=========================== */

.error-page{
    min-height:85vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:120px 24px;
}

.error-card{

    max-width:850px;
    width:100%;

    text-align:center;

    padding:70px 55px;

    border:1px solid var(--color-border);

    border-radius:30px;

    background:
        radial-gradient(circle at top left,
        rgba(0,229,255,.12),
        transparent 40%),
        rgba(255,255,255,.03);

    box-shadow:var(--shadow-card);
}

.error-code{

    font-size:120px;

    font-weight:900;

    line-height:1;

    color:var(--color-accent);

    margin-bottom:18px;

}

.error-badge{

    display:inline-block;

    margin-bottom:18px;

    letter-spacing:.14em;

    text-transform:uppercase;

    color:var(--color-accent);

    font-weight:700;

}

.error-card h1{

    font-size:46px;

    line-height:1.2;

    margin-bottom:22px;

}

.error-card p{

    max-width:620px;

    margin:auto;

    line-height:1.8;

    color:var(--color-text-muted);

}

.error-actions{

    display:flex;

    justify-content:center;

    gap:18px;

    margin-top:45px;

    flex-wrap:wrap;

}

.error-links{

    margin-top:50px;

    display:flex;

    justify-content:center;

    gap:28px;

    flex-wrap:wrap;

}

.error-links a{

    color:var(--color-text-muted);

    transition:.3s;

}

.error-links a:hover{

    color:var(--color-accent);

}