.privacy-page {
    --policy-bg: var(--surface-page);
    --policy-surface: var(--surface-primary);
    --policy-surface-soft: var(--surface-secondary);
    --policy-text: var(--text-primary);
    --policy-muted: var(--text-secondary);
    --policy-border: var(--border-subtle);
    color: var(--policy-text);
    background: var(--policy-bg);
}

.privacy-page .navbar {
    height: 70px;
    border-bottom: 1px solid var(--policy-border);
    background: color-mix(in srgb, var(--policy-surface) 90%, transparent);
    box-shadow: 0 8px 35px rgba(121, 85, 132, .07);
    backdrop-filter: blur(20px);
}

.privacy-page .nav-menu a[aria-current="page"] { color: var(--purple-dark); }
.privacy-page .nav-menu a[aria-current="page"]::after { right: 0; }

.privacy-hero {
    position: relative;
    overflow: hidden;
    padding: 126px 0 82px;
    border-bottom: 1px solid var(--policy-border);
    background: linear-gradient(180deg, var(--policy-surface), var(--policy-surface-soft));
}

.privacy-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .22;
    background-image: radial-gradient(rgba(var(--primary-rgb), .45) 1px, transparent 1px);
    background-size: 24px 24px;
    mask-image: linear-gradient(90deg, transparent, #000 35%, #000 65%, transparent);
}

.privacy-orb { position: absolute; border-radius: 50%; pointer-events: none; filter: blur(4px); }
.privacy-orb--one { width: 440px; height: 440px; right: -170px; top: -210px; background: rgba(var(--primary-rgb), .14); }
.privacy-orb--two { width: 320px; height: 320px; left: -160px; bottom: -220px; background: rgba(var(--secondary-rgb), .12); }
.privacy-hero__inner { position: relative; z-index: 1; }

.breadcrumb ol { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; color: var(--policy-muted); font-size: .78rem; font-weight: 700; }
.breadcrumb li + li::before { content: "/"; margin-right: 8px; color: color-mix(in srgb, var(--policy-muted) 55%, transparent); }
.breadcrumb a:hover { color: var(--purple-dark); }

.privacy-hero__copy { max-width: 820px; margin-top: 40px; }
.privacy-kicker { display: inline-flex; align-items: center; gap: 9px; color: var(--purple-dark); font-size: .76rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.privacy-kicker svg { width: 19px; height: 19px; }
.privacy-hero h1 { margin-top: 18px; font-family: var(--font-heading); font-size: clamp(2.4rem, 5vw, 4.7rem); line-height: 1.05; letter-spacing: -.055em; }
.privacy-hero__copy > p { max-width: 730px; margin-top: 23px; color: var(--policy-muted); font-size: clamp(1rem, 1.7vw, 1.18rem); line-height: 1.75; }
.policy-meta { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 27px; color: var(--policy-muted); font-size: .78rem; }
.policy-meta span { display: inline-flex; align-items: center; gap: 5px; }
.policy-meta span + span::before { content: ""; width: 5px; height: 5px; margin-right: 14px; border-radius: 50%; background: var(--green); }
.policy-meta strong { color: var(--policy-text); }

.draft-notice {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 14px;
    margin-top: -27px;
    padding: 19px 22px;
    border: 1px solid #e9b65e;
    border-radius: 18px;
    background: #fff9e9;
    box-shadow: var(--shadow-sm);
}
.draft-notice > svg { width: 24px; height: 24px; margin: 2px auto 0; color: #a66a12; }
.draft-notice strong { color: #784e10; font-size: .88rem; }
.draft-notice p { margin-top: 2px; color: #765f3e; font-size: .78rem; line-height: 1.55; }

.privacy-summary { padding: 72px 0 32px; }
.summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.summary-card {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    min-height: 152px;
    padding: 23px;
    border: 1px solid var(--policy-border);
    border-radius: 20px;
    background: var(--policy-surface);
    box-shadow: var(--shadow-sm);
}
.summary-card__icon { width: 43px; height: 43px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 13px; color: var(--purple-dark); background: var(--purple-soft); }
.summary-card__icon--green { color: var(--green-dark); background: var(--green-soft); }
.summary-card__icon svg { width: 21px; height: 21px; }
.summary-card h2 { font-family: var(--font-heading); font-size: .94rem; line-height: 1.35; }
.summary-card p { margin-top: 7px; color: var(--policy-muted); font-size: .78rem; line-height: 1.55; }

.privacy-layout { display: grid; grid-template-columns: 238px minmax(0, 780px); justify-content: center; gap: clamp(48px, 7vw, 105px); padding-top: 76px; padding-bottom: 120px; }
.policy-toc { align-self: stretch; }
.policy-toc__inner { position: sticky; top: 98px; padding: 20px 18px; border: 1px solid var(--policy-border); border-radius: 18px; background: var(--policy-surface); box-shadow: var(--shadow-sm); }
.policy-toc__inner > strong { display: block; padding: 0 9px 11px; border-bottom: 1px solid var(--policy-border); font-family: var(--font-heading); font-size: .78rem; }
.policy-toc nav { display: grid; gap: 2px; margin-top: 10px; }
.policy-toc a { position: relative; padding: 7px 9px 7px 16px; border-radius: 8px; color: var(--policy-muted); font-size: .72rem; font-weight: 700; line-height: 1.35; transition: color .2s ease, background .2s ease; }
.policy-toc a::before { content: ""; position: absolute; left: 6px; top: 50%; width: 3px; height: 3px; border-radius: 50%; background: currentColor; transform: translateY(-50%); }
.policy-toc a:hover, .policy-toc a.is-active { color: var(--purple-dark); background: rgba(var(--primary-rgb), .1); }

.policy-content { min-width: 0; }
.policy-content section { position: relative; scroll-margin-top: 100px; padding: 62px 0; border-bottom: 1px solid var(--policy-border); }
.policy-content section:first-child { padding-top: 0; }
.policy-content section:last-child { padding-bottom: 0; border-bottom: 0; }
.section-number { display: block; margin-bottom: 9px; color: var(--purple-dark); font-family: var(--font-heading); font-size: .69rem; font-weight: 800; letter-spacing: .13em; }
.policy-content h2 { font-family: var(--font-heading); font-size: clamp(1.55rem, 3vw, 2.2rem); line-height: 1.22; letter-spacing: -.035em; }
.policy-content h3 { margin-top: 30px; font-family: var(--font-heading); font-size: 1rem; line-height: 1.45; }
.policy-content p, .policy-content li { color: var(--policy-muted); font-size: .98rem; line-height: 1.8; }
.policy-content h2 + p, .policy-content h3 + p, .policy-content p + p, .policy-content p + ul, .policy-content ul + p, .policy-content p + .data-table-wrap, .policy-content p + .confirmation-box { margin-top: 18px; }
.policy-content ul { display: grid; gap: 9px; padding-left: 22px; }
.policy-content li::marker { color: var(--purple-dark); }

.check-list { padding-left: 0 !important; list-style: none; }
.check-list li { position: relative; padding-left: 29px; }
.check-list li::before { content: "✓"; position: absolute; left: 0; top: .25em; width: 19px; height: 19px; display: grid; place-items: center; border-radius: 50%; color: var(--green-dark); background: rgba(var(--secondary-rgb), .13); font-size: .68rem; font-weight: 900; }

.data-table-wrap { overflow-x: auto; border: 1px solid var(--policy-border); border-radius: 18px; background: var(--policy-surface); }
.data-table-wrap:focus-visible { outline: 3px solid rgba(var(--primary-rgb), .42); outline-offset: 4px; }
.data-table-wrap table { width: 100%; min-width: 600px; border-collapse: collapse; }
.data-table-wrap th, .data-table-wrap td { padding: 15px 17px; border-bottom: 1px solid var(--policy-border); text-align: left; vertical-align: top; font-size: .78rem; line-height: 1.55; }
.data-table-wrap thead th { color: var(--policy-text); background: var(--policy-surface-soft); font-family: var(--font-heading); font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
.data-table-wrap tbody th { width: 32%; color: var(--policy-text); font-weight: 800; }
.data-table-wrap tbody td { color: var(--policy-muted); }
.data-table-wrap tr:last-child th, .data-table-wrap tr:last-child td { border-bottom: 0; }

.sensitive-callout, .confirmation-box, .contact-card { margin-top: 25px; border-radius: 18px; }
.sensitive-callout { display: grid; grid-template-columns: 42px 1fr; gap: 15px; padding: 22px; border: 1px solid rgba(var(--primary-rgb), .24); background: color-mix(in srgb, var(--purple-soft) 64%, var(--policy-surface)); }
.sensitive-callout > svg { width: 27px; height: 27px; margin: 2px auto 0; color: var(--purple-dark); }
.sensitive-callout h3 { margin-top: 0; }
.sensitive-callout p { margin-top: 5px !important; font-size: .84rem; line-height: 1.65; }

.confirmation-box { padding: 19px 21px; border: 1px solid color-mix(in srgb, #d49a35 50%, var(--policy-border)); border-left: 4px solid #d49a35; background: color-mix(in srgb, #fff8e5 72%, var(--policy-surface)); }
.confirmation-box strong { color: color-mix(in srgb, #9a6209 80%, var(--policy-text)); font-size: .79rem; }
.confirmation-box p { margin-top: 4px !important; font-size: .79rem; line-height: 1.6; }

.rights-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px !important; padding: 0 !important; list-style: none; }
.rights-grid li { position: relative; padding: 12px 12px 12px 38px; border: 1px solid var(--policy-border); border-radius: 12px; background: var(--policy-surface); font-size: .82rem; line-height: 1.45; }
.rights-grid li::before { content: "✓"; position: absolute; left: 13px; top: 12px; color: var(--green-dark); font-weight: 900; }

.contact-card { display: grid; grid-template-columns: 48px 1fr; gap: 16px; padding: 24px; color: #fff; background: linear-gradient(135deg, var(--primary-deeper), var(--primary-deep)); box-shadow: var(--shadow-md); }
.contact-card > span { width: 45px; height: 45px; display: grid; place-items: center; border-radius: 13px; color: var(--secondary-light); background: rgba(255, 255, 255, .1); }
.contact-card h3 { margin: 0; color: #fff; }
.contact-card p { margin-top: 5px !important; color: rgba(255, 255, 255, .78); font-size: .84rem; line-height: 1.65; }
.contact-card p strong { color: #fff; }

.privacy-page .footer { border-top: 1px solid var(--policy-border); background: var(--policy-surface); }

@media (max-width: 1120px) {
    .privacy-page .nav-menu { gap: 13px; }
    .privacy-page .nav-menu a { font-size: .72rem; }
    .privacy-layout { grid-template-columns: 220px minmax(0, 720px); gap: 50px; }
}

@media (max-width: 900px) {
    .privacy-page .nav-menu.is-open { background: color-mix(in srgb, var(--policy-surface) 96%, transparent); }
    .privacy-hero { padding: 110px 0 66px; }
    .privacy-hero__copy { margin-top: 31px; }
    .summary-grid { grid-template-columns: 1fr; }
    .summary-card { min-height: 0; }
    .privacy-layout { grid-template-columns: 1fr; gap: 42px; padding-top: 46px; }
    .policy-toc__inner { position: static; }
    .policy-toc nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px 12px; }
}

@media (max-width: 680px) {
    .privacy-hero { padding: 98px 0 57px; }
    .privacy-hero h1 { font-size: clamp(2rem, 11vw, 3rem); }
    .privacy-hero__copy > p { font-size: .95rem; }
    .policy-meta { display: grid; gap: 5px; }
    .policy-meta span + span::before { display: none; }
    .draft-notice { grid-template-columns: 30px 1fr; margin-top: 14px; padding: 17px; }
    .privacy-summary { padding-top: 42px; }
    .summary-card { padding: 19px; }
    .policy-toc nav { grid-template-columns: 1fr; }
    .policy-content section { padding: 48px 0; }
    .policy-content p, .policy-content li { font-size: .93rem; }
    .rights-grid { grid-template-columns: 1fr; }
    .sensitive-callout, .contact-card { grid-template-columns: 1fr; }
    .sensitive-callout > svg { margin: 0; }
    .contact-card > span { width: 42px; height: 42px; }
}

@media (prefers-color-scheme: dark) {
    .privacy-page {
        color-scheme: dark;
        --ink: #f3eff7;
        --ink-soft: #b9b2c3;
        --paper: #17131a;
        --canvas: #1c171f;
        --line: rgba(255, 255, 255, .11);
        --line-strong: rgba(255, 255, 255, .2);
        --primary-dark: #d8a7e7;
        --purple-dark: #d8a7e7;
        --primary-soft: #34253a;
        --purple-soft: #34253a;
        --secondary-dark: #8bd98b;
        --green-dark: #8bd98b;
        --secondary-soft: #203b28;
        --green-soft: #203b28;
        --surface-page: #17131a;
        --surface-primary: #211b24;
        --surface-secondary: #1b161e;
        --text-primary: #f3eff7;
        --text-secondary: #b9b2c3;
        --border-subtle: rgba(255, 255, 255, .11);
        --shadow-sm: 0 8px 24px rgba(0, 0, 0, .22);
        --shadow-md: 0 20px 60px rgba(0, 0, 0, .3);
    }
    .privacy-page .nav-menu a, .privacy-page .nav-login { color: #ddd5e4; }
    .privacy-page .button--primary { color: #19131c; }
    .privacy-page .nav-toggle { background: #34253a; }
    .privacy-page .draft-notice { border-color: #765b2d; background: #2a2419; }
    .privacy-page .draft-notice strong { color: #f1ca81; }
    .privacy-page .draft-notice p { color: #d3bd98; }
    .privacy-page .confirmation-box { background: #292318; }
    .privacy-page .confirmation-box strong { color: #eac57e; }
    .privacy-page .footer-links a, .privacy-page .footer-brand p { color: var(--policy-muted); }
}
