/* ============================================================
   Absa Instant Life — legal pages (Privacy Policy, Terms)
   ============================================================ */

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: 'Fira Sans', 'Segoe UI', Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  background: #ffffff;
}

a { color: #e26d00; }
a:hover { color: #fd7b00; }

/* ---------- header ---------- */

.legal-header {
  background: #dc0032;
  padding: 16px 24px;
}
.legal-header-inner { max-width: 860px; margin: 0 auto; }
.back-link {
  color: #ffffff;
  text-decoration: none;
  font-size: 15px;
  font-weight: 600;
}
.back-link:hover { color: #ffd7b0; }

/* ---------- document ---------- */

main {
  max-width: 860px;
  margin: 0 auto;
  padding: 54px 24px 78px;
  font-size: 15.5px;
  line-height: 1.65;
  color: #3d3d3d;
  counter-reset: sec;
}

.doc-org {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: #6b6b6b;
}
.doc-org + .doc-org { margin-top: 2px; }

main h1 {
  margin: 14px 0 0;
  font-size: clamp(27px, 4vw, 36px);
  line-height: 1.15;
  font-weight: 800;
  color: #dc0032;
}

.title-rule {
  width: 56px;
  height: 4px;
  background: #fd7b00;
  margin: 20px 0 34px;
}

main h2 {
  counter-increment: sec;
  margin: 46px 0 12px;
  font-size: 21px;
  font-weight: 800;
  color: #dc0032;
}

main p { margin: 14px 0 0; }
main p:first-of-type, main h2 + p { margin-top: 0; }

main ul {
  margin: 14px 0 0;
  padding-left: 24px;
  display: grid;
  gap: 8px;
}

/* numbered clause lists: X.Y and X.Y.Z */
ol.cl {
  list-style: none;
  counter-reset: cl;
  margin: 14px 0 0;
  padding-left: 0;
  display: grid;
  gap: 10px;
}
ol.cl > li {
  counter-increment: cl;
  position: relative;
  padding-left: 48px;
}
ol.cl > li::before {
  content: counter(sec) "." counter(cl);
  position: absolute;
  left: 0;
  top: 0;
}
ol.cl2 {
  list-style: none;
  counter-reset: cl2;
  margin: 8px 0 0;
  padding-left: 0;
  display: grid;
  gap: 8px;
}
ol.cl2 > li {
  counter-increment: cl2;
  position: relative;
  padding-left: 58px;
}
ol.cl2 > li::before {
  content: counter(sec) "." counter(cl) "." counter(cl2);
  position: absolute;
  left: 0;
  top: 0;
}
ol.cl ul {
  margin: 8px 0 0;
  padding-left: 22px;
  display: grid;
  gap: 8px;
}

/* contact cards */
.info-card {
  margin: 18px 0 0;
  border-left: 4px solid #fd7b00;
  background: #faf7f5;
  padding: 18px 22px;
}
.info-card .label { font-weight: 700; }
.info-card .value { margin: 2px 0 12px; }
.info-card .value:last-child { margin-bottom: 0; }

/* ---------- footer ---------- */

.site-footer {
  background: #3a0a16;
  color: rgba(255,255,255,0.92);
  text-align: center;
  padding: 26px 24px 28px;
  font-size: 13.5px;
  line-height: 1.5;
}
.footer-line { margin-top: 7px; }
.site-footer a { color: #ff9d4d; text-decoration: none; }
.site-footer a:hover { color: #ffffff; }
.site-footer .current { color: #ffffff; font-weight: 600; }
.footer-underwritten { margin-top: 8px; color: rgba(255,255,255,0.75); }
.footer-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  margin-top: 16px;
}
.footer-links a, .footer-links .current {
  font-weight: 600;
  font-size: 14px;
  padding: 4px 2px;
}
.footer-links .dot {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: rgba(255,255,255,0.45);
  flex: none;
}

@media (min-width: 760px) { .footer-mobile { display: none; } }
@media (max-width: 759.98px) { .footer-desktop { display: none; } }
