.policy-page {
  --policy-navy: #071f42;
  --policy-blue: #1658a9;
  --policy-green: #24a56a;
  --policy-gold: #e8a817;
  --policy-ink: var(--text-main, #14243a);
  --policy-muted: var(--text-sub, #5d6d81);
  --policy-card: var(--bg-card, #fff);
  --policy-border: var(--border-color, #dce5ef);
}

.policy-main {
  width: min(1160px, calc(100% - 36px));
  margin: 0 auto;
  padding: 22px 0 56px;
  color: var(--policy-ink);
}

.policy-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
  color: var(--policy-muted);
  font-size: .86rem;
}
.policy-breadcrumb a { color: #2762aa; text-decoration: none; }
.policy-breadcrumb a:hover { text-decoration: underline; }

.policy-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
  min-height: 450px;
  overflow: hidden;
  border: 1px solid rgba(100,158,221,.32);
  border-radius: 29px;
  background:
    radial-gradient(circle at 78% 32%, rgba(50,184,126,.23), transparent 30%),
    linear-gradient(135deg, #061a39 0%, #0a3265 62%, #116a67 100%);
  box-shadow: 0 22px 55px rgba(8,36,76,.2);
  color: #fff;
}
.policy-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 34px 34px;
  mask-image: linear-gradient(90deg, #000, transparent 88%);
  pointer-events: none;
}
.policy-hero-copy { position: relative; z-index: 2; align-self: center; padding: 50px 28px 50px 55px; }
.policy-eyebrow,
.policy-kicker { margin: 0 0 10px; color: #187c53; font-size: .8rem; font-weight: 850; letter-spacing: .08em; }
.policy-eyebrow { display: inline-flex; align-items: center; gap: 8px; color: #8ff0be; }
.policy-eyebrow span { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; background: rgba(105,229,164,.16); }
.policy-hero h1 { margin: 0; color: #fff; font-size: clamp(2.2rem, 4.5vw, 4rem); line-height: 1.14; letter-spacing: -.035em; }
.policy-hero h1 span { color: #83e5b4; }
.policy-hero-copy > p:not(.policy-eyebrow) { max-width: 680px; margin: 21px 0 0; color: #d4e7f7; font-size: 1.03rem; line-height: 1.82; }
.policy-badges { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 21px; }
.policy-badges span { padding: 7px 11px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; background: rgba(255,255,255,.08); color: #f2f8ff; font-size: .8rem; font-weight: 750; }
.policy-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 29px; }
.policy-btn { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 10px; padding: 11px 20px; border: 1px solid transparent; border-radius: 14px; font-weight: 850; text-decoration: none; transition: transform .18s ease, background .18s ease, box-shadow .18s ease; }
.policy-btn:hover { transform: translateY(-2px); }
.policy-btn-primary { background: linear-gradient(135deg, #7aebad, #31b875); color: #082c1c; box-shadow: 0 10px 25px rgba(42,183,113,.25); }
.policy-btn-secondary { border-color: rgba(255,255,255,.36); background: rgba(255,255,255,.07); color: #fff; }
.policy-btn-secondary:hover { background: rgba(255,255,255,.14); }

.policy-hero-visual { position: relative; min-height: 450px; }
.policy-shield { position: absolute; top: 50%; left: 50%; display: grid; width: 190px; height: 220px; place-content: center; border: 2px solid rgba(255,255,255,.35); border-radius: 42% 42% 52% 52% / 30% 30% 65% 65%; background: linear-gradient(150deg, rgba(255,255,255,.18), rgba(40,178,112,.22)); box-shadow: 0 24px 55px rgba(0,0,0,.22); text-align: center; transform: translate(-50%, -50%); backdrop-filter: blur(12px); }
.policy-shield > span { display: grid; width: 64px; height: 64px; place-items: center; margin: 0 auto 13px; border-radius: 50%; background: #73e4aa; color: #073b23; font-size: 2rem; font-weight: 900; }
.policy-shield strong,
.policy-shield small { display: block; }
.policy-shield strong { color: #fff; font-size: 1.15rem; }
.policy-shield small { margin-top: 4px; color: #c7e9da; }
.policy-orbit { position: absolute; padding: 8px 12px; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; background: rgba(4,31,63,.72); color: #eaf5ff; font-size: .74rem; font-weight: 750; backdrop-filter: blur(8px); }
.policy-orbit-one { top: 20%; left: 5%; }
.policy-orbit-two { top: 28%; right: 3%; }
.policy-orbit-three { right: 9%; bottom: 18%; }

.policy-status-strip { display: grid; grid-template-columns: repeat(3, 1fr); margin: -1px 28px 0; border: 1px solid var(--policy-border); border-top: 0; border-radius: 0 0 19px 19px; background: var(--policy-card); box-shadow: 0 12px 32px rgba(24,48,82,.08); }
.policy-status-strip > div { padding: 17px 22px; border-left: 1px solid var(--policy-border); text-align: center; }
.policy-status-strip > div:first-child { border-left: 0; }
.policy-status-strip small,
.policy-status-strip strong { display: block; }
.policy-status-strip small { color: var(--policy-muted); font-size: .74rem; }
.policy-status-strip strong { margin-top: 5px; color: var(--policy-ink); font-size: .98rem; }

.policy-section { padding: 68px 0 16px; }
.policy-section-heading { max-width: 680px; margin: 0 auto 28px; text-align: center; }
.policy-heading-left { margin: 0 0 26px; text-align: left; }
.policy-section-heading h2,
.policy-report-card h2,
.policy-ad-independence h2,
.policy-next h2 { margin: 0; color: var(--policy-ink); font-size: clamp(1.65rem, 3vw, 2.3rem); line-height: 1.28; }
.policy-section-heading > p:last-child { margin: 10px 0 0; color: var(--policy-muted); }

.policy-type-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.policy-type-card { position: relative; overflow: hidden; padding: 25px; border: 1px solid var(--policy-border); border-radius: 21px; background: var(--policy-card); box-shadow: 0 10px 30px rgba(25,51,87,.075); }
.policy-type-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--type-color); }
.policy-type-fact { --type-color: #2e70ca; }
.policy-type-market { --type-color: #d7960e; }
.policy-type-guide { --type-color: #25a266; }
.policy-type-report { --type-color: #8057c7; }
.policy-type-top { display: flex; align-items: center; gap: 10px; color: var(--type-color); font-size: .82rem; }
.policy-type-top > span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 13px; background: color-mix(in srgb, var(--type-color) 12%, transparent); font-size: 1.15rem; }
.policy-type-card h3 { margin: 17px 0 0; color: var(--policy-ink); font-size: 1.08rem; }
.policy-type-card > p { margin: 9px 0 0; color: var(--policy-muted); font-size: .88rem; line-height: 1.72; }
.policy-type-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 18px 0 0; }
.policy-type-card dl > div { padding: 11px 12px; border-radius: 12px; background: var(--bg-soft, #f4f7fb); }
.policy-type-card dt { color: var(--policy-muted); font-size: .68rem; }
.policy-type-card dd { margin: 4px 0 0; color: var(--policy-ink); font-size: .78rem; font-weight: 750; }

.policy-correction-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); gap: 18px; padding: 52px 0 14px; }
.policy-correction-card,
.policy-report-card,
.policy-maintenance,
.policy-ad-independence,
.policy-next { border: 1px solid var(--policy-border); border-radius: 24px; background: var(--policy-card); box-shadow: 0 12px 34px rgba(25,51,87,.08); }
.policy-correction-card { padding: 31px; }
.policy-step-list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 11px; margin: 0; padding: 0; list-style: none; }
.policy-step-list li { position: relative; padding: 17px 14px; border: 1px solid var(--policy-border); border-radius: 16px; background: var(--bg-soft, #f6f8fb); }
.policy-step-list li > span { display: grid; width: 34px; height: 34px; place-items: center; margin-bottom: 13px; border-radius: 11px; background: #dff5e9; color: #14794a; font-size: .77rem; font-weight: 900; }
.policy-step-list strong { color: var(--policy-ink); font-size: .88rem; }
.policy-step-list p { margin: 6px 0 0; color: var(--policy-muted); font-size: .74rem; line-height: 1.55; }
.policy-report-card { padding: 29px; background: linear-gradient(155deg, #0a2c5b, #0d684f); color: #fff; }
.policy-report-icon { display: grid; width: 50px; height: 50px; place-items: center; border-radius: 15px; background: rgba(255,255,255,.13); font-size: 1.3rem; }
.policy-report-card h2 { margin-top: 18px; color: #fff; font-size: 1.35rem; }
.policy-report-card ul { margin: 17px 0 0; padding-left: 20px; color: #d8ede5; font-size: .84rem; line-height: 1.9; }
.policy-btn-report { width: 100%; margin-top: 20px; background: #78e4ab; color: #083722; }

.policy-maintenance { margin-top: 38px; padding: 32px; }
.policy-maintenance-list { display: grid; gap: 9px; }
.policy-maintenance-list a { display: grid; grid-template-columns: 110px 1fr auto; align-items: center; gap: 15px; padding: 15px 17px; border: 1px solid var(--policy-border); border-radius: 15px; background: var(--bg-soft, #f7f9fc); color: var(--policy-ink); text-decoration: none; transition: border-color .18s ease, transform .18s ease; }
.policy-maintenance-list a:hover { transform: translateX(3px); border-color: #76b99b; }
.policy-maintenance-list time { color: #14794a; font-size: .78rem; font-weight: 850; }
.policy-maintenance-list strong,
.policy-maintenance-list small { display: block; }
.policy-maintenance-list small { margin-top: 4px; color: var(--policy-muted); font-size: .76rem; }
.policy-maintenance-list b { color: #14794a; }

.policy-ad-independence { margin-top: 21px; padding: 30px 32px; background: linear-gradient(120deg, var(--policy-card), rgba(224,246,235,.72)); }
.policy-ad-title { display: flex; align-items: center; gap: 15px; }
.policy-ad-title > span { display: grid; width: 53px; height: 53px; place-items: center; border-radius: 16px; background: #dff5e9; font-size: 1.35rem; }
.policy-ad-title .policy-kicker { margin-bottom: 4px; }
.policy-ad-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; margin-top: 23px; }
.policy-ad-points > div { padding: 16px; border: 1px solid var(--policy-border); border-radius: 15px; background: var(--policy-card); }
.policy-ad-points strong { color: var(--policy-ink); font-size: .9rem; }
.policy-ad-points p { margin: 5px 0 0; color: var(--policy-muted); font-size: .78rem; line-height: 1.62; }

.policy-next { display: grid; grid-template-columns: minmax(220px, .65fr) minmax(0, 1.35fr); align-items: center; gap: 26px; margin-top: 21px; padding: 30px; }
.policy-next-links { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; }
.policy-next-links a { display: grid; min-height: 104px; place-content: center; padding: 12px; border: 1px solid var(--policy-border); border-radius: 15px; background: var(--bg-soft, #f6f8fb); color: var(--policy-ink); text-align: center; text-decoration: none; transition: transform .18s ease, border-color .18s ease; }
.policy-next-links a:hover { transform: translateY(-3px); border-color: #6bb38f; }
.policy-next-links span { font-size: 1.25rem; }
.policy-next-links strong { margin-top: 4px; font-size: .84rem; }
.policy-next-links small { margin-top: 3px; color: var(--policy-muted); font-size: .68rem; }

.policy-page.dark-mode .policy-ad-independence { background: linear-gradient(120deg, var(--policy-card), rgba(20,89,62,.2)); }
.policy-page.dark-mode .policy-type-top > span,
.policy-page.dark-mode .policy-step-list li > span,
.policy-page.dark-mode .policy-ad-title > span { background: rgba(64,164,115,.18); }
.policy-page a:focus-visible { outline: 3px solid #75e5aa; outline-offset: 3px; }

@media (max-width: 980px) {
  .policy-hero { grid-template-columns: minmax(0, 1.15fr) minmax(270px, .85fr); }
  .policy-hero-copy { padding-left: 38px; }
  .policy-step-list { grid-template-columns: repeat(2, 1fr); }
  .policy-next { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .policy-page .line-float,
  .policy-page .bf-assistant { display: none !important; }
  .policy-main { width: min(100% - 24px, 680px); padding-top: 14px; }
  .policy-hero { grid-template-columns: 1fr; min-height: 0; border-radius: 23px; }
  .policy-hero-copy { padding: 34px 23px 18px; text-align: center; }
  .policy-hero h1 { font-size: clamp(2rem, 8.5vw, 3rem); }
  .policy-hero-copy > p:not(.policy-eyebrow) { margin-top: 17px; font-size: .96rem; line-height: 1.72; }
  .policy-badges,
  .policy-actions { justify-content: center; }
  .policy-actions { margin-top: 23px; }
  .policy-btn { flex: 1 1 180px; }
  .policy-hero-visual { min-height: 290px; }
  .policy-shield { width: 150px; height: 178px; }
  .policy-shield > span { width: 52px; height: 52px; font-size: 1.6rem; }
  .policy-orbit-one { left: 7%; }
  .policy-orbit-two { right: 4%; }
  .policy-orbit-three { right: 7%; }
  .policy-status-strip { grid-template-columns: 1fr; margin-inline: 12px; }
  .policy-status-strip > div { padding: 13px 18px; border-top: 1px solid var(--policy-border); border-left: 0; }
  .policy-status-strip > div:first-child { border-top: 0; }
  .policy-section { padding-top: 49px; }
  .policy-type-grid,
  .policy-correction-layout { grid-template-columns: 1fr; }
  .policy-correction-layout { padding-top: 39px; }
  .policy-correction-card,
  .policy-report-card,
  .policy-maintenance,
  .policy-ad-independence,
  .policy-next { padding: 24px 20px; border-radius: 20px; }
  .policy-maintenance-list a { grid-template-columns: 1fr auto; }
  .policy-maintenance-list time { grid-column: 1 / -1; }
  .policy-ad-points { grid-template-columns: 1fr; }
  .policy-next { text-align: center; }
  .policy-next-links { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 440px) {
  .policy-main { width: min(100% - 18px, 420px); }
  .policy-hero-copy { padding-inline: 18px; }
  .policy-badges { gap: 6px; }
  .policy-badges span { padding: 6px 8px; font-size: .72rem; }
  .policy-type-card { padding: 20px 18px; }
  .policy-type-card dl { grid-template-columns: 1fr; }
  .policy-step-list { grid-template-columns: 1fr; }
  .policy-ad-title { align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .policy-page *,
  .policy-page *::before,
  .policy-page *::after { scroll-behavior: auto !important; transition: none !important; }
}
