/* Alipsa policies: clean readable 80%-width pages with a bounded sticky section index. */
.alipsa-policy-page {
  --ap-green: #3aa437;
  --ap-coral: #e8604c;
  --ap-ink: #28392d;
  --ap-muted: #5d7063;
  --ap-border: #dfe9dd;
  width: 80%;
  max-width: 1380px;
  margin: 38px auto 85px;
  display: grid;
  grid-template-columns: minmax(225px, 25%) minmax(0, 1fr);
  gap: clamp(26px, 4vw, 65px);
  align-items: start;
  color: var(--ap-ink);
  font-size: 15px;
  line-height: 1.85;
}
.alipsa-policy-page *, .alipsa-policy-page *::before, .alipsa-policy-page *::after { box-sizing: border-box; }
.alipsa-policy-toc { position: sticky; top: 115px; align-self: start; min-width: 0; }
.alipsa-policy-toc-inner { border: 1px solid var(--ap-border); border-radius: 13px; padding: 20px 17px; background: #f7faf6; }
.alipsa-policy-toc h2 { margin: 0 0 11px; font-size: 15px; line-height: 1.4; color: var(--ap-ink); }
.alipsa-policy-toc a { display: block; padding: 6px 8px; font-size: 13px; line-height: 1.6; color: var(--ap-muted); text-decoration: none; border-radius: 5px; }
.alipsa-policy-toc a:hover, .alipsa-policy-toc a:focus-visible { color: var(--ap-green); background: #e9f4e6; }
.alipsa-policy-main { min-width: 0; }
.alipsa-policy-kicker { display: flex; align-items: center; gap: 10px; color: var(--ap-green); text-transform: uppercase; letter-spacing: .12em; font-weight: 750; font-size: 11px; }
.alipsa-policy-kicker::before { content: ''; width: 25px; height: 3px; border-radius: 3px; background: var(--ap-coral); }
.alipsa-policy-main h1 { color: var(--ap-ink); line-height: 1.17; font-size: clamp(30px, 3.4vw, 43px); font-weight: 750; margin: 10px 0 17px; letter-spacing: -.02em; }
.alipsa-policy-lead { color: var(--ap-muted); font-size: 16px; line-height: 1.8; padding-bottom: 23px; border-bottom: 1px solid var(--ap-border); }
.alipsa-policy-main section { scroll-margin-top: 125px; padding: 18px 0 25px; margin: 0 0 12px; border-bottom: 1px solid var(--ap-border); }
.alipsa-policy-main h2 { font-size: clamp(22px, 2vw, 27px); line-height: 1.35; color: var(--ap-ink); font-weight: 700; margin: 10px 0 14px; }
.alipsa-policy-main h3 { font-size: 17px; line-height: 1.4; margin: 18px 0 8px; }
.alipsa-policy-main p { margin: 0 0 13px; line-height: 1.85; color: #46574b; }
.alipsa-policy-main ul, .alipsa-policy-main ol { padding-left: 22px; margin: 0 0 17px; }
.alipsa-policy-main li { margin-bottom: 8px; padding-left: 4px; }
.alipsa-policy-main a { color: var(--ap-green); text-decoration: underline; }
.alipsa-policy-callout { border-left: 3px solid var(--ap-green); background: #f2f8f0; padding: 14px 18px; border-radius: 0 8px 8px 0; margin: 16px 0; }
.alipsa-policy-review { border: 1px solid #edb9ae; border-left: 4px solid var(--ap-coral); border-radius: 8px; padding: 15px 17px; background: #fff5f3; font-size: 14px; line-height: 1.7; color: #763f36; margin: 16px 0; }
.alipsa-policy-table-scroll { max-width: 100%; overflow-x: auto; margin: 18px 0 23px; border: 1px solid var(--ap-border); border-radius: 10px; }
.alipsa-policy-page table { display: table; border-collapse: collapse; border: 0; min-width: 500px; margin: 0; width: 100%; }
.alipsa-policy-page th, .alipsa-policy-page td { padding: 11px 13px; text-align: left; vertical-align: top; border: 1px solid var(--ap-border); font-size: 13px; }
.alipsa-policy-page th { background: var(--ap-green); color: #fff; font-weight: 700; }
.alipsa-policy-page tbody tr:nth-child(even) { background: #f6faf5; }
.alipsa-policy-contact { padding: 19px 23px; border: 1px solid var(--ap-border); background: #f7faf6; border-radius: 10px; }
.alipsa-policy-contact p:last-child { margin-bottom: 0; }
@media(max-width: 1150px) { .alipsa-policy-page { width: 90%; gap: 26px; } }
@media(max-width: 860px) { .alipsa-policy-page { grid-template-columns: minmax(0, 1fr); margin: 25px auto 60px; } .alipsa-policy-toc { position: static; } .alipsa-policy-toc-inner { padding: 15px; } .alipsa-policy-toc nav { display: flex; gap: 5px; overflow-x: auto; scrollbar-width: thin; } .alipsa-policy-toc a { flex: 0 0 auto; white-space: nowrap; } }
@media(max-width: 600px) { .alipsa-policy-page { width: 100%; margin: 16px auto 44px; padding: 0 16px; } .alipsa-policy-main h1 { font-size: 28px; } .alipsa-policy-main section { scroll-margin-top: 70px; } }
