/* Professional legal document system.
   Presentation only: policy wording, business details, and effective dates are unchanged. */
.legal-page {
  --legal-copy: #445044;
  --legal-muted: #58694f;
  --legal-border: #e0e6da;
  background: #fff;
}
.legal-page main { overflow-wrap: break-word; }
.legal-hero > .wrap,
.legal-layout { max-width: 1120px; }

/* Document cover and metadata */
.legal-hero {
  padding: 28px 0 44px;
  background: var(--ivory);
  border-bottom: 1px solid var(--legal-border);
}
.legal-breadcrumb {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 34px;
  color: var(--legal-muted);
  font-size: 12px;
}
.legal-breadcrumb a { text-underline-offset: 4px; }
.legal-breadcrumb a:hover { color: var(--green); text-decoration: underline; }
.legal-hero > .wrap > .eyebrow { margin-bottom: 16px; font-size: 10px; }
.legal-hero h1 {
  margin-bottom: 25px;
  font-size: clamp(42px, 4.5vw, 64px);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -2.5px;
  text-wrap: balance;
}
.legal-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
  color: #455b3f;
  font-size: 12px;
}
.legal-meta > span:first-child { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.legal-meta .status-dot { width: 6px; height: 6px; background: var(--green); margin-right: 2px; }
.legal-meta > span:nth-child(2) { border-left: 1px solid #cbd5c1; padding-left: 24px; }
.legal-print {
  min-height: 40px;
  padding: 8px 14px;
  border: 1px solid #c3ceba;
  border-radius: 4px;
  background: #fff7;
  color: #365731;
  font-size: 12px;
}
.legal-print:hover { background: #e6ede0; border-color: #90a37f; }
.legal-intro {
  max-width: 850px;
  margin-top: 25px;
  font-size: 16px;
  line-height: 1.85;
  color: var(--legal-copy);
}

/* Two-column reading layout */
.legal-layout {
  display: grid;
  grid-template-columns: 242px minmax(0, 1fr);
  gap: 72px;
  align-items: start;
  padding-top: 54px;
  padding-bottom: 80px;
}
.legal-sidebar {
  position: sticky;
  top: 123px;
  max-height: calc(100dvh - 145px);
  overflow-y: auto;
  padding-right: 8px;
  scrollbar-width: thin;
  scrollbar-color: #c3cebb transparent;
}
.legal-contents summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 39px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--legal-border);
  list-style: none;
  color: #334b2c;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  cursor: pointer;
}
.legal-contents summary::-webkit-details-marker { display: none; }
.legal-contents summary > span { display: inline-block; font-size: 18px; font-weight: 400; transition: transform .2s; }
.legal-contents[open] summary > span { transform: rotate(45deg); }
.legal-contents ol { list-style: none; padding: 0; margin: 12px 0 0; }
.legal-contents li { margin: 0; }
.legal-contents a {
  display: flex;
  align-items: baseline;
  gap: 10px;
  min-height: 42px;
  padding: 10px 10px 10px 0;
  border-left: 2px solid transparent;
  border-radius: 0 3px 3px 0;
  color: #526149;
  font-size: 12px;
  line-height: 1.55;
}
.legal-contents a > span { min-width: 20px; color: #596b50; font-size: 10px; font-variant-numeric: tabular-nums; }
.legal-contents a:hover { background: #f1f5ec; color: #174c2c; }
.legal-contents a.active { background: #edf3e6; border-left-color: #408050; color: #164b2a; padding-left: 9px; font-weight: 600; }
.legal-sidebar-contact { margin-top: 24px; padding: 22px 0 5px; border-top: 1px solid var(--legal-border); }
.legal-sidebar-contact > span { display: block; color: #596b50; font-size: 9px; letter-spacing: 1.3px; }
.legal-sidebar-contact > strong { display: block; margin: 10px 0 13px; font: 500 21px/1.35 Manrope,Arial,sans-serif; letter-spacing: -.4px; }
.legal-sidebar-contact > a { display: block; width: fit-content; padding: 5px 0; color: #2b6638; font-size: 12px; line-height: 1.6; }
.legal-sidebar-contact > a:hover { text-decoration: underline; text-underline-offset: 4px; }
.legal-document { min-width: 0; max-width: 720px; }

/* Summary, section hierarchy, and body copy */
.legal-summary {
  margin-bottom: 43px;
  padding: 25px 28px;
  border: 1px solid #dce6d3;
  border-left: 3px solid #52805b;
  border-radius: 0 5px 5px 0;
  background: #f0f5e9;
}
.legal-summary > span { display: block; margin-bottom: 11px; color: #42643d; font-size: 10px; font-weight: 600; letter-spacing: 1.5px; }
.legal-summary p { margin: 0; color: #314e2e; font-size: 15px; line-height: 1.85; }
.legal-section {
  margin-bottom: 37px;
  padding-bottom: 37px;
  border-bottom: 1px solid var(--legal-border);
  scroll-margin-top: 128px;
}
.legal-section-heading { display: flex; align-items: baseline; gap: 16px; margin-bottom: 22px; }
.legal-section-heading > span {
  min-width: 27px;
  padding-bottom: 6px;
  border-bottom: 1px solid #c5d5b9;
  color: #4d7041;
  font: 500 12px/1.5 Manrope,Arial,sans-serif;
  font-variant-numeric: tabular-nums;
}
.legal-section h2 { margin: 0; font-size: 27px; font-weight: 600; line-height: 1.32; letter-spacing: -.7px; text-wrap: pretty; }
.legal-section h3 { margin: 29px 0 12px; font-size: 17px; font-weight: 650; line-height: 1.55; letter-spacing: -.15px; }
.legal-section p { margin: 0 0 19px; color: var(--legal-copy); font-size: 16px; line-height: 1.9; }
.legal-section p:last-child { margin-bottom: 0; }
.legal-section strong { color: #233e23; font-weight: 600; }
.legal-section a:not(.button) { color: #0a6035; text-decoration: underline; text-decoration-color: #8bad86; text-underline-offset: 3px; overflow-wrap: anywhere; }
.legal-section a:hover { color: #063e22; text-decoration-color: currentColor; }
.legal-section .text-link { font-size: 14px; }
.legal-notice { margin: 0 0 27px; padding: 23px 26px; border: 1px solid #e3ddcd; border-left: 3px solid #ad8e56; border-radius: 0 4px 4px 0; background: #f8f6f0; }
.legal-notice > strong { display: block; margin-bottom: 10px; color: #594925; font-size: 15px; }
.legal-notice > p { margin: 0; font-size: 15px; line-height: 1.85; }

/* Contact information is distinct from legal prose. */
.legal-contact-details { margin-top: 24px; padding: 10px 26px; border: 1px solid #dce5d5; border-radius: 5px; background: #f4f7ef; }
.legal-contact-details > p { display: grid; grid-template-columns: 128px minmax(0,1fr); align-items: baseline; gap: 16px; margin: 0; padding: 16px 0; border-bottom: 1px solid #dfe7d6; font-size: 14px; line-height: 1.75; overflow-wrap: anywhere; }
.legal-contact-details > p:last-child { border: 0; }
.legal-contact-details strong { color: #4a6040; font-size: 12px; font-weight: 600; }
.legal-related { display: flex; justify-content: space-between; align-items: center; gap: 25px; padding: 28px; border: 1px solid var(--legal-border); border-radius: 5px; background: #fafbf7; }
.legal-related > div > span { display: block; margin-bottom: 10px; color: #596b50; font-size: 9px; letter-spacing: 1.3px; }
.legal-related strong { display: block; font: 500 25px/1.3 Manrope,Arial,sans-serif; letter-spacing: -.65px; }
.legal-related .button { min-height: 47px; padding: 12px 16px; font-size: 12px; white-space: nowrap; }
.legal-page .site-footer { margin-top: 0; }
.legal-page .site-header .brand img { object-fit: contain; }
.legal-page .footer-nav a { white-space: nowrap; }

/* Tablet: wide copy, compact table of contents. */
@media (max-width:1199px) {
  .legal-layout { grid-template-columns: 214px minmax(0,1fr); gap: 46px; }
  .legal-meta { gap: 12px 20px; }
  .legal-section h2 { font-size: 25px; }
  .legal-related { padding: 23px; gap: 15px; }
  .legal-related strong { font-size: 23px; }
  .legal-related .button { font-size: 11px; }
  .legal-contact-details > p { grid-template-columns: 105px minmax(0,1fr); gap: 12px; }
}
@media (max-width:1023px) {
  .legal-layout { grid-template-columns: 1fr; max-width: 820px; gap: 29px; padding-top: 34px; }
  .legal-sidebar { position: static; max-height: none; overflow: visible; padding: 0; }
  .legal-sidebar-contact { display: none; }
  .legal-contents { padding: 14px 22px; border: 1px solid #dce5d4; border-radius: 5px; background: #f4f7ee; }
  .legal-contents summary { min-height: 35px; padding: 0; border: 0; }
  .legal-contents ol { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; margin-top: 13px; }
  .legal-contents a { min-height: 44px; }
  .legal-document { max-width: none; }
  .legal-hero { padding: 26px 0 38px; }
  .legal-hero h1 { font-size: 53px; }
  .legal-breadcrumb { margin-bottom: 30px; }
  .legal-intro { font-size: 15px; }
  .legal-summary { margin-bottom: 33px; }
}

/* Mobile: readable text, full-width controls, and no crowded metadata. */
@media (max-width:639px) {
  .legal-hero { padding: 24px 0 33px; }
  .legal-breadcrumb { margin-bottom: 28px; font-size: 11px; }
  .legal-hero > .wrap > .eyebrow { margin-bottom: 18px; font-size: 8px; line-height: 1.8; letter-spacing: 1.3px; }
  .legal-hero h1 { font-size: 41px; line-height: 1.15; letter-spacing: -1.6px; margin-bottom: 24px; }
  .legal-meta { gap: 11px 18px; font-size: 12px; }
  .legal-meta > span:first-child { flex-basis: 100%; gap: 7px; }
  .legal-meta > span:nth-child(2) { border: 0; padding: 0; }
  .legal-print { min-height: 40px; font-size: 11px; padding: 8px 12px; }
  .legal-intro { font-size: 14px; line-height: 1.85; margin-top: 24px; }
  .legal-layout { padding-top: 26px; padding-bottom: 48px; gap: 26px; }
  .legal-contents { padding: 12px 17px; }
  .legal-contents summary { min-height: 41px; font-size: 10px; }
  .legal-contents ol { grid-template-columns: 1fr; gap: 0; margin-top: 11px; }
  .legal-contents a { min-height: 45px; padding-top: 11px; padding-bottom: 11px; font-size: 13px; }
  .legal-contents a > span { font-size: 10px; }
  .legal-summary { padding: 21px; margin-bottom: 32px; }
  .legal-summary > span { font-size: 9px; }
  .legal-summary > p { font-size: 14px; line-height: 1.85; }
  .legal-section { padding-bottom: 29px; margin-bottom: 29px; scroll-margin-top: 96px; }
  .legal-section-heading { align-items: baseline; gap: 12px; margin-bottom: 20px; }
  .legal-section-heading > span { min-width: 21px; font-size: 11px; }
  .legal-section h2 { font-size: 24px; line-height: 1.35; letter-spacing: -.55px; }
  .legal-section h3 { font-size: 16px; line-height: 1.55; margin: 26px 0 12px; }
  .legal-section p { font-size: 15px; line-height: 1.9; margin-bottom: 18px; }
  .legal-section .text-link { font-size: 13px; }
  .legal-notice { padding: 20px; }
  .legal-notice > strong { font-size: 14px; }
  .legal-notice > p { font-size: 14px; line-height: 1.85; }
  .legal-contact-details { padding: 7px 20px; }
  .legal-contact-details > p { grid-template-columns: 1fr; gap: 4px; margin: 0; padding: 14px 0; font-size: 14px; line-height: 1.8; }
  .legal-contact-details strong { font-size: 11px; }
  .legal-related { align-items: flex-start; flex-direction: column; gap: 21px; padding: 24px 21px; }
  .legal-related strong { font-size: 25px; }
  .legal-related .button { width: 100%; justify-content: space-between; font-size: 12px; white-space: normal; }
  .legal-page .announcement .wrap > span:last-child { font-size: 10px; }
}
@media (max-width:359px) {
  .legal-hero h1 { font-size: 36px; }
  .legal-hero > .wrap > .eyebrow { font-size: 7px; }
  .legal-section h2 { font-size: 22px; }
  .legal-summary,.legal-notice { padding: 18px; }
}

/* Print: complete text, restrained ink, and no navigation clutter. */
@media print {
  @page { margin: 18mm; }
  .site-header,.announcement,.site-footer,.legal-sidebar,.legal-print,.legal-related,.skip-link,.legal-breadcrumb { display: none !important; }
  .legal-page { background: white; color: #111; }
  .legal-hero { background: none; padding: 0 0 18pt; border-bottom: 1px solid #aaa; }
  .legal-hero h1 { font-size: 28pt; letter-spacing: -.5pt; margin: 12pt 0; }
  .legal-hero .eyebrow { font-size: 8pt; }
  .legal-meta { font-size: 9pt; gap: 12pt; }
  .legal-intro { font-size: 10pt; line-height: 1.65; margin-top: 14pt; color: #222; }
  .wrap,.legal-document,.legal-layout,.legal-hero > .wrap { width: 100%; max-width: none; margin: 0; }
  .legal-layout { display: block; padding: 20pt 0 0; }
  .legal-section { margin-bottom: 18pt; padding-bottom: 18pt; scroll-margin-top: 0; }
  .legal-section h2,.legal-section h3,.legal-section-heading { break-after: avoid; }
  .legal-section h2 { font-size: 16pt; }
  .legal-section h3 { font-size: 11pt; margin-top: 15pt; }
  .legal-section p,.legal-summary p,.legal-notice p { color: #222; font-size: 10pt; line-height: 1.7; orphans: 3; widows: 3; }
  .legal-summary,.legal-notice,.legal-contact-details { background: #fff; border: 1px solid #aaa; padding: 12pt; }
  .legal-contact-details { break-inside: avoid; }
  .legal-contact-details > p { grid-template-columns: 100pt minmax(0,1fr); font-size: 10pt; margin: 0; padding: 7pt 0; }
  .legal-contact-details strong { font-size: 9pt; }
  .legal-section a { color: #222; text-decoration: underline; }
}
