/* ==========================================================================
   Terms & Conditions — 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 privacy-policy stylesheet: 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;
}
@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; }
}

/* ------------------------------------------------------- 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 */

.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; }
}
