/* =========================================================================
   CookieYes consent banner, restyled to the redesign (payhoa-gable.php loads it site-wide).
   CookieYes (cloud script, cdn-cookieyes.com) builds its own markup and appends its stylesheet to the end of <head>
   when the banner loads, and many colors are inline style="" attributes from the dashboard config (the switch
   colors are set by script). So: every rule is prefixed `html body` to outrank CookieYes's selectors whatever the
   order, and `!important` only where an inline style has to be beaten.
   CSS only, on purpose: no markup, copy or behavior changes. CookieYes finds its elements by data-cky-tag and class,
   and consent, the Google consent mode updates and the revisit button all hang off those.
   Copy (the "Customise"/"personalised" spelling, the texts) lives in the CookieYes dashboard, not here.
   Surfaces: notice box (bottom-left; a floating sheet on phones), preference center (modal), revisit button.
   ========================================================================= */
html body .cky-consent-container, html body .cky-modal, html body .cky-btn-revisit-wrapper {
  --ck-ink: #1c2737;
  --ck-muted: #5b6b82;      /* 5.3:1 on white */
  --ck-soft: #7a879a;       /* the small "Powered by" line only */
  --ck-line: #e3e9f2;
  --ck-line-2: #cfd9e6;
  --ck-blue: #2256d3;
  --ck-blue-dark: #2246ab;
  --ck-tint: #eff7ff;
  --ck-tint-2: #dcebfd;
  --ck-ease: cubic-bezier(.2, .8, .2, 1);
  --ck-cookie: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Ccircle cx='156' cy='172' r='16'/%3E%3Ccircle cx='92' cy='164' r='16'/%3E%3Ccircle cx='84' cy='108' r='16'/%3E%3Ccircle cx='132' cy='124' r='16'/%3E%3Cpath d='M224,128a48,48,0,0,1-48-48,48,48,0,0,1-48-48,96,96,0,1,0,96,96Z' fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='24'/%3E%3C/svg%3E"); /* ph:cookie (bold) */
  --ck-cookie-blue: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%232256d3'%3E%3Ccircle cx='156' cy='172' r='16'/%3E%3Ccircle cx='92' cy='164' r='16'/%3E%3Ccircle cx='84' cy='108' r='16'/%3E%3Ccircle cx='132' cy='124' r='16'/%3E%3Cpath d='M224,128a48,48,0,0,1-48-48,48,48,0,0,1-48-48,96,96,0,1,0,96,96Z' fill='none' stroke='%232256d3' stroke-linecap='round' stroke-linejoin='round' stroke-width='24'/%3E%3C/svg%3E");
  --ck-x: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M200 56 56 200M200 200 56 56' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='24'/%3E%3C/svg%3E"); /* ph:x (bold) */
  --ck-caret: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M96 48l80 80-80 80' fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='24'/%3E%3C/svg%3E"); /* ph:caret-right (bold) */
  font-family: "Proxima Nova", "proxima-nova", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* ---------- buttons (notice + preference center) ---------- */
html body .cky-consent-container .cky-btn, html body .cky-modal .cky-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; margin: 0; padding: 0 18px; border-radius: 10px;
  font-family: inherit; font-size: 15px; font-weight: 600; line-height: 1.2; letter-spacing: 0; text-transform: none;
  white-space: nowrap; filter: none; box-shadow: none; text-shadow: none;
  transition: background-color .15s, border-color .15s, color .15s, box-shadow .15s;
}
html body .cky-consent-container .cky-btn:hover, html body .cky-modal .cky-btn:hover { filter: none; }
/* Accept all: solid brand blue */
html body .cky-consent-container .cky-btn.cky-btn-accept, html body .cky-modal .cky-btn.cky-btn-accept {
  background-color: var(--ck-blue) !important; border: 1px solid var(--ck-blue) !important; color: #fff !important;
  box-shadow: 0 1px 2px rgba(34, 70, 171, .3), inset 0 1px 0 rgba(255, 255, 255, .14);
}
html body .cky-consent-container .cky-btn.cky-btn-accept:hover, html body .cky-modal .cky-btn.cky-btn-accept:hover {
  background-color: var(--ck-blue-dark) !important; border-color: var(--ck-blue-dark) !important;
}
/* Reject all / Save preferences: same size as Accept, outlined (rejecting stays as easy as accepting) */
html body .cky-consent-container .cky-btn.cky-btn-reject, html body .cky-modal .cky-btn.cky-btn-reject,
html body .cky-modal .cky-btn.cky-btn-preferences {
  background-color: #fff !important; border: 1px solid var(--ck-line-2) !important; color: var(--ck-ink) !important;
}
html body .cky-consent-container .cky-btn.cky-btn-reject:hover, html body .cky-modal .cky-btn.cky-btn-reject:hover,
html body .cky-modal .cky-btn.cky-btn-preferences:hover {
  background-color: var(--ck-tint) !important; border-color: #b9c8dc !important; color: var(--ck-blue-dark) !important;
}
/* Customise: the quiet third option, a text button */
html body .cky-consent-container .cky-btn.cky-btn-customize {
  padding: 0 10px; background-color: transparent !important; border: 1px solid transparent !important; color: var(--ck-blue) !important;
}
html body .cky-consent-container .cky-btn.cky-btn-customize:hover { background-color: var(--ck-tint) !important; color: var(--ck-blue-dark) !important; }
html body .cky-consent-container .cky-btn:focus-visible, html body .cky-modal .cky-btn:focus-visible,
html body .cky-modal button:focus-visible, html body .cky-modal a:focus-visible, html body .cky-consent-container a:focus-visible,
html body .cky-modal .cky-switch input[type="checkbox"]:focus-visible, html body .cky-btn-revisit-wrapper .cky-btn-revisit:focus-visible {
  outline: 2px solid var(--ck-blue); outline-offset: 2px;
}

/* ---------- notice ---------- */
html body .cky-consent-container { width: 400px; border-radius: 16px; }
html body .cky-consent-container.cky-box-bottom-left { left: 24px; bottom: 24px; }
html body .cky-consent-container.cky-box-bottom-right { right: 24px; bottom: 24px; }
html body .cky-consent-container:not(.cky-hide) { animation: ck-rise .45s var(--ck-ease) both; }
@keyframes ck-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
html body .cky-consent-container .cky-consent-bar {
  overflow: hidden; border-radius: 16px; border: 1px solid var(--ck-line) !important; background-color: #fff !important;
  box-shadow: 0 1px 2px rgba(28, 39, 55, .06), 0 24px 48px -20px rgba(28, 39, 55, .32);
}
html body .cky-consent-container .cky-consent-bar .cky-notice-content-wrapper { padding: 20px 20px 16px; }
html body .cky-consent-container .cky-notice .cky-title {
  display: flex; align-items: center; gap: 10px; margin: 0 0 8px; padding: 0;
  font-size: 17px; font-weight: 600; line-height: 1.3; letter-spacing: -.005em; color: var(--ck-ink) !important;
}
html body .cky-consent-container .cky-notice .cky-title::before {
  content: ""; flex: none; width: 32px; height: 32px; border-radius: 9px;
  background: var(--ck-tint) var(--ck-cookie-blue) center / 18px 18px no-repeat;
}
html body .cky-consent-container .cky-notice-group { font-size: 14px; line-height: 1.55; color: var(--ck-muted); }
html body .cky-consent-container .cky-notice-des {
  padding: 0; font-size: 14px; line-height: 1.55; color: var(--ck-muted) !important;
}
html body .cky-consent-container .cky-notice-des * { font-size: 14px; line-height: 1.55; }
html body .cky-consent-container .cky-notice-des p { margin: 0; color: inherit; }
html body .cky-consent-container .cky-notice-des a { color: var(--ck-blue); font-weight: 600; text-decoration: none; }
html body .cky-consent-container .cky-notice-btn-wrapper {
  display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 8px; margin-top: 16px; padding: 0;
}
html body .cky-consent-container .cky-notice-btn-wrapper .cky-btn { flex: 1 1 0; width: auto; min-width: 0; }
/* order: [Customise]  [Reject all] [Accept all] */
html body .cky-consent-container .cky-notice-btn-wrapper .cky-btn-customize { flex: none; order: 1; margin-right: auto; }
html body .cky-consent-container .cky-notice-btn-wrapper .cky-btn-reject { order: 2; }
html body .cky-consent-container .cky-notice-btn-wrapper .cky-btn-accept { order: 3; }
/* "Powered by CookieYes": kept (plan branding), made quiet */
html body .cky-consent-container .cky-consent-bar > div:last-child { padding: 0 0 12px !important; }
html body .cky-consent-container [data-cky-tag="powered-by"] { color: var(--ck-soft) !important; }
html body .cky-consent-container [data-cky-tag="powered-by"] > div { margin-top: 0 !important; font-size: 11px !important; line-height: 16px !important; }
html body .cky-consent-container [data-cky-tag="powered-by"] svg { width: 64px; height: auto; }

/* phones: a floating sheet across the bottom; Reject + Accept side by side, Customise under them */
@media (max-width: 576px) {
  html body .cky-consent-container.cky-box-bottom-left, html body .cky-consent-container.cky-box-bottom-right {
    left: 12px; right: 12px; bottom: 12px; width: auto; max-width: none;
  }
  html body .cky-consent-container .cky-consent-bar .cky-notice-content-wrapper { padding: 18px 18px 4px; }
  html body .cky-consent-container .cky-notice .cky-title,
  html body .cky-consent-container .cky-notice-des,
  html body .cky-consent-container .cky-notice-btn-wrapper { padding: 0; }
  html body .cky-consent-container .cky-notice-des { max-height: 32vh; overflow-y: auto; }
  html body .cky-consent-container .cky-notice-btn-wrapper { flex-direction: row; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
  html body .cky-consent-container .cky-notice-btn-wrapper .cky-btn { width: auto; }
  html body .cky-consent-container .cky-notice-btn-wrapper .cky-btn-reject { order: 1; flex: 1 1 0; }
  html body .cky-consent-container .cky-notice-btn-wrapper .cky-btn-accept { order: 2; flex: 1 1 0; }
  html body .cky-consent-container .cky-notice-btn-wrapper .cky-btn-customize { order: 3; flex: 1 0 100%; margin: 0; min-height: 40px; }
}
@media (max-width: 352px) {
  html body .cky-consent-container .cky-notice .cky-title { font-size: 16px; }
  html body .cky-consent-container .cky-notice-des, html body .cky-consent-container .cky-notice-des * { font-size: 13px; }
  html body .cky-consent-container .cky-btn { font-size: 14px; padding: 0 12px; }
}

/* ---------- preference center ---------- */
html body .cky-overlay { background: rgba(28, 39, 55, .45); }
html body .cky-modal { border-radius: 20px; box-shadow: 0 40px 80px -24px rgba(16, 24, 40, .45); background: #fff; color: var(--ck-ink); }
/* stock slides the modal up over 1s ("all 1s ease"); same slide, quicker */
html body .cky-modal.cky-modal-open { transition: transform .35s var(--ck-ease); }
html body .cky-modal .cky-preference-center {
  width: 760px; border-radius: 20px; border: 0; background-color: #fff !important; color: var(--ck-ink) !important;
}
html body .cky-modal .cky-preference-header { padding: 20px 20px 18px 24px; border-bottom: 1px solid var(--ck-line); }
html body .cky-modal .cky-preference-header .cky-preference-title {
  font-size: 19px; font-weight: 600; line-height: 1.3; letter-spacing: -.005em; color: var(--ck-ink) !important;
}
html body .cky-modal .cky-preference-header .cky-btn-close {
  position: relative; flex: none; width: 36px; height: 36px; border-radius: 10px; background: transparent;
  transition: background-color .15s;
}
html body .cky-modal .cky-preference-header .cky-btn-close:hover { background: var(--ck-tint) !important; }
html body .cky-modal .cky-preference-header .cky-btn-close img { visibility: hidden; }
html body .cky-modal .cky-preference-header .cky-btn-close::after {
  content: ""; position: absolute; inset: 0; margin: auto; width: 16px; height: 16px; background: var(--ck-muted);
  -webkit-mask: var(--ck-x) center / contain no-repeat; mask: var(--ck-x) center / contain no-repeat;
}
html body .cky-modal .cky-preference-header .cky-btn-close:hover::after { background: var(--ck-ink); }
html body .cky-modal .cky-preference-body-wrapper { padding: 0 24px; }
html body .cky-modal .cky-preference-content-wrapper, html body .cky-modal .cky-dma-content-wrapper {
  font-size: 14px; line-height: 1.6; color: var(--ck-muted) !important;
}
html body .cky-modal .cky-preference-content-wrapper { padding: 16px 0 8px; }
html body .cky-modal .cky-preference-content-wrapper *, html body .cky-modal .cky-dma-content-wrapper *,
html body .cky-modal .cky-accordion-header-des * { font-size: 14px; line-height: 1.6; }
html body .cky-modal .cky-preference-content-wrapper p { margin-bottom: 10px; }
html body .cky-modal .cky-dma-content-wrapper { padding: 0 0 16px; }
html body .cky-modal .cky-preference-content-wrapper .cky-show-desc-btn,
html body .cky-modal .cky-dma-content-wrapper a, html body .cky-modal .cky-preference-content-wrapper a {
  color: var(--ck-blue) !important; font-weight: 600; text-decoration: none; background: transparent;
}
html body .cky-modal .cky-preference-content-wrapper .cky-show-desc-btn:hover,
html body .cky-modal .cky-dma-content-wrapper a:hover { color: var(--ck-blue-dark) !important; }
html body .cky-modal .cky-horizontal-separator { border-color: var(--ck-line); }
/* categories */
html body .cky-modal .cky-accordion-wrapper { margin: 0 0 8px; }
html body .cky-modal .cky-accordion { border-bottom: 1px solid var(--ck-line); }
html body .cky-modal .cky-accordion:last-child { border-bottom: 0; }
html body .cky-modal .cky-accordion .cky-accordion-item { margin-top: 16px; }
html body .cky-modal .cky-accordion-chevron { flex: none; width: 20px; height: 24px; margin-right: 12px; }
html body .cky-modal .cky-accordion .cky-accordion-chevron i::before {
  inset: 0; top: 0; width: 16px; height: 16px; margin: auto; border: 0; transform: none; background: var(--ck-muted);
  -webkit-mask: var(--ck-caret) center / contain no-repeat; mask: var(--ck-caret) center / contain no-repeat;
  transition: transform .2s var(--ck-ease);
}
html body .cky-modal .cky-accordion.cky-accordion-active .cky-accordion-chevron i::before { transform: rotate(90deg); }
html body .cky-modal .cky-accordion-header { gap: 12px; }
html body .cky-modal .cky-accordion-header .cky-accordion-btn {
  font-size: 16px; font-weight: 600; line-height: 24px; text-align: left; color: var(--ck-ink) !important;
}
html body .cky-modal .cky-accordion-header .cky-always-active {
  flex: none; padding: 2px 10px; border-radius: 999px; background: #e6f6ee;
  font-size: 12px; font-weight: 600; line-height: 20px; color: #0d7a4a !important; white-space: nowrap;
}
html body .cky-modal .cky-accordion-header-des { margin: 6px 0 16px; font-size: 14px; line-height: 1.6; color: var(--ck-muted) !important; }
html body .cky-modal .cky-accordion-header-des p { margin: 0; }
html body .cky-modal .cky-accordion.cky-accordion-active .cky-accordion-body { padding: 0 0 0 32px; margin-bottom: 16px; }
/* toggles (colors are set inline by script) */
html body .cky-modal .cky-switch input[type="checkbox"] {
  flex: none; width: 44px; height: 26px; border-radius: 999px; background-color: #cfd9e6 !important; transition: background-color .2s;
}
html body .cky-modal .cky-switch input[type="checkbox"]:checked { background-color: var(--ck-blue) !important; }
html body .cky-modal .cky-switch input[type="checkbox"]::before {
  width: 20px; height: 20px; left: 3px; bottom: 3px; box-shadow: 0 1px 3px rgba(16, 24, 40, .25); transition: transform .2s var(--ck-ease);
}
html body .cky-modal .cky-switch input[type="checkbox"]:checked::before { transform: translateX(18px); }
/* cookie list */
html body .cky-modal .cky-audit-table {
  border-radius: 12px; border: 1px solid var(--ck-line) !important; background-color: #f7f9fc !important; color: var(--ck-ink) !important;
}
html body .cky-modal .cky-audit-table .cky-cookie-des-table { padding: 12px 14px; border-bottom-color: var(--ck-line); font-size: 13px; line-height: 1.55; }
html body .cky-modal .cky-audit-table .cky-cookie-des-table li div:first-child { color: var(--ck-ink); }
html body .cky-modal .cky-audit-table .cky-cookie-des-table li div:last-child,
html body .cky-modal .cky-audit-table .cky-cookie-des-table li div:last-child p { color: var(--ck-muted); }
html body .cky-modal .cky-audit-table .cky-empty-cookies-text { padding: 10px 14px; font-size: 13px; color: var(--ck-muted); }
/* footer */
html body .cky-modal .cky-prefrence-btn-wrapper { gap: 8px; padding: 16px 24px 10px; border-top: 1px solid var(--ck-line); }
html body .cky-modal .cky-prefrence-btn-wrapper .cky-btn { flex: 1 1 0; }
html body .cky-modal [data-cky-tag="detail-powered-by"] { margin: 0 0 2px !important; font-size: 11px !important; line-height: 16px !important; color: var(--ck-soft) !important; }
html body .cky-modal [data-cky-tag="detail-powered-by"] svg { width: 64px; height: auto; }
html body .cky-modal .cky-footer-wrapper > div:last-child { padding-bottom: 10px !important; }

@media (max-width: 576px) {
  html body .cky-modal, html body .cky-modal .cky-preference-center { border-radius: 0; }
  html body .cky-modal .cky-preference-header { padding: 14px 12px 14px 20px; }
  html body .cky-modal .cky-preference-header .cky-preference-title { font-size: 17px; }
  html body .cky-modal .cky-preference-body-wrapper { padding: 0 20px; }
  html body .cky-modal .cky-accordion.cky-accordion-active .cky-accordion-body { padding: 0; }
  html body .cky-modal .cky-prefrence-btn-wrapper { flex-direction: row; flex-wrap: wrap; padding: 12px 20px 8px; }
  html body .cky-modal .cky-prefrence-btn-wrapper .cky-btn { width: auto; }
  html body .cky-modal .cky-prefrence-btn-wrapper .cky-btn-reject { order: 1; flex: 1 1 0; }
  html body .cky-modal .cky-prefrence-btn-wrapper .cky-btn-accept { order: 2; flex: 1 1 0; }
  html body .cky-modal .cky-prefrence-btn-wrapper .cky-btn-preferences { order: 3; flex: 1 0 100%; }
}

/* ---------- revisit button (after a choice; reopens the preference center) ---------- */
html body .cky-btn-revisit-wrapper {
  width: 44px; height: 44px; background-color: #fff !important; border: 1px solid var(--ck-line);
  box-shadow: 0 1px 2px rgba(28, 39, 55, .06), 0 10px 24px -12px rgba(28, 39, 55, .4);
  transition: border-color .15s, box-shadow .15s, transform .2s var(--ck-ease);
}
html body .cky-btn-revisit-wrapper.cky-revisit-bottom-left { left: 16px; bottom: 16px; }
html body .cky-btn-revisit-wrapper.cky-revisit-bottom-right { right: 16px; bottom: 16px; }
html body .cky-btn-revisit-wrapper:hover { border-color: var(--ck-tint-2); transform: translateY(-1px); }
html body .cky-btn-revisit-wrapper .cky-btn-revisit { width: 100%; height: 100%; border-radius: 50%; }
html body .cky-btn-revisit-wrapper .cky-btn-revisit img { visibility: hidden; width: 22px; height: 22px; }
html body .cky-btn-revisit-wrapper .cky-btn-revisit::after {
  content: ""; position: absolute; inset: 0; margin: auto; width: 22px; height: 22px; background: var(--ck-blue);
  -webkit-mask: var(--ck-cookie) center / contain no-repeat; mask: var(--ck-cookie) center / contain no-repeat;
}
html body .cky-btn-revisit-wrapper.cky-revisit-bottom-left:hover::before,
html body .cky-btn-revisit-wrapper.cky-revisit-bottom-right:hover::before {
  padding: 6px 10px; border-radius: 8px; background: var(--ck-ink); font-size: 13px; font-weight: 600; line-height: 16px;
}
html body .cky-btn-revisit-wrapper.cky-revisit-bottom-left:hover::after { border-right-color: var(--ck-ink); }
html body .cky-btn-revisit-wrapper.cky-revisit-bottom-right:hover::after { border-left-color: var(--ck-ink); }

@media (prefers-reduced-motion: reduce) {
  html body .cky-consent-container:not(.cky-hide) { animation: none; }
  html body .cky-modal.cky-modal-open { transition: none; }
  html body .cky-btn-revisit-wrapper, html body .cky-modal .cky-switch input[type="checkbox"]::before,
  html body .cky-modal .cky-accordion .cky-accordion-chevron i::before { transition: none; }
}

/* Windows high contrast drops backgrounds, so the masked icons would vanish: bring CookieYes's own images back */
@media (forced-colors: active) {
  html body .cky-modal .cky-preference-header .cky-btn-close img,
  html body .cky-btn-revisit-wrapper .cky-btn-revisit img { visibility: visible; }
  html body .cky-modal .cky-preference-header .cky-btn-close::after,
  html body .cky-btn-revisit-wrapper .cky-btn-revisit::after,
  html body .cky-consent-container .cky-notice .cky-title::before { display: none; }
  html body .cky-modal .cky-accordion .cky-accordion-chevron i::before { background: CanvasText; forced-color-adjust: none; }
}
