/* Shared reading experience for the privacy policy and terms of use. */
.legal-page { --legal-forest: #062d23; --legal-muted: #506458; color: #193c2e; background: #f5f7f2; }
.legal-page .legal-hero { background: #edf3e6; border-bottom: 1px solid #dce7d4; scroll-margin-top: 100px; }
.legal-page .legal-hero-grid { display: grid; gap: 30px; padding-bottom: 40px; animation: legal-arrive 500ms ease both; }
.legal-page .legal-hero-copy { min-width: 0; }
.legal-page .eyebrow { color: #426847; font-size: 11px; font-weight: 600; letter-spacing: .1em; }
.legal-page h1 { color: var(--legal-forest); font-size: clamp(38px, 4.5vw, 64px); font-weight: 500; line-height: 1.07; letter-spacing: -.055em; margin: 18px 0 0; }
.legal-page h1 em { display: block; font-family: Georgia, serif; font-weight: 400; letter-spacing: -.045em; color: #4c754d; }
.legal-page .legal-description { max-width: 550px; font-size: 15px; line-height: 1.8; color: var(--legal-muted); margin: 22px 0 0; }
.legal-page .legal-updated { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; margin: 24px 0 0; color: #50634b; font-size: 11px; line-height: 1.7; }
.legal-updated > span { width: 6px; height: 6px; border-radius: 50%; background: #688459; margin-right: 3px; }
.legal-overview { position: relative; background: var(--legal-forest); color: #f3f8ed; padding: 24px; border: 1px solid #24523b; border-radius: 22px; }
.legal-document-icon { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid #426747; border-radius: 14px; color: #c4e8ad; margin-bottom: 20px; }
.legal-document-icon .ui-icon { width: 25px; height: 25px; }
.legal-overview .legal-overview-label { color: #b9d6ac; font-size: 10px; font-weight: 600; letter-spacing: .13em; margin: 0 0 16px; }
.legal-overview ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 13px; }
.legal-overview li { display: flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 500; }
.legal-overview li .ui-icon { width: 16px; height: 16px; color: #bde7aa; flex: 0 0 16px; }
.legal-overview .legal-overview-footer { border-top: 1px solid #365843; padding-top: 18px; margin: 20px 0 0; color: #c0d2b6; font-size: 12px; line-height: 1.6; }
.legal-page .legal-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; padding-top: 28px; padding-bottom: 56px; }
.legal-sidebar { min-width: 0; }
.legal-page .legal-index { position: static; display: block; max-height: none; padding: 0; border: 1px solid #dce5d5; border-radius: 18px; background: #fff; }
.legal-toc summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px; list-style: none; cursor: pointer; color: var(--legal-forest); }
.legal-toc summary::-webkit-details-marker { display: none; }
.legal-toc-heading { display: flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 600; }
.legal-toc-heading > .ui-icon { width: 22px; height: 22px; color: #50754c; flex-shrink: 0; }
.legal-toc-heading small { display: block; margin-top: 4px; color: #6a7764; font-size: 11px; font-weight: 400; }
.legal-toc-chevron { width: 17px; height: 17px; flex-shrink: 0; transition: transform 180ms; }
.legal-toc[open] .legal-toc-chevron { transform: rotate(180deg); }
.legal-toc ol { list-style: none; margin: 0; padding: 0 10px 12px; }
.legal-page .legal-index a { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 10px 12px; margin: 2px 0; border-radius: 9px; color: #52614c; font-size: 12px; line-height: 1.5; text-decoration: none; transition: background 180ms, color 180ms; }
.legal-index-number { font-size: 10px; font-variant-numeric: tabular-nums; color: #526545; flex: 0 0 20px; }
.legal-page .legal-index a:hover { color: #163b27; background: #f1f5ed; text-decoration: none; }
.legal-page .legal-index a[aria-current="location"] { background: #eaf2e1; color: #214624; font-weight: 600; box-shadow: inset 3px 0 #7b9e64; }
.legal-sidebar-contact { display: flex; align-items: center; gap: 12px; margin-top: 14px; padding: 16px 20px; background: #eaf0e3; border: 1px solid #dbe5d2; border-radius: 14px; color: #4e6345; font-size: 11px; line-height: 1.6; transition: background 180ms; }
.legal-sidebar-contact > .ui-icon { width: 20px; height: 20px; flex-shrink: 0; }
.legal-sidebar-contact > .ui-icon:last-child { margin-left: auto; width: 16px; }
.legal-sidebar-contact strong { display: block; color: #28432a; font-size: 12px; font-weight: 600; }
.legal-sidebar-contact:hover { background: #e0ead6; }
.legal-page .legal-content { min-width: 0; }
.legal-page .legal-content .legal-section { margin-bottom: 16px; padding: 24px 20px; background: #fff; border: 1px solid #e0e7da; border-radius: 18px; scroll-margin-top: 16px; transition: border-color 220ms, box-shadow 220ms; }
.legal-page .legal-section:target { border-color: #a1bd8e; box-shadow: 0 8px 28px rgb(6 45 35 / .035); }
.legal-section-heading { display: flex; align-items: flex-start; gap: 13px; margin-bottom: 18px; }
.legal-section-number { display: grid; place-items: center; flex: 0 0 34px; height: 34px; border: 1px solid #dae6ce; border-radius: 10px; background: #f1f6e9; color: #507044; font-size: 11px; font-weight: 600; font-variant-numeric: tabular-nums; }
.legal-page .legal-content .legal-section h2 { color: #183d2b; margin: 3px 0 0; font-size: 20px; line-height: 1.35; font-weight: 500; letter-spacing: -.035em; }
.legal-page .legal-content p { color: #52604d; font-size: 14px; line-height: 1.9; overflow-wrap: anywhere; }
.legal-section-body p { margin: 0; }
.legal-section-body p + p { margin-top: 16px; }
.legal-page .legal-content .legal-section a { color: #276044; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #a4baa1; }
.legal-page .legal-content .legal-section a:hover { color: #062d23; text-decoration-color: currentColor; }
.legal-document-end { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 20px; padding: 8px 4px 24px; color: #65745b; font-size: 11px; }
.legal-page .legal-document-end a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: #315737; font-size: 12px; font-weight: 500; text-decoration: none; }
.legal-document-end .ui-icon { width: 17px; height: 17px; }
.legal-next { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; padding: 26px 24px; border-radius: 20px; background: #e8f0df; border: 1px solid #d7e3cd; }
.legal-page .legal-next .eyebrow { font-size: 10px; margin: 0 0 12px; }
.legal-page .legal-content .legal-next h2 { font-size: 25px; letter-spacing: -.04em; line-height: 1.2; font-weight: 500; color: #1b3e28; margin: 0 0 12px; }
.legal-page .legal-content .legal-next p:not(.eyebrow) { font-size: 13px; line-height: 1.7; margin: 0; max-width: 350px; }
.legal-page .legal-content .legal-next .btn { font-size: 13px; text-decoration: none; color: #fff; background: #062d23; border-color: #062d23; }
.legal-page .legal-content .legal-next .btn:hover { background: #164a35; }
.legal-page a:focus-visible, .legal-toc summary:focus-visible { outline: 2px solid #096b34; outline-offset: 4px; }
@keyframes legal-arrive { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (max-width: 599px) {
  .legal-overview { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 12px 16px; padding: 24px; border-radius: 18px; }
  .legal-document-icon { grid-column: 1; grid-row: 1 / span 2; width: 36px; height: 36px; border-radius: 11px; margin: 0; }
  .legal-document-icon .ui-icon { width: 21px; height: 21px; }
  .legal-overview .legal-overview-label { grid-column: 2; align-self: center; margin: 0; }
  .legal-overview ul { grid-column: 2; gap: 8px; }
  .legal-overview li { font-size: 13px; gap: 8px; }
  .legal-overview li .ui-icon { width: 14px; height: 14px; flex-basis: 14px; }
  .legal-overview .legal-overview-footer { display: none; }
}
@media (min-width: 600px) {
  .legal-page .legal-hero-grid { grid-template-columns: 1.1fr .9fr; gap: 32px; align-items: center; padding-bottom: 48px; }
  .legal-overview { padding: 28px; }
  .legal-page .legal-description { font-size: 16px; }
  .legal-page .legal-content .legal-section { padding: 30px; }
  .legal-page .legal-content .legal-section h2 { font-size: 23px; }
  .legal-page .legal-content p { font-size: 15px; }
}
@media (min-width: 1024px) {
  .legal-page .legal-hero-grid { grid-template-columns: minmax(0, 1fr) 330px; gap: 80px; padding-bottom: 64px; }
  .legal-page .legal-updated { font-size: 12px; }
  .legal-page .legal-layout { grid-template-columns: 275px minmax(0, 1fr); gap: 40px; padding-top: 56px; padding-bottom: 88px; }
  .legal-sidebar { position: sticky; top: 108px; align-self: start; }
  .legal-page .legal-index { max-height: calc(100svh - 220px); overflow-y: auto; scrollbar-width: thin; scrollbar-color: #becdb1 transparent; }
  .legal-toc summary { padding: 24px 20px; }
  .legal-page .legal-content .legal-section { padding: 36px; margin-bottom: 20px; border-radius: 20px; }
  .legal-section-heading { gap: 16px; margin-bottom: 22px; }
  .legal-section-number { flex-basis: 38px; height: 38px; font-size: 12px; }
  .legal-page .legal-content .legal-section h2 { font-size: 25px; }
  .legal-page .legal-content p { font-size: 15px; }
  .legal-next { flex-direction: row; align-items: center; justify-content: space-between; padding: 32px; }
  .legal-next .btn { flex-shrink: 0; }
}
@media (min-width: 1280px) {
  .legal-page .legal-hero-grid { grid-template-columns: minmax(0, 1fr) 350px; gap: 100px; }
  .legal-page .legal-layout { gap: 56px; }
  .legal-page .legal-content .legal-section { padding: 38px 40px; }
  .legal-page .legal-content p { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) { .legal-page .legal-hero-grid { animation: none; } }
@media print {
  .legal-page { background: #fff; }
  .legal-page .legal-hero { background: #fff; }
  .legal-page .legal-hero-grid { display: block; }
  .legal-overview, .legal-sidebar, .legal-next, .legal-document-end { display: none; }
  .legal-page .legal-layout { display: block; padding-block: 20px; }
  .legal-page .legal-content .legal-section { border: 0; border-radius: 0; padding: 12px 0; box-shadow: none; }
}

/* Keep the reading column clear; headers retain WhatsApp access at every width. */
body:has(.legal-page) .floating-whatsapp { display: none; }
