/* A foundation, not an overlay or a claim of WCAG certification. */
:root {
  --campaign-forest: #053323;
  --campaign-plum: var(--campaign-forest); /* Compatibility alias for existing components. */
  --campaign-paper: #f7f3ea;
  --campaign-consent-paper: #eee5d5;
  --campaign-clay: #aa4c25;
  --campaign-banner-offset: 0px;
  scroll-padding-block-end: calc(var(--campaign-banner-offset) + 1rem);
}
body {
  font-size: 1.125rem;
  line-height: 1.7;
  padding-block-end: var(--campaign-banner-offset);
}
/* Layered important declarations beat the CMP's unlayered important focus
   colors. Otherwise a light outline can disappear on the light banner. */
@layer campaign-accessibility {
  :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid var(--campaign-plum) !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 3px var(--campaign-paper) !important;
    transition: none !important;
  }
  @media (forced-colors: active) {
    :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
      outline-color: Highlight !important;
      box-shadow: none !important;
    }
  }
}
:where(button, input[type="submit"], input[type="button"], select, summary,
       .wp-element-button, .kb-button, .menu-toggle, .primary-navigation a) {
  min-block-size: 44px;
  font-size: max(1rem, 16px);
}
.entry-content { overflow-wrap: anywhere; }
.home .content-area { margin-block: 1.5rem; }
.campaign-preferred-preview { text-align: center; }
.campaign-preferred-preview .campaign-scenic-banner { margin: 0; }
.campaign-scenic-banner img { display: block; width: 100%; height: auto; }
.campaign-preferred-preview h1 {
  color: var(--campaign-forest);
  font-size: clamp(1.8rem, 4vw, 2.75rem);
  line-height: 1.2;
  margin-block: 2rem 1rem;
}
.campaign-preferred-preview .campaign-values { font-weight: 700; color: var(--campaign-forest); }
.campaign-preferred-preview .campaign-generation { font-weight: 500; }
.entry-content a:not(.wp-element-button):not(.kb-button),
.campaign-footer-controls a {
  color: var(--campaign-plum);
  text-decoration: underline;
  text-underline-offset: .18em;
  text-decoration-thickness: .08em;
}
.entry-content :where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), select, textarea) {
  font-size: max(1rem, 16px);
  min-block-size: 44px;
  max-inline-size: 100%;
  color: var(--campaign-plum);
  background: var(--campaign-paper);
  border: 2px solid var(--campaign-plum);
}
.entry-content :where(input[type="checkbox"], input[type="radio"]) {
  accent-color: var(--campaign-plum);
}
.wpcf7 :where(label, .wpcf7-list-item-label) { line-height: 1.6; }
.wpcf7-not-valid-tip { color: #8b2d27; font-size: 1rem; }
.wpcf7-response-output { color: var(--campaign-plum); font-size: 1rem; }
.campaign-footer-controls {
  padding: 1rem clamp(1rem, 5vw, 4rem);
  color: var(--campaign-plum);
  background: var(--campaign-paper);
}
.campaign-footer-controls nav { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; }
.campaign-footer-controls :where(a, button) {
  display: inline-flex;
  align-items: center;
  min-block-size: 44px;
  padding: .25rem .5rem;
  font-size: 1rem;
}
.campaign-cookie-preferences {
  color: var(--campaign-plum);
  background: var(--campaign-paper);
  border: 2px solid var(--campaign-plum);
  border-radius: .4rem;
}
.campaign-cookie-preferences:hover, .campaign-cookie-preferences:focus {
  color: var(--campaign-paper);
  background: var(--campaign-plum);
  border-color: var(--campaign-plum);
}
.cmplz-cookiebanner {
  --cmplz_banner_background_color: var(--campaign-consent-paper);
  background-color: var(--campaign-consent-paper) !important;
  max-block-size: 80vh;
  max-block-size: 80dvh;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.cmplz-cookiebanner :where(.cmplz-message, .cmplz-description, .cmplz-categories, .cmplz-links) {
  font-size: 1rem !important;
  line-height: 1.55 !important;
}
.cmplz-cookiebanner .cmplz-buttons { gap: .75rem !important; align-items: center !important; }
.cmplz-cookiebanner .cmplz-btn {
  min-block-size: 44px !important;
  font-size: 1rem !important;
  line-height: 1.4 !important;
  white-space: normal;
}
.cmplz-cookiebanner :where(summary, .cmplz-category-title) { min-block-size: 44px; }
/* Mobile notice is the last page section, not an overlay. Desktop still floats. */
/* Layered important rules also override the CMP's later short-screen shrinking. */
@layer campaign-accessibility {
@media (max-width: 767px) {
  .cmplz-cookiebanner {
    position: static !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    max-block-size: none !important;
    margin: 0 !important;
    transform: none !important;
    overflow: visible !important;
    zoom: 1 !important;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    padding: 15px 20px !important;
    padding-bottom: calc(15px + env(safe-area-inset-bottom, 0px)) !important;
  }
  .cmplz-cookiebanner .cmplz-body {
    max-height: none !important;
    overflow-y: visible !important;
  }
  /* No short-screen shrinking is needed for a notice in normal document flow. */
  .cmplz-cookiebanner .cmplz-header { max-height: none !important; }
  .cmplz-cookiebanner .cmplz-buttons { gap: .75rem !important; }
  .cmplz-cookiebanner :where(.cmplz-documents, .cmplz-information) { zoom: 1 !important; }
  .cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
    zoom: 1 !important;
    height: auto !important;
    min-height: 44px !important;
    padding: 10px !important;
    white-space: normal !important;
    font-size: 1rem !important;
    line-height: 1.4 !important;
  }
}
}
@media (max-width: 640px) {
  .cmplz-cookiebanner .cmplz-buttons { flex-wrap: wrap !important; }
  .cmplz-cookiebanner .cmplz-btn { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
@media (forced-colors: active) {
  .cmplz-cookiebanner .cmplz-btn { border: 2px solid ButtonText !important; }
}
