/* Policy pages: shared theme, with a quiet, readable legal document layout. */
.policy-page { background: var(--paper, #f5f5f0); color: var(--ink, #0b1220); }
.policy-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(126px, 12vw, 168px) 0 0;
  color: #fff;
}
.policy-hero::before { content: ''; position: absolute; width: 480px; height: 480px; border: 1px solid rgba(255,255,255,.06); border-radius: 50%; right: -230px; top: 100px; pointer-events: none; }
.policy-hero .wrap { position: relative; }
.policy-hero .svc-breadcrumb { margin-bottom: 40px; }
.policy-hero-top { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-bottom: 28px; }
.policy-hero .eyebrow { color: #fff; }
.policy-hero-grid { display: grid; grid-template-columns: 1.2fr 1fr; align-items: end; gap: clamp(30px, 6vw, 90px); padding-bottom: clamp(40px, 5vw, 72px); }
.policy-hero h1 { font-family: var(--font-display); font-size: clamp(52px, 7.2vw, 108px); font-weight: 700; line-height: 1.04; letter-spacing: -.065em; margin: 0; }
.policy-hero h1 > span { color: var(--red, #e80035); }
.policy-intro p { font-size: clamp(15px, 1.2vw, 18px); line-height: 1.85; color: rgba(255,255,255,.78); margin: 0 0 28px; }
.policy-layout { display: grid; grid-template-columns: 270px minmax(0, 1fr); align-items: start; gap: clamp(28px, 5vw, 76px); padding-top: clamp(40px, 6vw, 88px); padding-bottom: clamp(40px, 6vw, 88px); scroll-margin-top: 106px; }
.policy-sidebar { position: sticky; top: 108px; }
.policy-contents { border: 1px solid rgba(24,48,96,.13); border-radius: 18px; background: #fff; overflow: hidden; }
.policy-contents summary { cursor: pointer; display: flex; justify-content: space-between; padding: 22px; font-weight: 700; font-size: 14px; list-style: none; }
.policy-contents summary::-webkit-details-marker { display: none; }
.policy-contents summary > span { color: var(--red); transition: transform .2s; }
.policy-contents[open] summary > span { transform: rotate(90deg); }
.policy-contents ol { margin: 0; padding: 0 12px 12px; list-style: none; max-height: calc(100svh - 240px); overflow-y: auto; }
.policy-contents a { display: flex; gap: 12px; padding: 11px 10px; border-radius: 8px; color: rgba(11,18,32,.7); text-decoration: none; font-size: 12px; line-height: 1.5; transition: color .2s, background .2s; }
.policy-contents a > span { font-family: var(--font-mono); font-size: 10px; margin-top: 2px; color: var(--red); }
.policy-contents a:hover, .policy-contents a[aria-current="location"] { background: var(--paper, #f5f5f0); color: var(--ink); }
.policy-help { padding: 26px 0 0; }
.policy-help h2 { font-size: 20px; letter-spacing: -.04em; margin: 12px 0 18px; }
.policy-sections { display: grid; gap: 20px; min-width: 0; }
.policy-card { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 14px; background: #fff; border: 1px solid rgba(24,48,96,.1); border-radius: 20px; padding: clamp(24px, 3vw, 42px); scroll-margin-top: 108px; transition: border-color .25s, box-shadow .25s; }
.policy-card:hover { border-color: rgba(232,0,53,.26); box-shadow: 0 10px 32px rgba(11,18,32,.035); }
.policy-section-number { color: var(--red); font: 11px/2.4 var(--font-mono); letter-spacing: .06em; }
.policy-section-copy h2 { font-family: var(--font-display); font-weight: 650; font-size: clamp(23px, 2.1vw, 30px); line-height: 1.2; letter-spacing: -.045em; margin: 0 0 22px; }
.policy-section-copy p, .policy-section-copy li { font-size: 15px; line-height: 1.85; color: rgba(11,18,32,.76); overflow-wrap: break-word; }
.policy-section-copy strong { color: var(--ink); font-weight: 650; }
.policy-section-copy p { margin: 0 0 18px; }
.policy-section-copy ul { padding-left: 20px; margin: 0 0 18px; }
.policy-section-copy li { padding-left: 5px; margin: 0 0 10px; }
.policy-section-copy li::marker { color: var(--red); }
.policy-section-copy li > ul { margin: 14px 0; padding-left: 22px; }
.policy-section-copy > :last-child, .policy-section-copy li:last-child { margin-bottom: 0; }
.policy-next { display: flex; gap: 24px; align-items: center; justify-content: space-between; padding-top: 32px; padding-bottom: 56px; border-top: 1px solid rgba(24,48,96,.15); }
.policy-next h2 { font-size: clamp(28px, 4vw, 46px); letter-spacing: -.05em; margin: 12px 0 0; }
.policy-page a:focus-visible, .policy-page summary:focus-visible { outline: 2px solid var(--red); outline-offset: 5px; }
.policy-card:focus { outline: none; }
.policy-card:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
.policy-ready [data-policy-reveal] { opacity: 0; transform: translateY(16px); transition: opacity .5s ease, transform .5s ease, border-color .25s, box-shadow .25s; }
.policy-ready [data-policy-reveal].is-visible { opacity: 1; transform: none; }
@media (max-width: 960px) {
  .policy-layout { grid-template-columns: 220px minmax(0, 1fr); gap: 24px; }
  .policy-card { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .policy-hero-grid { gap: 32px; }
}
@media (max-width: 700px) {
  .policy-hero { padding-top: 120px; }
  .policy-hero .svc-breadcrumb { margin-bottom: 28px; }
  .policy-hero-grid, .policy-layout { grid-template-columns: minmax(0, 1fr); }
  .policy-hero-top { align-items: start; flex-direction: column; gap: 10px; }
  .policy-hero-grid { gap: 28px; }
  .policy-sidebar { position: static; }
  .policy-help { display: none; }
  .policy-contents ol { max-height: 320px; }
  .policy-next { align-items: start; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  .policy-page *, .policy-page *::before, .policy-page *::after { scroll-behavior: auto !important; }
  .policy-ready [data-policy-reveal] { opacity: 1; transform: none; transition: none; }
  .policy-card, .policy-contents a, .policy-contents summary > span { transition: none; }
}
