/* Cookie-consent support for the AI Operator, Right Hand and matching-funnel pages (2026-11-11).
   Added by scripts/add-consent.mjs. Three jobs:
   1. Self-hosted fonts, so opening a page never contacts Google Fonts. Same families and weights the pages asked
      Google for. Latin subset only, like the Google files; any other character falls back to the system font as before.
      Files live in /img/delegation-audit/fonts/ (SIL Open Font License, licence texts sit next to them).
      DM Sans, Plus Jakarta Sans and Space Grotesk reuse the files the audit pages already ship.
   2. Room for the cookie banner on small screens.
   3. Styling for the "Cookie settings" link in the footer. */

@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 1000;font-display:swap;src:url('/img/delegation-audit/fonts/dm-sans-latin-opsz-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:200 800;font-display:swap;src:url('/img/delegation-audit/fonts/plus-jakarta-sans-latin-wght-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:300 700;font-display:swap;src:url('/img/delegation-audit/fonts/space-grotesk-latin-wght-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:100 900;font-display:swap;src:url('/img/delegation-audit/fonts/hanken-grotesk-latin-wght-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('/img/delegation-audit/fonts/inter-latin-wght-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* While the cookie banner is open, hide the sticky mobile call-to-action bar (it would sit under the banner anyway).
   Room under the page for the banner comes from the shared css/consent-base.css. */

body:has(> section[aria-label="Cookie choices"]:not([hidden])) .vsl-sticky{display:none!important}
/* Pages with the animated thread overlay (#pxThread, the homepage and /get-matched) measure the page height once, so the shared
   300px padding the banner adds would stay as a blank gap under the footer after the banner closes. No extra padding on those pages. */
body:has(#pxThread):has(> .cookie-consent:not([hidden])){padding-bottom:0}
/* the two profile pages have their own sticky bottom bars (scoped by theme so no other page is touched) */
html[data-consent-theme="light"] body:has(> section[aria-label="Cookie choices"]:not([hidden])) .cta{display:none!important}
html[data-consent-theme="aiop-pill"] body:has(> section[aria-label="Cookie choices"]:not([hidden])) .sticky{display:none!important}

/* "Cookie settings" link in the footer (added by consent.js) */
.cookie-settings-button{margin-left:.7rem!important;padding:6px 2px!important;line-height:1.2!important;cursor:pointer;text-underline-offset:3px}
.cookie-settings-button:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:3px}
@media print{.cookie-settings-button,section[aria-label="Cookie choices"]{display:none!important}}

/* ===== Cookie banner look, per page group (2026-11-11) =====
   The banner itself is drawn by the shared banner files (consent.js and its shared base stylesheet, which this file never
   edits). They are themed only through these custom properties, set here for THIS site's pages. Accept and Reject use the
   same variables, so they always look identical. Each page names its look with <html data-consent-theme="...">
   (scripts/add-consent.mjs): rh = homepage and Right Hand pages, aiop = AI Operator pages, aiop-pill = the AI Operator
   profiles page (pill buttons), funnel = matching funnel pages, light = the one light page (Right Hand profiles).
   The values come from each page's own colours: page #050A0E, text #F0F4F8, green #10B981 / #34D399, glass panels,
   12px buttons, DM Sans; the light page uses #F3F6FB, white cards, #1B2333 text, blue #1A68E6 buttons, Inter.
   Colours are opaque so text contrast never depends on what is under the banner. Every text/background pair is >= 4.5:1. */
html[data-consent-theme], html[data-consent-theme] section[aria-label="Cookie choices"], html[data-consent-theme] .cookie-settings-button {
  --consent-bg: #0b1613;
  --consent-fg: #eef3f1;
  --consent-border: rgba(52, 211, 153, .45);
  --consent-glow: 0 20px 50px -14px rgba(0, 0, 0, .8), 0 0 40px -12px rgba(16, 185, 129, .38);
  --consent-radius: 14px;
  --consent-font: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --consent-btn-bg: #16261f;
  --consent-btn-fg: #f2f7f5;
  --consent-btn-border: rgba(110, 231, 183, .8);
  --consent-btn-hover-bg: #21402f;
  --consent-focus: #a7f3d0;
  --consent-link: #6ee7b7;
}
html[data-consent-theme="aiop"], html[data-consent-theme="aiop"] section[aria-label="Cookie choices"] {
  --consent-radius: 12px;
  --consent-glow: 0 18px 44px -14px rgba(16, 185, 129, .4), 0 22px 54px -16px rgba(0, 0, 0, .85);
}
html[data-consent-theme="aiop-pill"], html[data-consent-theme="aiop-pill"] section[aria-label="Cookie choices"] {
  --consent-radius: 16px;
  --consent-glow: 0 10px 30px 0 rgba(16, 185, 129, .3), 0 20px 50px -14px rgba(0, 0, 0, .85);
}
html[data-consent-theme="funnel"], html[data-consent-theme="funnel"] section[aria-label="Cookie choices"] {
  --consent-radius: 14px;
  --consent-glow: 0 30px 80px -30px rgba(0, 0, 0, .9), 0 0 60px -20px rgba(16, 185, 129, .35);
}
html[data-consent-theme="light"], html[data-consent-theme="light"] section[aria-label="Cookie choices"], html[data-consent-theme="light"] .cookie-settings-button {
  --consent-bg: #ffffff;
  --consent-fg: #1b2333;
  --consent-border: #b9c5dc;
  --consent-glow: 0 14px 40px -8px rgba(11, 22, 48, .3), 0 2px 6px rgba(11, 22, 48, .1);
  --consent-radius: 14px;
  --consent-font: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --consent-btn-bg: #f1f5fc;
  --consent-btn-fg: #1b2333;
  --consent-btn-border: #1a68e6;
  --consent-btn-hover-bg: #dde8fb;
  --consent-focus: #1a68e6;
  --consent-link: #1553b8;
}

/* Small footer that was added to pages that had none (meet-ai-operators, meet-right-hands). Extra room under it, because both pages have their own
   sticky bottom bar that would otherwise sit on top of the links and the Cookie settings button. */
.pt-legal-foot, .pt-legal-row { max-width: 1100px; margin: 0 auto; padding: 22px 16px calc(112px + env(safe-area-inset-bottom, 0px)); text-align: center; font: 500 14px/1.5 var(--consent-font, inherit); color: inherit; }
.pt-legal-foot a, .pt-legal-row a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* Jump targets on /terms (the banner links to /terms#privacy-policy): keep the heading below the page's fixed top bar */
[id="privacy-policy"], [id="cookies"] { scroll-margin-top: 110px; }

/* Pages whose first phone screen holds a main button low down (the AI Operator v3 page and the payment-confirmed page): on small phones the
   cookie banner docks at the TOP of the screen instead of the bottom, so it never sits on top of that button. Set per page by
   scripts/add-consent.mjs as <html data-consent-layout="top-on-phones">. Bigger screens keep the bottom banner. */
@media (max-width: 480px) {
  html[data-consent-layout="top-on-phones"] .cookie-consent { top: 8px !important; bottom: auto !important; }
  html[data-consent-layout="top-on-phones"] body:has(> .cookie-consent:not([hidden])) { padding-bottom: 0; }
}
