.policy-page { --policy-ink:#111312; --policy-muted:#676a67; --policy-line:#d8d9d5; --policy-paper:#f6f6f2; }
.policy-page .site-header { background:#fff; }
.policy-main { color:var(--policy-ink); background:#fff; }
.policy-hero { height:50svh; min-height:360px; max-height:520px; padding:clamp(58px,7vh,96px) var(--gutter); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:var(--policy-paper); }
.policy-hero__eyebrow { margin:0 0 22px; color:#66816c; font-size:11px; font-weight:800; letter-spacing:.16em; }
.policy-hero h1 { max-width:1120px; margin:0; font-size:min(clamp(50.4px,6.48vw,118.8px), var(--site-title-cap)); font-weight:560; line-height:.88; letter-spacing:-.075em; }
.policy-hero > p:last-child { max-width:600px; margin:30px 0 0; color:var(--policy-muted); font-size:clamp(15px,1.15vw,19px); line-height:1.6; }
.policy-switcher { position:sticky; z-index:6; top:var(--header-h); min-height:60px; padding:0 var(--gutter); display:flex; align-items:center; justify-content:center; gap:clamp(18px,2.5vw,42px); overflow-x:auto; border-top:1px solid var(--policy-line); border-bottom:1px solid var(--policy-line); background:rgba(255,255,255,.94); backdrop-filter:blur(16px); scrollbar-width:none; }
.policy-switcher::-webkit-scrollbar { display:none; }
.policy-switcher a { position:relative; flex:none; padding:22px 0 20px; color:#777a76; font-size:12px; font-weight:650; line-height:1; text-decoration:none; white-space:nowrap; }
.policy-switcher a.is-active { color:var(--policy-ink); }
.policy-switcher a.is-active::after { content:""; position:absolute; right:0; bottom:-1px; left:0; height:2px; background:var(--policy-ink); }
.policy-article { width:min(1280px,calc(100% - 2 * var(--gutter))); margin:0 auto; padding:clamp(74px,8vw,140px) 0 clamp(100px,11vw,190px); display:grid; grid-template-columns:minmax(180px,240px) minmax(0,760px); justify-content:space-between; gap:clamp(70px,10vw,180px); }
.policy-aside { position:sticky; top:calc(var(--header-h) + 96px); height:max-content; padding-top:3px; }
.policy-aside > span { display:block; margin-bottom:24px; color:#8b8d89; font-size:15px; font-weight:800; letter-spacing:.09em; }
.policy-aside nav { display:grid; gap:14px; }
.policy-aside a { color:#777a76; font-size:15px; line-height:1.45; text-decoration:none; transition:color .2s ease; }
.policy-aside a:hover { color:var(--policy-ink); }
.policy-content { min-width:0; }
.policy-updated { margin:0 0 48px; color:#8b8d89; font-size:12px; letter-spacing:.04em; }
.policy-section { padding:0 0 clamp(52px,5vw,76px); scroll-margin-top:calc(var(--header-h) + 90px); }
.policy-section + .policy-section { padding-top:clamp(48px,5vw,74px); border-top:1px solid var(--policy-line); }
.policy-section h2 { margin:0 0 28px; font-size:min(clamp(28.8px,2.93vw,46.8px), var(--site-title-cap)); font-weight:560; line-height:.98; letter-spacing:-.055em; }
.policy-section h3 { margin:34px 0 14px; font-size:min(17px, var(--site-title-cap)); font-weight:720; letter-spacing:-.025em; }
.policy-section p,.policy-section li { color:#525552; font-size:15px; line-height:1.78; }
.policy-section p { margin:0 0 18px; }
.policy-section ul,.policy-section ol { margin:18px 0 0; padding-left:20px; }
.policy-section li + li { margin-top:10px; }
.policy-section a { color:var(--policy-ink); text-underline-offset:3px; }
.policy-note { margin:30px 0 0; padding:22px 24px; border-left:3px solid #99bb61; background:var(--policy-paper); }
.policy-note p { margin:0; color:#323532; }
.policy-table-wrap { margin-top:28px; overflow-x:auto; }
.policy-table { width:100%; min-width:620px; border-collapse:collapse; }
.policy-table th,.policy-table td { padding:17px 16px; border:1px solid var(--policy-line); text-align:left; vertical-align:top; font-size:13px; line-height:1.55; }
.policy-table th { color:#222522; background:var(--policy-paper); font-weight:750; }
.policy-table td { color:#5c5f5b; }
.policy-contact { margin-top:10px; padding:clamp(34px,4vw,58px); border-radius:12px; color:#fff; background:#111513; }
.policy-contact > p:first-child { margin:0 0 24px; color:#b9ff4d; font-size:10px; font-weight:800; letter-spacing:.16em; }
.policy-contact h2 { margin:0; font-size:min(clamp(34.2px,3.6vw,55.8px), var(--site-title-cap)); font-weight:560; line-height:.94; letter-spacing:-.06em; }
.policy-contact h2 + p { max-width:570px; margin:24px 0; color:rgba(255,255,255,.62); font-size:min(14px, var(--site-title-cap)); line-height:1.65; }
.policy-contact a { display:inline-flex; gap:10px; color:#fff; font-size:14px; font-weight:700; text-decoration:none; }
.policy-contact a span { color:#b9ff4d; }
@media (max-width:767px) {
  .policy-hero { height:50svh; min-height:340px; max-height:460px; padding:54px 20px; }
  .policy-hero h1 { font-size:min(clamp(46.8px,13.5vw,68.4px), var(--site-title-cap)); }
  .policy-hero > p:last-child { margin-top:24px; font-size:14px; }
  .policy-switcher { top:var(--header-h); padding:0 20px; justify-content:flex-start; gap:26px; }
  .policy-article { width:auto; margin:0 20px; padding:66px 0 100px; display:block; }
  .policy-aside { display:none; }
  .policy-updated { margin-bottom:38px; }
  .policy-section { padding-bottom:48px; }
  .policy-section + .policy-section { padding-top:46px; }
  .policy-section h2 { margin-bottom:22px; font-size:min(38px, var(--site-title-cap)); }
  .policy-section h3 { margin-top:28px; }
  .policy-section p,.policy-section li { font-size:14px; line-height:1.72; }
  .policy-contact { margin-top:0; padding:34px 26px 38px; }
}

/* Mobile policy navigation and wide-data ergonomics. */
@media (max-width: 767px) {
  .policy-switcher {
    scroll-padding-inline: 20px;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
  .policy-switcher a {
    min-height: 60px;
    display: inline-flex;
    align-items: center;
    scroll-snap-align: center;
  }
  .policy-table-wrap {
    margin-inline: -20px;
    padding-inline: 20px;
    scroll-padding-inline: 20px;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
  .policy-contact a {
    min-height: 44px;
    align-items: center;
  }
}
