.policy-page { min-height: 100vh; background: var(--bg-warm-black); }

.policy-topbar {
    position: sticky;
    top: 0;
    z-index: 20;
    height: 72px;
    padding: 0 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: rgba(26, 26, 24, 0.88);
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
}

.policy-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: var(--font-en-display);
    font-size: 15px;
    font-weight: 800;
}

.policy-brand img { width: 34px; height: 34px; border-radius: 8px; }

.policy-back {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text-warm-grey);
    transition: color 0.2s;
}

.policy-back:hover,
.policy-back span { color: var(--orange-main); }

.policy-main { width: min(1080px, calc(100% - 96px)); margin: 0 auto; }

.policy-hero {
    min-height: 540px;
    padding: 104px 0 80px;
    display: grid;
    align-content: center;
    border-bottom: 1px solid var(--border-dark);
}

.policy-eyebrow,
.policy-label {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 1.6px;
    color: var(--orange-main);
}

.policy-hero h1 {
    max-width: 780px;
    margin-top: 24px;
    font-family: var(--font-cn-body);
    font-size: 92px;
    line-height: 1.05;
    letter-spacing: 0;
}

.policy-hero > p {
    max-width: 720px;
    margin-top: 32px;
    color: var(--text-sand);
    font-size: 16px;
    line-height: 2;
}

.policy-meta {
    width: fit-content;
    margin-top: 40px;
    padding-top: 14px;
    display: grid;
    grid-template-columns: auto auto;
    gap: 24px;
    border-top: 2px solid var(--green-main);
    font-family: var(--font-mono);
    font-size: 11px;
}

.policy-meta span { color: var(--text-warm-grey); }
.policy-meta strong { color: var(--green-light); }

.policy-index {
    padding: 32px 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1px;
    border-bottom: 1px solid var(--border-dark);
}

.policy-index a {
    min-height: 82px;
    padding: 14px;
    display: grid;
    align-content: space-between;
    color: var(--text-sand);
    background: rgba(255, 255, 255, 0.025);
    font-size: 13px;
    transition: background 0.2s, color 0.2s;
}

.policy-index a:hover { color: var(--text-warm-white); background: rgba(233, 93, 33, 0.09); }
.policy-index span { font-family: var(--font-mono); font-size: 10px; color: var(--orange-main); }

.policy-section {
    padding: 88px 0;
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 48px;
    border-bottom: 1px solid var(--border-dark);
    scroll-margin-top: 80px;
}

.policy-section-number {
    font-family: var(--font-en-display);
    font-size: 56px;
    font-weight: 800;
    color: rgba(255, 255, 255, 0.12);
}

.policy-section-body { max-width: 760px; }

.policy-section h2,
.policy-contact h2 {
    margin: 12px 0 28px;
    font-size: 48px;
    line-height: 1.2;
}

.policy-section h3 { margin: 36px 0 12px; font-size: 18px; }

.policy-section p,
.policy-section li,
.policy-note span,
.policy-contact p {
    color: var(--text-sand);
    font-size: 15px;
    line-height: 2;
}

.policy-section p + p { margin-top: 20px; }
.policy-section ul { margin: 18px 0 24px; padding-left: 20px; }
.policy-section li + li { margin-top: 8px; }
.policy-section a,
.policy-contact a { color: var(--green-light); }

.policy-facts {
    margin: 32px 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--border-dark);
    border-left: 1px solid var(--border-dark);
}

.policy-facts div {
    min-height: 150px;
    padding: 24px;
    display: grid;
    align-content: start;
    gap: 12px;
    border-right: 1px solid var(--border-dark);
    border-bottom: 1px solid var(--border-dark);
}

.policy-facts strong { font-size: 15px; color: var(--text-warm-white); }
.policy-facts span { color: var(--text-warm-grey); font-size: 13px; line-height: 1.8; }

.policy-note {
    margin: 28px 0;
    padding: 22px 24px;
    display: grid;
    gap: 8px;
    border-left: 3px solid var(--orange-main);
    background: rgba(233, 93, 33, 0.07);
}

.policy-note strong { font-size: 14px; }
.policy-contact { padding: 112px 0; }
.policy-contact p { max-width: 600px; }

.policy-contact > a {
    width: fit-content;
    margin-top: 32px;
    padding-bottom: 6px;
    display: inline-flex;
    gap: 20px;
    border-bottom: 1px solid var(--green-main);
    font-family: var(--font-mono);
    font-size: 14px;
}

.policy-footer {
    width: min(1080px, calc(100% - 96px));
    margin: 0 auto;
    padding: 36px 0;
    display: flex;
    justify-content: space-between;
    border-top: 1px solid var(--border-dark);
    color: var(--text-warm-grey);
    font-family: var(--font-mono);
    font-size: 10px;
}

.policy-footer a {
    color: var(--text-warm-white);
    font-family: var(--font-en-display);
    font-size: 13px;
    font-weight: 800;
}

@media (max-width: 760px) {
    .policy-topbar { padding: 0 20px; }
    .policy-main,
    .policy-footer { width: calc(100% - 40px); }
    .policy-hero { min-height: auto; padding: 80px 0 64px; }
    .policy-hero h1 { font-size: 48px; }
    .policy-section h2,
    .policy-contact h2 { font-size: 32px; }
    .policy-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .policy-section { padding: 64px 0; grid-template-columns: 1fr; gap: 12px; }
    .policy-section-number { font-size: 36px; }
    .policy-facts { grid-template-columns: 1fr; }
    .policy-contact { padding: 80px 0; }
}

@media (max-width: 420px) {
    .policy-brand span { display: none; }
    .policy-hero h1 { font-size: 42px; }
    .policy-index { grid-template-columns: 1fr; }
    .policy-index a { min-height: 64px; }
    .policy-contact > a { font-size: 12px; }
}
