/* Accessibility, consent notice and legal-page styles. Loaded last so it can override. */

/* Screen reader only */
.sr-only { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Skip link */
.skip-link {
  position: fixed; left: 12px; top: -80px; z-index: 100000;
  background: #fff; color: #000; font-weight: 700; padding: 12px 18px; border-radius: 8px;
  text-decoration: none; transition: top 0.15s ease;
}
.skip-link:focus { top: 12px; outline: 3px solid #cb1f2c; outline-offset: 2px; }
#main:focus { outline: none; }

/* Visible keyboard focus everywhere */
a:focus-visible, button:focus-visible, summary:focus-visible, select:focus-visible,
input:focus-visible, textarea:focus-visible, [role="button"]:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid #fff; outline-offset: 3px;
}
.modern input:focus-visible, .modern textarea:focus-visible, .modern select:focus-visible { outline: 3px solid #fff !important; outline-offset: 2px; }
input[type="checkbox"]:focus-visible, input[type="radio"]:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

/* Consent choice notice */
.oz-consent {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 9990; max-width: 760px; margin: 0 auto;
  background: #141414; color: #f0f0f0; border: 1px solid rgba(255, 255, 255, 0.22); border-radius: 16px;
  padding: 20px 22px; box-shadow: 0 24px 60px rgba(0, 0, 0, 0.6);
}
.oz-consent[hidden] { display: none; }
.oz-consent h2 { font-size: 1.05rem; margin: 0 0 8px; color: #fff; }
.oz-consent p { font-size: 0.93rem; line-height: 1.6; margin: 0 0 14px; color: #d6d6d6; }
.oz-consent a { color: #ff6b75; text-decoration: underline; }
.oz-consent-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.oz-consent-actions .btn { flex: 1 1 180px; justify-content: center; }
@media (max-width: 640px) { .oz-consent { left: 8px; right: 8px; bottom: 92px; padding: 16px; } }

/* Pause control for moving backgrounds */
.oz-motion-toggle {
  position: fixed; left: 16px; bottom: 16px; z-index: 9980;
  background: rgba(20, 20, 20, 0.92); color: #fff; border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 999px; padding: 9px 16px; font: 600 0.8rem/1 inherit; cursor: pointer;
}
.oz-motion-toggle:hover { background: #000; }
html.oz-paused *, html.oz-paused *::before, html.oz-paused *::after {
  animation-play-state: paused !important; scroll-behavior: auto !important;
}

/* Form consent row */
.form-consent { display: flex; gap: 10px; align-items: flex-start; margin: 18px 0 4px; text-align: left; }
.form-consent input[type="checkbox"] { flex: 0 0 auto; width: 22px; height: 22px; margin: 2px 0 0; accent-color: #cb1f2c; }
.form-consent label { font-size: 0.9rem; line-height: 1.55; color: #d6d6d6; font-weight: 400; }
.form-consent label a { color: #ff6b75; text-decoration: underline; }
.form-optional { font-weight: 400; color: #b8b8b8; }

/* Legal pages */
.policy-table { width: 100%; border-collapse: collapse; margin: 14px 0 22px; font-size: 0.93rem; }
.policy-table th, .policy-table td { text-align: left; padding: 10px 12px; border: 1px solid rgba(255, 255, 255, 0.16); vertical-align: top; }
.policy-table th { background: rgba(255, 255, 255, 0.06); color: #fff; }
.footer-bottom .cookie-settings-btn {
  background: none; border: 0; padding: 0; color: inherit; font: inherit; text-decoration: underline; cursor: pointer;
}

/* Text in the brand red must reach 4.5:1 on the dark backgrounds */
:root { --accent-text: #ff3b47; }
