/* ==========================================================================
   Legal pages (Privacy Policy, Terms of Service, Medical Disclaimer)
   Scoped under .legal-page so it never affects the rest of the site.
   Reuses site CSS variables (--color-primary, --color-highlight, etc.).
   ========================================================================== */

.legal-hero {
    background: var(--color-highlight, #eef5f5);
    padding: 3.5rem 0 2.5rem;
    text-align: center;
}
.legal-hero h1 {
    margin: 0.5rem 0 0.25rem;
}
.legal-hero .legal-meta {
    color: #666;
    font-size: 0.95rem;
}

/* Breadcrumb (site has a base .breadcrumb; keep legal one self-contained) */
.legal-page .breadcrumb {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0;
    margin: 0 0 1.5rem;
    font-size: 0.9rem;
    color: #777;
}
.legal-page .breadcrumb li + li::before {
    content: "›";
    margin-right: 0.5rem;
    color: #aaa;
}
.legal-page .breadcrumb a {
    color: var(--color-primary, #1f4e4e);
    text-decoration: none;
}
.legal-page .breadcrumb a:hover { text-decoration: underline; }

/* Readable content column */
.legal-page {
    max-width: 860px;
    margin: 0 auto;
    color: #333;
    line-height: 1.75;
}
.legal-page h2 {
    margin-top: 2.5rem;
    padding-bottom: 0.4rem;
    border-bottom: 2px solid var(--color-highlight, #eef5f5);
    color: var(--color-primary, #1f4e4e);
}
.legal-page h3 { margin-top: 1.75rem; }
.legal-page h4 { margin-top: 1.25rem; margin-bottom: 0.4rem; }
.legal-page p,
.legal-page li { font-size: 1.02rem; }
.legal-page ul { padding-left: 1.4rem; }
.legal-page li { margin-bottom: 0.5rem; }
.legal-page a { color: var(--color-primary, #1f4e4e); }
.legal-page .disclaimer-updated,
.legal-page .lead {
    color: #666;
    font-size: 0.95rem;
    margin-bottom: 2rem;
}

/* Tables (privacy/cookies/retention) */
.legal-page table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5rem 0;
    font-size: 0.97rem;
}
.legal-page th,
.legal-page td {
    border: 1px solid #e2e2e2;
    padding: 0.7rem 0.9rem;
    text-align: left;
    vertical-align: top;
}
.legal-page th {
    background: var(--color-highlight, #eef5f5);
    color: var(--color-primary, #1f4e4e);
}

/* Alert / callout boxes */
.legal-page .alert {
    border-radius: 12px;
    padding: 1.1rem 1.3rem;
    margin: 1.5rem 0;
    border-left: 5px solid;
}
.legal-page .alert p:last-child,
.legal-page .alert ul:last-child { margin-bottom: 0; }
.legal-page .alert-warning {
    background: #fff8e6;
    border-left-color: #e0a800;
}
.legal-page .alert-danger {
    background: #fdecec;
    border-left-color: #d9534f;
}
.legal-page .alert h4 { margin-top: 0; }

/* Contact card */
.legal-page .contact-card {
    background: #fff;
    border: 1px solid #ececec;
    border-radius: 16px;
    padding: 1.5rem 1.75rem;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05);
    margin: 1.5rem 0;
}

/* Closing call-to-action */
.legal-page .cta-section {
    background: var(--color-primary, #1f4e4e);
    border-radius: 16px;
    padding: 2rem;
    margin-top: 3rem;
    text-align: center;
}
/* Force white on every child so a global `p {color}` rule can't make text
   unreadable on the dark card. */
.legal-page .cta-section,
.legal-page .cta-section h3,
.legal-page .cta-section p,
.legal-page .cta-section li,
.legal-page .cta-section strong,
.legal-page .cta-section a {
    color: #fff !important;
}
.legal-page .cta-section h3 { margin-top: 0; }
.legal-page .cta-section a { font-weight: 600; text-decoration: underline; }

@media (max-width: 600px) {
    .legal-page table,
    .legal-page thead,
    .legal-page tbody,
    .legal-page th,
    .legal-page td,
    .legal-page tr { display: block; }
    .legal-page thead { display: none; }
    .legal-page td { border: none; border-bottom: 1px solid #eee; }
}
