/* Shared styling for the public legal / policy pages.
 * Extracted from privacy-policy.html so every policy page looks identical
 * without duplicating ~340 lines of CSS per file. */
* { margin: 0; padding: 0; box-sizing: border-box; }
        html { scroll-behavior: smooth; }

        body {
            font-family: 'DM Sans', sans-serif;
            background: #f8f9fa;
            color: #333;
            overflow-x: hidden;
            line-height: 1.7;
        }

        /* NAV */
        nav {
            position: fixed; top: 0; left: 0; right: 0; z-index: 100;
            padding: 15px 60px;
            display: flex; justify-content: space-between; align-items: center;
            background: white;
            border-bottom: 1px solid #eee;
            box-shadow: 0 2px 8px rgba(0,0,0,0.05);
        }
        .nav-logo {
            font-family: 'Playfair Display', serif;
            font-size: 1.5rem; font-weight: 900; color: #333;
            text-decoration: none;
        }
        .nav-logo span { color: #1e90ff; }
        .nav-links { list-style: none; display: flex; gap: 32px; align-items: center; }
        .nav-links a {
            color: #666; text-decoration: none; font-size: 0.9rem;
            font-weight: 500; transition: color 0.3s;
        }
        .nav-links a:hover { color: #1e90ff; }
        .nav-cta {
            background: #22c55e !important; color: white !important;
            padding: 8px 20px; border-radius: 8px; font-weight: 700 !important;
            font-size: 0.85rem !important;
        }

        /* HERO */
        .legal-hero {
            padding: 160px 60px 40px;
            text-align: center;
            max-width: 900px;
            margin: 0 auto;
            background: linear-gradient(135deg, #1e90ff 0%, #38bdf8 100%);
            color: white;
        }
        .legal-hero .badge {
            display: inline-block;
            background: rgba(255,255,255,0.2);
            border: 1px solid rgba(255,255,255,0.4);
            color: white;
            padding: 6px 18px;
            border-radius: 50px;
            font-size: 0.75rem;
            font-weight: 700;
            letter-spacing: 1.5px;
            text-transform: uppercase;
            margin-bottom: 22px;
        }
        .legal-hero h1 {
            font-family: 'Playfair Display', serif;
            font-size: 3rem;
            font-weight: 900;
            line-height: 1.15;
            margin-bottom: 18px;
            color: white;
        }
        .legal-hero h1 em {
            font-style: normal;
            color: rgba(255,255,255,0.9);
        }
        .legal-hero p.lead {
            font-size: 1.05rem;
            color: rgba(255,255,255,0.95);
            line-height: 1.7;
            max-width: 720px;
            margin: 0 auto;
        }
        .effective-date {
            margin-top: 28px;
            display: inline-flex;
            gap: 24px;
            flex-wrap: wrap;
            justify-content: center;
            font-size: 0.82rem;
            color: rgba(255,255,255,0.8);
        }
        .effective-date strong {
            color: white;
            font-weight: 600;
        }

        /* TOC */
        .toc-wrap {
            max-width: 980px;
            margin: 0 auto;
            padding: 0 60px 40px;
        }
        .toc {
            background: white;
            border: 1px solid #e0e0e0;
            border-radius: 18px;
            padding: 28px 32px;
            box-shadow: 0 2px 8px rgba(0,0,0,0.05);
        }
        .toc h4 {
            font-family: 'Playfair Display', serif;
            font-size: 1rem;
            font-weight: 700;
            margin-bottom: 14px;
            color: #1e90ff;
            letter-spacing: .5px;
            text-transform: uppercase;
        }
        .toc ol {
            columns: 2;
            column-gap: 32px;
            list-style: none;
            counter-reset: toc;
            padding: 0;
            margin: 0;
        }
        .toc ol li {
            counter-increment: toc;
            padding: 6px 0;
            font-size: 0.9rem;
            break-inside: avoid;
            color: #333;
        }
        .toc ol li::before {
            content: counter(toc, decimal-leading-zero) ". ";
            color: #1e90ff;
            font-weight: 700;
            margin-right: 8px;
            font-variant-numeric: tabular-nums;
        }
        .toc ol li a {
            color: #666;
            text-decoration: none;
            transition: color .2s;
        }
        .toc ol li a:hover {
            color: #1e90ff;
            text-decoration: underline;
            text-underline-offset: 3px;
        }

        /* MAIN LEGAL CONTENT */
        .legal-content {
            max-width: 820px;
            margin: 0 auto;
            padding: 30px 60px 100px;
        }
        .legal-content section {
            padding: 28px 0;
            border-bottom: 1px solid #e0e0e0;
        }
        .legal-content section:last-of-type {
            border-bottom: none;
        }
        .legal-content h2 {
            font-family: 'Playfair Display', serif;
            font-size: 1.55rem;
            font-weight: 800;
            color: #1e90ff;
            margin-bottom: 14px;
            line-height: 1.3;
            scroll-margin-top: 90px;
        }
        .legal-content h2 .num {
            color: #1e90ff;
            margin-right: 10px;
            font-variant-numeric: tabular-nums;
        }
        .legal-content h3 {
            font-family: 'DM Sans', sans-serif;
            font-size: 1.02rem;
            font-weight: 700;
            color: #1e90ff;
            margin-top: 20px;
            margin-bottom: 8px;
            text-transform: uppercase;
            letter-spacing: 0.6px;
        }
        .legal-content p,
        .legal-content li {
            color: #666;
            font-size: 0.97rem;
            line-height: 1.75;
        }
        .legal-content p + p {
            margin-top: 12px;
        }
        .legal-content ul {
            list-style: none;
            padding: 0;
            margin: 10px 0 4px;
        }
        .legal-content ul li {
            padding: 6px 0 6px 22px;
            position: relative;
        }
        .legal-content ul li::before {
            content: "";
            position: absolute;
            left: 4px;
            top: 16px;
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: #22c55e;
        }
        .legal-content a {
            color: #1e90ff;
            text-decoration: none;
            border-bottom: 1px dotted #bbdefb;
        }
        .legal-content a:hover {
            border-bottom-color: #1e90ff;
        }
        .legal-content strong {
            color: #333;
            font-weight: 700;
        }
        .legal-content em {
            color: #999;
            font-style: italic;
        }

        .callout {
            background: #f0f7ff;
            border-left: 3px solid #1e90ff;
            border-radius: 6px;
            padding: 16px 20px;
            margin: 16px 0;
            font-size: 0.92rem;
            color: #666;
        }
        .callout strong { color: #1e90ff; }

        /* CONTACT CARD */
        .contact-card {
            margin-top: 30px;
            background: linear-gradient(135deg, #f0f7ff, #ffffff);
            border: 1px solid #bbdefb;
            border-radius: 20px;
            padding: 32px;
            box-shadow: 0 8px 40px rgba(30, 144, 255, 0.1);
        }
        .contact-card h3 {
            font-family: 'Playfair Display', serif;
            font-size: 1.3rem;
            color: #333;
            margin-bottom: 8px;
            font-weight: 800;
            text-transform: none;
            letter-spacing: 0;
        }
        .contact-card p {
            font-size: 0.93rem;
            color: #666;
            margin-bottom: 18px;
        }
        .contact-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 14px;
        }
        .contact-item {
            background: white;
            border: 1px solid #e0e0e0;
            border-radius: 10px;
            padding: 14px 16px;
        }
        .contact-item .label {
            font-size: 0.7rem;
            font-weight: 700;
            color: #999;
            letter-spacing: 1px;
            text-transform: uppercase;
            margin-bottom: 4px;
        }
        .contact-item .value {
            font-size: 0.95rem;
            color: #333;
            font-weight: 500;
            word-break: break-word;
        }
        .contact-item a {
            color: #1e90ff;
            text-decoration: none;
            border: none;
        }

        /* FOOTER */
        footer {
            background: white;
            border-top: 1px solid #eee;
            padding: 40px 60px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 20px;
        }
        .footer-logo {
            font-family: 'Playfair Display', serif;
            font-size: 1.4rem; font-weight: 900; color: #1e90ff;
        }
        .footer-links { display: flex; gap: 30px; flex-wrap: wrap; }
        .footer-links a {
            color: #666; text-decoration: none; font-size: 0.85rem; transition: color 0.3s;
        }
        .footer-links a:hover { color: #1e90ff; }
        .footer-copy { color: #999; font-size: 0.8rem; }

        /* RESPONSIVE */
        @media (max-width: 1024px) {
            nav { padding: 12px 30px; }
            .legal-hero { padding: 130px 30px 30px; }
            .legal-hero h1 { font-size: 2.4rem; }
            .toc-wrap, .legal-content { padding-left: 30px; padding-right: 30px; }
            footer { padding: 30px; }
        }
        @media (max-width: 768px) {
            .toc ol { columns: 1; }
            .contact-grid { grid-template-columns: 1fr; }
            .legal-content h2 { font-size: 1.35rem; }
        }
        @media (max-width: 640px) {
            nav { padding: 12px 20px; }
            .nav-links { display: none; }
            .legal-hero { padding: 120px 20px 24px; }
            .legal-hero h1 { font-size: 1.85rem; }
            .toc-wrap, .legal-content { padding-left: 20px; padding-right: 20px; }
            .contact-card { padding: 24px 20px; }
            footer { flex-direction: column; text-align: center; padding: 30px 20px; }
            .footer-links { justify-content: center; }
        }
