/* MacroHype cookie consent banner */
.mhc, .mhc * { box-sizing: border-box; }
.mhc {
  --mhc-navy: #0D2846;
  --mhc-green: #A1C94A;
  --mhc-green-dark: #7FA62E;
  --mhc-text: #313131;
  --mhc-muted: #5b6573;
  --mhc-line: #e3e8ee;
  --mhc-bg: #ffffff;
  font-family: "Sf pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--mhc-text);
  font-size: 15px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* Banner */
.mhc-banner {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 2147483646;
  width: 420px;
  max-width: calc(100vw - 32px);
  background: var(--mhc-bg);
  border-radius: 16px;
  border-top: 4px solid var(--mhc-green);
  box-shadow: 0 18px 50px rgba(13, 40, 70, .22), 0 2px 8px rgba(13, 40, 70, .08);
  padding: 22px 22px 20px;
  transform: translateY(16px);
  opacity: 0;
  transition: transform .25s ease, opacity .25s ease;
}
.mhc-banner.mhc-show { transform: none; opacity: 1; }
.mhc-title {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 700;
  color: var(--mhc-navy);
  line-height: 1.3;
  display: flex;
  align-items: center;
  gap: 8px;
}
.mhc-title svg { flex: none; }
.mhc-text { margin: 0 0 16px; color: var(--mhc-muted); font-size: 14.5px; }
.mhc-text a { color: var(--mhc-navy); text-decoration: underline; text-underline-offset: 2px; }
.mhc-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mhc-btn {
  appearance: none;
  border: 2px solid var(--mhc-navy);
  border-radius: 10px;
  padding: 11px 14px;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  line-height: 1.2;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.mhc-btn-primary { background: var(--mhc-navy); color: #fff; }
.mhc-btn-primary:hover { background: #163a63; border-color: #163a63; }
.mhc-btn-secondary { background: #fff; color: var(--mhc-navy); }
.mhc-btn-secondary:hover { background: #f1f5f9; }
.mhc-link {
  grid-column: 1 / -1;
  justify-self: center;
  margin-top: 2px;
  background: none;
  border: 0;
  padding: 4px 6px;
  font: inherit;
  font-size: 14px;
  color: var(--mhc-navy);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.mhc-btn:focus-visible, .mhc-link:focus-visible, .mhc-switch input:focus-visible + span, .mhc-close:focus-visible {
  outline: 3px solid var(--mhc-green);
  outline-offset: 2px;
}

/* Preferences dialog */
.mhc-overlay {
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  background: rgba(13, 40, 70, .45);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.mhc-dialog {
  background: var(--mhc-bg);
  width: 560px;
  max-width: 100%;
  max-height: calc(100vh - 32px);
  overflow: auto;
  border-radius: 18px;
  box-shadow: 0 24px 70px rgba(13, 40, 70, .3);
  padding: 26px 26px 22px;
  position: relative;
}
.mhc-dialog h2 { margin: 0 0 6px; font-size: 22px; font-weight: 700; color: var(--mhc-navy); line-height: 1.25; }
.mhc-dialog > p { margin: 0 0 18px; color: var(--mhc-muted); font-size: 14.5px; }
.mhc-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 0;
  background: #f1f5f9;
  color: var(--mhc-navy);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}
.mhc-cat { border-top: 1px solid var(--mhc-line); padding: 16px 0; display: flex; gap: 16px; align-items: flex-start; }
.mhc-cat:last-of-type { border-bottom: 1px solid var(--mhc-line); }
.mhc-cat-body { flex: 1; }
.mhc-cat h3 { margin: 0 0 4px; font-size: 16px; font-weight: 700; color: var(--mhc-navy); }
.mhc-cat p { margin: 0; font-size: 14px; color: var(--mhc-muted); }
.mhc-always { flex: none; font-size: 13px; font-weight: 600; color: var(--mhc-green-dark); padding-top: 2px; white-space: nowrap; }
.mhc-switch { flex: none; position: relative; display: inline-block; width: 48px; height: 28px; margin-top: 1px; }
.mhc-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; z-index: 1; }
.mhc-switch span {
  position: absolute; inset: 0; border-radius: 28px; background: #c5ced8; transition: background-color .2s ease;
}
.mhc-switch span::after {
  content: ""; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%;
  background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .2s ease;
}
.mhc-switch input:checked + span { background: var(--mhc-green-dark); }
.mhc-switch input:checked + span::after { transform: translateX(20px); }
.mhc-dialog .mhc-actions { margin-top: 20px; }

@media (max-width: 600px) {
  .mhc-banner {
    right: 12px;
    left: 12px;
    bottom: 12px;
    width: auto;
    max-width: none;
    padding: 18px 16px 16px;
  }
  .mhc-title { font-size: 17px; }
  .mhc-dialog { padding: 22px 18px 18px; border-radius: 16px; }
  .mhc-dialog h2 { font-size: 20px; padding-right: 36px; }
}
@media (prefers-reduced-motion: reduce) {
  .mhc-banner { transition: none; }
}
@media print { .mhc { display: none !important; } }

/* Win over the theme's global <button> styles (pink borders/text from Hello Elementor). */
.mhc button.mhc-btn { border: 2px solid var(--mhc-navy) !important; border-radius: 10px !important; font-size: 15px !important; font-weight: 600 !important; padding: 11px 14px !important; text-decoration: none !important; }
.mhc button.mhc-btn-primary, .mhc button.mhc-btn-primary:hover, .mhc button.mhc-btn-primary:focus { background: var(--mhc-navy) !important; color: #fff !important; }
.mhc button.mhc-btn-primary:hover { background: #163a63 !important; border-color: #163a63 !important; }
.mhc button.mhc-btn-secondary, .mhc button.mhc-btn-secondary:focus { background: #fff !important; color: var(--mhc-navy) !important; }
.mhc button.mhc-btn-secondary:hover { background: #f1f5f9 !important; color: var(--mhc-navy) !important; }
.mhc button.mhc-link, .mhc button.mhc-link:hover, .mhc button.mhc-link:focus { background: none !important; border: 0 !important; color: var(--mhc-navy) !important; padding: 4px 6px !important; font-size: 14px !important; font-weight: 500 !important; text-decoration: underline !important; }
.mhc button.mhc-close, .mhc button.mhc-close:hover, .mhc button.mhc-close:focus { background: #f1f5f9 !important; border: 0 !important; color: var(--mhc-navy) !important; padding: 0 !important; border-radius: 50% !important; font-size: 22px !important; }
.mhc button.mhc-close:hover { background: #e3e8ee !important; }
.mhc button.mhc-close { width: 36px !important; height: 36px !important; min-width: 36px !important; display: flex !important; align-items: center !important; justify-content: center !important; line-height: 1 !important; }
