.portal-information-page { color: #233750; }
.portal-information-page * { box-sizing: border-box; }
.policy-skip-link { position: absolute; top: -80px; left: 16px; z-index: 10; padding: 12px 18px; border-radius: 8px; background: #fff; color: #1d3557; }
.policy-skip-link:focus { top: 12px; }
.policy-header { background: #1d3557; color: #fff; }
.policy-header-inner { width: min(1200px, calc(100% - 48px)); margin: 0 auto; min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.policy-brand { display: flex; align-items: center; gap: 12px; color: #fff; text-decoration: none; }
.policy-brand img { flex-shrink: 0; object-fit: contain; }
.policy-brand strong { display: block; font-size: 16px; }
.policy-brand small { display: block; margin-top: 3px; font-size: 11px; line-height: 1.4; }
.policy-header-nav { display: flex; gap: 18px; flex-shrink: 0; }
.policy-header-nav a { color: #fff; text-decoration: none; font-weight: 600; padding: 8px 0; }
.policy-main { width: min(1160px, calc(100% - 48px)); margin: 36px auto 48px; outline: none; }
.policy-document-heading { margin-bottom: 24px; }
.policy-eyebrow { margin: 0 0 8px; font-size: 12px; font-weight: 700; color: #315c78; text-transform: uppercase; letter-spacing: .12em; }
.policy-document-heading h1 { margin: 0 0 12px; color: #1d3557; font-size: clamp(30px, 4vw, 42px); line-height: 1.15; }
.policy-summary { max-width: 760px; margin: 0 0 18px; font-size: 17px; line-height: 1.6; color: #34516b; }
.policy-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; color: #3e556b; font-size: 13px; }
.policy-draft-badge { padding: 6px 10px; border: 1px solid #e3c377; border-radius: 8px; background: #fff8e6; color: #76500a; font-weight: 700; }
.policy-document-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.policy-document-tabs a { padding: 11px 18px; border: 1px solid #b6cdd9; border-radius: 10px; background: #fff; color: #1d3557; font-weight: 700; text-decoration: none; }
.policy-document-tabs a[aria-current="page"] { background: #1d3557; border-color: #1d3557; color: #fff; }
.policy-review-notice { margin: 0 0 24px; padding: 16px 20px; border: 1px solid #e3c377; border-left: 4px solid #b77913; border-radius: 10px; background: #fffaf0; color: #654a19; }
.policy-review-notice strong { display: block; margin-bottom: 5px; }
.policy-review-notice p { margin: 0; line-height: 1.6; font-size: 14px; }
.policy-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 24px; align-items: start; }
.policy-contents { position: sticky; top: 20px; padding: 20px; border: 1px solid #d6e3eb; border-radius: 14px; background: #f7fbfd; }
.policy-contents > strong { color: #1d3557; }
.policy-contents ol { margin: 12px 0 0; padding-left: 20px; }
.policy-contents li { margin: 0 0 10px; padding-left: 2px; font-size: 14px; line-height: 1.45; }
.policy-contents li:last-child { margin-bottom: 0; }
.policy-contents a { color: #345c7a; text-decoration: none; }
.policy-article { min-width: 0; padding: 30px 34px; border: 1px solid #d6e3eb; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(29, 53, 87, .06); }
.policy-section { scroll-margin-top: 20px; padding-top: 24px; margin-top: 24px; border-top: 1px solid #e2eaf0; }
.policy-section:first-child { padding-top: 0; margin-top: 0; border-top: 0; }
.policy-section h2 { margin: 0 0 12px; color: #1d3557; font-size: 21px; line-height: 1.4; }
.policy-section p, .policy-section li { font-size: 16px; line-height: 1.8; overflow-wrap: anywhere; }
.policy-section p { margin: 0 0 14px; }
.policy-section p:last-child { margin-bottom: 0; }
.policy-section ul { margin: 10px 0 0; padding-left: 22px; }
.policy-section li { margin-bottom: 10px; }
.policy-section a { color: #1d5d85; text-underline-offset: 3px; }
.policy-back-top { display: inline-block; margin-top: 18px; font-weight: 700; }
.policy-header a:focus-visible, .policy-main a:focus-visible { outline: 2px solid #457b9d; outline-offset: 4px; border-radius: 3px; }
.policy-header a:focus-visible { outline-color: #fff; }
.policy-header-nav a:hover, .policy-contents a:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 900px) {
  .policy-layout { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .policy-contents { position: static; }
  .policy-contents ol { columns: 2; column-gap: 30px; }
  .policy-contents li { break-inside: avoid; }
}
@media (max-width: 600px) {
  .policy-header-inner { width: calc(100% - 32px); min-height: 76px; flex-wrap: wrap; padding: 14px 0; gap: 12px; }
  .policy-brand { gap: 9px; }
  .policy-brand small { max-width: 230px; font-size: 10px; }
  .policy-header-nav { gap: 20px; }
  .policy-main { width: calc(100% - 28px); margin-top: 26px; }
  .policy-summary { font-size: 16px; }
  .policy-meta { align-items: flex-start; }
  .policy-review-notice { padding: 14px 15px; }
  .policy-contents { padding: 18px; }
  .policy-contents ol { columns: 1; }
  .policy-article { padding: 22px 18px; border-radius: 12px; }
  .policy-section h2 { font-size: 20px; }
}
@media print {
  .portal-information-page { display: block; background: #fff; }
  .policy-header, .policy-document-tabs, .policy-contents, .dole-footer, .policy-back-top, .policy-skip-link { display: none; }
  .policy-main { width: 100%; margin: 0; }
  .policy-layout { display: block; }
  .policy-article { padding: 0; border: 0; border-radius: 0; box-shadow: none; }
  .policy-section h2 { break-after: avoid; }
  .policy-section a { color: #000; }
}
