/**
 * Patriot University — Theme Stylesheet
 * Global typography, layout, and base element styles.
 * Loads after tokens.pu.css.
 */

/* ── Self-hosted Inter Variable (woff2 only, no CDN) ─────────────────── */

@font-face {
    font-family: 'Inter';
    src: url('../fonts/InterVariable.woff2') format('woff2-variations');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

/* ── Base Reset ──────────────────────────────────────────────────────── */

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

/* ── Screen Reader Only (ITI shared convention) ──────────────────────── */

.iti-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* ── Body ────────────────────────────────────────────────────────────── */

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body.pu-body {
    font-family: var(--pu-font-body);
    font-size: 1rem;
    line-height: 1.6;
    color: var(--pu-ink);
    background-color: var(--pu-parchment);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ── Skip Link ───────────────────────────────────────────────────────── */

.pu-skip-link {
    position: absolute;
    top: -100%;
    left: var(--iti-space-md);
    z-index: 100001;
    padding: var(--iti-space-sm) var(--iti-space-md);
    background: var(--pu-navy);
    color: #fff;
    border-radius: var(--pu-radius);
    font-weight: 600;
    text-decoration: none;
    transition: top var(--iti-duration-fast) var(--iti-ease-standard);
}

.pu-skip-link:focus {
    top: var(--iti-space-sm);
    outline: 3px solid var(--pu-gold);
    outline-offset: 2px;
}

/* ── Typography ──────────────────────────────────────────────────────── */

h1, h2, h3, h4, h5, h6 {
    font-family: var(--pu-font-body);
    font-weight: 600;
    line-height: 1.25;
    color: var(--pu-ink);
}

h1 { font-size: 1.75rem; letter-spacing: -0.015em; margin-bottom: var(--iti-space-lg); }
h2 { font-size: 1.375rem; letter-spacing: -0.01em; margin-bottom: var(--iti-space-md); }
h3 { font-size: 1.125rem; margin-bottom: var(--iti-space-sm); }
h4 { font-size: 1rem; margin-bottom: var(--iti-space-sm); }

p {
    margin-bottom: var(--iti-space-md);
    max-width: var(--iti-max-line-length);
}

a {
    color: var(--pu-navy);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
    transition: color var(--iti-duration-fast) var(--iti-ease-standard);
}

a:hover { color: var(--pu-navy-dark); }

a:focus-visible {
    outline: 3px solid var(--pu-navy);
    outline-offset: 2px;
    border-radius: 2px;
}

code, pre {
    font-family: var(--pu-font-mono);
    font-size: 0.875rem;
}

code {
    background: var(--pu-gray-100);
    padding: 0.125em 0.375em;
    border-radius: var(--iti-radius-sm);
}

pre {
    background: var(--pu-gray-100);
    padding: var(--iti-space-md);
    border-radius: var(--pu-radius);
    overflow-x: auto;
    border: 1px solid var(--iti-border);
}

pre code {
    background: none;
    padding: 0;
}

blockquote {
    border-left: 3px solid var(--pu-gold);
    padding: var(--iti-space-sm) var(--iti-space-md);
    margin: var(--iti-space-md) 0;
    color: var(--pu-gray-600);
    background: var(--pu-gold-light);
    border-radius: 0 var(--pu-radius) var(--pu-radius) 0;
}

hr {
    border: none;
    border-top: 1px solid var(--iti-border);
    margin: var(--iti-space-xl) 0;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* ── Layout ──────────────────────────────────────────────────────────── */

.pu-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--iti-surface);
    border-bottom: 1px solid var(--iti-border);
    box-shadow: var(--pu-shadow);
}

.pu-header__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--iti-space-sm) var(--iti-space-md);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--iti-space-md);
    min-height: 56px;
}

.pu-header__brand a {
    text-decoration: none;
    color: var(--pu-navy);
    font-weight: 600;
    font-size: 1.125rem;
}

.pu-header__menu-toggle {
    display: none;
    appearance: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: var(--iti-space-sm);
    min-width: var(--pu-touch);
    min-height: var(--pu-touch);
    color: var(--pu-ink);
}

.pu-header__menu-toggle .pu-icon--close { display: none; }
.pu-header__menu-toggle[aria-expanded="true"] .pu-icon--menu { display: none; }
.pu-header__menu-toggle[aria-expanded="true"] .pu-icon--close { display: block; }

.pu-nav-list {
    list-style: none;
    display: flex;
    gap: var(--iti-space-xs);
    align-items: center;
}

.pu-nav-list li a {
    display: block;
    padding: var(--iti-space-sm) var(--iti-space-md);
    text-decoration: none;
    color: var(--pu-gray-600);
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: var(--pu-radius);
    transition: background var(--iti-duration-fast) var(--iti-ease-standard),
                color var(--iti-duration-fast) var(--iti-ease-standard);
    min-height: var(--pu-touch);
    display: flex;
    align-items: center;
}

.pu-nav-list li a:hover,
.pu-nav-list li.current-menu-item a {
    background: var(--pu-navy-light);
    color: var(--pu-navy);
}

/* ── Sub-menus (dropdown children) ───────────────────────────────────── */

.pu-nav-list li {
    position: relative;
}

.pu-nav-list .sub-menu {
    list-style: none;
    padding: var(--iti-space-xs) 0;
    margin: 0;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    background: var(--iti-surface);
    border: 1px solid var(--iti-border);
    border-radius: var(--pu-radius);
    box-shadow: var(--pu-shadow-lg);
    opacity: 0;
    visibility: hidden;
    transform: translateY(4px);
    transition: opacity var(--iti-duration-fast) var(--iti-ease-standard),
                visibility var(--iti-duration-fast) var(--iti-ease-standard),
                transform var(--iti-duration-fast) var(--iti-ease-standard);
    z-index: 100;
}

.pu-nav-list li:hover > .sub-menu,
.pu-nav-list li:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.pu-nav-list .sub-menu li a {
    padding: var(--iti-space-xs) var(--iti-space-md);
    font-size: 0.8125rem;
    white-space: nowrap;
}

.pu-nav-list .sub-menu li a:hover,
.pu-nav-list .sub-menu li.current-menu-item a {
    background: var(--pu-navy-light);
    color: var(--pu-navy);
}

/* ── Main Content ────────────────────────────────────────────────────── */

.pu-main {
    min-height: 50vh;
}

.pu-content-area {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--iti-space-xl) var(--iti-space-md);
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--iti-space-xl);
}

.pu-content-area--front {
    display: block;
}

.pu-content-area--kb-article {
    max-width: 100%;
    padding: var(--iti-space-md) var(--iti-space-md);
    grid-template-columns: 1fr;
}

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

.pu-hero {
    background: var(--pu-navy);
    color: #fff;
    padding: var(--iti-space-3xl) var(--iti-space-md);
    text-align: center;
}

.pu-hero__inner {
    max-width: 700px;
    margin: 0 auto;
}

.pu-hero__title {
    font-size: 2.25rem;
    font-weight: 600;
    letter-spacing: -0.02em;
    line-height: 1.2;
    color: #fff;
    margin-bottom: var(--iti-space-md);
}

.pu-hero__desc {
    font-size: 1.125rem;
    opacity: 0.9;
    margin-bottom: var(--iti-space-lg);
    max-width: none;
}

.pu-hero__search {
    max-width: 500px;
    margin: 0 auto;
}

.pu-hero .pu-search-form__input {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.3);
    color: #fff;
}

.pu-hero .pu-search-form__input::placeholder {
    color: rgba(255, 255, 255, 0.6);
}

/* ── Section ─────────────────────────────────────────────────────────── */

.pu-section {
    margin-bottom: var(--iti-space-3xl);
}

.pu-section__title {
    display: flex;
    align-items: center;
    gap: var(--iti-space-sm);
    font-size: 1.375rem;
    margin-bottom: var(--iti-space-lg);
    padding-bottom: var(--iti-space-sm);
    border-bottom: 2px solid var(--pu-navy);
}

.pu-section__title .pu-icon {
    width: 24px;
    height: 24px;
    color: var(--pu-navy);
}

.pu-section__subtitle {
    font-size: 1.125rem;
    font-weight: 600;
    margin-top: var(--iti-space-lg);
    margin-bottom: var(--iti-space-md);
    color: var(--pu-gray-600);
}

/* ── Article ─────────────────────────────────────────────────────────── */

.pu-article {
    max-width: 800px;
}

.pu-article__header {
    margin-bottom: var(--iti-space-xl);
    padding-bottom: var(--iti-space-md);
    border-bottom: 1px solid var(--iti-border);
}

.pu-kb-article .pu-article__header {
    margin-bottom: var(--iti-space-sm);
    padding-bottom: var(--iti-space-sm);
    border-bottom: none;
}

.pu-article__meta {
    display: flex;
    gap: var(--iti-space-md);
    color: var(--pu-gray-600);
    font-size: 0.875rem;
    margin-top: var(--iti-space-sm);
}

/* ── Prose (long-form content) ───────────────────────────────────────── */

.pu-prose {
    max-width: var(--iti-max-line-length);
    line-height: 1.7;
}

.pu-prose h2 {
    margin-top: var(--iti-space-2xl);
}

.pu-prose h3 {
    margin-top: var(--iti-space-xl);
}

.pu-prose ul,
.pu-prose ol {
    margin: 0 0 var(--iti-space-md) var(--iti-space-lg);
}

.pu-prose li {
    margin-bottom: var(--iti-space-xs);
}

.pu-prose table {
    width: 100%;
    border-collapse: collapse;
    margin: var(--iti-space-md) 0;
    font-size: 0.9375rem;
}

.pu-prose th {
    text-align: left;
    padding: var(--iti-space-sm) var(--iti-space-md);
    background: var(--iti-surface-2);
    font-weight: 600;
    border-bottom: 2px solid var(--iti-border);
}

.pu-prose td {
    padding: var(--iti-space-sm) var(--iti-space-md);
    border-bottom: 1px solid var(--iti-border);
    vertical-align: top;
}

.pu-prose tr:hover {
    background: var(--pu-navy-light);
}

/* ── Archive Header ──────────────────────────────────────────────────── */

.pu-archive-header {
    margin-bottom: var(--iti-space-xl);
    padding-bottom: var(--iti-space-md);
    border-bottom: 1px solid var(--iti-border);
}

.pu-archive-header__desc {
    color: var(--pu-gray-600);
    margin-top: var(--iti-space-sm);
}

/* ── Empty State ─────────────────────────────────────────────────────── */

.pu-empty-state {
    text-align: center;
    padding: var(--iti-space-3xl) var(--iti-space-md);
}

.pu-empty-state__image {
    max-width: 300px;
    margin: 0 auto var(--iti-space-lg);
}

.pu-empty-state__title {
    margin-bottom: var(--iti-space-sm);
}

.pu-empty-state__desc {
    color: var(--pu-gray-600);
    margin-bottom: var(--iti-space-lg);
    max-width: none;
}

.pu-empty-state__actions {
    margin-bottom: var(--iti-space-lg);
}

/* ── Footer ──────────────────────────────────────────────────────────── */

.pu-footer {
    background: var(--pu-navy-dark);
    color: rgba(255, 255, 255, 0.85);
    padding: var(--iti-space-2xl) var(--iti-space-md);
    margin-top: var(--iti-space-3xl);
}

.pu-footer__inner {
    max-width: 1200px;
    margin: 0 auto;
}

.pu-footer-nav-list {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: var(--iti-space-md);
    margin-bottom: var(--iti-space-lg);
}

.pu-footer-nav-list a {
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    font-size: 0.875rem;
}

.pu-footer-nav-list a:hover {
    color: #fff;
}

.pu-footer-legal-list {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: var(--iti-space-xs) var(--iti-space-md);
    padding: 0;
    margin-bottom: var(--iti-space-md);
}

.pu-footer-legal-list a {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    font-size: 0.75rem;
}

.pu-footer-legal-list a:hover {
    color: #fff;
    text-decoration: underline;
}

.pu-footer__meta {
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    padding-top: var(--iti-space-md);
}

.pu-footer__notice {
    font-size: 0.8125rem;
    opacity: 0.7;
    margin-bottom: var(--iti-space-xs);
    max-width: none;
}

.pu-footer__copyright {
    font-size: 0.75rem;
    opacity: 0.5;
}

/* ── Sidebar ─────────────────────────────────────────────────────────── */

.pu-sidebar {
    font-size: 0.875rem;
}

.pu-widget {
    margin-bottom: var(--iti-space-xl);
}

.pu-widget__title {
    font-size: 0.8125rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--pu-gray-600);
    margin-bottom: var(--iti-space-sm);
    padding-bottom: var(--iti-space-xs);
    border-bottom: 1px solid var(--iti-border);
}

/* ── Pagination ──────────────────────────────────────────────────────── */

.nav-links {
    display: flex;
    gap: var(--iti-space-xs);
    justify-content: center;
    margin-top: var(--iti-space-xl);
}

.nav-links a,
.nav-links span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: var(--pu-touch);
    min-height: var(--pu-touch);
    padding: var(--iti-space-sm) var(--iti-space-md);
    border-radius: var(--pu-radius);
    font-size: 0.875rem;
    text-decoration: none;
}

.nav-links a {
    background: var(--iti-surface);
    border: 1px solid var(--iti-border);
    color: var(--pu-navy);
}

.nav-links a:hover {
    background: var(--pu-navy-light);
}

.nav-links .current {
    background: var(--pu-navy);
    color: #fff;
    border: 1px solid var(--pu-navy);
}

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

@media (min-width: 768px) {
    .pu-content-area {
        grid-template-columns: 1fr 280px;
    }
}

@media (max-width: 767px) {
    .pu-header__menu-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .pu-header__nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: var(--iti-surface);
        border-bottom: 1px solid var(--iti-border);
        box-shadow: var(--pu-shadow-lg);
        padding: var(--iti-space-md);
    }

    .pu-header__nav.is-open {
        display: block;
    }

    .pu-nav-list {
        flex-direction: column;
        align-items: stretch;
    }

    .pu-nav-list .sub-menu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        border: none;
        padding-left: var(--iti-space-md);
        min-width: 0;
        background: transparent;
    }

    .pu-hero__title {
        font-size: 1.75rem;
    }
}

@media (min-width: 1024px) {
    .pu-content-area {
        grid-template-columns: 1fr 300px;
    }
    .pu-content-area--kb-article {
        max-width: 100%;
        grid-template-columns: 1fr;
    }
}

/* ── Standalone HTML Legal Pages ─────────────────────────────────────── */
/* Cookie Policy, Privacy Policy, Terms of Use, and DMCA were authored as
   standalone HTML documents. When pasted into WP, wpautop wraps the
   <head> contents in <p> tags and injects </p><p> inside <style> blocks,
   breaking all inline CSS. The theme supplies all structural & colour
   rules itself. Three class-name variants exist across the four pages:
     Terms of Use   → legal-layout   / legal-toc   / legal-section   / legal-footer
     Privacy Policy → privacy-layout / privacy-toc / privacy-section / privacy-footer
     Cookie & DMCA  → policy-layout  / .toc        / policy-section  / legal-footer  */

/* — wpautop garbage suppression ---------------------------------------- */

.pu-article:has(.page-header) .pu-article__header {
    display: none;
}

.pu-article__body:has(> .page-header) > p:first-child {
    display: none;
}

.pu-article__body:has(> .page-header) > style + p {
    display: none;
}

.pu-article__body:has(> .page-header) > style + p + p {
    display: none;
}

.pu-article__body > .legal-footer + p,
.pu-article__body > .privacy-footer + p {
    display: none;
}

.legal-layout > p:not([class]),
.privacy-layout > p:not([class]),
.policy-layout > p:not([class]) {
    display: none;
}

/* — Article width override (let internal grids breathe) ---------------- */

.pu-article:has(.legal-layout) .pu-article__body,
.pu-article:has(.privacy-layout) .pu-article__body,
.pu-article:has(.policy-layout) .pu-article__body {
    max-width: none;
}

.pu-article:has(.legal-layout),
.pu-article:has(.privacy-layout),
.pu-article:has(.policy-layout) {
    max-width: none;
}

/* — Page header hero --------------------------------------------------- */

.pu-article__body > .page-header {
    background: var(--pu-navy-dark, #0f2447);
    color: #fff;
    padding: 56px 24px 48px;
    border-bottom: 4px solid var(--pu-gold, #B8860B);
}

.pu-article__body > .page-header .page-header-inner {
    max-width: 760px;
    margin: 0 auto;
}

.pu-article__body > .page-header .site-label {
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.65);
    margin-bottom: 12px;
    display: block;
}

.pu-article__body > .page-header .page-title {
    font-size: 1.875rem;
    font-weight: 600;
    line-height: 1.2;
    color: #fff;
    margin-bottom: 12px;
}

.pu-article__body > .page-header .page-meta {
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.6);
}

.pu-article__body > .page-header .page-meta a {
    color: rgba(255, 255, 255, 0.8);
    text-decoration: underline;
}

/* — Two-column grid layout (Terms of Use, Privacy Policy) -------------- */

.pu-article__body > .legal-layout,
.pu-article__body > .privacy-layout {
    max-width: 1100px;
    margin: 0 auto;
    padding: 48px 24px 80px;
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 48px;
    align-items: start;
}

@media (max-width: 768px) {
    .pu-article__body > .legal-layout,
    .pu-article__body > .privacy-layout {
        grid-template-columns: 1fr;
        gap: 0;
    }
}

/* — Single-column layout (Cookie Policy, DMCA) ------------------------- */

.pu-article__body > .policy-layout {
    max-width: 860px;
    margin: 0 auto;
    padding: 48px 24px 80px;
}

/* — Sidebar TOC (legal-toc, privacy-toc) ------------------------------- */

.pu-article__body .legal-toc,
.pu-article__body .privacy-toc {
    background: var(--iti-surface, #fff);
    border: 1px solid var(--iti-border, #d4d0c8);
    border-radius: 8px;
    padding: 20px;
    position: sticky;
    top: 24px;
}

@media (max-width: 768px) {
    .pu-article__body .legal-toc,
    .pu-article__body .privacy-toc {
        margin-bottom: 32px;
        position: static;
    }
}

/* — Inline TOC (Cookie Policy, DMCA — .toc class) ---------------------- */

.pu-article__body .toc {
    background: var(--iti-surface, #fff);
    border: 1px solid var(--iti-border, #d4d0c8);
    border-radius: 8px;
    padding: 20px 28px;
    margin-bottom: 40px;
}

.pu-article__body .toc-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--pu-navy, #1a3a6b);
    margin-bottom: 12px;
}

.pu-article__body .toc ol {
    padding-left: 20px;
    margin: 0;
}

.pu-article__body .toc li {
    font-size: 0.875rem;
    line-height: 2;
}

.pu-article__body .toc a {
    color: var(--pu-navy, #1a3a6b);
    text-decoration: none;
}

.pu-article__body .toc a:hover {
    text-decoration: underline;
}

/* — TOC headings and lists (shared between sidebar variants) ----------- */

.pu-article__body .toc-heading {
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--pu-subtle, #6b7280);
    margin-bottom: 12px;
}

.pu-article__body .toc-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-left: 0;
}

.pu-article__body .toc-list a {
    font-size: 0.8125rem;
    color: var(--pu-ink, #1A1A2E);
    text-decoration: none;
    display: block;
    padding: 4px 8px;
    border-radius: 4px;
    line-height: 1.4;
    transition: background 0.15s, color 0.15s;
}

.pu-article__body .toc-list a:hover,
.pu-article__body .toc-list a:focus {
    background: var(--pu-navy-light, #e8eef8);
    color: var(--pu-navy, #1a3a6b);
    outline: none;
}

/* — Content sections (all three variants) ------------------------------ */

.pu-article__body .legal-section,
.pu-article__body .privacy-section,
.pu-article__body .policy-section {
    margin-bottom: 48px;
    scroll-margin-top: 24px;
}

.pu-article__body .legal-section h2,
.pu-article__body .privacy-section h2,
.pu-article__body .policy-section h2 {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--pu-navy, #1a3a6b);
    border-bottom: 2px solid var(--iti-border, #d4d0c8);
    padding-bottom: 10px;
    margin-bottom: 20px;
    line-height: 1.3;
}

.pu-article__body .section-number {
    font-size: 0.875rem;
    font-weight: 400;
    color: var(--pu-subtle, #6b7280);
    margin-right: 8px;
}

.pu-article__body .legal-section h3,
.pu-article__body .privacy-section h3,
.pu-article__body .policy-section h3 {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--pu-ink, #1A1A2E);
    margin: 24px 0 12px;
}

.pu-article__body .legal-section p,
.pu-article__body .privacy-section p,
.pu-article__body .policy-section p {
    font-size: 1rem;
    margin-bottom: 16px;
    line-height: 1.75;
}

.pu-article__body .legal-section ul,
.pu-article__body .legal-section ol,
.pu-article__body .privacy-section ul,
.pu-article__body .privacy-section ol,
.pu-article__body .policy-section ul,
.pu-article__body .policy-section ol {
    margin: 0 0 16px 0;
    padding-left: 24px;
}

.pu-article__body .legal-section li,
.pu-article__body .privacy-section li,
.pu-article__body .policy-section li {
    font-size: 1rem;
    line-height: 1.7;
    margin-bottom: 6px;
}

.pu-article__body .legal-section a,
.pu-article__body .privacy-section a,
.pu-article__body .policy-section a {
    color: var(--pu-navy, #1a3a6b);
    text-decoration: underline;
}

.pu-article__body .legal-section a:hover,
.pu-article__body .privacy-section a:hover,
.pu-article__body .policy-section a:hover {
    color: var(--pu-navy-dark, #0f2447);
}

/* — Summary / notice boxes --------------------------------------------- */

.pu-article__body .summary-box,
.pu-article__body .privacy-summary-box {
    background: var(--pu-navy-light, #e8eef8);
    border-left: 4px solid var(--pu-navy, #1a3a6b);
    border-radius: 0 8px 8px 0;
    padding: 20px 24px;
    margin-bottom: 40px;
}

.pu-article__body .summary-box h2,
.pu-article__body .privacy-summary-box h2 {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--pu-navy, #1a3a6b);
    margin-bottom: 8px;
}

.pu-article__body .summary-box p,
.pu-article__body .privacy-summary-box p {
    font-size: 1rem;
    color: var(--pu-ink, #1A1A2E);
    line-height: 1.6;
}

.pu-article__body .summary-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}

.pu-article__body .notice-box {
    background: var(--pu-navy-light, #e8eef8);
    border-left: 4px solid var(--pu-navy, #1a3a6b);
    border-radius: 0 8px 8px 0;
    padding: 20px 24px;
    margin-bottom: 40px;
}

/* — Data tables (Cookie Policy) ---------------------------------------- */

.pu-article__body .data-table-wrapper {
    overflow-x: auto;
    margin: 20px 0;
}

.pu-article__body .data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.pu-article__body .data-table th {
    background: var(--pu-navy, #1a3a6b);
    color: #fff;
    font-weight: 600;
    text-align: left;
    padding: 10px 14px;
}

.pu-article__body .data-table td {
    padding: 10px 14px;
    border-bottom: 1px solid var(--iti-border, #d4d0c8);
    vertical-align: top;
}

.pu-article__body .data-table tr:nth-child(even) td {
    background: rgba(0, 0, 0, 0.02);
}

.pu-article__body .data-table code {
    font-size: 0.8125rem;
    background: rgba(0, 0, 0, 0.05);
    padding: 2px 6px;
    border-radius: 3px;
}

/* — Alert boxes -------------------------------------------------------- */

.pu-article__body .alert-box {
    border-radius: 8px;
    padding: 16px 20px;
    margin: 20px 0;
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.pu-article__body .alert-box-icon {
    font-size: 1.25rem;
    flex-shrink: 0;
    line-height: 1.6;
}

.pu-article__body .alert-box-body p {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.6;
}

.pu-article__body .alert-green {
    background: #dcfce7;
    border: 1px solid #86efac;
    color: #15803d;
}

.pu-article__body .alert-blue {
    background: var(--pu-navy-light, #e8eef8);
    border: 1px solid #93c5fd;
    color: var(--pu-navy-dark, #0f2447);
}

.pu-article__body .alert-gold {
    background: #fef9c3;
    border: 1px solid #fde047;
    color: #854d0e;
}

/* — Contact card ------------------------------------------------------- */

.pu-article__body .contact-card {
    background: var(--iti-surface, #fff);
    border: 1px solid var(--iti-border, #d4d0c8);
    border-radius: 8px;
    padding: 24px;
    margin-top: 16px;
}

.pu-article__body .contact-card dt {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--pu-subtle, #6b7280);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 12px;
    margin-bottom: 4px;
}

.pu-article__body .contact-card dt:first-child {
    margin-top: 0;
}

.pu-article__body .contact-card dd {
    font-size: 1rem;
}

.pu-article__body .contact-card a {
    color: var(--pu-navy, #1a3a6b);
}

/* — Page footer (all variants) ----------------------------------------- */

.pu-article__body > .legal-footer,
.pu-article__body > .privacy-footer {
    background: var(--pu-navy-dark, #0f2447);
    color: rgba(255, 255, 255, 0.7);
    padding: 32px 24px;
    text-align: center;
    font-size: 0.875rem;
    border-top: 4px solid var(--pu-gold, #B8860B);
}

.pu-article__body > .legal-footer a,
.pu-article__body > .privacy-footer a {
    color: rgba(255, 255, 255, 0.85);
}

/* — Print -------------------------------------------------------------- */

@media print {
    .pu-article__body .legal-toc,
    .pu-article__body .privacy-toc,
    .pu-article__body .toc,
    .pu-article__body .page-header .site-label {
        display: none;
    }
    .pu-article__body .legal-layout,
    .pu-article__body .privacy-layout {
        grid-template-columns: 1fr;
    }
    .pu-article__body > .page-header {
        background: none;
        color: var(--pu-ink, #1A1A2E);
        border-bottom: 2px solid var(--pu-navy, #1a3a6b);
    }
    .pu-article__body > .page-header .page-title {
        color: var(--pu-ink, #1A1A2E);
    }
}

/* ── Reduced Motion ──────────────────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}
