/**
 * Baseline Tier 1 Brand Design Tokens
 * Default fallback definitions for Travis Perkins group
 */
:root {
  /* Brand Colors (Tier 1 Fallbacks) */
  --tp-color-brand-primary: #00703c;
  --tp-color-brand-accent: #ffc800;
  --tp-color-surface: #ffffff;
  --tp-color-surface-subtle: #f8f9fa;
  --tp-color-surface-tint: rgba(0, 112, 60, 0.04);
  --tp-color-text-main: #222222;
  --tp-color-text-secondary: #555555;
  --tp-color-text-inverse: #ffffff;
  --tp-color-border: #d1d5db;
  --tp-color-focus: #005ea5;

  /* Typography */
  --tp-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell,
    'Helvetica Neue', Arial, sans-serif;

  /*
   * Root rem scale factor.
   * Default: 1 (assumes standard 1rem = 16px).
   * Host apps using html { font-size: 62.5% } (1rem = 10px) should set:
   *   :root { --tp-rem-scale: 1.6; }
   */
  --tp-rem-scale: 1;

  --tp-font-size-xs: calc(0.75rem * var(--tp-rem-scale, 1));     /* 12px */
  --tp-font-size-sm: calc(0.875rem * var(--tp-rem-scale, 1));    /* 14px */
  --tp-font-size-base: calc(1rem * var(--tp-rem-scale, 1));      /* 16px */
  --tp-font-size-lg: calc(1.125rem * var(--tp-rem-scale, 1));    /* 18px */
  --tp-font-size-xl: calc(1.25rem * var(--tp-rem-scale, 1));     /* 20px */
  --tp-font-size-2xl: calc(1.5rem * var(--tp-rem-scale, 1));     /* 24px */
  --tp-font-size-3xl: calc(1.875rem * var(--tp-rem-scale, 1));   /* 30px */

  --tp-font-weight-regular: 400;
  --tp-font-weight-medium: 500;
  --tp-font-weight-bold: 700;

  --tp-line-height-tight: 1.25;
  --tp-line-height-base: 1.5;
  --tp-line-height-relaxed: 1.75;

  /* Spacing Scale (8px Grid Foundation) */
  --tp-spacing-xs: 4px;
  --tp-spacing-sm: 8px;
  --tp-spacing-md: 16px;
  --tp-spacing-lg: 24px;
  --tp-spacing-xl: 32px;
  --tp-spacing-2xl: 48px;
  --tp-spacing-3xl: 64px;

  /* Border Radii */
  --tp-border-radius-base: 4px;
  --tp-border-radius-lg: 8px;
  --tp-border-radius-pill: 9999px;
  --tp-border-radius-banner: 4px;

  /* Elevation / Shadows */
  --tp-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --tp-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --tp-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);

  /* Transitions */
  --tp-transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
  --tp-transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
}

/**
 * Tier 2 Semantic CMS Design Tokens
 * Provided by @tpplc/shared-cms-components
 * Consumed by all presentation components exclusively.
 */

:root,
[data-theme] {
  /* Surface & Background */
  --tp-cms-color-surface: var(--tp-color-surface, #ffffff);
  --tp-cms-color-surface-subtle: var(--tp-color-surface-subtle, #f8f9fa);
  --tp-cms-color-surface-muted: var(--tp-color-surface-subtle, #f8f9fa);
  --tp-cms-color-surface-tint: var(--tp-color-surface-tint, rgba(0, 112, 60, 0.04));

  /* Text & Foreground */
  --tp-cms-color-text-primary: var(--tp-color-text-main, #222222);
  --tp-cms-color-text-secondary: var(--tp-color-text-secondary, #555555);
  --tp-cms-color-text-inverse: var(--tp-color-text-inverse, #ffffff);

  /* Brand Accents */
  --tp-cms-color-brand-primary: var(--tp-color-brand-primary, #00703c);
  --tp-cms-color-accent: var(--tp-color-brand-accent, #ffc800);
  --tp-cms-color-border: var(--tp-color-border, #d1d5db);

  /* Accessibility & Focus Indicators (WCAG 2.2 AA / NFR-005) */
  --tp-cms-focus-ring-color: var(--tp-color-focus, #005ea5);
  --tp-cms-focus-ring-width: 3px;
  --tp-cms-focus-ring-offset: 2px;
  --tp-cms-focus-ring: var(--tp-cms-focus-ring-width) solid var(--tp-cms-focus-ring-color);

  /* Spacing Grid Foundation */
  --tp-cms-space-unit: 8px;
  --tp-cms-spacing-xs: var(--tp-spacing-xs, 4px);
  --tp-cms-spacing-sm: var(--tp-spacing-sm, 8px);
  --tp-cms-spacing-md: var(--tp-spacing-md, 16px);
  --tp-cms-spacing-lg: var(--tp-spacing-lg, 24px);
  --tp-cms-spacing-xl: var(--tp-spacing-xl, 32px);
  --tp-cms-spacing-2xl: var(--tp-spacing-2xl, 48px);
  --tp-cms-spacing-3xl: var(--tp-spacing-3xl, 64px);
  --tp-cms-spacing-section-gutter: var(--tp-spacing-lg, 24px);

  /* Section Vertical Spacing */
  --tp-cms-spacing-section-py: var(--tp-spacing-2xl, 48px);

  /* Layout & Bounding Boxes */
  --tp-cms-container-max-width: 1280px;
  --tp-cms-grid-gap: var(--tp-spacing-md, 16px);

  /* Border Radii */
  --tp-cms-radius-base: var(--tp-border-radius-base, 4px);
  --tp-cms-radius-default: var(--tp-border-radius-base, 4px);
  --tp-cms-radius-large: var(--tp-border-radius-lg, 8px);
  --tp-cms-radius-pill: var(--tp-border-radius-pill, 9999px);
  --tp-cms-radius-banner: var(--tp-border-radius-banner, 4px);

  /* Typography Scale */
  --tp-cms-font-family: var(
    --tp-font-family,
    -apple-system,
    BlinkMacSystemFont,
    'Segoe UI',
    Roboto,
    sans-serif
  );
  --tp-cms-typography-heading-h1: var(--tp-font-size-3xl, calc(1.875rem * var(--tp-rem-scale, 1)));
  --tp-cms-typography-heading-h2: var(--tp-font-size-2xl, calc(1.5rem * var(--tp-rem-scale, 1)));
  --tp-cms-typography-heading-h3: var(--tp-font-size-xl, calc(1.25rem * var(--tp-rem-scale, 1)));
  --tp-cms-typography-heading-h4: var(--tp-font-size-lg, calc(1.125rem * var(--tp-rem-scale, 1)));
  --tp-cms-typography-body: var(--tp-font-size-base, calc(1rem * var(--tp-rem-scale, 1)));
  --tp-cms-typography-caption: var(--tp-font-size-sm, calc(0.875rem * var(--tp-rem-scale, 1)));
}

/* Reduced Motion Compliance (NFR-005 / WCAG 2.2 AA) */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/**
 * Travis Perkins Tier 1 Brand Theme Overrides
 */
:root,
[data-theme='tp'] {
  --tp-color-brand-primary: #00703c;
  --tp-color-brand-accent: #ffc800;
  --tp-color-surface: #ffffff;
  --tp-color-surface-subtle: #f8f9fa;
  --tp-color-surface-tint: rgba(0, 112, 60, 0.05);
  --tp-color-text-main: #222222;
  --tp-color-text-secondary: #555555;
  --tp-color-border: #d1d5db;
  --tp-color-focus: #005ea5;
  --tp-font-family: 'Arial', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --tp-border-radius-base: 4px;
  --tp-border-radius-banner: 4px;
}

/* src/components/banners/Banner/Banner.module.css */
.Banner_banner {
  position: relative;
  overflow: hidden;
  border-radius: var(--tp-cms-radius-banner, 4px);
  width: 100%;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  container-type: inline-size;
  text-decoration: none;
  isolation: isolate;
}
.Banner_frame {
  position: relative;
  width: 100%;
  flex: 1 1 auto;
  box-sizing: border-box;
  overflow: hidden;
}
a.Banner_banner:focus-visible {
  outline: var(--tp-cms-focus-ring);
  outline-offset: -3px;
}
.Banner_presetStandard .Banner_frame {
  aspect-ratio: 4 / 3;
}
.Banner_presetTall .Banner_frame {
  aspect-ratio: 1 / 1;
}
.Banner_presetSlim .Banner_frame {
  aspect-ratio: 16 / 9;
}
.Banner_presetSquare .Banner_frame {
  aspect-ratio: 1 / 1;
}
@container (min-width: 600px) {
  .Banner_presetStandard .Banner_frame {
    aspect-ratio: 16 / 9;
  }
  .Banner_presetTall .Banner_frame {
    aspect-ratio: 4 / 3;
  }
  .Banner_presetSlim .Banner_frame {
    aspect-ratio: 21 / 9;
  }
}
@container (min-width: 1024px) {
  .Banner_presetStandard .Banner_frame {
    aspect-ratio: 21 / 9;
  }
  .Banner_presetTall .Banner_frame {
    aspect-ratio: 16 / 9;
  }
  .Banner_presetSlim .Banner_frame {
    aspect-ratio: 32 / 9;
  }
}
.Banner_picture {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  margin: 0;
  padding: 0;
}
.Banner_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.Banner_scrim {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}
.Banner_themeDarkOnLight {
  color: var(--tp-cms-color-text-primary);
}
.Banner_themeDarkOnLight .Banner_scrim {
  background:
    linear-gradient(
      to right,
      rgba(255, 255, 255, 0.94) 0%,
      rgba(255, 255, 255, 0.8) 50%,
      rgba(255, 255, 255, 0.25) 100%);
}
.Banner_themeDarkOnLight.Banner_alignRight .Banner_scrim {
  background:
    linear-gradient(
      to left,
      rgba(255, 255, 255, 0.94) 0%,
      rgba(255, 255, 255, 0.8) 50%,
      rgba(255, 255, 255, 0.25) 100%);
}
.Banner_themeDarkOnLight.Banner_alignCenter .Banner_scrim {
  background: rgba(255, 255, 255, 0.82);
}
.Banner_themeLightOnDark {
  color: var(--tp-cms-color-text-inverse);
}
.Banner_themeLightOnDark .Banner_scrim {
  background:
    linear-gradient(
      to right,
      rgba(0, 0, 0, 0.88) 0%,
      rgba(0, 0, 0, 0.65) 50%,
      rgba(0, 0, 0, 0.2) 100%);
}
.Banner_themeLightOnDark.Banner_alignRight .Banner_scrim {
  background:
    linear-gradient(
      to left,
      rgba(0, 0, 0, 0.88) 0%,
      rgba(0, 0, 0, 0.65) 50%,
      rgba(0, 0, 0, 0.2) 100%);
}
.Banner_themeLightOnDark.Banner_alignCenter .Banner_scrim {
  background: rgba(0, 0, 0, 0.7);
}
.Banner_themeBrandGreenAccent {
  color: var(--tp-cms-color-text-inverse);
}
.Banner_themeBrandGreenAccent .Banner_scrim {
  background:
    linear-gradient(
      to right,
      rgba(0, 75, 40, 0.94) 0%,
      rgba(0, 75, 40, 0.75) 50%,
      rgba(0, 75, 40, 0.25) 100%);
}
.Banner_themeBrandGreenAccent.Banner_alignRight .Banner_scrim {
  background:
    linear-gradient(
      to left,
      rgba(0, 75, 40, 0.94) 0%,
      rgba(0, 75, 40, 0.75) 50%,
      rgba(0, 75, 40, 0.25) 100%);
}
.Banner_themeBrandGreenAccent.Banner_alignCenter .Banner_scrim {
  background: rgba(0, 75, 40, 0.82);
}
.Banner_overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  padding: var(--tp-cms-spacing-md);
  box-sizing: border-box;
  z-index: 2;
  pointer-events: none;
}
@container (min-width: 600px) {
  .Banner_overlay {
    padding: var(--tp-cms-spacing-xl) var(--tp-cms-spacing-lg);
  }
}
@container (min-width: 1024px) {
  .Banner_overlay {
    padding: var(--tp-cms-spacing-2xl) var(--tp-cms-spacing-xl);
  }
}
.Banner_alignTop .Banner_overlay {
  justify-content: flex-start;
}
.Banner_alignMiddle .Banner_overlay {
  justify-content: center;
}
.Banner_alignBottom .Banner_overlay {
  justify-content: flex-end;
}
.Banner_alignLeft .Banner_overlay {
  align-items: flex-start;
}
.Banner_alignCenter .Banner_overlay {
  align-items: center;
}
.Banner_alignRight .Banner_overlay {
  align-items: flex-end;
}
.Banner_content {
  display: flex;
  flex-direction: column;
  max-width: 600px;
  gap: var(--tp-cms-spacing-sm);
  box-sizing: border-box;
  pointer-events: auto;
}
.Banner_alignLeft .Banner_content {
  align-items: flex-start;
  text-align: left;
}
.Banner_alignCenter .Banner_content {
  align-items: center;
  text-align: center;
}
.Banner_alignRight .Banner_content {
  align-items: flex-end;
  text-align: right;
}
.Banner_headline {
  font-family: var(--tp-cms-font-family);
  font-size: var(--tp-cms-typography-heading-h2);
  font-weight: 700;
  line-height: 1.25;
  margin: 0;
  color: inherit;
  letter-spacing: -0.01em;
}
@container (min-width: 600px) {
  .Banner_headline {
    font-size: var(--tp-cms-typography-heading-h1);
  }
}
.Banner_bodyText {
  font-family: var(--tp-cms-font-family);
  font-size: var(--tp-cms-typography-body);
  line-height: 1.5;
  margin: 0;
  color: inherit;
}
.Banner_ctaButton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: var(--tp-cms-spacing-sm) var(--tp-cms-spacing-lg);
  border-radius: var(--tp-cms-radius-default);
  font-family: var(--tp-cms-font-family);
  font-size: var(--tp-cms-typography-body);
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  pointer-events: auto;
  box-sizing: border-box;
  margin-top: var(--tp-cms-spacing-xs);
  transition: filter 0.15s ease-in-out, background-color 0.15s ease-in-out;
}
.Banner_ctaButton:focus-visible {
  outline: var(--tp-cms-focus-ring);
  outline-offset: var(--tp-cms-focus-ring-offset, 2px);
}
.Banner_themeDarkOnLight .Banner_ctaButton {
  background-color: var(--tp-cms-color-brand-primary);
  color: var(--tp-cms-color-text-inverse);
  border: 1px solid var(--tp-cms-color-brand-primary);
}
.Banner_themeDarkOnLight .Banner_ctaButton:hover {
  filter: brightness(0.9);
}
.Banner_themeLightOnDark .Banner_ctaButton {
  background-color: var(--tp-cms-color-surface);
  color: var(--tp-cms-color-text-primary);
  border: 1px solid var(--tp-cms-color-surface);
}
.Banner_themeLightOnDark .Banner_ctaButton:hover {
  background-color: var(--tp-cms-color-surface-subtle);
}
.Banner_themeBrandGreenAccent .Banner_ctaButton {
  background-color: var(--tp-cms-color-accent);
  color: var(--tp-cms-color-text-primary);
  border: 1px solid var(--tp-cms-color-accent);
}
.Banner_themeBrandGreenAccent .Banner_ctaButton:hover {
  filter: brightness(0.92);
}

/* src/components/media/Carousel/Carousel.module.css */
.Carousel_carousel {
  position: relative;
  width: 100%;
  overflow: hidden;
  box-sizing: border-box;
  outline: none;
  container-type: inline-size;
}
.Carousel_carousel:focus-visible {
  outline: var(--tp-cms-focus-ring);
  outline-offset: -3px;
}
.Carousel_viewport {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.Carousel_track {
  display: flex;
  width: 100%;
  transition: transform 400ms cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform;
}
@media (prefers-reduced-motion: reduce) {
  .Carousel_track {
    transition: none;
  }
}
.Carousel_slide {
  flex: 0 0 100%;
  width: 100%;
  min-width: 100%;
  box-sizing: border-box;
  container-type: inline-size;
}
.Carousel_controls {
  position: absolute;
  bottom: var(--tp-cms-spacing-sm, 8px);
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--tp-cms-spacing-sm, 8px);
  z-index: 10;
  pointer-events: none;
  padding: 0 var(--tp-cms-spacing-sm, 8px);
}
@container (min-width: 600px) {
  .Carousel_controls {
    bottom: var(--tp-cms-spacing-md, 16px);
  }
}
.Carousel_navButton,
.Carousel_playPauseButton {
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.3);
  background: rgba(0, 0, 0, 0.65);
  color: var(--tp-cms-color-text-inverse, #ffffff);
  cursor: pointer;
  border-radius: var(--tp-cms-radius-pill, 9999px);
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  transition: background-color 0.2s ease, transform 0.1s ease;
}
.Carousel_navButton:hover,
.Carousel_playPauseButton:hover {
  background: rgba(0, 0, 0, 0.85);
}
.Carousel_navButton:focus-visible,
.Carousel_playPauseButton:focus-visible,
.Carousel_dotButton:focus-visible {
  outline: var(--tp-cms-focus-ring);
  outline-offset: 2px;
}
.Carousel_dots {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  pointer-events: auto;
  background: rgba(0, 0, 0, 0.5);
  border-radius: var(--tp-cms-radius-pill, 9999px);
  padding: 0 4px;
  backdrop-filter: blur(2px);
}
.Carousel_dotButton {
  background: transparent;
  border: none;
  cursor: pointer;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.Carousel_dotIndicator {
  display: block;
  width: 10px;
  height: 10px;
  border-radius: var(--tp-cms-radius-pill, 9999px);
  background: rgba(255, 255, 255, 0.55);
  transition: background-color 0.2s ease, transform 0.2s ease;
}
.Carousel_dotButton:hover .Carousel_dotIndicator {
  background: rgba(255, 255, 255, 0.9);
}
.Carousel_dotButton[aria-current=true] .Carousel_dotIndicator {
  background: var(--tp-cms-color-brand-primary, #00703c);
  box-shadow: 0 0 0 2px #ffffff;
  transform: scale(1.2);
}
.Carousel_visuallyHidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* src/components/layout/LayoutSection/LayoutSection.module.css */
.LayoutSection_layoutSection {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  padding-block: var(--tp-cms-spacing-section-py, 48px);
}
@media (max-width: 599.98px) {
  .LayoutSection_layoutSection {
    padding-block: var(--tp-cms-spacing-xl, 32px);
  }
}
.LayoutSection_surfaceDefault {
  background-color: transparent;
}
.LayoutSection_surfaceMutedGray {
  background-color: var(--tp-cms-color-surface-muted, #f8f9fa);
}
.LayoutSection_surfaceBrandTint {
  background-color: var(--tp-cms-color-surface-tint, rgba(0, 112, 60, 0.04));
}
.LayoutSection_container {
  width: 100%;
  max-width: var(--tp-cms-container-max-width, 1280px);
  margin-inline: auto;
  box-sizing: border-box;
}
.LayoutSection_sectionHeader {
  margin-bottom: var(--tp-cms-spacing-lg, 24px);
}
.LayoutSection_alignLeft {
  text-align: left;
}
.LayoutSection_alignCenter {
  text-align: center;
}
.LayoutSection_title {
  margin: 0;
  color: var(--tp-cms-color-text-primary, #222222);
  font-family: var(--tp-cms-font-family, inherit);
  font-weight: 700;
  line-height: 1.25;
}
h2.LayoutSection_title {
  font-size: var(--tp-cms-typography-heading-h2, 1.5rem);
}
h3.LayoutSection_title {
  font-size: var(--tp-cms-typography-heading-h3, 1.25rem);
}
h4.LayoutSection_title {
  font-size: var(--tp-cms-typography-heading-h4, 1.125rem);
}
.LayoutSection_subtitle {
  margin: var(--tp-cms-spacing-xs, 4px) 0 0 0;
  color: var(--tp-cms-color-text-secondary, #555555);
  font-family: var(--tp-cms-font-family, inherit);
  font-size: var(--tp-cms-typography-body, 1rem);
  line-height: 1.5;
}
.LayoutSection_gridContainer {
  display: grid;
  align-items: stretch;
  gap: var(--tp-cms-grid-gap, 16px);
  width: 100%;
  box-sizing: border-box;
}
.LayoutSection_columns1Col,
.LayoutSection_columns2Col5050,
.LayoutSection_columns3Col33,
.LayoutSection_columns4Col25,
.LayoutSection_columnsSplit6633,
.LayoutSection_columnsSplit3366 {
  grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 600px) {
  .LayoutSection_columns2Col5050 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .LayoutSection_columns3Col33 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .LayoutSection_columns4Col25 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .LayoutSection_columnsSplit6633 {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  }
  .LayoutSection_columnsSplit3366 {
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  }
}
@media (min-width: 1024px) {
  .LayoutSection_columns3Col33 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .LayoutSection_columns4Col25 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.LayoutSection_slot {
  container-type: inline-size;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
}
.LayoutSection_slot > * {
  flex: 1 1 auto;
  width: 100%;
}

/* src/components/editorial/RichTextBlock/RichTextBlock.module.css */
.RichTextBlock_richTextBlock {
  font-family: var(--tp-cms-font-family, inherit);
  color: var(--tp-cms-color-text-primary, #222222);
  line-height: 1.6;
  box-sizing: border-box;
}
.RichTextBlock_variant-standard {
  font-size: var(--tp-cms-typography-body, 1rem);
}
.RichTextBlock_variant-compact {
  font-size: var(--tp-cms-typography-caption, 0.875rem);
  line-height: 1.5;
}
.RichTextBlock_variant-lead {
  font-size: var(--tp-cms-typography-heading-h4, 1.125rem);
  line-height: 1.7;
}
.RichTextBlock_h1,
.RichTextBlock_h2,
.RichTextBlock_h3,
.RichTextBlock_h4,
.RichTextBlock_h5,
.RichTextBlock_h6 {
  font-weight: 700;
  color: var(--tp-cms-color-text-primary, #222222);
  margin-top: var(--tp-cms-spacing-xl, 32px);
  margin-bottom: var(--tp-cms-spacing-md, 16px);
  line-height: 1.25;
}
.RichTextBlock_richTextBlock > *:first-child {
  margin-top: 0;
}
.RichTextBlock_richTextBlock > *:last-child {
  margin-bottom: 0;
}
.RichTextBlock_h1 {
  font-size: var(--tp-cms-typography-heading-h1, 1.875rem);
}
.RichTextBlock_h2 {
  font-size: var(--tp-cms-typography-heading-h2, 1.5rem);
}
.RichTextBlock_h3 {
  font-size: var(--tp-cms-typography-heading-h3, 1.25rem);
}
.RichTextBlock_h4 {
  font-size: var(--tp-cms-typography-heading-h4, 1.125rem);
}
.RichTextBlock_h5 {
  font-size: var(--tp-cms-typography-body, 1rem);
}
.RichTextBlock_h6 {
  font-size: var(--tp-cms-typography-caption, 0.875rem);
}
.RichTextBlock_paragraph {
  margin-top: 0;
  margin-bottom: var(--tp-cms-spacing-md, 16px);
}
.RichTextBlock_variant-compact .RichTextBlock_paragraph {
  margin-bottom: var(--tp-cms-spacing-sm, 8px);
}
.RichTextBlock_strong {
  font-weight: 700;
}
.RichTextBlock_em {
  font-style: italic;
}
.RichTextBlock_del {
  text-decoration: line-through;
}
.RichTextBlock_link {
  color: var(--tp-cms-color-brand-primary, #00703c);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 500;
  transition: color 0.15s ease-in-out;
}
.RichTextBlock_link:hover {
  color: var(--tp-cms-color-text-primary, #222222);
}
.RichTextBlock_link:focus-visible {
  outline: var(--tp-cms-focus-ring, 2px solid var(--tp-cms-color-brand-primary, #00703c));
  outline-offset: var(--tp-cms-focus-ring-offset, 2px);
  border-radius: var(--tp-cms-radius-base, 4px);
}
.RichTextBlock_unorderedList,
.RichTextBlock_orderedList {
  margin-top: 0;
  margin-bottom: var(--tp-cms-spacing-md, 16px);
  padding-left: var(--tp-cms-spacing-xl, 32px);
  box-sizing: border-box;
}
.RichTextBlock_variant-compact .RichTextBlock_unorderedList,
.RichTextBlock_variant-compact .RichTextBlock_orderedList {
  margin-bottom: var(--tp-cms-spacing-sm, 8px);
  padding-left: var(--tp-cms-spacing-lg, 24px);
}
.RichTextBlock_unorderedList {
  list-style-type: disc;
}
.RichTextBlock_orderedList {
  list-style-type: decimal;
}
.RichTextBlock_listItem {
  margin-bottom: var(--tp-cms-spacing-xs, 4px);
}
.RichTextBlock_listItem:last-child {
  margin-bottom: 0;
}
.RichTextBlock_listItem > .RichTextBlock_unorderedList,
.RichTextBlock_listItem > .RichTextBlock_orderedList {
  margin-top: var(--tp-cms-spacing-xs, 4px);
  margin-bottom: 0;
}
.RichTextBlock_blockquote {
  margin: 0 0 var(--tp-cms-spacing-md, 16px) 0;
  padding: var(--tp-cms-spacing-md, 16px);
  background-color: var(--tp-cms-color-surface-subtle, #f8f9fa);
  border-left: 4px solid var(--tp-cms-color-brand-primary, #00703c);
  border-radius: 0 var(--tp-cms-radius-base, 4px) var(--tp-cms-radius-base, 4px) 0;
  color: var(--tp-cms-color-text-secondary, #555555);
  font-style: italic;
}
.RichTextBlock_blockquote > *:last-child {
  margin-bottom: 0;
}
.RichTextBlock_inlineCode {
  font-family:
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    monospace;
  font-size: 0.875em;
  padding: 2px 6px;
  background-color: var(--tp-cms-color-surface-subtle, #f8f9fa);
  border: 1px solid var(--tp-cms-color-border, #d1d5db);
  border-radius: var(--tp-cms-radius-base, 4px);
  color: var(--tp-cms-color-text-primary, #222222);
}
.RichTextBlock_pre {
  margin: 0 0 var(--tp-cms-spacing-md, 16px) 0;
  padding: var(--tp-cms-spacing-md, 16px);
  background-color: var(--tp-cms-color-surface-subtle, #f8f9fa);
  border: 1px solid var(--tp-cms-color-border, #d1d5db);
  border-radius: var(--tp-cms-radius-base, 4px);
  overflow-x: auto;
}
.RichTextBlock_codeBlock {
  font-family:
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    monospace;
  font-size: var(--tp-cms-typography-caption, calc(0.875rem * var(--tp-rem-scale, 1)));
  line-height: 1.5;
  color: var(--tp-cms-color-text-primary, #222222);
}
.RichTextBlock_hr {
  border: 0;
  height: 1px;
  background-color: var(--tp-cms-color-border, #d1d5db);
  margin: var(--tp-cms-spacing-xl, 32px) 0;
}
.RichTextBlock_tableWrapper {
  width: 100%;
  overflow-x: auto;
  margin-bottom: var(--tp-cms-spacing-md, 16px);
  -webkit-overflow-scrolling: touch;
}
.RichTextBlock_table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  border: 1px solid var(--tp-cms-color-border, #d1d5db);
  font-size: calc(0.9375rem * var(--tp-rem-scale, 1));
}
.RichTextBlock_thead {
  background-color: var(--tp-cms-color-surface-subtle, #f8f9fa);
  border-bottom: 2px solid var(--tp-cms-color-border, #d1d5db);
}
.RichTextBlock_th {
  padding: var(--tp-cms-spacing-sm, 8px) var(--tp-cms-spacing-md, 16px);
  font-weight: 700;
  color: var(--tp-cms-color-text-primary, #222222);
  border: 1px solid var(--tp-cms-color-border, #d1d5db);
}
.RichTextBlock_tbody .RichTextBlock_tr:nth-child(even) {
  background-color: var(--tp-cms-color-surface-subtle, #f8f9fa);
}
.RichTextBlock_td {
  padding: var(--tp-cms-spacing-sm, 8px) var(--tp-cms-spacing-md, 16px);
  border: 1px solid var(--tp-cms-color-border, #d1d5db);
  color: var(--tp-cms-color-text-primary, #222222);
}
.RichTextBlock_image {
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: var(--tp-cms-radius-base, 4px);
  margin: var(--tp-cms-spacing-md, 16px) 0;
}

/* src/components/editorial/ContentCallout/ContentCallout.module.css */
.ContentCallout_callout {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas: "media" "content";
  overflow: hidden;
  border-radius: var(--tp-cms-radius-default, 8px);
  width: 100%;
  box-sizing: border-box;
  text-decoration: none;
  isolation: isolate;
  align-items: stretch;
}
a.ContentCallout_callout.ContentCallout_fullSurface {
  display: grid;
  cursor: pointer;
  transition: transform 150ms ease, box-shadow 150ms ease;
}
a.ContentCallout_callout.ContentCallout_fullSurface:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}
a.ContentCallout_callout:focus-visible {
  outline: var(--tp-cms-focus-ring);
  outline-offset: -3px;
}
.ContentCallout_mediaWrapper {
  grid-area: media;
  position: relative;
  width: 100%;
  min-height: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background-color: rgba(0, 0, 0, 0.05);
}
.ContentCallout_image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ContentCallout_contentWrapper {
  grid-area: content;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--tp-cms-spacing-lg, 24px);
  gap: var(--tp-cms-spacing-md, 16px);
  box-sizing: border-box;
  min-width: 0;
}
.ContentCallout_badge {
  display: inline-flex;
  align-items: center;
  font-family: var(--tp-cms-font-family);
  font-size: var(--tp-cms-typography-caption, 0.875rem);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: var(--tp-cms-spacing-xs, 4px) var(--tp-cms-spacing-sm, 8px);
  border-radius: var(--tp-cms-radius-pill, 9999px);
  width: fit-content;
  line-height: 1.2;
}
.ContentCallout_title {
  font-family: var(--tp-cms-font-family);
  font-size: var(--tp-cms-typography-heading-h2, 1.5rem);
  font-weight: 700;
  line-height: 1.25;
  margin: 0;
  color: inherit;
  letter-spacing: -0.01em;
  overflow-wrap: break-word;
}
.ContentCallout_bodyText {
  font-family: var(--tp-cms-font-family);
  font-size: var(--tp-cms-typography-body, 1rem);
  line-height: 1.5;
  margin: 0;
  color: inherit;
  overflow-wrap: break-word;
}
.ContentCallout_alignLeft {
  text-align: left;
  align-items: flex-start;
}
.ContentCallout_alignCenter {
  text-align: center;
  align-items: center;
}
.ContentCallout_ctaButton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: var(--tp-cms-spacing-sm, 8px) var(--tp-cms-spacing-lg, 24px);
  font-family: var(--tp-cms-font-family);
  font-size: var(--tp-cms-typography-body, 1rem);
  font-weight: 600;
  text-decoration: none;
  border-radius: var(--tp-cms-radius-base, 4px);
  transition:
    background-color 150ms ease,
    color 150ms ease,
    border-color 150ms ease;
  cursor: pointer;
  width: fit-content;
  box-sizing: border-box;
}
.ContentCallout_ctaButton:focus-visible {
  outline: var(--tp-cms-focus-ring);
  outline-offset: 2px;
}
.ContentCallout_themeDark.ContentCallout_fullSurface:focus-visible,
.ContentCallout_themeDark .ContentCallout_ctaButton:focus-visible {
  outline: 3px solid var(--tp-cms-color-surface, #ffffff);
}
.ContentCallout_themeDark.ContentCallout_fullSurface:focus-visible {
  outline-offset: -3px;
}
.ContentCallout_themeBrandGreen.ContentCallout_fullSurface:focus-visible,
.ContentCallout_themeBrandGreen .ContentCallout_ctaButton:focus-visible {
  outline: 3px solid var(--tp-cms-color-accent, #ffc800);
}
.ContentCallout_themeBrandGreen.ContentCallout_fullSurface:focus-visible {
  outline-offset: -3px;
}
.ContentCallout_themeDark {
  background-color: var(--tp-cms-color-surface-dark, #1a202c);
  color: var(--tp-cms-color-text-inverse, #ffffff);
}
.ContentCallout_themeDark .ContentCallout_badge {
  background-color: rgba(255, 255, 255, 0.15);
  color: var(--tp-cms-color-text-inverse, #ffffff);
  border: 1px solid rgba(255, 255, 255, 0.25);
}
.ContentCallout_themeDark .ContentCallout_buttonPrimary {
  background-color: var(--tp-cms-color-surface, #ffffff);
  color: var(--tp-cms-color-surface-dark, #1a202c);
  border: 2px solid var(--tp-cms-color-surface, #ffffff);
}
.ContentCallout_themeDark .ContentCallout_buttonPrimary:hover {
  background-color: #e2e8f0;
  border-color: #e2e8f0;
}
.ContentCallout_themeDark .ContentCallout_buttonSecondary {
  background-color: transparent;
  color: var(--tp-cms-color-text-inverse, #ffffff);
  border: 2px solid var(--tp-cms-color-text-inverse, #ffffff);
}
.ContentCallout_themeDark .ContentCallout_buttonSecondary:hover {
  background-color: rgba(255, 255, 255, 0.15);
}
.ContentCallout_themeLight {
  background-color: var(--tp-cms-color-surface-subtle, #f8f9fa);
  color: var(--tp-cms-color-text-primary, #222222);
  border: 1px solid var(--tp-cms-color-border, #d1d5db);
}
.ContentCallout_themeLight .ContentCallout_badge {
  background-color: var(--tp-cms-color-surface-subtle, #f8f9fa);
  color: var(--tp-cms-color-text-primary, #222222);
  border: 1px solid var(--tp-cms-color-border, #d1d5db);
}
.ContentCallout_themeLight .ContentCallout_buttonPrimary {
  background-color: var(--tp-cms-color-brand-primary, #00703c);
  color: var(--tp-cms-color-text-inverse, #ffffff);
  border: 2px solid var(--tp-cms-color-brand-primary, #00703c);
}
.ContentCallout_themeLight .ContentCallout_buttonPrimary:hover {
  opacity: 0.92;
}
.ContentCallout_themeLight .ContentCallout_buttonSecondary {
  background-color: transparent;
  color: var(--tp-cms-color-brand-primary, #00703c);
  border: 2px solid var(--tp-cms-color-brand-primary, #00703c);
}
.ContentCallout_themeLight .ContentCallout_buttonSecondary:hover {
  background-color: var(--tp-cms-color-surface-tint, rgba(0, 112, 60, 0.04));
}
.ContentCallout_themeBrandGreen {
  background-color: var(--tp-cms-color-brand-primary, #00703c);
  color: var(--tp-cms-color-text-inverse, #ffffff);
}
.ContentCallout_themeBrandGreen .ContentCallout_badge {
  background-color: rgba(255, 255, 255, 0.2);
  color: var(--tp-cms-color-text-inverse, #ffffff);
  border: 1px solid rgba(255, 255, 255, 0.35);
}
.ContentCallout_themeBrandGreen .ContentCallout_buttonPrimary {
  background-color: var(--tp-cms-color-surface, #ffffff);
  color: var(--tp-cms-color-brand-primary, #00703c);
  border: 2px solid var(--tp-cms-color-surface, #ffffff);
}
.ContentCallout_themeBrandGreen .ContentCallout_buttonPrimary:hover {
  filter: brightness(0.95);
  border-color: var(--tp-cms-color-surface, #ffffff);
}
.ContentCallout_themeBrandGreen .ContentCallout_buttonSecondary {
  background-color: transparent;
  color: var(--tp-cms-color-text-inverse, #ffffff);
  border: 2px solid var(--tp-cms-color-text-inverse, #ffffff);
}
.ContentCallout_themeBrandGreen .ContentCallout_buttonSecondary:hover {
  background-color: rgba(255, 255, 255, 0.15);
}
@media (min-width: 768px) {
  .ContentCallout_contentWrapper {
    padding: var(--tp-cms-spacing-xl, 32px);
  }
  .ContentCallout_title {
    font-size: var(--tp-cms-typography-heading-h1, 1.875rem);
  }
  .ContentCallout_ratio50_50.ContentCallout_positionLeft {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas: "media content";
  }
  .ContentCallout_ratio50_50.ContentCallout_positionRight {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas: "content media";
  }
  .ContentCallout_ratio33_66.ContentCallout_positionLeft {
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    grid-template-areas: "media content";
  }
  .ContentCallout_ratio33_66.ContentCallout_positionRight {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    grid-template-areas: "content media";
  }
  .ContentCallout_ratio66_33.ContentCallout_positionLeft {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    grid-template-areas: "media content";
  }
  .ContentCallout_ratio66_33.ContentCallout_positionRight {
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    grid-template-areas: "content media";
  }
  .ContentCallout_ratioStacked100 {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "media" "content";
  }
}
@media (min-width: 1024px) {
  .ContentCallout_contentWrapper {
    padding: var(--tp-cms-spacing-2xl, 48px);
  }
}

/* src/components/editorial/ContentCard/ContentCard.module.css */
.ContentCard_contentCard {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
  box-sizing: border-box;
  container-type: inline-size;
  background-color: var(--tp-cms-color-surface, #ffffff);
  border: 1px solid var(--tp-cms-color-border, #d1d5db);
  border-radius: var(--tp-cms-radius-large, 8px);
  overflow: hidden;
  text-decoration: none;
  color: var(--tp-cms-color-text-primary, #222222);
  isolation: isolate;
  position: relative;
}
a.ContentCard_contentCard.ContentCard_fullSurface {
  cursor: pointer;
  transition: transform 150ms ease, box-shadow 150ms ease;
}
a.ContentCard_contentCard.ContentCard_fullSurface:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}
a.ContentCard_contentCard:focus-visible {
  outline: var(--tp-cms-focus-ring);
  outline-offset: -3px;
}
.ContentCard_mediaWrapper {
  position: relative;
  width: 100%;
  overflow: hidden;
  background-color: var(--tp-cms-color-surface-subtle, #f8f9fa);
  flex-shrink: 0;
}
.ContentCard_ratio16_9 {
  aspect-ratio: 16 / 9;
}
.ContentCard_ratio4_3 {
  aspect-ratio: 4 / 3;
}
.ContentCard_image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ContentCard_contentWrapper {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: var(--tp-cms-spacing-md, 16px);
  box-sizing: border-box;
  min-width: 0;
}
.ContentCard_badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-bottom: var(--tp-cms-spacing-xs, 4px);
  font-family: var(--tp-cms-font-family, inherit);
  font-size: var(--tp-cms-typography-caption, 0.875rem);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 2px var(--tp-cms-spacing-sm, 8px);
  border-radius: var(--tp-cms-radius-pill, 9999px);
  background-color: var(--tp-cms-color-surface-tint, rgba(0, 112, 60, 0.08));
  color: var(--tp-cms-color-brand-primary, #00703c);
  line-height: 1.2;
}
.ContentCard_title {
  font-family: var(--tp-cms-font-family, inherit);
  font-size: var(--tp-cms-typography-heading-h3, 1.25rem);
  font-weight: 700;
  line-height: 1.3;
  margin: 0 0 var(--tp-cms-spacing-xs, 4px) 0;
  color: var(--tp-cms-color-text-primary, #222222);
  letter-spacing: -0.01em;
  overflow-wrap: break-word;
}
.ContentCard_description {
  font-family: var(--tp-cms-font-family, inherit);
  font-size: var(--tp-cms-typography-body, 1rem);
  line-height: 1.5;
  margin: 0 0 var(--tp-cms-spacing-md, 16px) 0;
  color: var(--tp-cms-color-text-secondary, #555555);
  overflow-wrap: break-word;
}
.ContentCard_ctaButton {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: var(--tp-cms-spacing-sm, 8px) var(--tp-cms-spacing-md, 16px);
  border-radius: var(--tp-cms-radius-default, 4px);
  font-family: var(--tp-cms-font-family, inherit);
  font-size: var(--tp-cms-typography-body, 1rem);
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  box-sizing: border-box;
  text-align: center;
  transition:
    background-color 150ms ease,
    color 150ms ease,
    border-color 150ms ease;
}
.ContentCard_ctaButton:focus-visible {
  outline: var(--tp-cms-focus-ring);
  outline-offset: var(--tp-cms-focus-ring-offset, 2px);
}
.ContentCard_buttonPrimary {
  background-color: var(--tp-cms-color-brand-primary, #00703c);
  color: var(--tp-cms-color-text-inverse, #ffffff);
  border: 1px solid transparent;
}
.ContentCard_buttonPrimary:hover {
  filter: brightness(0.92);
}
.ContentCard_buttonSecondary {
  background-color: transparent;
  color: var(--tp-cms-color-brand-primary, #00703c);
  border: 1px solid var(--tp-cms-color-brand-primary, #00703c);
}
.ContentCard_buttonSecondary:hover {
  background-color: var(--tp-cms-color-surface-tint, rgba(0, 112, 60, 0.08));
}
@container (min-width: 380px) {
  .ContentCard_contentWrapper {
    padding: var(--tp-cms-spacing-lg, 24px);
  }
  .ContentCard_title {
    font-size: var(--tp-cms-typography-heading-h2, 1.5rem);
  }
}
@container (max-width: 280px) {
  .ContentCard_contentWrapper {
    padding: var(--tp-cms-spacing-sm, 8px);
  }
  .ContentCard_title {
    font-size: var(--tp-cms-typography-heading-h4, 1.125rem);
  }
  .ContentCard_description {
    font-size: var(--tp-cms-typography-caption, 0.875rem);
  }
}
/*# sourceMappingURL=components.css.map */

/*# sourceMappingURL=tpplc.060144af20f26fe418c3.css.map*/