/* ==========================================================================
   Privacy Policy — standalone legal page.

   Self-contained on purpose. This page is shared by all 11 variants, each of
   which has its own 200KB stylesheet with different tokens, so it cannot
   inherit from any one of them. Brand values below are copied from
   public/australia/styles.css (the root variant) as literals — same reasoning
   as the review-card block: the page must look identical wherever it is
   reached from.

   No form, no runtime, no tracking. Legal pages stay static.
   ========================================================================== */

:root {
  --brand-primary: #F79222;
  --brand-primary-dark: #d97d0e;
  --brand-green: #167E41;
  --ink-900: #0f172a;
  --ink-700: #475569;
  --ink-500: #64748b;
  --ink-300: #e2e8f0;
  --ink-100: #f1f5f9;
  --ink-50: #f8fafc;
  --white: #ffffff;
  --radius-sm: 8px;
  --radius: 12px;
  --radius-lg: 18px;
  --container-max: 860px;
}

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: 90px; /* sticky header height, so #anchors don't hide */
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

body {
  margin: 0;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--ink-900);
  background: var(--white);
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

.container {
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 20px;
}

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

.header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: saturate(180%) blur(12px);
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--ink-300);
}
.header-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 72px;
  padding: 12px 0;
}
.logo-image {
  display: block;
  width: auto;
  height: 40px;
}
.header-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 11px 22px;
  border: 0;
  border-radius: 999px;
  background: var(--brand-primary);
  color: var(--white);
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.18s ease, transform 0.18s ease;
}
.header-cta:hover { background: var(--brand-primary-dark); transform: translateY(-1px); }
.header-cta:focus-visible { outline: 3px solid rgba(247, 146, 34, 0.45); outline-offset: 2px; }

/* ------------------------------------------------------------------ hero */

.legal-hero {
  padding: 56px 0 32px;
  border-bottom: 1px solid var(--ink-300);
  background: linear-gradient(180deg, #fffdfa 0%, var(--white) 100%);
}
.legal-hero h1 {
  margin: 0 0 12px;
  font-size: clamp(30px, 5vw, 42px);
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.legal-meta {
  margin: 0;
  color: var(--ink-500);
  font-size: 14px;
}
.legal-meta strong { color: var(--ink-700); font-weight: 600; }

/* ------------------------------------------------------------------ body */

.legal-body { padding: 40px 0 72px; }

.legal-body h2 {
  margin: 44px 0 14px;
  font-size: 22px;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: -0.01em;
  scroll-margin-top: 90px;
}
.legal-body h2:first-child { margin-top: 0; }
.legal-body h3 {
  margin: 28px 0 10px;
  font-size: 17px;
  font-weight: 700;
}
.legal-body p { margin: 0 0 16px; color: var(--ink-700); }
.legal-body ul, .legal-body ol { margin: 0 0 16px; padding-left: 22px; color: var(--ink-700); }
.legal-body li { margin-bottom: 8px; }
.legal-body li::marker { color: var(--brand-primary); }
.legal-body strong { color: var(--ink-900); font-weight: 600; }

.legal-body a {
  color: var(--brand-green);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.legal-body a:hover { color: var(--brand-primary-dark); }
.legal-body a:focus-visible { outline: 3px solid rgba(247, 146, 34, 0.45); outline-offset: 2px; border-radius: 3px; }

/* --------------------------------------------------------- table of contents */

.legal-toc {
  margin: 0 0 8px;
  padding: 22px 24px;
  background: var(--ink-50);
  border: 1px solid var(--ink-300);
  border-radius: var(--radius-lg);
}
.legal-toc h2 {
  margin: 0 0 12px !important;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-500);
}
.legal-toc ol {
  margin: 0;
  padding-left: 20px;
  columns: 2;
  column-gap: 28px;
}
.legal-toc li { margin-bottom: 6px; break-inside: avoid; }
@media (max-width: 620px) {
  .legal-toc ol { columns: 1; }
}

/* ------------------------------------------------------------ summary box */

.legal-summary {
  margin: 0 0 8px;
  padding: 22px 24px;
  background: #F3FBF5;
  border: 1px solid rgba(22, 126, 65, 0.22);
  border-left: 4px solid var(--brand-green);
  border-radius: var(--radius);
}
.legal-summary h2 { margin-top: 0 !important; font-size: 18px; }
.legal-summary p:last-child, .legal-summary ul:last-child { margin-bottom: 0; }

/* ----------------------------------------------------------------- table */

.legal-table-wrap {
  overflow-x: auto;
  margin: 0 0 20px;
  border: 1px solid var(--ink-300);
  border-radius: var(--radius);
}
.legal-table {
  width: 100%;
  min-width: 560px;
  border-collapse: collapse;
  font-size: 14.5px;
}
.legal-table th, .legal-table td {
  padding: 12px 16px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--ink-300);
}
.legal-table th {
  background: var(--ink-50);
  font-weight: 600;
  color: var(--ink-900);
  white-space: nowrap;
}
.legal-table td { color: var(--ink-700); }
.legal-table tr:last-child th, .legal-table tr:last-child td { border-bottom: 0; }

/* ------------------------------------------------------- contact / callout */

.legal-contact {
  margin: 12px 0 0;
  padding: 22px 24px;
  background: var(--ink-50);
  border: 1px solid var(--ink-300);
  border-radius: var(--radius-lg);
}
.legal-contact p:last-child { margin-bottom: 0; }

/* --------------------------------------------------------------- TODO tag

   Deliberately loud. Every placeholder below is a legal detail that must be
   filled in before this page is published — a quiet grey "[ABN]" is exactly
   the kind of thing that ships unnoticed and sits on a live page collecting
   consent. Delete the <span> along with the text when you fill it in.
   ------------------------------------------------------------------------ */

.todo {
  display: inline-block;
  padding: 1px 8px;
  border-radius: 5px;
  background: #FEF3C7;
  border: 1px dashed #D97706;
  color: #92400E;
  font-weight: 600;
  font-size: 0.92em;
  white-space: nowrap;
}

.todo-banner {
  margin: 0 0 28px;
  padding: 16px 20px;
  background: #FFFBEB;
  border: 1px solid #FCD34D;
  border-left: 4px solid #D97706;
  border-radius: var(--radius);
  color: #92400E;
  font-size: 14.5px;
}
.todo-banner p { margin: 0; color: inherit; }
.todo-banner strong { color: #78350F; }

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

.site-footer {
  padding: 44px 0 32px;
  background: var(--ink-900);
  color: #cbd5e1;
}
.site-footer-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 32px;
  justify-content: space-between;
}
.site-footer-brand { max-width: 320px; }
.site-footer-logo {
  display: block;
  width: auto;
  height: 38px;
  margin-bottom: 12px;
  filter: brightness(0) invert(1);
}
.site-footer-brand p { margin: 0; font-size: 14px; line-height: 1.6; color: #94a3b8; }
.site-footer-links { display: flex; gap: 56px; flex-wrap: wrap; }
.site-footer-links h4 {
  margin: 0 0 12px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #64748b;
}
.site-footer-links a {
  display: block;
  margin-bottom: 8px;
  color: #cbd5e1;
  font-size: 14px;
  text-decoration: none;
}
.site-footer-links a:hover { color: var(--brand-primary); }
.site-footer-links a:focus-visible { outline: 2px solid var(--brand-primary); outline-offset: 2px; border-radius: 3px; }
.site-footer-copy {
  width: 100%;
  padding-top: 24px;
  margin-top: 8px;
  border-top: 1px solid #1e293b;
  font-size: 13px;
  color: #64748b;
}

/* ----------------------------------------------------------------- print */

@media print {
  .header, .site-footer, .legal-toc { display: none; }
  body { font-size: 11pt; line-height: 1.5; }
  .legal-body a { color: inherit; text-decoration: none; }
  .todo, .todo-banner { border: 1px solid #000; background: transparent; color: #000; }
}
