/* ===================================================================
   Legal document pages — shared styling
   ===================================================================
   Used by the standalone legal templates that render inside Astra's
   header/footer:

     - template-privacy-policy.php  (/privacy-policy/)
     - template-sms-terms.php       (/sms-terms/)

   Enqueued from functions.php (handle `ll-legal`) for those templates
   only. Scoped to .ll-legal-doc — matches the homepage palette and type
   system. Fonts (Cormorant Garamond + Outfit) are enqueued alongside it
   as `ll-legal-fonts`.
   =================================================================== */

.ll-legal-doc {
    --ll-cream: #F6F1EB;
    --ll-warm-white: #FDFBF8;
    --ll-stone: #D4C9BC;
    --ll-navy: #1A2236;
    --ll-gold: #C4A46C;
    --ll-text-body: #4A4440;
    --ll-text-muted: #8A8078;
    --ll-serif: 'Cormorant Garamond', Georgia, serif;
    --ll-sans: 'Outfit', sans-serif;

    max-width: 780px;
    margin: 0 auto;
    padding: 5rem 1.75rem 6rem;
    font-family: var(--ll-sans);
    font-weight: 300;
    line-height: 1.75;
    color: var(--ll-text-body);
}

/* Page-level background behind the legal doc.
   Literal rather than var(--ll-warm-white): the token is declared on
   .ll-legal-doc, which is a descendant of these elements, so it would
   never resolve here and would silently fall back anyway. */
body.page-template-template-privacy-policy,
body.page-template-template-privacy-policy .site-content,
body.page-template-template-privacy-policy .ast-container,
body.page-template-template-sms-terms,
body.page-template-template-sms-terms .site-content,
body.page-template-template-sms-terms .ast-container {
    background: #FDFBF8;
}

.ll-legal-doc h1,
.ll-legal-doc h2,
.ll-legal-doc h3 {
    font-family: var(--ll-serif);
    color: var(--ll-navy);
    font-weight: 400;
    letter-spacing: -0.005em;
    line-height: 1.2;
}

.ll-legal-doc h1 {
    font-size: clamp(2.25rem, 4vw, 3rem);
    margin: 0 0 0.5rem;
}

.ll-legal-doc h1::after {
    content: "";
    display: block;
    width: 56px;
    height: 2px;
    background: var(--ll-gold);
    margin-top: 1.25rem;
}

.ll-legal-doc h3 {
    font-size: 1.55rem;
    margin: 3.25rem 0 0.75rem;
}

.ll-legal-doc h4 {
    font-family: var(--ll-sans);
    font-weight: 500;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--ll-navy);
    margin: 2rem 0 0.6rem;
}

.ll-legal-doc p {
    margin: 0 0 1.1rem;
}

.ll-legal-doc .ll-legal-meta {
    color: var(--ll-text-muted);
    font-size: 0.9rem;
    letter-spacing: 0.02em;
    margin-bottom: 2.25rem;
}

.ll-legal-doc a {
    color: var(--ll-navy);
    text-decoration: none;
    border-bottom: 1px solid var(--ll-gold);
    transition: color 0.15s ease, border-color 0.15s ease;
}

.ll-legal-doc a:hover,
.ll-legal-doc a:focus {
    color: var(--ll-gold);
    border-bottom-color: var(--ll-gold);
}

.ll-legal-doc ul,
.ll-legal-doc ol {
    padding-left: 1.35rem;
    margin: 0 0 1.3rem;
}

.ll-legal-doc li {
    margin-bottom: 0.55rem;
}

.ll-legal-doc strong {
    color: var(--ll-navy);
    font-weight: 500;
}

.ll-legal-doc em {
    font-family: var(--ll-serif);
    font-size: 1.05em;
}

/* Deep-link target highlight */
.ll-legal-doc h3:target {
    scroll-margin-top: 100px;
}

@media (max-width: 640px) {
    .ll-legal-doc {
        padding: 3rem 1.25rem 4rem;
        font-size: 0.975rem;
    }
    .ll-legal-doc h3 {
        font-size: 1.35rem;
        margin-top: 2.5rem;
    }
}
