/* Consent has its own row so it cannot cover the page's links or actions. */
body:has(> .page) { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
body:has(> .page) > .page { flex: 1; }
body:has(> .page):has(.privacy-banner:not([hidden])) > .page { min-height: 0; }
.privacy-link { border: 0; background: none; color: inherit; font: inherit; padding: 0; cursor: pointer; text-align: left; }
.privacy-link:hover { text-decoration: underline; }
.privacy-banner { position: relative; z-index: 5; width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 16px max(24px, calc((100% - 1320px) / 2)); background: #f3f7fa; color: var(--ink); border-top: 1px solid #cbdce8; }
.privacy-banner[hidden] { display: none; }
.privacy-banner > div:first-child { max-width: 700px; }
.privacy-banner strong { font-family: var(--heading); font-size: 14px; }
.privacy-banner p { font-size: 12px; line-height: 1.55; margin: 4px 0 0; color: #486276; }
.privacy-banner a { text-decoration: underline; text-underline-offset: 2px; }
.privacy-actions { display: flex; gap: 10px; flex-shrink: 0; }
.privacy-actions button { padding: 10px 13px; border: 1px solid #8eaabd; border-radius: 5px; background: white; color: var(--ink); font: inherit; font-size: 12px; cursor: pointer; min-height: 42px; }
.privacy-actions button:hover { background: #e4eff7; }
.privacy-actions button:disabled { opacity: .5; cursor: default; }
.privacy-signal { font-weight: 600; }
.footer-inner > div { flex-wrap: wrap; }
.form-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.request-consent { margin-top: -2px; }
.request-consent a { text-decoration: underline; text-underline-offset: 2px; }
#request-status { margin: 0; }
#request-status:empty { display: none; }
#request-status[data-state='error'] { color: #a12839; }
#request-status[data-state='success'] { color: #146347; }
.primary-button:disabled { opacity: .65; cursor: wait; }
/* The standalone privacy page uses the same controls, without a page grid. */
body:not(:has(> .page)) .privacy-banner { position: fixed; bottom: 0; left: 0; }
@media (min-width: 761px) {
  body:has(> .page):has(.privacy-banner:not([hidden])) .main { padding-top: 16px; gap: 16px; padding-bottom: 8px; }
  body:has(> .page):has(.privacy-banner:not([hidden])) .story { gap: 18px; }
  body:has(> .page):has(.privacy-banner:not([hidden])) .request-panel { padding-block: 19px; }
}
@media (max-width: 1000px) {
  .privacy-banner { gap: 20px; padding-inline: 28px; }
  .privacy-actions { flex-direction: column; gap: 7px; }
}
@media (max-width: 760px) {
  .privacy-banner { flex-direction: column; align-items: stretch; gap: 12px; padding: 16px 18px; }
  .privacy-banner strong { font-size: 14px; }
  .privacy-banner p { font-size: 12px; }
  .privacy-actions { flex-direction: row; }
  .privacy-actions button { flex: 1; padding-inline: 8px; }
  .footer-inner > div { gap: 18px; }
}
@media (min-width: 901px) {
  body:has(> .page):has(.privacy-banner:not([hidden])) .form-pair { grid-template-columns: 1fr 1fr; gap: 10px; }
  body:has(> .page):has(.privacy-banner:not([hidden])) .form-pair input,
  body:has(> .page):has(.privacy-banner:not([hidden])) .form-pair select { font-size: 14px; padding-left: 10px; }
  body:has(> .page):has(.privacy-banner:not([hidden])) .request-heading .eyebrow { display: none; }
}
@media (min-width: 901px) and (max-height: 850px) {
  body:has(> .page):has(.privacy-banner:not([hidden])) .hero-number { font-size: 68px; }
  body:has(> .page):has(.privacy-banner:not([hidden])) .hero-copy { margin-top: 10px; }
  body:has(> .page):has(.privacy-banner:not([hidden])) .story { gap: 14px; }
  body:has(> .page):has(.privacy-banner:not([hidden])) .model-grid p { display: none; }
  body:has(> .page):has(.privacy-banner:not([hidden])) .optional-context { display: none; }
  body:has(> .page):has(.privacy-banner:not([hidden])) .privacy-banner { padding-block: 12px; }
}
