.policy-page { background: #f3f4f1; }
.policy-hero { padding: 142px 0 72px; border-bottom: 1px solid var(--line); }
.policy-shell { max-width: 1180px; }
.policy-kicker { margin: 34px 0 12px; color: var(--orange); font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.policy-hero h1 { max-width: 930px; margin: 0; font-size: clamp(3.1rem, 6vw, 6.8rem); line-height: .94; }
.policy-lead { max-width: 760px; margin: 28px 0 0; color: #586774; font-size: clamp(1.05rem, 1.5vw, 1.25rem); }
.policy-date { margin: 20px 0 0; color: #74808a; font-size: .82rem; }
.policy-content { padding: 74px 0 120px; background: #fffefa; }
.policy-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); align-items: start; gap: clamp(44px, 8vw, 110px); }
.policy-index { position: sticky; top: 110px; display: grid; gap: 12px; }
.policy-index a { padding-bottom: 10px; border-bottom: 1px solid var(--line); color: #5d6973; font-size: .86rem; }
.policy-index a:hover { color: var(--orange); }
.policy-article { max-width: 790px; }
.policy-article section { scroll-margin-top: 110px; padding: 0 0 56px; }
.policy-article section + section { padding-top: 6px; border-top: 1px solid var(--line); }
.policy-article h2 { margin: 34px 0 18px; font-family: "Tryam Display", "Avenir Next", Arial, sans-serif; font-size: clamp(1.7rem, 2.6vw, 2.55rem); font-weight: 700; line-height: 1.08; letter-spacing: -.035em; }
.policy-article p, .policy-article li { color: #4f5c66; font-size: 1rem; line-height: 1.72; }
.policy-article ul { margin: 16px 0 22px; padding-left: 22px; }
.policy-article li + li { margin-top: 6px; }
.policy-article a { color: var(--orange); text-decoration: underline; text-underline-offset: 3px; }
.contract-hero { padding-bottom: 58px; }
.contract-article { max-width: 880px; margin-inline: auto; }
.contract-text { color: #3f4d58; font-size: 1rem; line-height: 1.72; white-space: pre-wrap; overflow-wrap: anywhere; }

@media (max-width: 767px) {
  .policy-hero { padding: 104px 0 54px; }
  .policy-hero h1 { font-size: clamp(2.85rem, 13.5vw, 4.7rem); }
  .policy-content { padding: 48px 0 86px; }
  .policy-layout { grid-template-columns: 1fr; gap: 44px; }
  .policy-index { position: static; grid-template-columns: 1fr 1fr; gap: 10px 16px; }
  .policy-index a { font-size: .8rem; }
  .policy-article section { padding-bottom: 42px; }
  .contract-text { font-size: .94rem; line-height: 1.66; }
}
