/* ========================
   LIVEA LEGAL PAGES
   Shared styles for:
     /privacy-policy/
     /terms-of-service/
     /accessibility/
   ======================== */

/* ─── Legal Hero ─────────────────────────────────────────────────────────── */

.legal-hero {
    background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 60%, var(--teal) 100%);
    color: white;
    padding: 140px 0 56px;
}

.legal-hero h1 {
    font-family: var(--font-serif);
    font-size: var(--type-h1);
    font-weight: 400;
    color: white;
    margin: 12px 0 16px;
    line-height: 1.2;
}

.legal-hero-subtitle {
    font-family: var(--font-sans);
    font-size: var(--type-body);
    color: white;
    max-width: 620px;
    line-height: var(--lh-body);
    margin: 0;
}

.hero-breadcrumb {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: var(--type-small);
    margin-bottom: 16px;
    color: rgba(255, 255, 255, 0.75);
}

.hero-breadcrumb a {
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    transition: color 0.2s;
}

.hero-breadcrumb a:hover {
    color: #fff;
}

.hero-breadcrumb .breadcrumb-sep {
    color: rgba(255, 255, 255, 0.55);
}

/* ─── Announcement Bar Clearance ─────────────────────────────────────────── */

body.has-announcement .legal-hero {
    padding-top: 200px;
}

@media (max-width: 768px) {
    body.has-announcement .legal-hero {
        padding-top: 180px;
    }
}

/* ─── Legal Body Section ─────────────────────────────────────────────────── */

.legal-section {
    background: var(--off-white);
    padding: 96px 0;
}

.legal-layout {
    max-width: 760px;
    margin: 0 auto;
    padding: 0 24px;
}

/* ─── Legal Prose ─────────────────────────────────────────────────────────── */

.legal-body {
    font-family: var(--font-sans);
    font-size: var(--type-body);
    line-height: var(--lh-body);
    color: var(--text-dark);
}

.legal-body h2 {
    font-family: var(--font-serif);
    font-size: var(--type-h2);
    font-weight: 400;
    color: var(--text-dark);
    line-height: 1.3;
    margin: 2.5rem 0 0.875rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--mint);
}

.legal-body h2:first-child {
    margin-top: 0;
}

.legal-body h3 {
    font-family: var(--font-serif);
    font-size: var(--type-h3);
    font-weight: 600;
    color: var(--text-dark);
    line-height: 1.4;
    margin: 1.75rem 0 0.6rem;
}

.legal-body h4 {
    font-family: var(--font-sans);
    font-size: var(--type-body);
    font-weight: 600;
    color: var(--text-dark);
    margin: 1.4rem 0 0.4rem;
    letter-spacing: 0.01em;
}

.legal-body p {
    margin: 0 0 1.25rem;
}

.legal-body p:last-child {
    margin-bottom: 0;
}

.legal-body ul,
.legal-body ol {
    padding-left: 1.75rem;
    margin: 0 0 1.25rem;
}

.legal-body ul {
    list-style-type: disc;
}

.legal-body ol {
    list-style-type: decimal;
}

.legal-body li {
    margin-bottom: 0.5rem;
    line-height: 1.8;
}

.legal-body li:last-child {
    margin-bottom: 0;
}

.legal-body li > ul,
.legal-body li > ol {
    margin-top: 0.4rem;
    margin-bottom: 0;
}

.legal-body strong {
    font-weight: 600;
    color: var(--text-dark);
}

.legal-body em {
    font-style: italic;
}

.legal-body a {
    color: var(--primary);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s;
}

.legal-body a:hover {
    color: var(--secondary);
}

.legal-body hr {
    border: none;
    border-top: 1px solid rgba(26, 36, 32, 0.1);
    margin: 2.25rem 0;
}

/* ─── Callout / Notice Box ────────────────────────────────────────────────── */

.legal-notice {
    background: var(--mint);
    border-left: 4px solid var(--primary);
    border-radius: 0 var(--radius) var(--radius) 0;
    padding: 1rem 1.25rem;
    margin: 1.5rem 0;
    font-size: var(--type-body);
    color: var(--text-dark);
    line-height: var(--lh-body);
}

.legal-notice p {
    margin: 0;
}

.legal-notice strong {
    color: var(--primary-dark);
}

/* ─── Last Updated Bar ────────────────────────────────────────────────────── */

.legal-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-sans);
    font-size: var(--type-small);
    color: var(--text-light);
    margin-bottom: 2.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid rgba(26, 36, 32, 0.08);
}

.legal-meta-dot {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--text-light);
    flex-shrink: 0;
}

/* ─── Contact / CTA Block ─────────────────────────────────────────────────── */

.legal-contact-block {
    background: var(--off-white);
    border-radius: var(--radius-md);
    padding: 24px 28px;
    margin-top: 2.5rem;
    border: 1px solid rgba(26, 36, 32, 0.07);
    box-shadow: var(--shadow-sm);
}

.legal-contact-block h3 {
    font-family: var(--font-serif);
    font-size: var(--type-body-lg);
    font-weight: 600;
    color: var(--text-dark);
    margin: 0 0 12px;
}

.legal-contact-block p {
    font-size: var(--type-body);
    color: var(--text-medium);
    margin: 0 0 0.6rem;
    line-height: var(--lh-body);
}

.legal-contact-block p:last-child {
    margin-bottom: 0;
}

.legal-contact-block a {
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s;
}

.legal-contact-block a:hover {
    color: var(--secondary);
    text-decoration: underline;
}

/* ─── Responsive ──────────────────────────────────────────────────────────── */

@media (max-width: 768px) {
    .legal-hero {
        padding: 120px 0 44px;
    }

    .legal-section {
        padding: 64px 0;
    }

    .legal-body h2 {
        margin-top: 2rem;
    }

    .legal-contact-block {
        padding: 20px;
    }
}

@media (max-width: 480px) {
    .legal-meta {
        flex-wrap: wrap;
    }
}
