/* Privacy surfaces share the landing page's current tokens and components. */
.privacy-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 24px;
  margin-top: 16px;
  color: var(--color-ivory-muted);
  font-size: 14px;
}
.privacy-links a, .privacy-links button { display: inline-flex; align-items: center; gap: 8px; }
.privacy-links button {
  border: 0;
  padding: 0;
  background: none;
  color: inherit;
  font: inherit;
  cursor: pointer;
}
.privacy-links [hidden], .cookie-consent [hidden], .privacy-page [hidden] { display: none !important; }
.privacy-links a:hover, .privacy-links button:hover { color: var(--color-gold); }
html:has(.cookie-consent[open]) { overflow-y: hidden; }
.cookie-consent {
  position: fixed;
  inset: 0;
  margin: auto;
  width: min(560px, calc(100% - 32px));
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 32px;
  border: 1px solid var(--panel-border);
  border-radius: var(--radius-modal);
  background: var(--color-midnight);
  color: var(--color-ivory-muted);
  font: 400 16px/1.6 var(--font-secondary);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.4);
  color-scheme: dark;
}
.cookie-consent::backdrop {
  background: rgba(10, 13, 18, 0.72);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.cookie-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.cookie-header .section-label { margin: 0; }
.cookie-close {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--panel-border);
  border-radius: var(--radius-standard);
  background: transparent;
  color: var(--color-ivory-muted);
  cursor: pointer;
  transition: color var(--duration-quick) var(--ease-standard), background var(--duration-quick) var(--ease-standard);
}
.cookie-close svg { width: 20px; height: 20px; }
.cookie-close:hover { background: var(--color-midnight-alt); color: var(--color-ivory); }
.cookie-consent h2 { margin: 0 0 20px; color: var(--color-ivory); font-size: clamp(32px, 5vw, 40px); line-height: 1.1; }
.cookie-consent p { margin-bottom: 12px; }
.cookie-consent .cookie-reassurance { margin: 16px 0 0; padding-left: 14px; border-left: 2px solid var(--color-gold); font-size: 14px; }
.cookie-consent a { color: var(--color-ivory); text-decoration: underline; text-decoration-color: var(--panel-border); text-underline-offset: 4px; }
.cookie-consent a:hover { color: var(--color-gold); text-decoration-color: currentColor; }
.cookie-consent fieldset { border: 0; margin-top: 24px; min-width: 0; }
.cookie-consent legend { margin-bottom: 12px; color: var(--color-ivory); font-size: 16px; font-weight: 600; }
.cookie-required, .cookie-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 16px;
  border: 1px solid var(--panel-border);
  border-radius: var(--radius-standard);
  background: var(--color-midnight-alt);
  margin-bottom: 8px;
  font-size: 14px;
  line-height: 1.5;
}
.cookie-required strong, .cookie-option strong { display: block; margin-bottom: 4px; color: var(--color-ivory); font-size: 16px; font-weight: 600; }
.cookie-required div > span, .cookie-option span > span { display: block; }
.cookie-badge { flex-shrink: 0; color: var(--color-gold); font-size: 12px; }
.cookie-option { cursor: pointer; transition: border-color var(--duration-quick) var(--ease-standard); }
.cookie-option:hover, .cookie-option:has(input:checked) { border-color: var(--panel-border-hover); }
.cookie-option input { flex-shrink: 0; width: 22px; height: 22px; accent-color: var(--color-gold); cursor: pointer; }
.cookie-actions { display: grid; gap: 10px; margin-top: 24px; }
.cookie-decisions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
/* Accepting and refusing deliberately use the same site button component. */
.cookie-actions button { width: 100%; min-height: 46px; font-family: var(--font-secondary); font-size: 14px; line-height: 1.4; padding: 12px 16px; }
.cookie-actions .btn-outline { border: 1px solid var(--panel-border); border-radius: var(--radius-standard); color: var(--color-ivory); cursor: pointer; transition: background var(--duration-quick) var(--ease-standard), border-color var(--duration-quick) var(--ease-standard); }
.cookie-actions .btn-outline:hover { background: var(--color-midnight-alt); border-color: var(--panel-border-hover); color: var(--color-ivory); }
.cookie-footer { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--panel-border); text-align: center; font-size: 13px; }
.cookie-footer p { margin-bottom: 8px; }
.cookie-footer a { display: inline-flex; align-items: center; gap: 8px; }
.cookie-notice { margin-top: 16px; padding: 12px 16px; border: 1px solid var(--panel-border-hover); border-radius: var(--radius-standard); color: var(--color-ivory); font-size: 14px; }
.cookie-consent :focus-visible, .privacy-links :focus-visible, .privacy-site :focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 4px;
}
.cookie-consent h2:focus { outline: none; }

/* Privacy policy: same typography, navigation, panels and spacing as the site. */
.privacy-back { display: inline-flex; align-items: center; gap: 10px; color: var(--color-ivory-muted); font-size: 14px; padding-block: 12px; }
.privacy-back:hover { color: var(--color-gold); }
.privacy-page { padding-top: calc(var(--nav-height) + 72px); padding-bottom: 96px; }
.privacy-hero { max-width: 780px; margin-bottom: 48px; }
.privacy-hero .section-label { margin-bottom: 24px; }
.privacy-hero h1 { margin: 0 0 24px; color: var(--color-ivory); font-size: clamp(40px, 6vw, 72px); line-height: 1.08; letter-spacing: -0.045em; }
.privacy-hero h1 span { color: var(--color-gold); }
.privacy-intro { max-width: 600px; color: var(--color-ivory-muted); font-size: 18px; line-height: 1.6; }
.privacy-date { margin-top: 24px; color: var(--color-ivory-muted); font-size: 14px; }
.privacy-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  align-items: center;
  gap: 40px;
  margin-bottom: 64px;
  padding: 32px;
  border: 1px solid var(--panel-border);
  border-top: 2px solid var(--color-gold);
  border-radius: var(--radius-modal);
  background: var(--color-midnight-alt);
}
.privacy-summary h2 { margin: 16px 0 12px; font-size: 28px; line-height: 1.2; letter-spacing: -0.03em; }
.privacy-summary p:not(.section-label) { color: var(--color-ivory-muted); line-height: 1.7; }
.privacy-summary-action .btn-primary { width: 100%; gap: 12px; }
.privacy-summary-action p { margin-top: 12px; font-size: 14px; text-align: center; }
.privacy-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); align-items: start; gap: 64px; }
.privacy-toc { position: sticky; top: calc(var(--nav-height) + 32px); }
.privacy-toc .section-label { margin-bottom: 20px; }
.privacy-toc li + li { margin-top: 4px; }
.privacy-toc a { display: flex; align-items: baseline; gap: 12px; padding: 12px 0; font-size: 16px; color: var(--color-ivory-muted); }
.privacy-toc a span { color: var(--color-gold); font: 12px var(--font-mono); }
.privacy-toc a:hover { color: var(--color-ivory); }
.privacy-content { min-width: 0; }
.privacy-section { scroll-margin-top: calc(var(--nav-height) + 32px); }
.privacy-section + .privacy-section { margin-top: 48px; padding-top: 40px; border-top: 1px solid var(--panel-border); }
.privacy-section .section-label { margin-bottom: 16px; }
.privacy-section h2 { margin-bottom: 24px; font-size: clamp(26px, 3vw, 34px); line-height: 1.2; letter-spacing: -0.03em; }
.privacy-section p { margin-bottom: 16px; color: var(--color-ivory-muted); line-height: 1.8; }
.privacy-section strong { color: var(--color-ivory); font-weight: 600; }
.privacy-section a { color: var(--color-ivory); text-decoration: underline; text-decoration-color: var(--color-gold); text-underline-offset: 4px; overflow-wrap: anywhere; }
.privacy-section a:hover { color: var(--color-gold); }
.privacy-section code { padding: 2px 5px; border-radius: 4px; background: var(--color-midnight-alt); color: var(--color-ivory); font: 13px var(--font-mono); overflow-wrap: anywhere; }
.privacy-purposes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 24px 0; }
.privacy-purposes li { padding: 24px; border: 1px solid var(--panel-border); border-radius: var(--radius-standard); background: var(--panel-dark); }
.privacy-purposes h3 { font-size: 20px; line-height: 1.3; letter-spacing: -0.02em; }
.privacy-purposes p { margin-bottom: 16px; }
.privacy-category { color: var(--color-gold); font-size: 13px; }
.privacy-details { margin-top: 24px; border: 1px solid var(--panel-border); border-radius: var(--radius-standard); background: var(--panel-dark); }
.privacy-details summary { padding: 16px 20px; cursor: pointer; color: var(--color-ivory); line-height: 1.5; }
.privacy-details summary:hover { color: var(--color-gold); }
.privacy-details div { padding: 4px 20px 8px; }
.privacy-sr-only, .privacy-skip:not(:focus) { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.privacy-skip:focus { position: fixed; top: 12px; left: 24px; z-index: 1001; padding: 12px 20px; border-radius: var(--radius-standard); background: var(--color-gold); color: var(--color-midnight); }
.privacy-site .footer p { color: var(--color-ivory-muted); }
@media (max-width: 959px) {
  .privacy-summary { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .privacy-summary-action { max-width: 320px; }
  .privacy-layout { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .privacy-toc { position: static; padding-bottom: 24px; border-bottom: 1px solid var(--panel-border); }
  .privacy-toc ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; }
}
@media (max-width: 599px) {
  .cookie-consent { padding: 24px 20px; }
  .cookie-header .section-label { font-size: 11px; letter-spacing: 0.08em; }
  .cookie-required { flex-wrap: wrap; gap: 8px; }
  .privacy-page { padding-top: calc(var(--nav-height) + 40px); padding-bottom: 64px; }
  .privacy-hero { margin-bottom: 32px; }
  .privacy-summary { padding: 24px; margin-bottom: 40px; }
  .privacy-summary h2 { font-size: 24px; }
  .privacy-toc ol, .privacy-purposes { grid-template-columns: minmax(0, 1fr); }
  .privacy-section + .privacy-section { margin-top: 32px; padding-top: 32px; }
}
@media (max-width: 359px) {
  .cookie-decisions { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .privacy-site { scroll-behavior: auto; }
  html:has(.privacy-site) { scroll-behavior: auto; }
  .cookie-consent *, .privacy-site * { transition: none !important; }
}
