.booking-policies { max-width: 1240px; margin: 0 auto; padding: 56px 40px 80px; }
.booking-policies .policy-intro { max-width: 840px; padding-bottom: 32px; }
.kozo-theme .booking-policies h1 { font-size: 46px; line-height: 1.25; margin: 16px 0 20px; }
.booking-policies .policy-intro > p:not(.lab) { color: var(--soft); font-size: 18px; line-height: 1.7; max-width: 720px; }
.booking-policies a { color: #a5f4f2; text-underline-offset: 4px; }
.booking-policies .policy-language { display: inline-block; margin-top: 16px; font-size: 14px; }
.policy-highlights { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 0 48px; border-block: 1px solid var(--line); }
.policy-highlights > div { padding: 22px 24px 22px 0; min-width: 0; }
.policy-highlights b { display: block; font-size: 22px; color: #a5f4f2; line-height: 1.4; }
.policy-highlights span { display: block; margin-top: 6px; color: var(--soft); font-size: 14px; line-height: 1.6; }
.policy-layout { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 48px; align-items: start; }
.policy-index { position: sticky; top: 110px; display: grid; gap: 8px; }
.policy-index a { display: block; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 14px; line-height: 1.5; text-decoration: none; }
.policy-content { min-width: 0; }
.policy-content > section { padding: 0 0 34px; margin-bottom: 34px; border-bottom: 1px solid var(--line); scroll-margin-top: 110px; }
.kozo-theme .booking-policies h2 { font-family: var(--brand-font); font-size: 27px; line-height: 1.4; margin-bottom: 18px; }
.kozo-theme .booking-policies h3 { font-family: var(--display-font); font-size: 20px; line-height: 1.5; margin-bottom: 14px; }
.policy-content p, .policy-content li, .policy-content dd { color: #b4ccd2; font-size: 16px; line-height: 1.8; }
.policy-content p + p { margin-top: 14px; }
.policy-content strong { color: #effeff; font-weight: 600; }
.policy-content ul { padding-left: 22px; margin: 0; }
.policy-content li + li { margin-top: 12px; }
.policy-services { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.policy-service { min-width: 0; border-top: 2px solid #527d85; padding-top: 20px; }
.policy-service dl { margin: 0 0 16px; }
.policy-service dt { color: var(--soft); font-size: 12px; line-height: 1.5; text-transform: uppercase; margin-top: 12px; }
.policy-service dd { margin: 3px 0 0; color: #effeff; font-size: 18px; line-height: 1.5; }
.policy-service dd.policy-pending { font-size: 15px; color: #c9dfe4; }
.policy-service p { font-size: 15px; }
.policy-content .policy-note { border-left: 2px solid #8ce6ed; padding-left: 18px; margin-top: 22px; }
.policy-body-sections { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin: 24px 0; }
.policy-body-sections dt { font-size: 18px; color: #effeff; font-weight: 600; margin-bottom: 8px; }
.policy-body-sections dd { margin: 0; }
.policy-contact { display: flex; flex-wrap: wrap; gap: 14px 24px; margin-top: 22px; align-items: center; }
.policy-contact a { padding: 12px 0; }
.policy-content > section:last-child { margin-bottom: 0; }
.policy-skip { position: absolute; top: -100px; left: 20px; z-index: 100; padding: 14px 20px; background: #a5f4f2; color: #04151d; }
.policy-skip:focus { top: 10px; }
.booking-policies a:focus-visible { outline: 2px solid #a5f4f2; outline-offset: 5px; }
@media (max-width: 1000px) {
  .policy-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .policy-index { position: static; display: flex; flex-wrap: wrap; gap: 8px 24px; }
  .policy-index a { font-size: 13px; }
}
@media (max-width: 680px) {
  .booking-policies { padding: 32px 20px 48px; }
  .kozo-theme .booking-policies h1 { font-size: 30px; }
  .booking-policies .policy-intro > p:not(.lab) { font-size: 16px; }
  .policy-highlights { grid-template-columns: minmax(0, 1fr); margin-bottom: 28px; }
  .policy-highlights > div { padding: 15px 0; }
  .policy-highlights > div + div { border-top: 1px solid var(--line); }
  .policy-highlights b { font-size: 20px; }
  .policy-highlights span { margin-top: 2px; }
  .policy-services, .policy-body-sections { grid-template-columns: minmax(0, 1fr); }
  .policy-services { gap: 28px; }
  .policy-service dl { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 10px 16px; }
  .policy-service dt, .policy-service dd { margin: 0; align-self: start; }
  .policy-service dt { padding-top: 4px; }
  .kozo-theme .booking-policies h2 { font-size: 24px; }
}
@media print {
  body.kozo-theme { background: #fff; color: #111; }
  body > header, body > footer, .policy-index, .policy-language, .policy-skip { display: none !important; }
  .booking-policies { max-width: none; padding: 0; }
  .policy-layout { display: block; }
  .booking-policies :is(p, li, dt, dd, strong, b, span, a, .lab, h1, h2, h3) { color: #111 !important; }
  .policy-content > section, .policy-service { break-inside: avoid; }
  .policy-content > section { scroll-margin-top: 0; }
}
