body { margin: 0; background: #f4f7fb; color: #142b44; }
.policy-shell { width: min(100% - 2rem, 1180px); margin-inline: auto; }
.policy-hero, .policy-footer { background: #06223e; color: #fff; }
.policy-hero { background: linear-gradient(90deg, #06223e 25%, #06223e55), url('../images/construction.png') center right / cover; border-bottom: 3px solid #f77a1b; }
.policy-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: .875rem; border-bottom: 1px solid #ffffff30; }
.policy-logo { width: 140px; height: auto; border-radius: .5rem; }
.policy-top a, .policy-footer a { color: #fff; text-underline-offset: .25em; }
.policy-intro { padding-block: clamp(2rem, 6vw, 4.5rem) 2rem; }
.policy-intro h1 { font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 800; }
.policy-intro p { max-width: 34rem; color: #e2ebf6; }
.policy-dates { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; font-size: .875rem; }
.policy-dates i, .policy-footer i { color: #ff9b4c; margin-right: .25rem; }
.policy-layout { display: grid; grid-template-columns: minmax(210px, 260px) minmax(0, 1fr); gap: 1.5rem; align-items: start; padding-block: 1.75rem 2.5rem; }
.policy-contents, .policy-document { border: 1px solid #dde6f0; border-radius: .875rem; background: #fff; }
.policy-contents { position: sticky; top: 1rem; max-height: calc(100dvh - 2rem); overflow: auto; }
.policy-contents h2 { margin: 0; padding: .85rem 1rem; font-size: 1rem; background: #06223e; color: white; }
.policy-contents ol { list-style: none; padding: .5rem; margin: 0; }
.policy-contents a { display: block; padding: .45rem .65rem; border-radius: .375rem; color: #142b44; font-size: .875rem; text-decoration: none; }
.policy-contents a:hover, .policy-contents a:focus-visible { background: #ffead7; }
.policy-document { padding: clamp(.875rem, 3vw, 2rem); overflow-wrap: anywhere; }
.policy-document section { margin-bottom: 1.5rem; scroll-margin-top: 1rem; }
.policy-document section:last-child { margin-bottom: 0; }
.policy-document section.is-current h2 { background: #ffead7; }
.policy-document h2 { padding: .55rem .75rem; border-radius: .375rem; background: #edf2f8; font-size: 1.125rem; font-weight: 750; }
.policy-document h3 { margin-top: 1rem; font-size: 1rem; font-weight: 700; }
.policy-document p { margin-bottom: .5rem; }
.policy-footer { padding-block: 1.25rem; }
.policy-footer-main, .policy-footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.policy-footer-bottom { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #ffffff35; font-size: .875rem; }
@media (max-width: 767px) {
    .policy-layout { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
    .policy-contents { position: static; max-height: none; }
    .policy-contents ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.policy-contents a[aria-current="location"] {
    background: #ffead7;
    color: #79370a;
    box-shadow: inset 3px 0 #f77a1b;
    font-weight: 700;
}
