@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&family=PT+Serif:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap");
/* Root variables - These stay in the main file */
:root {
  /* First, include all static variables */
  --olss-width-header-margin-top: 20px;
  --olss-width-header-margin-bottom: 20px;
  --olss-width-header-height: 0;
  --olss-width-menu: 150px;
  --olss-width-hover-spacer-start: 70px;
  --olss-width-carousel-arrow-offset: calc(var(--olss-width-indent-small-left) * -1);
  --olss-width-linked-text-left-border: 20px;
  --olss-width-linked-text-left-padding: 20px;
  --olss-width-linked-text-right-padding: 20px;
  --olss-width-toggler-width: 30px;
  --olss-size-headerlogo-margin-bottom: 4px;
  --olss-max-width: 1280px;
  --olss-width-indent-left: 30px;
  --olss-width-indent-right: 30px;
  --olss-width-grid-gap-row: 20px;
  --olss-width-margin-top: 20px;
  --olss-width-margin-bottom: 30px;
  --olss-width-logo: 165px;
  --olss-width-margin-logo: var(--olss-width-indent-left);
  --olss-width-header-margin-left: 0px;
  --olss-width-header-margin-right: 40px;
  --bs-navbar-brand-padding-y: 0;
  /* Rows */
  --olss-text_plus_image-row: "var(--olss-width-indent-small-left) 1fr var(pd-width-grid-gap-column) 1fr var(--olss-width-indent-small-right)";
  /* Colors */
  --olss-black: #000;
  --olss-white: #fff;
  --olss-dark-blue: #191f50;
  --olss-dark-blue-rgb: 25, 31, 80; /* RGB value of #191f50 */
  --olss-mid-blue: #172963;
  --olss-mid-blue-rgb: 23, 41, 99; /* RGB value of #172963 */
  --olss-bright-blue: #0a3880;
  --olss-bright-blue-rgb: 10, 56, 128; /* RGB value of #0A3880 */
  --olss-muddy-aqua: #4d7b8d;
  --olss-muddy-aqua-rgb: 77, 123, 141; /* RGB value of #4D7B8D */
  --olss-bright-red: #800622;
  --olss-bright-red-rgb: 128, 6, 34; /* RGB value of #800622 */
  --olss-dirty-red: #803329;
  --olss-beige: #f2f0e0;
  --olss-dark-beige: #e4d5ae;
  --olss-darker-beige: #e0c791;
  --olss-key-line-beige: #cfb680;
  --olss-grey: #828282;
  /* Font Family / Weights - these go BEFORE media queries */
  --bs-body-font-family: "Noto Sans", sans-serif;
  --olss-font-weight-light: 300;
  --olss-font-weight-regular: 400;
  --olss-font-weight-medium: 500;
  --olss-font-weight-semi-bold: 600;
  --olss-font-weight-bold: 700;
  /* Typography spacing variables */
  --olss-alt-font-letter-spacing-adjust: 0.8px;
  --olss-font-line-height: 1.3;
  --olss-font-para-space-headline: 0.5em;
  --olss-font-para-space-intro_text: 0.5em;
  --olss-font-para-space-lead_text: 0.2em;
  --olss-font-para-space-body_text: 0.4em;
  --olss-font-para-space-numbered_list_body_text: 0.75em;
  /* Transitions */
  --olss-transition-delay-300: 0.3s;
  --olss-transition-duration-300: 0.3s;
  --olss-transition-timing-function-ease: "ease";
  --olss-transition-property-opacity: "opacity,transform";
  /* Font Sizes - Mobile (Default) */
  --bs-body-font-size: 14px;
  --bs-body-font-line-height: 18px;
  --olss-font-size-heading-1: 25px;
  --olss-line-height-heading-1: 30px;
  --olss-font-size-heading-2: 20px;
  --olss-line-height-heading-2: 24px;
  --olss-font-size-heading-3: 17px;
  --olss-line-height-heading-3: 23px;
  --olss-font-size-heading-4: 15px;
  --olss-line-height-heading-4: 22px;
  --olss-font-size-picture-captions: 14px;
  --olss-line-height-picture-captions: 18px;
  --olss-font-size-highlight-copy: 16px;
  --olss-line-height-highlight-copy: 20px;
  --olss-font-size-button-text: 14px;
  --olss-line-height-button-text: 14px;
  --olss-font-size-page-link-headings: 14px;
  --olss-line-height-page-link-headings: 14px;
  --olss-font-size-breadcrumbs: 12px;
  --olss-line-height-breadcrumbs: 1.5;
  --olss-font-size-footer-credits: 12px;
  --olss-line-height-footer-credits: 16px;
  --olss-font-size-header-menu-items: 14px;
  --olss-font-size-footer-menu-items: 14px;
  /* Fix Bootstrap Cards corner radius default setting */
  --bs-card-inner-border-radius: 0;
}

/* Media queries for responsive font sizes */
@media (min-width: 768px) {
  :root {
    /* First, dimension variables */
    --olss-width-indent-left: 30px;
    --olss-width-indent-right: 30px;
    --olss-width-grid-gap-row: 30px;
    /* Font Sizes - Tablet */
    --bs-body-font-size: 15px;
    --bs-body-font-line-height: 22px;
    --olss-font-size-heading-1: 30px;
    --olss-line-height-heading-1: 36px;
    --olss-font-size-heading-2: 22px;
    --olss-line-height-heading-2: 26px;
    --olss-font-size-heading-3: 18px;
    --olss-line-height-heading-3: 25px;
    --olss-font-size-heading-4: 16px;
    --olss-line-height-heading-4: 24px;
    --olss-font-size-picture-captions: 15px;
    --olss-line-height-picture-captions: 22px;
    --olss-font-size-highlight-copy: 18px;
    --olss-line-height-highlight-copy: 24px;
    --olss-font-size-button-text: 15px;
    --olss-line-height-button-text: 15px;
    --olss-font-size-page-link-headings: 15px;
    --olss-line-height-page-link-headings: 15px;
    --olss-font-size-breadcrumbs: 12px;
    --olss-line-height-breadcrumbs: 12px;
    --olss-font-size-footer-credits: 12px;
    --olss-line-height-footer-credits: 16px;
    --olss-font-size-header-menu-items: 15px;
    --olss-font-size-footer-menu-items: 14px;
  }
}
@media (min-width: 1024px) {
  :root {
    /* First, dimension variables */
    --olss-width-indent-left: 80px;
    --olss-width-indent-right: 80px;
    --olss-width-grid-gap-row: 40px;
    /* Font Sizes - Desktop */
    --bs-body-font-size: 17px;
    --bs-body-font-line-height: 24px;
    --olss-font-size-heading-1: 40px;
    --olss-line-height-heading-1: 48px;
    --olss-font-size-heading-2: 24px;
    --olss-line-height-heading-2: 28px;
    --olss-font-size-heading-3: 20px;
    --olss-line-height-heading-3: 26px;
    --olss-font-size-heading-4: 18px;
    --olss-line-height-heading-4: 24px;
    --olss-font-size-picture-captions: 17px;
    --olss-line-height-picture-captions: 24px;
    --olss-font-size-highlight-copy: 22px;
    --olss-line-height-highlight-copy: 26px;
    --olss-font-size-button-text: 16px;
    --olss-line-height-button-text: 16px;
    --olss-font-size-page-link-headings: 17px;
    --olss-line-height-page-link-headings: 17px;
    --olss-font-size-breadcrumbs: 12px;
    --olss-line-height-breadcrumbs: 12px;
    --olss-font-size-footer-credits: 12px;
    --olss-line-height-footer-credits: 16px;
    --olss-font-size-header-menu-items: 16px;
    --olss-font-size-footer-menu-items: 15px;
  }
}
/* =================
   OLSS Utilities
   ================= */
/* ----------------- 
   1. Typography 
   ----------------- */
/* Text transformation */
/* Line clamping */
.olss-line-clamp-2 {
  display: -webkit-box;
  line-clamp: 2;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-height: calc(var(--bs-body-line-height) * 2em);
}

.olss-line-clamp-3 {
  display: -webkit-box;
  line-clamp: 3;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-height: calc(var(--bs-body-line-height) * 3em);
}

.olss-line-clamp-5 {
  display: -webkit-box;
  line-clamp: 5;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-height: calc(var(--bs-body-line-height) * 5em);
}

/* Heading margin removal */
/* Standard text spacing */
/* ----------------- 
   2. Spacing Utilities 
   ----------------- */
/* Indented text - Modified for precise content widths */
/* Percentage-based responsive spacing */
/* Fixed-pixel responsive spacing */
/* ----------------- 
   3. Component Styling 
   ----------------- */
/* Card styles */
.card-img, .card-img-top {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

/* Button styling */
/* Horizontal rule */
.olss-horizontal-rule-standalone {
  width: 100%;
}
.olss-horizontal-rule-standalone hr {
  border: 0;
  border-top: 3px solid var(--olss-key-line-beige);
  margin-top: var(--olss-width-margin-top);
  margin-bottom: var(--olss-width-margin-bottom);
  width: 100%;
}

/* ----------------- 
   4. Layout Elements 
   ----------------- */
.olss-page-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: -40px;
}
.home-page .olss-page-wrapper {
  margin-top: -160px;
}
@media (max-width: 767px) {
  .olss-page-wrapper {
    margin-top: 74px;
  }
  .home-page .olss-page-wrapper {
    margin-top: 0;
  }
}

.olss-first-element {
  margin-top: 0;
}

/* ----------------- 
   5. Color System 
   ----------------- */
/* Content box colors */
.olss-colorbox-0 {
  background-color: rgba(var(--olss-bright-blue-rgb), 0.8);
}
.olss-colorbox-0.olss-overlay {
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4));
  background-blend-mode: multiply;
}

.olss-colorbox-1 {
  background-color: rgba(var(--olss-muddy-aqua-rgb), 0.8);
}
.olss-colorbox-1.olss-overlay {
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4));
  background-blend-mode: multiply;
}

.olss-colorbox-2 {
  background-color: rgba(var(--olss-bright-red-rgb), 0.8);
}
.olss-colorbox-2.olss-overlay {
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4));
  background-blend-mode: multiply;
}

.olss-colorbox-3 {
  background-color: rgba(var(--olss-dark-blue-rgb), 0.8);
}
.olss-colorbox-3.olss-overlay {
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4));
  background-blend-mode: multiply;
}

/* Newsletter patterns */
.olss-newsletters-colorbox-0 {
  background-color: var(--olss-beige);
  position: relative;
  overflow: hidden;
}
.olss-newsletters-colorbox-0::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("/media/_site_images/OLSS-newsletter-cream-pattern-new.svg");
  background-position: center;
  background-repeat: repeat-y;
  background-size: cover;
  z-index: 0;
}
.olss-newsletters-colorbox-0 p {
  position: relative;
  z-index: 1;
}

.olss-newsletters-colorbox-1 {
  background-color: var(--olss-dark-beige);
  position: relative;
  overflow: hidden;
}
.olss-newsletters-colorbox-1::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("/media/_site_images/OLSS-newsletter-beige-pattern-new.svg");
  background-position: center;
  background-repeat: repeat-y;
  background-size: cover;
  z-index: 0;
}
.olss-newsletters-colorbox-1 p {
  position: relative;
  z-index: 1;
}

.olss-newsletters-colorbox-2 {
  background-color: var(--olss-muddy-aqua);
  position: relative;
  overflow: hidden;
}
.olss-newsletters-colorbox-2::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("/media/_site_images/OLSS-newsletter-aqua-pattern-new.svg");
  background-position: center;
  background-repeat: repeat-y;
  background-size: cover;
  z-index: 0;
}
.olss-newsletters-colorbox-2 p {
  position: relative;
  z-index: 1;
}

/* ----------------- 
   6. Accessibility 
   ----------------- */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

/* Base typography styles - These stay in the main file */
body {
  background-color: var(--olss-white);
}

/* Custom styles for RTE content */
.olss-heading {
  font-family: "PT Serif", serif;
  font-style: italic;
  color: var(--olss-mid-blue);
  font-size: var(--olss-font-size-heading-1);
  line-height: var(--olss-line-height-heading-1);
}
.olss-heading + .olss-subhead-1 {
  margin-top: 8.5px !important;
}

.olss-subhead-1 {
  font-family: "Noto Sans", sans-serif;
  font-weight: var(--olss-font-weight-medium);
  color: var(--olss-mid-blue);
  font-size: var(--olss-font-size-heading-2);
  line-height: var(--olss-line-height-heading-2);
}

.olss-subhead-2 {
  font-family: "Noto Sans", sans-serif;
  font-weight: var(--olss-font-weight-semi-bold);
  color: var(--olss-bright-blue);
  font-size: var(--olss-font-size-heading-3);
  line-height: var(--olss-line-height-heading-3);
}

.olss-subhead-3 {
  font-family: "Noto Sans", sans-serif;
  font-weight: var(--olss-font-weight-bold);
  color: var(--olss-black);
  font-size: var(--olss-font-size-heading-4);
  line-height: var(--olss-line-height-heading-4);
}

.olss-subhead-1 + p, .olss-subhead-2 + p, .olss-subhead-3 + p {
  margin-top: 0.5em !important;
}

/* Styling for links within paragraphs */
p a {
  font-weight: var(--olss-font-weight-semi-bold);
  color: var(--olss-bright-red);
  text-decoration: none;
  transition: text-decoration var(--olss-transition-delay-300) var(--olss-transition-timing-function-ease);
}
p a:hover, p a:focus {
  text-decoration: underline;
}

.olss-caption {
  font-family: "Noto Sans", sans-serif;
  font-weight: var(--olss-font-weight-regular);
  font-style: italic;
  color: var(--olss-black);
  font-size: var(--bs-body-font-size);
  line-height: var(--bs-body-font-line-height);
}

.olss-highlight, .olss-inline-heading {
  font-family: "PT Serif", serif;
  font-style: italic;
  color: var(--olss-mid-blue);
  font-size: var(--olss-font-size-highlight-copy);
  line-height: var(--olss-line-height-highlight-copy);
  display: inline;
}

/* Keep small_caps styling */
.small_caps {
  font-variant: small-caps;
}

/* Page Link Headings */
.page-link-heading {
  font-family: var(--bs-body-font-family);
  font-weight: var(--olss-font-weight-semi-bold);
  font-size: var(--olss-font-size-page-link-headings);
  line-height: var(--olss-line-height-page-link-headings);
  text-transform: uppercase;
  letter-spacing: 0.05rem;
  color: var(--olss-white);
  margin-bottom: 0.5rem;
}

/* Button Styles */
.btn {
  display: inline-block;
  font-weight: 400;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  cursor: pointer;
  user-select: none;
  padding: 0.5rem 1.5rem;
  font-size: 1rem;
  border-radius: 0; /* Default square corners */
  transition: all 0.25s ease-in-out; /* Smooth transition for all properties */
  /* Top-right radius style for all buttons */
  border-top-right-radius: 1.25rem; /* Half the height of button (~40px ÷ 2) */
}
.btn:focus, .btn:active:focus {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(var(--olss-bright-red-rgb), 0.25);
}

/* Primary button - changed to bright red */
.btn-primary {
  color: var(--olss-white);
  background-color: var(--olss-bright-red);
  border: 2px solid var(--olss-bright-red);
}
.btn-primary:hover, .btn-primary:focus {
  color: var(--olss-bright-red); /* Red text on hover */
  background-color: var(--olss-white); /* White background on hover */
  border-color: var(--olss-bright-red); /* Keep red border */
  text-decoration: none; /* Add underline on hover */
  text-underline-offset: 0.25rem; /* Space between text and underline */
}
.btn-primary:active {
  color: var(--olss-bright-red);
  background-color: var(--olss-white);
  border-color: var(--olss-bright-red);
  text-decoration: none;
}

/* CTA Button specific styling */
.cta-button {
  min-width: 160px;
  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2);
}

.container {
  max-width: var(--olss-max-width);
}

/* Common container styles */
.container-cta {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  background-color: var(--olss-white);
}

/* General component container */
.olss-component-container {
  margin: 0 auto;
  padding-left: 10%;
  padding-right: 10%;
}

/* Common section styles */
.olss-section {
  padding-top: 20px;
  padding-bottom: 20px;
  background-color: var(--olss-white);
}

/* Common background colours */
.section-full-bleed-dark-blue {
  background-color: var(--olss-dark-blue);
}

.section-full-bleed-mid-blue {
  background-color: var(--olss-mid-blue);
}

.section-full-bleed-bright-blue {
  background-color: var(--olss-bright-blue);
}

.section-full-bleed-black {
  background-color: var(--olss-black);
}

.section-full-bleed-white {
  background-color: var(--olss-white);
}

.section-full-bleed-beige {
  background-color: var(--olss-beige);
}

.section-full-bleed-dark-beige {
  background-color: var(--olss-dark-beige);
}

.section-full-bleed-darker-beige {
  background-color: var(--olss-darker-beige);
}

.section-full-bleed-key-line-beige {
  background-color: var(--olss-key-line-beige);
}

/* Breadcrumbs Styling */
.breadcrumbs {
  padding: 0.75rem 0;
  background-color: var(--olss-white);
  /* Mobile submenu toggle - hidden by default */
}
.breadcrumbs .olss-breadcrumb-submenu-toggle {
  display: none;
}
.breadcrumbs .breadcrumbs-container {
  margin: 0 auto;
  width: 100%;
  position: relative;
  padding-left: 20px;
  padding-right: 20px;
  padding-top: var(--olss-width-margin-top);
  padding-bottom: var(--olss-width-margin-bottom);
}
@media (min-width: 576px) {
  .breadcrumbs .breadcrumbs-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 768px) {
  .breadcrumbs .breadcrumbs-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .breadcrumbs .breadcrumbs-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  padding: 0;
  margin: 0;
  list-style: none;
}
.breadcrumbs li {
  display: inline-flex;
  align-items: center;
  font-family: var(--bs-body-font-family);
  font-weight: var(--olss-font-weight-semi-bold);
  font-size: var(--olss-font-size-breadcrumbs);
  line-height: var(--olss-line-height-breadcrumbs);
  color: var(--olss-black);
  text-transform: uppercase;
  letter-spacing: 0.05rem;
}
.breadcrumbs li + li:before {
  color: var(--olss-mid-blue);
  content: ""; /* Breadcrumb separator */
  display: inline-block;
  padding: 0 0.5rem;
  opacity: 0.7;
}
.breadcrumbs a {
  color: var(--olss-mid-blue);
  text-decoration: none;
  transition: color var(--olss-transition-delay-300) ease;
}
.breadcrumbs a:hover, .breadcrumbs a:focus {
  text-decoration: none;
}
.breadcrumbs .olss-mobile-submenu-toggle {
  display: none;
}
.breadcrumbs .olss-mobile-submenu {
  display: none;
}

/* Mobile Breadcrumbs with Submenu - Only applies at mobile breakpoint */
@media (max-width: 767px) {
  .breadcrumbs.has-mobile-submenu {
    padding: 0; /* Remove padding to allow full-width background */
    /* Position the toggle button on the right */
    /* The submenu dropdown */
  }
  .breadcrumbs.has-mobile-submenu .breadcrumbs-container {
    position: relative;
    background-color: var(--olss-beige);
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    padding-left: 20px;
    padding-right: 20px;
  }
}
@media (max-width: 767px) and (min-width: 576px) {
  .breadcrumbs.has-mobile-submenu .breadcrumbs-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (max-width: 767px) and (min-width: 1024px) {
  .breadcrumbs.has-mobile-submenu .breadcrumbs-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
@media (max-width: 767px) {
  .breadcrumbs.has-mobile-submenu .olss-mobile-submenu-toggle {
    display: flex;
    align-items: center;
    position: absolute;
    right: 15px; /* Match container padding */
    top: 0;
    height: 100%;
    background-color: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    color: var(--olss-black);
    z-index: 1;
  }
  .breadcrumbs.has-mobile-submenu .toggle-text {
    font-weight: var(--olss-font-weight-medium);
    margin-right: 0.5rem;
    font-size: var(--olss-font-size-breadcrumbs);
  }
  .breadcrumbs.has-mobile-submenu .toggle-icon {
    display: block;
    background-color: var(--olss-key-line-beige);
    border-radius: 4px;
  }
  .breadcrumbs.has-mobile-submenu .olss-mobile-submenu {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    background-color: var(--olss-beige);
    z-index: 1000;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease-out, opacity 0.3s ease-out;
    opacity: 0;
    pointer-events: none;
  }
  .breadcrumbs.has-mobile-submenu .olss-mobile-submenu.show {
    display: block;
    max-height: 500px;
    opacity: 1;
    pointer-events: auto;
  }
  .breadcrumbs.has-mobile-submenu .mobile-submenu-list {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .breadcrumbs.has-mobile-submenu .mobile-submenu-item {
    border-bottom: 1px solid var(--olss-key-line-beige);
  }
  .breadcrumbs.has-mobile-submenu .mobile-submenu-item:last-child {
    border-bottom: none;
  }
  .breadcrumbs.has-mobile-submenu .mobile-submenu-link {
    color: var(--olss-black);
    font-weight: var(--olss-font-weight-regular);
    text-decoration: none;
    padding: 12px 15px;
    display: block;
    width: 100%;
    transition: opacity 0.3s ease;
  }
  .breadcrumbs.has-mobile-submenu .mobile-submenu-link:hover,
  .breadcrumbs.has-mobile-submenu .mobile-submenu-link:focus {
    text-decoration: underline;
    opacity: 0.8;
  }
  .breadcrumbs.has-mobile-submenu .mobile-submenu-link.active {
    font-weight: var(--olss-font-weight-semi-bold);
  }
}
/* Desktop Breadcrumbs (≥768px) */
@media (min-width: 768px) {
  .breadcrumbs {
    max-height: 40px;
    display: flex;
    align-items: center;
  }
  .breadcrumbs .breadcrumbs-container {
    padding-left: 20px;
    padding-right: 20px;
    display: flex;
    align-items: center;
    height: 100%;
  }
}
@media (min-width: 768px) and (min-width: 576px) {
  .breadcrumbs .breadcrumbs-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 768px) and (min-width: 1024px) {
  .breadcrumbs .breadcrumbs-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
@media (min-width: 768px) {
  .breadcrumbs .breadcrumbs-container ol {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 0;
    margin: 0;
    list-style: none;
    height: 100%;
  }
  .breadcrumbs .breadcrumbs-container ol li {
    display: flex;
    align-items: center;
    height: 100%;
    /* Last item styling */
  }
  .breadcrumbs .breadcrumbs-container ol li:not(:last-child)::after {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-left: 0.8rem;
    border-top: 2px solid var(--olss-dark-blue);
    border-right: 2px solid var(--olss-dark-blue);
    transform: rotate(45deg);
    vertical-align: middle;
  }
  .breadcrumbs .breadcrumbs-container ol li a, .breadcrumbs .breadcrumbs-container ol li span {
    color: var(--olss-dark-blue);
    text-transform: uppercase;
    letter-spacing: 0.05rem;
    font-weight: var(--olss-font-weight-regular);
    font-size: var(--olss-font-size-breadcrumbs);
    line-height: var(--olss-line-height-breadcrumbs);
    text-decoration: none;
  }
  .breadcrumbs .breadcrumbs-container ol li a:hover, .breadcrumbs .breadcrumbs-container ol li span:hover {
    text-decoration: underline;
  }
  .breadcrumbs .breadcrumbs-container ol li:last-child span {
    color: var(--olss-mid-blue);
  }
}
/* Mobile Breadcrumbs (<768px) */
@media (max-width: 767px) {
  .breadcrumbs {
    background-color: var(--olss-beige);
    min-height: 50px;
    display: flex;
    align-items: center;
    position: relative; /* For submenu positioning */
    /* Mobile submenu styling */
  }
  .breadcrumbs .breadcrumbs-container {
    padding-left: 20px;
    padding-right: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    /* Submenu toggle styling */
    /* Show toggle when breadcrumb menu exists */
  }
}
@media (max-width: 767px) and (min-width: 576px) {
  .breadcrumbs .breadcrumbs-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (max-width: 767px) and (min-width: 1024px) {
  .breadcrumbs .breadcrumbs-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
@media (max-width: 767px) {
  .breadcrumbs .breadcrumbs-container ol {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 0;
    margin: 0;
    list-style: none;
    height: 100%;
    overflow-x: auto; /* Allow horizontal scrolling if needed */
    -ms-overflow-style: none; /* Hide scrollbar in IE and Edge */
    scrollbar-width: none; /* Hide scrollbar in Firefox */
    flex-grow: 1;
    /* Hide scrollbar in Chrome, Safari and Opera */
  }
  .breadcrumbs .breadcrumbs-container ol::-webkit-scrollbar {
    display: none;
  }
  .breadcrumbs .breadcrumbs-container ol li {
    display: flex;
    align-items: center;
    height: 100%;
    margin-right: 0.8rem;
    /* Last item styling */
  }
  .breadcrumbs .breadcrumbs-container ol li:not(:last-child)::after {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-left: 0.8rem;
    border-top: 2px solid var(--olss-dark-blue);
    border-right: 2px solid var(--olss-dark-blue);
    transform: rotate(45deg);
    vertical-align: middle;
  }
  .breadcrumbs .breadcrumbs-container ol li a, .breadcrumbs .breadcrumbs-container ol li span {
    color: var(--olss-dark-blue);
    text-transform: uppercase;
    letter-spacing: 0.05rem;
    font-weight: var(--olss-font-weight-regular);
    font-size: var(--bs-body-font-size);
    text-decoration: none;
  }
  .breadcrumbs .breadcrumbs-container ol li:last-child span {
    color: var(--olss-mid-blue);
  }
  .breadcrumbs .breadcrumbs-container .olss-mobile-submenu-toggle {
    display: none;
    background: none;
    border: none;
    padding: 0;
    width: 40px;
    height: 40px;
    min-width: 40px;
    flex-shrink: 0;
    cursor: pointer;
    /* Only show if submenu exists */
  }
  .breadcrumbs .breadcrumbs-container .olss-mobile-submenu-toggle .toggle-icon {
    width: 40px;
    height: 40px;
  }
  .breadcrumbs .breadcrumbs-container .olss-mobile-submenu-toggle .toggle-text {
    display: none;
  }
  .breadcrumbs .breadcrumbs-container .olss-mobile-submenu-toggle.show {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .breadcrumbs .breadcrumbs-container.has-mobile-submenu .olss-mobile-submenu-toggle {
    display: flex;
  }
  .breadcrumbs .olss-mobile-submenu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background-color: var(--olss-beige);
    z-index: 1030;
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
    /* Active state */
  }
  .breadcrumbs .olss-mobile-submenu.show {
    display: block;
  }
  .breadcrumbs .olss-mobile-submenu .mobile-submenu-list {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .breadcrumbs .olss-mobile-submenu .mobile-submenu-list .nav-item {
    border-top: 1px solid var(--olss-key-line-beige);
    /* Dropdown menu */
  }
  .breadcrumbs .olss-mobile-submenu .mobile-submenu-list .nav-item .nav-link {
    color: var(--olss-black);
    padding: 0.75rem;
    display: flex;
    align-items: center;
    text-decoration: none;
    min-height: 40px;
  }
  .breadcrumbs .olss-mobile-submenu .mobile-submenu-list .nav-item .nav-link.dropdown-toggle {
    position: relative;
    padding-right: 3.5rem;
  }
  .breadcrumbs .olss-mobile-submenu .mobile-submenu-list .nav-item .nav-link.dropdown-toggle::before {
    content: "";
    position: absolute;
    right: 30px;
    top: 50%;
    width: 12px;
    height: 12px;
    border-right: 2px solid var(--olss-black);
    border-bottom: 2px solid var(--olss-black);
    transform: translateY(-50%) rotate(-45deg);
    transition: transform 0.3s ease;
  }
  .breadcrumbs .olss-mobile-submenu .mobile-submenu-list .nav-item .nav-link.dropdown-toggle[aria-expanded=true]::before {
    transform: translateY(-70%) rotate(45deg);
  }
  .breadcrumbs .olss-mobile-submenu .mobile-submenu-list .nav-item .dropdown-menu {
    background-color: transparent;
    border: none;
    border-radius: 0;
    margin: 0;
    padding: 0 0 0 1rem;
    /* Extra padding for last submenu item */
  }
  .breadcrumbs .olss-mobile-submenu .mobile-submenu-list .nav-item .dropdown-menu .dropdown-item {
    color: var(--olss-black);
    padding: 0.75rem 0rem;
    min-height: 40px;
    display: flex;
    align-items: center;
    background-color: transparent !important;
    text-decoration: none;
  }
  .breadcrumbs .olss-mobile-submenu .mobile-submenu-list .nav-item .dropdown-menu .dropdown-item:hover, .breadcrumbs .olss-mobile-submenu .mobile-submenu-list .nav-item .dropdown-menu .dropdown-item:focus, .breadcrumbs .olss-mobile-submenu .mobile-submenu-list .nav-item .dropdown-menu .dropdown-item:active {
    background-color: transparent !important;
  }
  .breadcrumbs .olss-mobile-submenu .mobile-submenu-list .nav-item .dropdown-menu li:last-child .dropdown-item {
    padding-bottom: 0.75rem;
    margin-bottom: 0.25rem;
  }
}
/* Add these new styles for the breadcrumb submenu */
@media (max-width: 767px) {
  /* Toggle button styling */
  .breadcrumbs {
    position: relative;
    /* Submenu styling */
  }
  .breadcrumbs .olss-breadcrumb-submenu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    padding: 0;
    width: 40px;
    height: 40px;
    min-width: 40px;
    flex-shrink: 0;
    cursor: pointer;
  }
  .breadcrumbs .olss-breadcrumb-submenu-toggle img {
    width: 40px;
    height: 40px;
  }
  .breadcrumbs .olss-breadcrumb-submenu-toggle[aria-expanded=true] {
    opacity: 0.7;
  }
  .breadcrumbs .olss-breadcrumb-submenu {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    z-index: 1030;
    background-color: var(--olss-beige);
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
    padding-left: 20px;
    padding-right: 20px;
  }
}
@media (max-width: 767px) and (min-width: 576px) {
  .breadcrumbs .olss-breadcrumb-submenu {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (max-width: 767px) and (min-width: 1024px) {
  .breadcrumbs .olss-breadcrumb-submenu {
    padding-left: 80px;
    padding-right: 80px;
  }
}
@media (max-width: 767px) {
  .breadcrumbs .olss-breadcrumb-submenu.show {
    display: block !important;
  }
  .breadcrumbs .olss-breadcrumb-submenu .mobile-submenu-list {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .breadcrumbs .olss-breadcrumb-submenu .mobile-submenu-list .nav-item {
    border-top: 1px solid var(--olss-key-line-beige);
  }
  .breadcrumbs .olss-breadcrumb-submenu .mobile-submenu-list .nav-item .nav-link {
    color: var(--olss-black);
    padding: 0.75rem 0;
    display: flex;
    align-items: center;
    text-decoration: none;
    min-height: 40px;
    font-size: var(--bs-body-font-size);
    font-weight: var(--olss-font-weight-regular);
  }
  .breadcrumbs li + li::before {
    padding: 0;
  }
}
/*-------------------------------
  Header Component Styles
--------------------------------*/
/*-------------------------------
  Mobile Header Styles (up to 767px)
--------------------------------*/
@media (max-width: 767px) {
  /* Remove focus states from interactive elements */
  .navbar-toggler:focus,
  .navbar-toggler:active,
  .nav-link:focus,
  .dropdown-item:focus,
  .navbar-search-toggle:focus {
    outline: none !important;
    box-shadow: none !important;
  }
  /* Menu toggler styling */
  .navbar-toggler {
    border: none !important;
    background: transparent !important;
    padding: 0;
    /* No highlight on touch */
    -webkit-tap-highlight-color: transparent;
  }
  .navbar-toggler:hover {
    background: transparent !important;
  }
  .navbar-dark {
    background-color: var(--olss-dark-blue);
    padding-top: 0;
    padding-bottom: 0;
    height: 74px;
    padding-left: 20px;
    padding-right: 20px;
    /* Collapse container styling */
  }
  /* Remove system highlighting on touch for all menu elements */
}
@media (max-width: 767px) and (min-width: 576px) {
  .navbar-dark {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (max-width: 767px) and (min-width: 1024px) {
  .navbar-dark {
    padding-left: 80px;
    padding-right: 80px;
  }
}
@media (max-width: 767px) {
  .navbar-dark .navbar-collapse {
    margin: 0;
    padding: 0;
    background-color: var(--olss-bright-blue);
    max-height: calc(100vh - 60px);
    overflow-y: auto;
    /* Primary menu items */
    /* Search container */
  }
  .navbar-dark .navbar-collapse .navbar-nav {
    margin: 0;
  }
  .navbar-dark .navbar-collapse .navbar-nav .nav-item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    margin: 0;
    min-height: 40px;
    /* Primary menu links */
    /* Active state - rotated chevron pointing down */
    /* Dropdown menu */
  }
  .navbar-dark .navbar-collapse .navbar-nav .nav-item:last-child {
    border-bottom: none;
  }
  .navbar-dark .navbar-collapse .navbar-nav .nav-item .nav-link {
    color: var(--olss-white);
    text-transform: uppercase;
    letter-spacing: 0.05rem;
    font-size: var(--olss-font-size-header-menu-items);
    font-weight: var(--olss-font-weight-regular);
    padding: 0.75rem 1rem;
    min-height: 40px;
    display: flex;
    align-items: center;
    /* Remove Bootstrap's dropdown indicator */
    /* Custom chevron indicator */
  }
  .navbar-dark .navbar-collapse .navbar-nav .nav-item .nav-link.dropdown-toggle::after {
    content: none;
  }
  .navbar-dark .navbar-collapse .navbar-nav .nav-item .nav-link.dropdown-toggle {
    position: relative;
    padding-right: 3.5rem;
  }
  .navbar-dark .navbar-collapse .navbar-nav .nav-item .nav-link.dropdown-toggle::before {
    content: "";
    position: absolute;
    right: 30px;
    top: 50%;
    width: 12px;
    height: 12px;
    border-right: 2px solid white;
    border-bottom: 2px solid white;
    transform: translateY(-50%) rotate(-45deg);
    transition: transform 0.3s ease;
  }
  .navbar-dark .navbar-collapse .navbar-nav .nav-item .nav-link.dropdown-toggle[aria-expanded=true]::before {
    transform: translateY(-70%) rotate(45deg);
  }
  .navbar-dark .navbar-collapse .navbar-nav .nav-item.show .nav-link.dropdown-toggle::before {
    transform: translateY(-70%) rotate(45deg);
  }
  .navbar-dark .navbar-collapse .navbar-nav .nav-item .dropdown-menu {
    background-color: transparent;
    border: none;
    border-radius: 0;
    margin: 0;
    padding: 0 0 0 1rem;
    /* Dropdown items */
    /* Extra padding for last submenu item */
  }
  .navbar-dark .navbar-collapse .navbar-nav .nav-item .dropdown-menu .dropdown-item {
    color: var(--olss-white);
    padding: 0.75rem 0rem;
    font-size: var(--bs-body-font-size);
    font-weight: var(--olss-font-weight-regular);
    text-transform: none;
    min-height: 40px;
    display: flex;
    align-items: center;
    background-color: transparent !important;
    /* Remove hover/active states */
    /* Overview item styling */
  }
  .navbar-dark .navbar-collapse .navbar-nav .nav-item .dropdown-menu .dropdown-item:hover, .navbar-dark .navbar-collapse .navbar-nav .nav-item .dropdown-menu .dropdown-item:focus, .navbar-dark .navbar-collapse .navbar-nav .nav-item .dropdown-menu .dropdown-item:active, .navbar-dark .navbar-collapse .navbar-nav .nav-item .dropdown-menu .dropdown-item.active {
    background-color: transparent !important;
    color: var(--olss-white);
  }
  .navbar-dark .navbar-collapse .navbar-nav .nav-item .dropdown-menu .dropdown-item.overview-link {
    font-weight: var(--olss-font-weight-regular);
    border-bottom: none;
    margin-bottom: 0;
  }
  .navbar-dark .navbar-collapse .navbar-nav .nav-item .dropdown-menu li:last-child .dropdown-item {
    padding-bottom: 0.75rem;
    margin-bottom: 0.25rem;
  }
  .navbar-dark .navbar-collapse .navbar-search-container {
    padding: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    margin: 0;
    /* Toggle button */
    /* Search form */
    /* Active state */
  }
  .navbar-dark .navbar-collapse .navbar-search-container .navbar-search-toggle {
    background: none;
    border: none;
    color: var(--olss-white);
    padding: 0.75rem 1rem;
    margin: 0;
    height: 40px;
    width: 100%;
    display: flex;
    align-items: center;
    text-align: left;
  }
  .navbar-dark .navbar-collapse .navbar-search-container .navbar-search-toggle img {
    width: auto;
    height: 20px;
  }
  .navbar-dark .navbar-collapse .navbar-search-container form {
    display: none;
  }
  .navbar-dark .navbar-collapse .navbar-search-container.active {
    height: 40px;
    background-color: var(--olss-white);
    display: flex;
    align-items: center;
  }
  .navbar-dark .navbar-collapse .navbar-search-container.active .navbar-search-toggle {
    background-color: transparent;
    color: var(--olss-dark-blue);
    width: auto;
    padding: 0 0.5rem 0 1rem;
  }
  .navbar-dark .navbar-collapse .navbar-search-container.active .navbar-search-toggle img {
    content: url("/media/_site_images/OLSS-search-icon-bright-blue-desktop.svg");
  }
  .navbar-dark .navbar-collapse .navbar-search-container.active form {
    display: flex;
    flex-grow: 1;
    background-color: transparent;
    padding: 0;
    margin: 0;
    height: 40px;
  }
  .navbar-dark .navbar-collapse .navbar-search-container.active form input[type=search] {
    width: 100%;
    padding: 0.25rem 0.5rem 0.25rem 0;
    border: none;
    background: transparent;
    color: var(--olss-dark-blue);
  }
  .navbar-dark .navbar-collapse .navbar-search-container.active form input[type=search]::placeholder {
    color: var(--olss-dark-blue);
    opacity: 0.7;
  }
  .navbar-dark .navbar-collapse .navbar-search-container.active form input[type=search]:focus {
    outline: none;
    box-shadow: none;
  }
  .dropdown-menu,
  .dropdown-item,
  .nav-link,
  .navbar-search-toggle {
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none;
    user-select: none;
  }
}
@media (min-width: 768px) {
  /* Basic dropdown behavior */
  .navbar-nav .dropdown:hover > .dropdown-menu {
    display: block;
  }
  /*--------------------------
    Desktop Header Design
  ---------------------------*/
  .olss-desktop-header {
    /* Top block - Logo, Site Title and Social Icons */
    /* Container for the header content */
    /* Grid layout for top block contents */
    /* Navigation block */
    /* Navigation grid layout */
  }
  .olss-desktop-header .olss-header-top-block {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, min(100%, var(--olss-max-width))) minmax(0, 1fr);
    gap: 0;
    align-items: center;
    min-height: 90px;
    justify-content: center;
  }
  .olss-desktop-header .olss-header-top-block > .left-column {
    grid-column: 1;
    background-color: var(--olss-dark-blue);
    width: 100%;
    height: 100%;
  }
  .olss-desktop-header .olss-header-top-block > .centre-column {
    display: grid;
    grid-column: 2;
    width: 100%;
    height: 100%;
    max-width: var(--olss-max-width);
    justify-self: center;
    align-items: center;
    background-color: var(--olss-mid-blue);
  }
  .olss-desktop-header .olss-header-top-block > .centre-column.no-hero-element {
    background-color: var(--olss-bright-blue);
  }
  .olss-desktop-header .olss-header-top-block > .right-column {
    grid-column: 3;
    background-color: var(--olss-dark-blue);
    width: 100%;
    height: 100%;
  }
  .olss-desktop-header .olss-header-top-container {
    padding-left: 20px;
    padding-right: 20px;
  }
  /*======================================
    Homepage Header Styling
  ======================================*/
  /* Replace Bootstrap's dropdown arrow with empty content */
}
@media (min-width: 768px) and (min-width: 576px) {
  .olss-desktop-header .olss-header-top-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 768px) and (min-width: 1024px) {
  .olss-desktop-header .olss-header-top-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
@media (min-width: 768px) {
  .olss-desktop-header .olss-header-grid {
    display: grid;
    grid-template-columns: 500px 1fr auto;
    grid-template-areas: "logo titles social";
    align-items: center;
    grid-gap: 1.5rem;
    height: 100%;
    width: 100%;
    /* Logo styling */
    /* Site titles */
    /* Social media icons */
  }
  .olss-desktop-header .olss-header-grid .olss-header-logo {
    grid-area: logo;
    justify-self: start;
  }
  .olss-desktop-header .olss-header-grid .olss-header-logo img.main-logo {
    width: 100%;
    min-height: 55px;
    max-height: 66px;
    object-fit: contain; /* hack to get Safari to play nicely */
    object-position: left; /* hack to get Safari to play nicely */
  }
  .olss-desktop-header .olss-header-grid .olss-header-titles {
    grid-area: titles;
  }
  .olss-desktop-header .olss-header-grid .olss-header-titles .site-name {
    font-size: var(--olss-font-size-heading-2);
    margin: 0;
    color: var(--olss-white);
    font-weight: var(--olss-font-weight-regular);
    font-variant: small-caps;
    text-shadow: none;
  }
  .olss-desktop-header .olss-header-grid .olss-header-titles .site-headline {
    font-size: var(--olss-font-size-footer-credits);
    margin: 0;
    color: var(--olss-white);
    font-weight: var(--olss-font-weight-regular);
    text-transform: uppercase;
    letter-spacing: 0.05rem;
    text-shadow: none;
  }
  .olss-desktop-header .olss-header-grid .olss-header-social {
    grid-area: social;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 1rem;
  }
  .olss-desktop-header .olss-header-grid .olss-header-social a {
    display: inline-block;
  }
  .olss-desktop-header .olss-header-grid .olss-header-social a img {
    height: 30px;
    width: 30px;
  }
  .olss-desktop-header .olss-header-grid .olss-header-social a .social-text {
    color: var(--olss-white);
    text-decoration: none;
    font-size: 0.875rem;
  }
  .olss-desktop-header .olss-header-grid .olss-header-social a .social-text:hover {
    text-decoration: underline;
  }
  .olss-desktop-header .olss-header-nav-block {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, min(100%, var(--olss-max-width))) minmax(0, 1fr);
    gap: 0;
    align-items: center;
    min-height: 40px;
    max-height: 40px;
    justify-content: center;
  }
  .olss-desktop-header .olss-header-nav-block > .left-column {
    grid-column: 1;
    background-color: var(--olss-bright-blue);
    width: 100%;
    height: 100%;
  }
  .olss-desktop-header .olss-header-nav-block > .centre-column {
    grid-column: 2;
    background-color: rgba(var(--olss-dark-blue-rgb), 0.8);
    width: 100%;
    height: 100%;
    max-width: var(--olss-max-width);
    justify-self: center;
  }
  .olss-desktop-header .olss-header-nav-block > .centre-column.no-hero-element {
    background-color: var(--olss-bright-blue);
  }
  .olss-desktop-header .olss-header-nav-block > .right-column {
    grid-column: 3;
    background-color: var(--olss-bright-blue);
    width: 100%;
    height: 100%;
  }
  .olss-desktop-header .olss-header-nav-grid {
    display: grid;
    grid-template-columns: 70px 1fr auto;
    grid-template-areas: "shorthand nav search";
    align-items: center;
    height: 100%;
    width: 100%;
    gap: 1.5rem;
    padding-left: 20px;
    padding-right: 20px;
    /* Left side - Shorthand logo */
    /* Center - Primary navigation */
    /* Right side - Search */
  }
}
@media (min-width: 768px) and (min-width: 576px) {
  .olss-desktop-header .olss-header-nav-grid {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 768px) and (min-width: 1024px) {
  .olss-desktop-header .olss-header-nav-grid {
    padding-left: 80px;
    padding-right: 80px;
  }
}
@media screen and (min-width: 768px) and (min-width: 768px) and (max-width: 1024px) {
  .olss-desktop-header .olss-header-nav-grid {
    grid-template-columns: 35px 1fr auto;
  }
}
@media (min-width: 768px) {
  .olss-desktop-header .olss-header-nav-grid .nav-grid-left {
    grid-area: shorthand;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-left .shorthand-logo {
    height: 35px;
    width: auto;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-center {
    grid-area: nav;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-center .olss-header-primary-nav {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-center .olss-header-primary-nav li {
    position: relative;
    margin: 0 1rem;
    /* First child link gets no left padding */
    /* Submenu handling */
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-center .olss-header-primary-nav li:first-child {
    margin-left: 0;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-center .olss-header-primary-nav li a.primary-nav-link {
    color: var(--olss-white);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.05rem;
    font-weight: var(--olss-font-weight-regular);
    font-size: var(--olss-font-size-header-menu-items);
    padding: 0.5rem 0;
    display: block;
    position: relative; /* Required for the ::after positioning */
    /* Hover state styling */
    /* Active state styling */
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-center .olss-header-primary-nav li a.primary-nav-link:hover:not(.active) {
    background-color: var(--olss-bright-blue);
    padding-left: 1em;
    padding-right: 1em;
    margin-left: -1em;
    margin-right: -1em;
    margin-top: 1px;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-center .olss-header-primary-nav li a.primary-nav-link.active {
    border-bottom: 5px solid var(--olss-white);
    padding-bottom: calc(0.5rem - 5px); /* Adjust to maintain same overall height */
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-center .olss-header-primary-nav li:first-child a.primary-nav-link {
    padding-left: 0;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-center .olss-header-primary-nav li.has-submenu {
    position: relative;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-center .olss-header-primary-nav li.has-submenu > a.primary-nav-link:after {
    content: none;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-center .olss-header-primary-nav li.has-submenu .olss-submenu {
    display: none;
    position: absolute;
    top: 100%;
    left: -1em;
    min-width: 220px;
    background-color: rgba(255, 255, 255, 0.8);
    z-index: 1000;
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-center .olss-header-primary-nav li.has-submenu .olss-submenu .submenu-wrapper {
    padding: 0.5rem 0;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-center .olss-header-primary-nav li.has-submenu .olss-submenu .submenu-wrapper .submenu-item {
    color: var(--olss-black);
    font-size: var(--olss-font-size-header-menu-items);
    text-decoration: none;
    padding: 0.5rem 1rem;
    display: block;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-center .olss-header-primary-nav li.has-submenu .olss-submenu .submenu-wrapper .submenu-item:hover {
    background-color: rgba(0, 0, 0, 0.1);
    text-decoration: none;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-center .olss-header-primary-nav li.has-submenu .olss-submenu .submenu-wrapper .submenu-item.overview-item {
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    font-weight: var(--olss-font-weight-medium);
    padding-bottom: 0.75rem;
    margin-bottom: 0.25rem;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-center .olss-header-primary-nav li.has-submenu.submenu-open .olss-submenu, .olss-desktop-header .olss-header-nav-grid .nav-grid-center .olss-header-primary-nav li.has-submenu:hover .olss-submenu {
    display: block;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-right {
    grid-area: search;
    position: relative;
    width: auto;
    height: 100%;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-right .olss-search-toggle {
    /* Default state */
    background: none;
    width: auto;
    height: 100%;
    border: none;
    padding: 0;
    cursor: pointer;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
    transition: all 0.2s ease;
    /* Active state with higher specificity */
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-right .olss-search-toggle img {
    width: auto;
    height: 30px;
    transition: all 0.2s ease;
    padding-left: 5px;
    padding-right: 5px;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-right .olss-search-toggle.active {
    background-color: var(--olss-white) !important;
    opacity: 0.75;
    color: var(--olss-dark-blue) !important;
    padding: 0;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-right .olss-search-toggle.active img {
    content: url("/media/_site_images/OLSS-search-icon-bright-blue-desktop.svg") !important;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-right .olss-search-form-container {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    width: 300px;
    background-color: #fff;
    opacity: 0.75;
    z-index: 1050;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
    border-radius: 0px;
    overflow: hidden; /* Keep everything contained nicely */
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-right .olss-search-form-container.show {
    display: block;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-right .olss-search-form-container input[type=search] {
    width: 100%;
    border: none; /* Remove border */
    padding: 12px 16px; /* Slightly increase padding for better touch target */
    font-size: var(--olss-font-size-header-menu-items);
    background-color: #fff;
    color: var(--olss-dark-blue);
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-right .olss-search-form-container input[type=search]::placeholder {
    color: #999;
    font-style: italic;
  }
  .olss-desktop-header .olss-header-nav-grid .nav-grid-right .olss-search-form-container input[type=search]:focus {
    outline: none;
    box-shadow: none; /* Remove any focus styles */
  }
}
@media (min-width: 768px) and (min-width: 768px) {
  .olss-desktop-header.home-page .olss-header-top-block > .centre-column {
    background-color: rgba(0, 0, 0, 0) !important; /* 60% opacity black */
  }
}
@media (min-width: 768px) {
  body.home-page .olss-desktop-header {
    position: relative;
    z-index: 10;
    /* Text shadow for better readability on hero images */
    /* Only add special styling to specific content containers */
  }
  body.home-page .olss-desktop-header .olss-header-titles .site-name,
  body.home-page .olss-desktop-header .olss-header-titles .site-headline {
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
  }
  body.home-page .olss-desktop-header .olss-header-top-container {
    background-color: rgba(0, 0, 0, 0.6); /* 60% opacity black */
    height: 100%;
  }
  body.home-page .olss-desktop-header .olss-header-nav-block > .centre-column {
    background-color: rgba(var(--olss-dark-blue-rgb), 0.8); /* 80% opacity dark blue */
  }
  body.home-page .olss-desktop-header .olss-header-nav-block > .centre-column.no-hero-element {
    background-color: var(--olss-bright-blue);
  }
  .dropdown-toggle::after {
    content: none !important;
    display: none !important;
    margin-left: 0 !important;
    vertical-align: 0 !important;
    border: none !important;
  }
}
/* Sticky Header Styles */
.olss-sticky-nav {
  /* Base styles for the sticky container */
  position: sticky;
  top: 0;
  z-index: 1030; /* Higher z-index to ensure it's above other content */
  width: 100%;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  /* Box shadow only appears when scrolled */
  /* Mobile sticky header */
}
.olss-sticky-nav.is-scrolled {
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.olss-sticky-nav .navbar {
  transition: background-color 0.3s ease;
}
.olss-sticky-nav .navbar.is-scrolled {
  background-color: var(--olss-dark-blue) !important; /* !important to override Bootstrap bg-dark */
}

/* On scroll down, hide the sticky nav */
.nav-up {
  transform: translateY(-100%);
}

.social-cta-button {
  /* Base button properties */
  display: inline-block;
  font-weight: var(--olss-font-weight-regular);
  font-size: 0.875rem;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  cursor: pointer;
  user-select: none;
  padding: 0.375rem 0.75rem;
  /* Shape properties */
  border-radius: 0;
  border-top-right-radius: 1.25rem;
  transition: all 0.25s ease-in-out;
  /* Colors */
  color: var(--olss-white);
  background-color: var(--olss-bright-red);
  border: 2px solid var(--olss-bright-red);
  /* Effects */
  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2);
  /* States */
}
.social-cta-button:hover, .social-cta-button:focus, .social-cta-button:active {
  color: var(--olss-bright-red);
  background-color: var(--olss-white);
  border-color: var(--olss-bright-red);
  text-decoration: none;
  text-underline-offset: 0.25rem;
}
.social-cta-button:focus, .social-cta-button:active:focus {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(var(--olss-bright-red-rgb), 0.25);
}

/* Mobile social media links */
.olss-mobile-header .olss-action-buttons {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.olss-mobile-header .olss-action-buttons .olss-mobile-social {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.olss-mobile-header .olss-action-buttons .olss-mobile-social a {
  display: flex;
  align-items: center;
  justify-content: center;
}
.olss-mobile-header .olss-action-buttons .olss-mobile-social a.donate-button img {
  transform: translateY(-1px);
}
.olss-mobile-header .olss-action-buttons .olss-mobile-social a .social-cta-button {
  font-size: 0.8rem;
  padding: 0.25rem 0.5rem;
}

/* Hero image display control for responsive behavior */
/* Hero image display control for responsive behavior */
@media (max-width: 767px) {
  /* Hide desktop hero on mobile */
  .container-fluid > .olss-hero-image-container:not(.olss-hero-mobile .olss-hero-image-container) {
    display: none !important;
  }
}
@media (min-width: 768px) {
  /* Hide mobile hero on desktop */
  .olss-hero-mobile {
    display: none !important;
  }
}
/* Logo styling */
.olss-header-logo {
  grid-area: logo;
  justify-self: start;
}
.olss-header-logo img.main-logo {
  width: 100%;
  object-fit: contain; /* hack to get Safari to play nicely */
  object-position: left; /* hack to get Safari to play nicely */
  /* Responsive height between 768px and 1024px */
}
@media (min-width: 1024px) {
  .olss-header-logo img.main-logo {
    height: 66px; /* Maximum height at 1024px+ */
  }
}
@media (max-width: 1023px) and (min-width: 768px) {
  .olss-header-logo img.main-logo {
    /* Gradually scale height from 66px at 1024px to 55px at 768px */
    height: calc(55px + (100vw - 768px) * 0.04296875);
  }
}
@media (max-width: 767px) {
  .olss-header-logo img.main-logo {
    height: 55px; /* Minimum height at smaller screens */
  }
}

/* Fix for navbar toggle pushing icons up */
@media (max-width: 767px) {
  .navbar-dark {
    /* Position the navbar container relative for absolute positioning within it */
    position: relative;
    /* Make collapse use absolute positioning to remove it from normal flow */
    /* Fix container positioning to avoid flex adjustments */
    /* Ensure action buttons stay in place */
  }
  .navbar-dark .navbar-collapse {
    position: absolute;
    top: 74px; /* Match the height of the navbar */
    left: 0;
    right: 0;
    z-index: 1030; /* Ensure it's above other content */
    width: 100%;
  }
  .navbar-dark .container {
    height: 90px;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .navbar-dark .olss-action-buttons {
    position: relative; /* Prevent movement */
  }
}
@media (max-width: 767px) {
  /* Update navbar height and positioning */
  .navbar-dark {
    height: 74px; /* 54px logo + 10px padding top and bottom */
    padding-top: 0;
    padding-bottom: 0;
    /* Adjust container for new alignment pattern */
    /* Logo positioning */
    /* Action buttons alignment */
    /* Ensure collapse is correctly positioned with new navbar height */
  }
  .navbar-dark .container {
    height: 74px;
    display: flex;
    align-items: flex-start; /* Align items to top instead of center */
    justify-content: space-between;
    padding-top: 10px; /* Set top padding for container */
  }
  .navbar-dark .navbar-brand {
    padding: 0;
    margin: 0;
  }
  .navbar-dark .navbar-brand img.main-logo {
    display: block;
    width: 54px;
    height: 54px;
  }
  .navbar-dark .olss-action-buttons {
    display: flex;
    align-items: flex-start; /* Align to top */
    gap: 0.5rem;
    height: 54px; /* Match logo height */
    /* Menu toggler alignment */
  }
  .navbar-dark .olss-action-buttons .olss-mobile-social {
    height: 54px; /* Ensure container matches logo height */
    display: flex;
    align-items: flex-start; /* Align to top */
    gap: 0.5rem;
  }
  .navbar-dark .olss-action-buttons .olss-mobile-social a {
    display: flex;
    height: auto;
    /* Handle the donate button special case */
    /* Standard icon size */
  }
  .navbar-dark .olss-action-buttons .olss-mobile-social a img {
    display: block;
  }
  .navbar-dark .olss-action-buttons .olss-mobile-social a.donate-button img {
    height: 54px; /* Full height */
  }
  .navbar-dark .olss-action-buttons .olss-mobile-social a:not(.donate-button) img {
    height: 40px;
    width: 40px;
  }
  .navbar-dark .olss-action-buttons .navbar-toggler {
    padding: 0;
    margin: 0;
    height: 40px;
  }
  .navbar-dark .olss-action-buttons .navbar-toggler .hamburger {
    display: block;
    width: 40px;
    height: 40px;
  }
  .navbar-dark .navbar-collapse {
    position: absolute;
    top: 74px; /* Match new navbar height */
    left: 0;
    right: 0;
    z-index: 1030;
    width: 100%;
  }
}
/*==============================================
  FOOTER STYLING - ORGANIZED BY COMPONENT PARTS
===============================================*/
/* 
 * 1. BASE FOOTER STYLES (ALL SCREEN SIZES)
 */
footer {
  position: relative;
  background-color: var(--olss-dark-blue);
  /* Background pattern container */
  /* 
   * 1.1 NAVIGATION ELEMENTS 
   */
  /* 
   * 1.2 SOCIAL MEDIA ELEMENTS 
   */
  /* 
   * 1.3 FOOTER TEXT ELEMENTS 
   */
  /* 
   * 1.4 FOOTER CREDITS 
   */
  /* 
   * 1.5 CTA BUTTON FALLBACKS 
   */
}
footer .olss-footer-image-background {
  position: relative;
  margin: 0 auto;
  padding: 0;
  padding-top: var(--olss-width-margin-top);
  padding-bottom: var(--olss-width-margin-bottom);
  padding-left: 20px;
  padding-right: 20px;
  padding-top: var(--olss-width-margin-top);
  padding-bottom: var(--olss-width-margin-bottom);
  /* SVG pattern background */
  /* All content needs to be above pattern */
}
@media (min-width: 576px) {
  footer .olss-footer-image-background {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 768px) {
  footer .olss-footer-image-background {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  footer .olss-footer-image-background {
    padding-left: 80px;
    padding-right: 80px;
  }
}
footer .olss-footer-image-background::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("/media/_site_images/OLSS-footer-bright-blue-pattern.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  opacity: 1;
  z-index: 0;
  overflow: hidden;
}
footer .olss-footer-image-background .row {
  position: relative;
  z-index: 1;
}
footer nav {
  width: 100%;
  /* Secondary navigation styling */
}
footer nav ul {
  padding: 0;
  margin-bottom: 0em;
}
footer nav ul .nav-item {
  display: inline-flex;
  margin-right: 0.6em;
}
footer nav ul .nav-item:last-child {
  margin-right: 0;
}
footer nav ul a.nav-link {
  color: var(--olss-white);
  font-size: var(--olss-font-size-footer-menu-items);
  font-weight: var(--olss-font-weight-regular);
  text-decoration: none;
  transition: color var(--olss-transition-delay-300) ease;
  text-transform: uppercase;
  letter-spacing: 0.05rem;
}
footer nav ul a.nav-link:hover, footer nav ul a.nav-link:focus {
  color: var(--olss-white);
  font-weight: var(--olss-font-weight-regular);
  text-decoration: none;
}
footer nav.secondary .nav-link {
  text-transform: none;
  font-weight: var(--olss-font-weight-light);
}
footer nav.secondary .nav-link:hover, footer nav.secondary .nav-link:focus {
  font-weight: var(--olss-font-weight-light);
}
footer .social-media-list {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  flex-direction: row !important;
}
footer .social-media-list .nav-item {
  margin-right: 0;
  margin-bottom: 0;
  width: fit-content !important;
}
footer .social-media-list .social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  /* Default desktop icon display */
}
footer .social-media-list .social-link .desktop-icon {
  display: inline-block;
}
footer .social-media-list .social-link .mobile-icon {
  display: none;
}
footer .sub-text {
  padding-top: 1rem;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  font-family: var(--bs-body-font-family);
  font-weight: var(--olss-font-weight-light);
  font-size: var(--olss-font-size-footer-credits);
  line-height: var(--olss-line-height-footer-credits);
  color: var(--olss-white);
  text-transform: none;
}
footer .sub-text .left {
  margin-right: 1rem;
}
footer .footer-credit > a {
  font-family: var(--bs-body-font-family);
  font-weight: var(--olss-font-weight-light);
  font-size: var(--olss-font-size-footer-credits);
  line-height: var(--olss-line-height-footer-credits);
  color: var(--olss-white);
  text-decoration: none;
  opacity: 0.8;
}
footer .social-cta-button {
  /* Base button properties */
  display: inline-block;
  font-weight: var(--olss-font-weight-regular);
  font-size: 0.875rem;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  cursor: pointer;
  user-select: none;
  padding: 0.375rem 0.75rem;
  /* Shape properties */
  border-radius: 0;
  border-top-right-radius: 1.25rem;
  transition: all 0.25s ease-in-out;
  /* Colors */
  color: var(--olss-white);
  background-color: var(--olss-bright-red);
  border: 2px solid var(--olss-bright-red);
  /* Effects */
  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2);
  /* States */
}
footer .social-cta-button:hover, footer .social-cta-button:focus, footer .social-cta-button:active {
  color: var(--olss-bright-red);
  background-color: var(--olss-white);
  border-color: var(--olss-bright-red);
  text-decoration: none;
  text-underline-offset: 0.25rem;
}
footer .social-cta-button:focus, footer .social-cta-button:active:focus {
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(var(--olss-bright-red-rgb), 0.25);
}

/*==============================================
  RESPONSIVE STYLES - CONSOLIDATED MEDIA QUERIES
===============================================*/
/* 
 * 2. MOBILE STYLES (max-width: 767px)
 */
@media (max-width: 767px) {
  footer {
    /* Base layout adjustments */
    /* Responsive icon display for mobile */
    /* Smaller CTA buttons for mobile */
    /* 
     * 2.1 EXTRA SMALL DEVICES (max-width: 575px) 
     * Nested inside mobile to reduce repetition
     */
  }
  footer .olss-footer-image-background {
    display: block;
    /* Social media block display handling */
    /* Primary Navigation Row */
    /* Secondary Navigation Row */
    /* Footer Text Row */
    /* Footer Credit Row */
  }
  footer .olss-footer-image-background .desktop-social-block {
    display: none;
  }
  footer .olss-footer-image-background .mobile-social-block {
    display: block;
    width: 100%;
    margin-bottom: 1em;
    position: relative;
  }
  footer .olss-footer-image-background .row:first-child {
    margin-bottom: 1em;
  }
  footer .olss-footer-image-background .row:first-child .col-12 {
    flex-direction: column;
    align-items: flex-start;
  }
  footer .olss-footer-image-background .row:nth-child(2) {
    margin-bottom: 1em;
  }
  footer .olss-footer-image-background .row:nth-child(2) .col-auto {
    width: 100%;
  }
  footer .olss-footer-image-background .row:nth-child(2) nav.secondary {
    width: 100%;
  }
  footer .olss-footer-image-background .row:nth-child(3) {
    margin-bottom: 2em;
  }
  footer .olss-footer-image-background .row:nth-child(3) .col-auto {
    width: 100%;
  }
  footer .olss-footer-image-background .row:nth-child(3) .sub-text {
    padding-top: 0;
    width: 100%;
  }
  footer .olss-footer-image-background .row:last-child {
    justify-content: flex-start !important;
  }
  footer .olss-footer-image-background .row:last-child .col-auto {
    width: 100%;
  }
  footer .olss-footer-image-background .row:last-child .footer-credit {
    margin-left: 0;
  }
  footer .social-media-list .social-link .desktop-icon {
    display: none;
  }
  footer .social-media-list .social-link .mobile-icon {
    display: inline-block;
  }
  footer .social-cta-button {
    min-width: 100px;
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
  }
}
@media (max-width: 767px) and (max-width: 575px) {
  footer {
    /* Primary menu items as a vertical list */
  }
  footer nav:first-of-type ul {
    display: flex;
    flex-direction: row;
    width: 100%;
    flex-wrap: wrap;
    align-items: flex-start;
  }
  footer nav:first-of-type ul .nav-item {
    margin-right: 1em;
    width: fit-content;
    flex-wrap: wrap;
    gap: 1em;
    /* Full-width links */
  }
  footer nav:first-of-type ul .nav-item a.nav-link {
    width: 100%;
    padding: 0.25rem 0;
    display: block;
    white-space: nowrap;
  }
  footer .mobile-social-block .nav-item {
    margin-right: 0 !important;
    margin-bottom: 0;
    width: fit-content !important;
  }
}
/* 
 * 3. DESKTOP STYLES (min-width: 768px)
 */
@media (min-width: 768px) {
  footer nav {
    width: max-content;
  }
  footer .olss-footer-image-background {
    /* Show/hide appropriate social blocks */
  }
  footer .olss-footer-image-background .desktop-social-block {
    display: block;
  }
  footer .olss-footer-image-background .mobile-social-block {
    display: none;
  }
}
/* =================
   Base Hero Styles
   ================= */
.olss-hero-container {
  position: relative;
  width: 100%;
  overflow: hidden;
  /* Desktop/Mobile visibility control */
}
.olss-hero-container .olss-desktop-only {
  display: none;
}
@media (min-width: 768px) {
  .olss-hero-container .olss-desktop-only {
    display: block;
  }
}
.olss-hero-container .olss-mobile-only {
  display: none;
}
@media (max-width: 767px) {
  .olss-hero-container .olss-mobile-only {
    display: block;
  }
}

.olss-page-wrapper {
  margin-top: -40px;
}
.olss-page-wrapper.no_hero {
  margin-top: 0px;
}

.home-page .olss-page-wrapper {
  margin-top: -160px;
}

@media (max-width: 767px) {
  .olss-page-wrapper {
    margin-top: 74px; /* Space for the breadcrumb menu */
  }
  .olss-page-wrapper.no_hero {
    margin-top: 74px;
  }
  .home-page .olss-page-wrapper {
    margin-top: 0px;
  }
}
/* Common Image Styles */
.olss-hero-image {
  width: 100%;
  display: block;
}

.olss-hero-spacer {
  padding-top: 40px;
}
@media screen and (max-width: 767px) {
  .olss-hero-spacer {
    padding-top: 0px;
  }
}

/* =================
   Unified Hero Element Scaling
   ================= */
/* Container-based height control for all hero types */
.olss-hero-image-container,
.olss-hero-carousel-container,
.olss-hero-video-container,
.splide.olss-hero-splide {
  position: relative;
  width: 100%;
  overflow: hidden;
  /* Desktop view heights */
  /* Progressive scaling for tablet/mobile */
  /* Mobile minimum size */
  /* Ensure media content fills container properly */
}
@media (min-width: 1280px) {
  .olss-hero-image-container,
  .olss-hero-carousel-container,
  .olss-hero-video-container,
  .splide.olss-hero-splide {
    /* Content pages: 590px fixed height */
    height: 590px;
    /* Home page: 690px fixed height */
  }
  .home-page .olss-hero-image-container,
  .home-page .olss-hero-carousel-container,
  .home-page .olss-hero-video-container,
  .home-page .splide.olss-hero-splide {
    height: 690px;
  }
}
@media (max-width: 1279px) and (min-width: 376px) {
  .olss-hero-image-container,
  .olss-hero-carousel-container,
  .olss-hero-video-container,
  .splide.olss-hero-splide {
    /* Content pages: Scale from 590px → 375px */
    height: calc(375px + (100vw - 375px) * 0.2375690608);
    /* Home page: Scale from 690px → 375px */
  }
  .home-page .olss-hero-image-container,
  .home-page .olss-hero-carousel-container,
  .home-page .olss-hero-video-container,
  .home-page .splide.olss-hero-splide {
    height: calc(375px + (100vw - 375px) * 0.3480662983);
  }
}
@media (max-width: 375px) {
  .olss-hero-image-container,
  .olss-hero-carousel-container,
  .olss-hero-video-container,
  .splide.olss-hero-splide {
    height: 375px;
  }
}
.olss-hero-image-container img, .olss-hero-image-container video, .olss-hero-image-container .splide__slide,
.olss-hero-carousel-container img,
.olss-hero-carousel-container video,
.olss-hero-carousel-container .splide__slide,
.olss-hero-video-container img,
.olss-hero-video-container video,
.olss-hero-video-container .splide__slide,
.splide.olss-hero-splide img,
.splide.olss-hero-splide video,
.splide.olss-hero-splide .splide__slide {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* =================
   Video Hero Specific 
   ================= */
.olss-hero-video-container {
  /* Special handling for video at smaller viewports */
  /* SVG Overlay styling */
}
@media (max-width: 1279px) {
  .olss-hero-video-container {
    /* Ensure the video is centered horizontally and cropped equally from both sides */
  }
  .olss-hero-video-container video {
    width: auto; /* Allow width to adjust as needed */
    height: 100%; /* Fixed height to fill container */
    min-width: 100%; /* Ensure video is at least as wide as container */
    position: absolute; /* Take it out of normal flow */
    left: 50%; /* Position from center */
    transform: translateX(-50%); /* Center it properly */
    object-position: center; /* Ensure object-fit cropping is centered */
  }
}
.olss-hero-video-container .olss-hero-svg-overlay {
  position: absolute;
  bottom: var(--olss-width-indent-left);
  left: var(--olss-width-indent-left);
  width: calc(100% - var(--olss-width-indent-left) * 2);
  height: calc(100% - var(--olss-width-indent-left) * 2);
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  pointer-events: none;
}
.olss-hero-video-container .olss-hero-svg-overlay img {
  width: 673px;
  height: 98px;
  max-width: 100%;
  max-height: 30%;
  object-fit: contain;
  object-position: left bottom;
  transform-origin: left bottom;
}

/* =================
   Non-Homepage Hero Scaling
   ================= */
body:not(.home-page) .olss-desktop-only .olss-hero-image-container,
body:not(.home-page) .olss-desktop-only .olss-hero-carousel-container,
body:not(.home-page) .olss-desktop-only .splide.olss-hero-splide {
  /* Reset for aspect-ratio based approach */
}
@media (max-width: 1279px) {
  body:not(.home-page) .olss-desktop-only .olss-hero-image-container,
  body:not(.home-page) .olss-desktop-only .olss-hero-carousel-container,
  body:not(.home-page) .olss-desktop-only .splide.olss-hero-splide {
    height: auto !important;
    /* Exempt carousel arrows from aspect ratio constraint */
  }
  body:not(.home-page) .olss-desktop-only .olss-hero-image-container img, body:not(.home-page) .olss-desktop-only .olss-hero-image-container .splide__slide img,
  body:not(.home-page) .olss-desktop-only .olss-hero-carousel-container img,
  body:not(.home-page) .olss-desktop-only .olss-hero-carousel-container .splide__slide img,
  body:not(.home-page) .olss-desktop-only .splide.olss-hero-splide img,
  body:not(.home-page) .olss-desktop-only .splide.olss-hero-splide .splide__slide img {
    height: auto !important;
    aspect-ratio: 1280/590;
    max-height: 590px;
  }
  body:not(.home-page) .olss-desktop-only .olss-hero-image-container .splide__arrow img,
  body:not(.home-page) .olss-desktop-only .olss-hero-carousel-container .splide__arrow img,
  body:not(.home-page) .olss-desktop-only .splide.olss-hero-splide .splide__arrow img {
    aspect-ratio: unset;
    height: 40px !important;
    width: 40px;
    max-height: none;
  }
}
@media (max-width: 767px) {
  body:not(.home-page) .olss-mobile-only .olss-hero-image-container,
  body:not(.home-page) .olss-mobile-only .olss-hero-carousel-container,
  body:not(.home-page) .olss-mobile-only .splide.olss-hero-splide {
    height: auto !important;
    /* Exempt carousel arrows from aspect ratio constraint */
  }
  body:not(.home-page) .olss-mobile-only .olss-hero-image-container img, body:not(.home-page) .olss-mobile-only .olss-hero-image-container .splide__slide img,
  body:not(.home-page) .olss-mobile-only .olss-hero-carousel-container img,
  body:not(.home-page) .olss-mobile-only .olss-hero-carousel-container .splide__slide img,
  body:not(.home-page) .olss-mobile-only .splide.olss-hero-splide img,
  body:not(.home-page) .olss-mobile-only .splide.olss-hero-splide .splide__slide img {
    height: auto !important;
    aspect-ratio: 768/450;
  }
  body:not(.home-page) .olss-mobile-only .olss-hero-image-container .splide__arrow img,
  body:not(.home-page) .olss-mobile-only .olss-hero-carousel-container .splide__arrow img,
  body:not(.home-page) .olss-mobile-only .splide.olss-hero-splide .splide__arrow img {
    aspect-ratio: unset;
    height: 40px !important;
    width: 40px;
  }
}

/* =================
   Mobile Header Offset
   ================= */
@media (max-width: 767px) {
  /* Add consistent offset for mobile header on homepage */
  .home-page .olss-hero-image-container,
  .home-page .olss-hero-carousel-container,
  .home-page .olss-hero-video-container,
  .home-page .splide.olss-hero-splide {
    margin-top: 74px; /* Unified 74px margin for all home page hero elements */
  }
  /* Ensure carousel navigation is properly positioned with the new margin */
  .home-page .olss-mobile-only .olss-hero-splide .splide__arrows {
    top: calc(50% + 45px); /* Adjust arrow positioning to account for margin */
  }
  /* Add spacing between stacked hero elements when multiple are present */
  .home-page .olss-hero-image-container + .olss-hero-carousel-container,
  .home-page .olss-hero-carousel-container + .olss-hero-image-container,
  .home-page .olss-hero-video-container + .olss-hero-image-container,
  .home-page .olss-hero-video-container + .olss-hero-carousel-container {
    margin-top: 2rem; /* Add spacing between stacked hero elements */
  }
  /* Non-homepage hero elements keep normal spacing */
  body:not(.home-page) .olss-hero-image-container,
  body:not(.home-page) .olss-hero-carousel-container,
  body:not(.home-page) .olss-hero-video-container {
    margin-top: 0; /* No extra margin needed */
  }
}
/* =================
   Carousel Controls
   ================= */
.olss-hero-splide {
  /* Caption styling */
}
.olss-hero-splide .splide__track,
.olss-hero-splide .splide__list,
.olss-hero-splide .splide__slide {
  height: 100%;
}
.olss-hero-splide .olss-carousel-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: rgba(0, 0, 0, 0.5);
  color: var(--olss-white);
  padding: 0.5rem 1rem;
  z-index: 5;
}
.olss-hero-splide .olss-carousel-caption .description {
  margin: 0 0 0.25rem 0;
  font-size: 0.875rem;
}
.olss-hero-splide .olss-carousel-caption .credit {
  margin: 0;
  font-size: 0.75rem;
  font-style: italic;
  text-align: right;
}

/* Arrow styling */
.olss-hero-arrows .splide__arrow {
  background: none;
  border: none;
  cursor: pointer;
  position: absolute;
  z-index: 10;
  padding: 0;
  mix-blend-mode: normal;
  opacity: 0.9;
}
.olss-hero-arrows .splide__arrow:hover, .olss-hero-arrows .splide__arrow:focus {
  opacity: 1;
}
.olss-hero-arrows .splide__arrow img {
  width: 40px;
  height: 40px;
  mix-blend-mode: normal;
  opacity: 0.9;
  transition: opacity 0.2s ease;
}

/* =================
   Mobile-specific Arrow Styles
   ================= */
@media (max-width: 767px) {
  .olss-mobile-only .olss-hero-splide .splide__arrows {
    width: 100%;
    z-index: 10;
  }
  .olss-mobile-only .olss-hero-splide .splide__arrows .splide__arrow--prev {
    left: 10px;
  }
  .olss-mobile-only .olss-hero-splide .splide__arrows .splide__arrow--next {
    right: 10px;
  }
}
/* =================
   Desktop-specific Arrow Styles
   ================= */
@media (min-width: 768px) {
  .splide.olss-hero-splide {
    /* Hide pagination on desktop */
    /* Force arrow positioning */
  }
  .splide.olss-hero-splide .splide__pagination {
    display: none !important;
  }
  .splide.olss-hero-splide .splide__arrows.olss-hero-arrows {
    position: absolute !important;
    top: auto !important;
    bottom: 40px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    width: auto !important;
    display: flex !important;
    justify-content: center !important;
    gap: 40px !important;
    z-index: 10 !important;
  }
  .splide.olss-hero-splide .splide__arrows.olss-hero-arrows .splide__arrow--prev,
  .splide.olss-hero-splide .splide__arrows.olss-hero-arrows .splide__arrow--next {
    position: relative !important;
    top: auto !important;
    transform: none !important;
    left: auto !important;
    right: auto !important;
  }
  /* Carousel container max-width on large screens */
}
@media (min-width: 768px) and (min-width: 1280px) {
  .olss-hero-carousel-container {
    max-width: var(--olss-max-width);
    margin-left: auto;
    margin-right: auto;
  }
}
/* =================
   Video Caption & Hero Overlay
   ================= */
.olss-video-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: rgba(0, 0, 0, 0.5);
  color: var(--olss-white);
  padding: 0.5rem 1rem;
  z-index: 5;
}
.olss-video-caption .description {
  margin: 0 0 0.25rem 0;
  font-size: 0.875rem;
}
.olss-video-caption .credit {
  margin: 0;
  font-size: 0.75rem;
  font-style: italic;
  text-align: right;
}

/* Hero overlay text for homepage */
.home-page .olss-hero-container {
  /* Overlay container positioned at bottom of hero */
  /* Overlay text styling */
}
.home-page .olss-hero-container .olss-hero-overlay-text-container {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0) 100%);
  z-index: 10;
  padding-bottom: var(--olss-width-indent-left);
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 576px) {
  .home-page .olss-hero-container .olss-hero-overlay-text-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .home-page .olss-hero-container .olss-hero-overlay-text-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.home-page .olss-hero-container .olss-hero-overlay-text {
  color: var(--olss-white);
  max-width: 100%;
}
.home-page .olss-hero-container .olss-hero-overlay-text h1.olss-heading {
  color: var(--olss-white);
  font-weight: var(--olss-font-weight-light);
  margin: 0;
}
.home-page .olss-hero-container .olss-hero-overlay-text p.small_caps {
  font-size: var(--olss-font-size-heading-1);
  margin: 0;
  color: var(--olss-white);
  font-weight: var(--olss-font-weight-regular);
}

/* =================
   Fallback Support
   ================= */
/* Fallback for browsers without height support */
@supports not (height: 1vh) {
  .olss-hero-image-container,
  .olss-hero-carousel-container,
  .olss-hero-video-container {
    /* Fallback using padding based on ratio */
    padding-bottom: 46.09%; /* 590/1280 = 0.4609 */
    height: 0;
  }
  .home-page .olss-hero-image-container,
  .home-page .olss-hero-carousel-container,
  .home-page .olss-hero-video-container {
    padding-bottom: 53.91%; /* 690/1280 = 0.5391 */
  }
  @media (max-width: 767px) {
    .olss-hero-image-container,
    .olss-hero-carousel-container,
    .olss-hero-video-container {
      padding-bottom: 58.59%; /* 450/768 = 0.5859 */
    }
  }
  @media (max-width: 767px) and (max-width: 375px) {
    .olss-hero-image-container,
    .olss-hero-carousel-container,
    .olss-hero-video-container {
      padding-bottom: 100%; /* Square at smallest viewport */
    }
  }
}
/* 
 * Fluid Field Components 
 * Each component is in its own file
 */
.olss-contact-us-section + .olss-last-element {
  margin-bottom: var(--olss-width-margin-bottom);
}
.olss-contact-us-section .olss-contact-us-container {
  margin-top: var(--olss-width-margin-top);
  margin-left: auto;
  margin-right: auto;
  background-color: var(--olss-white);
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 576px) {
  .olss-contact-us-section .olss-contact-us-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .olss-contact-us-section .olss-contact-us-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.olss-contact-us-section .olss-contact-us-container .olss-contact-us-content {
  width: 100%;
  /* Small viewports: full width within container */
  /* Medium viewports: maintain exactly 524px content width */
  /* Large viewports: maintain exactly 524px content width */
  /* Extra large viewports: maintain exactly 720px content width */
  /* Form styles */
}
@media (max-width: 603px) {
  .olss-contact-us-section .olss-contact-us-container .olss-contact-us-content {
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 604px) and (max-width: 1023px) {
  .olss-contact-us-section .olss-contact-us-container .olss-contact-us-content {
    /* Account for the container's existing padding (30px each side from fixed-responsive-padding-no-vertical) */
    width: 564px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  .olss-contact-us-section .olss-contact-us-container .olss-contact-us-content {
    /* Account for the container's existing padding (80px each side from fixed-responsive-padding-no-vertical) */
    width: 720px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 1280px) {
  .olss-contact-us-section .olss-contact-us-container .olss-contact-us-content {
    /* Fixed width approach for consistency */
    width: 720px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
.olss-contact-us-section .olss-contact-us-container .olss-contact-us-content .olss-contact-form {
  width: 100%;
  padding-bottom: 20px;
  /* Form group - container for label and input */
  /* Submit button container */
  /* Form validation styling */
}
.olss-contact-us-section .olss-contact-us-container .olss-contact-us-content .olss-contact-form .form-group {
  margin-bottom: 40px;
  /* Form labels */
  /* All form controls */
  /* Specific to text area */
  /* Custom select styling */
}
.olss-contact-us-section .olss-contact-us-container .olss-contact-us-content .olss-contact-form .form-group label {
  display: block;
  margin-bottom: 20px;
  font-size: var(--bs-body-font-size);
  line-height: var(--bs-body-font-line-height);
  font-weight: var(--olss-font-weight-regular);
  color: var(--olss-black);
}
.olss-contact-us-section .olss-contact-us-container .olss-contact-us-content .olss-contact-form .form-group .form-control {
  width: 100%;
  padding: 20px;
  border: 2px solid var(--olss-beige);
  border-radius: 0; /* Square corners */
  font-size: var(--bs-body-font-size);
  line-height: var(--bs-body-font-line-height);
  color: var(--olss-black);
  background-color: var(--olss-white);
  transition: border-color 0.2s ease-in-out;
  /* Placeholder styling */
  /* Focus state */
}
.olss-contact-us-section .olss-contact-us-container .olss-contact-us-content .olss-contact-form .form-group .form-control::placeholder {
  color: var(--olss-grey);
  opacity: 1; /* Firefox fix */
}
.olss-contact-us-section .olss-contact-us-container .olss-contact-us-content .olss-contact-form .form-group .form-control:focus {
  outline: none;
  border-color: var(--olss-key-line-beige);
  box-shadow: none;
}
.olss-contact-us-section .olss-contact-us-container .olss-contact-us-content .olss-contact-form .form-group textarea.form-control {
  min-height: 150px;
  resize: vertical;
}
.olss-contact-us-section .olss-contact-us-container .olss-contact-us-content .olss-contact-form .form-group .custom-select-container {
  position: relative;
  /* Custom dropdown chevron */
}
.olss-contact-us-section .olss-contact-us-container .olss-contact-us-content .olss-contact-form .form-group .custom-select-container select.form-control {
  /* Make select visually match other inputs */
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 50px; /* Space for chevron */
  background-color: var(--olss-white);
  /* Remove default arrow in IE10+ */
}
.olss-contact-us-section .olss-contact-us-container .olss-contact-us-content .olss-contact-form .form-group .custom-select-container select.form-control::-ms-expand {
  display: none;
}
.olss-contact-us-section .olss-contact-us-container .olss-contact-us-content .olss-contact-form .form-group .custom-select-container::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%) rotate(45deg);
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--olss-black);
  border-bottom: 2px solid var(--olss-black);
  pointer-events: none; /* Allow clicks to pass through */
}
.olss-contact-us-section .olss-contact-us-container .olss-contact-us-content .olss-contact-form .form-submit {
  margin-top: 20px;
  /* CTA Button styling */
}
.olss-contact-us-section .olss-contact-us-container .olss-contact-us-content .olss-contact-form .form-submit .cta-button {
  display: inline-block;
  padding: 12px 24px;
  background-color: var(--olss-mid-blue);
  color: var(--olss-white);
  font-size: var(--olss-font-size-button-text);
  line-height: var(--olss-line-height-button-text);
  font-weight: var(--olss-font-weight-semi-bold);
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background-color 0.2s ease-in-out;
}
.olss-contact-us-section .olss-contact-us-container .olss-contact-us-content .olss-contact-form .form-submit .cta-button:hover, .olss-contact-us-section .olss-contact-us-container .olss-contact-us-content .olss-contact-form .form-submit .cta-button:focus {
  background-color: var(--olss-dark-blue);
}
.olss-contact-us-section .olss-contact-us-container .olss-contact-us-content .olss-contact-form .is-invalid {
  border-color: var(--olss-bright-red) !important;
}
.olss-contact-us-section .olss-contact-us-container .olss-contact-us-content .olss-contact-form .invalid-feedback {
  display: block;
  margin-top: 10px;
  color: var(--olss-bright-red);
  font-size: 0.875em;
}

/* Image Collection Styles */
.olss-block-of-images-section {
  /* Main Grid Layout */
  /* Image Item */
  /* Figure Element */
  /* Image Wrapper with Fixed Aspect Ratio */
  /* Image Styling */
  /* Caption Styling */
}
.olss-block-of-images-section .olss-block-of-images-container {
  width: 100%;
  max-width: var(--olss-max-width);
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
  padding-top: var(--olss-width-margin-top);
  padding-bottom: var(--olss-width-margin-bottom);
}
@media (min-width: 576px) {
  .olss-block-of-images-section .olss-block-of-images-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 768px) {
  .olss-block-of-images-section .olss-block-of-images-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .olss-block-of-images-section .olss-block-of-images-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.olss-block-of-images-section .olss-block-of-images-grid {
  display: grid;
  grid-template-columns: 1fr; /* Single column on mobile */
  gap: var(--olss-width-grid-gap-row);
}
@media (min-width: 576px) {
  .olss-block-of-images-section .olss-block-of-images-grid {
    grid-template-columns: repeat(2, 1fr); /* Two columns on tablet/desktop */
  }
}
.olss-block-of-images-section .image-item {
  width: 100%;
  cursor: pointer; /* Indicate clickable */
}
.olss-block-of-images-section .image-figure {
  margin: 0;
  width: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease;
}
.olss-block-of-images-section .image-figure:hover, .olss-block-of-images-section .image-figure:focus-within {
  transform: translateY(-3px);
}
.olss-block-of-images-section .image-wrapper {
  position: relative;
  width: 100%;
  padding-bottom: 75%; /* 4:3 Aspect Ratio (3/4 = 0.75 = 75%) */
  overflow: hidden;
}
.olss-block-of-images-section .gallery-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.olss-block-of-images-section .image-caption {
  padding: 0.67rem;
  background-color: var(--olss-beige);
  font-size: var(--bs-body-font-size);
  font-style: italic;
  line-height: var(--bs-body-font-line-height);
}

/* Prevent body scrolling when modal is open */
body.modal-open {
  overflow: hidden;
}

/* Body Text Block (No Picture) Styles */
.olss-body-text-no-picture .olss-body-text-container {
  width: 100%;
  background-color: var(--olss-white);
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 576px) {
  .olss-body-text-no-picture .olss-body-text-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .olss-body-text-no-picture .olss-body-text-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.olss-body-text-no-picture .olss-body-text-container .olss-body-text-content {
  width: 100%;
  /* Small viewports: full width within container */
  /* Medium viewports: maintain exactly 524px content width */
  /* Large viewports: maintain exactly 524px content width */
  /* Extra large viewports: maintain exactly 720px content width */
}
@media (max-width: 603px) {
  .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content {
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 604px) and (max-width: 1023px) {
  .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content {
    /* Account for the container's existing padding (30px each side from fixed-responsive-padding-no-vertical) */
    width: 564px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content {
    /* Account for the container's existing padding (80px each side from fixed-responsive-padding-no-vertical) */
    width: 720px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 1280px) {
  .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content {
    /* Fixed width approach for consistency */
    width: 720px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
.olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h1, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h2, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h3, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h4, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h5, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h6 {
  margin-top: 0;
  margin-bottom: 0;
}
.olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h1 + h3, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h1 + h4, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h1 + h5, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h1 + h6, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h2 + h3, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h2 + h4, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h2 + h5, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h2 + h6, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h3 + h3, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h3 + h4, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h3 + h5, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h3 + h6, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h4 + h3, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h4 + h4, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h4 + h5, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h4 + h6, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h5 + h3, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h5 + h4, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h5 + h5, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h5 + h6, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h6 + h3, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h6 + h4, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h6 + h5, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h6 + h6 {
  margin-top: 0.5em;
}
.olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h1 + p, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h2 + p, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h3 + p, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h4 + p, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h5 + p, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h6 + p {
  margin-top: 1em;
}
.olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h1:last-child, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h2:last-child, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h3:last-child, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h4:last-child, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h5:last-child, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content h6:last-child {
  margin-bottom: 0;
}
.olss-body-text-no-picture .olss-body-text-container .olss-body-text-content p {
  margin-top: 1em;
  margin-bottom: 1em;
}
.olss-body-text-no-picture .olss-body-text-container .olss-body-text-content ol, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content ul {
  padding-left: 1em;
  margin-top: 1em;
  margin-bottom: 1em;
}
.olss-body-text-no-picture .olss-body-text-container .olss-body-text-content ol li, .olss-body-text-no-picture .olss-body-text-container .olss-body-text-content ul li {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}
.olss-first-element + .olss-body-text-no-picture, .olss-desktop-breadcrumbs + .olss-body-text-no-picture {
  margin-top: 0;
}
@media screen and (max-width: 767px) {
  .olss-first-element + .olss-body-text-no-picture, .olss-desktop-breadcrumbs + .olss-body-text-no-picture {
    margin-top: var(--olss-width-margin-top);
  }
}
@media screen and (max-width: 767px) {
  .olss-body-text-no-picture + .olss-last-element, .olss-body-text-no-picture + .olss-body-text-no-picture, .olss-body-text-no-picture + .image-block-with-caption-section, .olss-body-text-no-picture + .body-text-with-picture-section {
    margin-top: var(--olss-width-margin-top);
  }
}

/* Body Text Block with Picture Styles */
.body-text-with-picture-section {
  /* Content image styling */
  /* Text content with adequate spacing around headers and paragraphs */
  /* Row spacing adjustments */
  /* Responsive spacing between image and text */
  /* Accessibility enhancements for image captions */
  /* Image and text alignment for different screen sizes */
  /* Specific spacing for image position variants */
  /* Full-width image container */
  /* Mobile-specific spacing for reordered content */
  /* Reset order for tablet and above */
}
.body-text-with-picture-section + .olss-last-element, .body-text-with-picture-section + .olss-body-text-no-picture, .body-text-with-picture-section + .image-block-with-caption-section, .body-text-with-picture-section + .body-text-with-picture-section {
  margin-top: var(--olss-width-margin-bottom);
}
.body-text-with-picture-section .body-text-with-picture-container {
  width: 100%;
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 576px) {
  .body-text-with-picture-section .body-text-with-picture-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .body-text-with-picture-section .body-text-with-picture-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.body-text-with-picture-section .content-image {
  margin: 0 0 1.5rem 0;
}
.body-text-with-picture-section .content-image img {
  width: 100%;
  height: auto;
  display: block;
}
.body-text-with-picture-section .content-image figcaption.olss-caption {
  padding: 0.67rem;
  background-color: var(--olss-beige);
  font-size: var(--bs-body-font-size);
  font-style: italic;
  line-height: var(--bs-body-font-line-height);
}
@media (min-width: 768px) {
  .body-text-with-picture-section .content-image {
    /* Adjust margin based on image position */
  }
  .body-text-with-picture-section .content-image.image-left {
    margin-right: 1.5rem;
  }
  .body-text-with-picture-section .content-image.image-right {
    margin-left: 1.5rem;
  }
}
.body-text-with-picture-section .body-text-content {
  /* Special spacing when image is above text */
}
.body-text-with-picture-section .body-text-content h1, .body-text-with-picture-section .body-text-content h2, .body-text-with-picture-section .body-text-content h3, .body-text-with-picture-section .body-text-content h4, .body-text-with-picture-section .body-text-content h5, .body-text-with-picture-section .body-text-content h6 {
  margin-top: 0;
  margin-bottom: 0;
}
.body-text-with-picture-section .body-text-content h1 + h3, .body-text-with-picture-section .body-text-content h1 + h4, .body-text-with-picture-section .body-text-content h1 + h5, .body-text-with-picture-section .body-text-content h1 + h6, .body-text-with-picture-section .body-text-content h2 + h3, .body-text-with-picture-section .body-text-content h2 + h4, .body-text-with-picture-section .body-text-content h2 + h5, .body-text-with-picture-section .body-text-content h2 + h6, .body-text-with-picture-section .body-text-content h3 + h3, .body-text-with-picture-section .body-text-content h3 + h4, .body-text-with-picture-section .body-text-content h3 + h5, .body-text-with-picture-section .body-text-content h3 + h6, .body-text-with-picture-section .body-text-content h4 + h3, .body-text-with-picture-section .body-text-content h4 + h4, .body-text-with-picture-section .body-text-content h4 + h5, .body-text-with-picture-section .body-text-content h4 + h6, .body-text-with-picture-section .body-text-content h5 + h3, .body-text-with-picture-section .body-text-content h5 + h4, .body-text-with-picture-section .body-text-content h5 + h5, .body-text-with-picture-section .body-text-content h5 + h6, .body-text-with-picture-section .body-text-content h6 + h3, .body-text-with-picture-section .body-text-content h6 + h4, .body-text-with-picture-section .body-text-content h6 + h5, .body-text-with-picture-section .body-text-content h6 + h6 {
  margin-top: 0.5em;
}
.body-text-with-picture-section .body-text-content h1 + p, .body-text-with-picture-section .body-text-content h2 + p, .body-text-with-picture-section .body-text-content h3 + p, .body-text-with-picture-section .body-text-content h4 + p, .body-text-with-picture-section .body-text-content h5 + p, .body-text-with-picture-section .body-text-content h6 + p {
  margin-top: 1em;
}
.body-text-with-picture-section .body-text-content h1:last-child, .body-text-with-picture-section .body-text-content h2:last-child, .body-text-with-picture-section .body-text-content h3:last-child, .body-text-with-picture-section .body-text-content h4:last-child, .body-text-with-picture-section .body-text-content h5:last-child, .body-text-with-picture-section .body-text-content h6:last-child {
  margin-bottom: 0;
}
.body-text-with-picture-section .body-text-content p {
  margin-top: 1em;
  margin-bottom: 1em;
}
.body-text-with-picture-section .body-text-content ol, .body-text-with-picture-section .body-text-content ul {
  padding-left: 1em;
  margin-top: 1em;
  margin-bottom: 1em;
}
.body-text-with-picture-section .body-text-content ol li, .body-text-with-picture-section .body-text-content ul li {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}
.body-text-with-picture-section .body-text-content.text-below-image {
  margin-top: 1rem;
}
.body-text-with-picture-section .body-text-with-picture-container .row {
  margin-bottom: 1.5rem;
}
.body-text-with-picture-section .body-text-with-picture-container .row:last-child {
  margin-bottom: 0;
}
@media (max-width: 767.98px) {
  .body-text-with-picture-section .body-text-with-picture-container .col-md-6 {
    margin-bottom: 1.5rem;
  }
  .body-text-with-picture-section .body-text-with-picture-container .col-md-6:last-child {
    margin-bottom: 0;
  }
}
.body-text-with-picture-section [aria-labelledby] {
  position: relative;
}
@media (min-width: 768px) {
  .body-text-with-picture-section {
    /* Add proper spacing between image and text */
  }
  .body-text-with-picture-section .text-md-start {
    text-align: left !important;
  }
  .body-text-with-picture-section .text-md-end {
    text-align: right !important;
  }
  .body-text-with-picture-section .body-text-with-picture-container .col-md-6 + .col-md-6 {
    padding-left: 1.5rem;
  }
}
@media (min-width: 768px) {
  .body-text-with-picture-section .image-position-left .col-md-6:first-child {
    padding-right: 1.5rem;
  }
}
@media (min-width: 768px) {
  .body-text-with-picture-section .image-position-right .col-md-6:first-child {
    padding-right: 1.5rem;
  }
}
.body-text-with-picture-section .full-width-image {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}
.body-text-with-picture-section .full-width-image .content-image {
  margin-bottom: 0;
}
@media (max-width: 767.98px) {
  .body-text-with-picture-section {
    /* Add spacing between text and image when reordered */
    /* Ensure text comes first visually on mobile for left image position */
  }
  .body-text-with-picture-section .order-0 + .order-1 {
    margin-top: 1.5rem;
  }
  .body-text-with-picture-section .body-text-content {
    margin-bottom: 1.5rem;
  }
}
@media (min-width: 768px) {
  .body-text-with-picture-section .order-sm-0, .body-text-with-picture-section .order-sm-1 {
    order: initial;
  }
}

.olss-cta-block-image {
  /* Ensure buttons have the correct styling */
}
.olss-cta-block-image .olss-cta-image-wrapper {
  position: relative;
  width: 100%;
  overflow: hidden; /* Default: hide overflow */
  /* Special overflow handling for small screens */
}
.olss-cta-block-image .olss-cta-image-wrapper img {
  width: 100%;
  display: block;
  object-fit: cover; /* This ensures the image covers the area while maintaining aspect ratio */
  object-fit: center center;
  /* Height scaling based on viewport width */
}
@media (max-width: 767px) {
  .olss-cta-block-image .olss-cta-image-wrapper img {
    height: 252px; /* Fixed height on small screens */
    max-width: none; /* Allow image to be wider than container */
    width: 100%;
    min-width: 100%; /* Ensure image is at least as wide as container */
    position: relative;
    left: 50%;
    transform: translateX(-50%); /* Center the image */
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .olss-cta-block-image .olss-cta-image-wrapper img {
    /* Smooth scaling between 768px and 1024px viewport widths */
    height: calc(252px + (100vw - 768px) * 0.65625); /* Scale from 252px to 420px */
    object-position: center center;
  }
}
@media (min-width: 1024px) {
  .olss-cta-block-image .olss-cta-image-wrapper img {
    height: 420px; /* Maximum height on large screens */
    object-position: center center;
  }
}
@media (max-width: 767px) {
  .olss-cta-block-image .olss-cta-image-wrapper {
    overflow: hidden;
    height: 252px; /* Fix container height to match image */
  }
}
.olss-cta-block-image .olss-cta-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.4) 100%); /* Vertical gradient from transparent to semi-transparent black */
  display: flex;
  flex-direction: column;
  justify-content: flex-end; /* Align content to bottom */
  align-items: center;
  text-align: center;
}
.olss-cta-block-image .olss-cta-content-container {
  padding-bottom: 2rem; /* Increased bottom padding */
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  width: 100%;
}
.olss-cta-block-image .olss-cta-text-container {
  margin-bottom: 1.5rem;
}
.olss-cta-block-image .olss-highlight {
  color: var(--olss-white);
  font-size: var(--olss-font-size-heading-1);
  line-height: var(--olss-line-height-heading-1);
}
.olss-cta-block-image .olss-cta-button > span.olss-highlight {
  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2);
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  font-weight: var(--olss-font-weight-regular);
  font-style: normal;
}

/* Text-only CTA Block */
.olss-cta-block-text {
  /* Ensure buttons have the correct styling */
}
.olss-cta-block-text .olss-cta-text-wrapper {
  background-color: var(--olss-dark-beige);
  padding: 2rem;
  text-align: center;
  position: relative;
  overflow: hidden;
  /* Background pattern styling */
}
.olss-cta-block-text .olss-cta-text-wrapper.has-bg-pattern {
  /* Base background color as fallback */
  background-color: var(--olss-dark-beige);
  /* Add the pattern image with proper sizing */
  background-image: url("/media/_site_images/OLSS-footer-cream-pattern.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% auto; /* Fit horizontally, auto height */
  /* Ensure text remains visible over the pattern */
  position: relative;
  /* Add a subtle background overlay for better readability */
  /* Position content above the overlay */
}
.olss-cta-block-text .olss-cta-text-wrapper.has-bg-pattern::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(var(--olss-dark-beige-rgb), 0.4); /* Semi-transparent overlay */
  z-index: 1;
}
.olss-cta-block-text .olss-cta-text-wrapper.has-bg-pattern > * {
  position: relative;
  z-index: 2;
}
.olss-cta-block-text .cta-text-container {
  margin-left: 20px;
  margin-right: 20px;
}
@media (min-width: 576px) {
  .olss-cta-block-text .cta-text-container {
    margin-left: 30px;
    margin-right: 30px;
  }
}
@media (min-width: 768px) {
  .olss-cta-block-text .cta-text-container {
    margin-left: 40px;
    margin-right: 40px;
  }
}
@media (min-width: 1024px) {
  .olss-cta-block-text .cta-text-container {
    margin-left: 80px;
    margin-right: 80px;
  }
}
.olss-cta-block-text .cta-text-container + .text-center > .cta-button {
  margin-top: 1.5rem;
}
.olss-cta-block-text .olss-cta-button {
  margin-top: var(--olss-width-margin-top);
  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2);
}

/* Text-only CTA Block */
.olss-cta-block-button {
  margin-top: var(--olss-width-margin-top);
  margin-bottom: var(--olss-width-margin-bottom);
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  padding-left: 20px;
  padding-right: 20px;
  padding-top: var(--olss-width-margin-top);
  padding-bottom: var(--olss-width-margin-bottom);
  /* Ensure buttons have the correct styling */
}
@media (min-width: 576px) {
  .olss-cta-block-button {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 768px) {
  .olss-cta-block-button {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .olss-cta-block-button {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.olss-cta-block-button .olss-cta-button {
  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2);
}

/* File Link Block Styles */
.olss-file-link-section + .olss-last-element {
  margin-bottom: var(--olss-width-margin-bottom);
}
.olss-file-link-section .olss-file-link-container {
  margin-top: var(--olss-width-margin-top);
  margin-bottom: var(--olss-width-margin-bottom);
  margin-left: auto;
  margin-right: auto;
  background-color: var(--olss-white);
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 576px) {
  .olss-file-link-section .olss-file-link-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .olss-file-link-section .olss-file-link-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.olss-file-link-section .olss-file-link-container .olss-file-link-content {
  width: 100%;
  /* Small viewports: full width within container */
  /* Medium viewports: maintain exactly 524px content width */
  /* Large viewports: maintain exactly 524px content width */
  /* Extra large viewports: maintain exactly 720px content width */
}
@media (max-width: 603px) {
  .olss-file-link-section .olss-file-link-container .olss-file-link-content {
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 604px) and (max-width: 1023px) {
  .olss-file-link-section .olss-file-link-container .olss-file-link-content {
    /* Account for the container's existing padding (30px each side from fixed-responsive-padding-no-vertical) */
    width: 564px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  .olss-file-link-section .olss-file-link-container .olss-file-link-content {
    /* Account for the container's existing padding (80px each side from fixed-responsive-padding-no-vertical) */
    width: 720px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 1280px) {
  .olss-file-link-section .olss-file-link-container .olss-file-link-content {
    /* Fixed width approach for consistency */
    width: 720px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
.olss-file-link-section .olss-file-link-container .olss-file-link-content .olss-file-link-item {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--olss-key-line-beige);
}
.olss-file-link-section .olss-file-link-container .olss-file-link-content .olss-file-link-item:first-child {
  padding-top: 0;
}
.olss-file-link-section .olss-file-link-container .olss-file-link-content .olss-file-link-item:last-child {
  padding-bottom: 0;
}
.olss-file-link-section .olss-file-link-container .olss-file-link-content .olss-file-link-item a {
  text-decoration: none;
}
.olss-file-link-section .olss-file-link-container .olss-file-link-content .olss-file-link-item:hover .olss-file-link {
  text-decoration: underline;
}
.olss-file-link-section .olss-file-link-container .olss-file-link-content .olss-file-link-item:last-child {
  border-bottom: none;
}
.olss-file-link-section .olss-file-link-container .olss-file-link-content .olss-file-link-item .olss-file-name {
  font-weight: var(--olss-font-weight-semi-bold);
  font-size: var(--bs-body-font-size);
  color: var(--olss-black);
  margin-bottom: 0;
}
.olss-file-link-section .olss-file-link-container .olss-file-link-content .olss-file-link-item .olss-file-description {
  font-weight: var(--olss-font-weight-regular);
  font-size: var(--bs-body-font-size);
  color: var(--olss-black);
  margin-bottom: 0;
}
.olss-file-link-section .olss-file-link-container .olss-file-link-content .olss-file-link-item .olss-file-link {
  font-weight: var(--olss-font-weight-semi-bold);
  font-size: var(--bs-body-font-size);
  color: var(--olss-dirty-red);
  margin-bottom: 0;
  overflow-wrap: break-word;
}

/* Horizontal Rule Styling */
.olss-horizontal-rule {
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 576px) {
  .olss-horizontal-rule {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .olss-horizontal-rule {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.olss-horizontal-rule .olss-horizontal-rule-container.olss-indent {
  width: 100%;
  /* Small viewports: full width within container */
  /* Medium viewports: maintain exactly 524px content width */
  /* Large viewports: maintain exactly 524px content width */
  /* Extra large viewports: maintain exactly 720px content width */
}
@media (max-width: 603px) {
  .olss-horizontal-rule .olss-horizontal-rule-container.olss-indent {
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 604px) and (max-width: 1023px) {
  .olss-horizontal-rule .olss-horizontal-rule-container.olss-indent {
    /* Account for the container's existing padding (30px each side from fixed-responsive-padding-no-vertical) */
    width: 564px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  .olss-horizontal-rule .olss-horizontal-rule-container.olss-indent {
    /* Account for the container's existing padding (80px each side from fixed-responsive-padding-no-vertical) */
    width: 720px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 1280px) {
  .olss-horizontal-rule .olss-horizontal-rule-container.olss-indent {
    /* Fixed width approach for consistency */
    width: 720px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
.olss-horizontal-rule .olss-horizontal-rule-container.olss-indent hr {
  border: 0;
  border-top: 3px solid var(--olss-key-line-beige);
  margin-top: var(--olss-width-margin-top);
  margin-bottom: var(--olss-width-margin-bottom);
  width: 100%;
  opacity: 1;
}
.olss-horizontal-rule .olss-horizontal-rule-container {
  width: 100%;
}
.olss-horizontal-rule .olss-horizontal-rule-container hr {
  border: 0;
  border-top: 3px solid var(--olss-key-line-beige);
  margin-top: var(--olss-width-margin-top);
  margin-bottom: var(--olss-width-margin-bottom);
  width: 100%;
  opacity: 1;
}

/* Body Text Block with Picture Styles */
.image-block-with-caption-section {
  /* Content image styling */
  /* Text content with adequate spacing around headers and paragraphs */
  /* Row spacing adjustments */
  /* Responsive spacing between image and text */
  /* Accessibility enhancements for image captions */
  /* Image and text alignment for different screen sizes */
  /* Specific spacing for image position variants */
  /* Full-width image container */
}
.image-block-with-caption-section + .olss-last-element, .image-block-with-caption-section + .olss-body-text-no-picture, .image-block-with-caption-section + .image-block-with-caption-section, .image-block-with-caption-section + .body-text-with-picture-section {
  margin-top: var(--olss-width-margin-bottom);
}
.image-block-with-caption-section .image-block-with-caption-container {
  width: 100%;
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 576px) {
  .image-block-with-caption-section .image-block-with-caption-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .image-block-with-caption-section .image-block-with-caption-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.image-block-with-caption-section .content-image {
  margin: 0 0 1.5rem 0;
}
.image-block-with-caption-section .content-image img {
  width: 100%;
  height: auto;
  display: block;
}
.image-block-with-caption-section .content-image figcaption.olss-caption {
  padding: 0.67rem;
  background-color: var(--olss-beige);
  font-size: var(--bs-body-font-size);
  font-style: italic;
  line-height: var(--bs-body-font-line-height);
}
@media (min-width: 768px) {
  .image-block-with-caption-section .content-image {
    /* Adjust margin based on image position */
  }
  .image-block-with-caption-section .content-image.image-left {
    margin-right: 1.5rem;
  }
  .image-block-with-caption-section .content-image.image-right {
    margin-left: 1.5rem;
  }
}
.image-block-with-caption-section .body-text-content {
  /* Special spacing when image is above text */
}
.image-block-with-caption-section .body-text-content h1, .image-block-with-caption-section .body-text-content h2, .image-block-with-caption-section .body-text-content h3, .image-block-with-caption-section .body-text-content h4, .image-block-with-caption-section .body-text-content h5, .image-block-with-caption-section .body-text-content h6 {
  margin-top: 0;
  margin-bottom: 0;
}
.image-block-with-caption-section .body-text-content h1 + h3, .image-block-with-caption-section .body-text-content h1 + h4, .image-block-with-caption-section .body-text-content h1 + h5, .image-block-with-caption-section .body-text-content h1 + h6, .image-block-with-caption-section .body-text-content h2 + h3, .image-block-with-caption-section .body-text-content h2 + h4, .image-block-with-caption-section .body-text-content h2 + h5, .image-block-with-caption-section .body-text-content h2 + h6, .image-block-with-caption-section .body-text-content h3 + h3, .image-block-with-caption-section .body-text-content h3 + h4, .image-block-with-caption-section .body-text-content h3 + h5, .image-block-with-caption-section .body-text-content h3 + h6, .image-block-with-caption-section .body-text-content h4 + h3, .image-block-with-caption-section .body-text-content h4 + h4, .image-block-with-caption-section .body-text-content h4 + h5, .image-block-with-caption-section .body-text-content h4 + h6, .image-block-with-caption-section .body-text-content h5 + h3, .image-block-with-caption-section .body-text-content h5 + h4, .image-block-with-caption-section .body-text-content h5 + h5, .image-block-with-caption-section .body-text-content h5 + h6, .image-block-with-caption-section .body-text-content h6 + h3, .image-block-with-caption-section .body-text-content h6 + h4, .image-block-with-caption-section .body-text-content h6 + h5, .image-block-with-caption-section .body-text-content h6 + h6 {
  margin-top: 0.5em;
}
.image-block-with-caption-section .body-text-content h1 + p, .image-block-with-caption-section .body-text-content h2 + p, .image-block-with-caption-section .body-text-content h3 + p, .image-block-with-caption-section .body-text-content h4 + p, .image-block-with-caption-section .body-text-content h5 + p, .image-block-with-caption-section .body-text-content h6 + p {
  margin-top: 1em;
}
.image-block-with-caption-section .body-text-content h1:last-child, .image-block-with-caption-section .body-text-content h2:last-child, .image-block-with-caption-section .body-text-content h3:last-child, .image-block-with-caption-section .body-text-content h4:last-child, .image-block-with-caption-section .body-text-content h5:last-child, .image-block-with-caption-section .body-text-content h6:last-child {
  margin-bottom: 0;
}
.image-block-with-caption-section .body-text-content p {
  margin-top: 1em;
  margin-bottom: 1em;
}
.image-block-with-caption-section .body-text-content ol, .image-block-with-caption-section .body-text-content ul {
  padding-left: 1em;
  margin-top: 1em;
  margin-bottom: 1em;
}
.image-block-with-caption-section .body-text-content ol li, .image-block-with-caption-section .body-text-content ul li {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}
.image-block-with-caption-section .body-text-content.text-below-image {
  margin-top: 1rem;
}
.image-block-with-caption-section .image-block-with-caption-container .row {
  margin-bottom: 1.5rem;
}
.image-block-with-caption-section .image-block-with-caption-container .row:last-child {
  margin-bottom: 0;
}
@media (max-width: 767.98px) {
  .image-block-with-caption-section .image-block-with-caption-container .col-md-6 {
    margin-bottom: 1.5rem;
  }
  .image-block-with-caption-section .image-block-with-caption-container .col-md-6:last-child {
    margin-bottom: 0;
  }
}
.image-block-with-caption-section [aria-labelledby] {
  position: relative;
}
@media (min-width: 768px) {
  .image-block-with-caption-section {
    /* Add proper spacing between image and text */
  }
  .image-block-with-caption-section .text-md-start {
    text-align: left !important;
  }
  .image-block-with-caption-section .text-md-end {
    text-align: right !important;
  }
  .image-block-with-caption-section .image-block-with-caption-container .col-md-6 + .col-md-6 {
    padding-left: 1.5rem;
  }
}
@media (min-width: 768px) {
  .image-block-with-caption-section .image-position-left .col-md-6:first-child {
    padding-right: 1.5rem;
  }
}
@media (min-width: 768px) {
  .image-block-with-caption-section .image-position-right .col-md-6:first-child {
    padding-right: 1.5rem;
  }
}
.image-block-with-caption-section .full-width-image {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}
.image-block-with-caption-section .full-width-image .content-image {
  margin-bottom: 0;
}

/* Image Collection Styles */
.olss-image-collection-section {
  /* Main Grid Layout */
  /* Image Item */
  /* Figure Element */
  /* Image Wrapper with Fixed Aspect Ratio */
  /* Image Styling */
  /* Caption Styling */
}
.olss-image-collection-section + .olss-last-element {
  margin-bottom: var(--olss-width-margin-bottom);
}
.olss-image-collection-section .olss-image-collection-container {
  width: 100%;
  max-width: var(--olss-max-width);
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
  padding-top: var(--olss-width-margin-top);
  padding-bottom: var(--olss-width-margin-bottom);
}
@media (min-width: 576px) {
  .olss-image-collection-section .olss-image-collection-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 768px) {
  .olss-image-collection-section .olss-image-collection-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .olss-image-collection-section .olss-image-collection-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.olss-image-collection-section .olss-image-collection-grid {
  display: grid;
  grid-template-columns: 1fr; /* Single column on mobile */
  gap: var(--olss-width-grid-gap-row);
}
@media (min-width: 576px) {
  .olss-image-collection-section .olss-image-collection-grid {
    grid-template-columns: repeat(2, 1fr); /* Two columns on tablet/desktop */
  }
}
.olss-image-collection-section .image-item {
  width: 100%;
  cursor: pointer; /* Indicate clickable */
}
.olss-image-collection-section .image-figure {
  margin: 0;
  width: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease;
}
.olss-image-collection-section .image-figure:hover, .olss-image-collection-section .image-figure:focus-within {
  transform: translateY(-3px);
}
.olss-image-collection-section .image-wrapper {
  position: relative;
  width: 100%;
  padding-bottom: 75%; /* 4:3 Aspect Ratio (3/4 = 0.75 = 75%) */
  overflow: hidden;
}
.olss-image-collection-section .gallery-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.olss-image-collection-section .image-caption {
  padding: 0.67rem;
  background-color: var(--olss-beige);
  font-size: var(--bs-body-font-size);
  font-style: italic;
  line-height: var(--bs-body-font-line-height);
}

/* Modal Styles */
.olss-image-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1050;
  overflow: hidden;
  outline: 0;
  /* Overlay with 60% black background */
  /* Container for the modal content */
  /* Close button */
  /* Content area */
  /* Image container */
  /* Modal image */
  /* Splide customization for modal */
}
.olss-image-modal.is-active {
  display: flex;
  align-items: center;
  justify-content: center;
}
.olss-image-modal .olss-image-modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9);
}
.olss-image-modal .olss-image-modal-container {
  position: relative;
  width: calc(100% - var(--olss-width-indent-left) * 1);
  height: calc(100% - var(--olss-width-indent-left) * 1);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1051;
}
.olss-image-modal .olss-modal-close {
  position: absolute;
  top: 0;
  right: 0;
  color: var(--olss-white);
  background: transparent;
  border: none;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
  z-index: 1052;
  padding: 0.5rem;
}
.olss-image-modal .olss-modal-close:hover, .olss-image-modal .olss-modal-close:focus {
  color: var(--olss-grey);
}
.olss-image-modal .olss-modal-content {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.olss-image-modal .olss-modal-image-container {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.olss-image-modal .olss-modal-image {
  max-width: 85%;
  max-height: 100%;
  width: 100%;
  height: auto;
  margin: 0 auto;
  object-fit: contain;
}
.olss-image-modal .splide__arrows {
  position: absolute;
  top: 50%;
  width: 100%;
  transform: translateY(-50%);
  z-index: 1052; /* Higher than modal content z-index */
  /* Hide pagination */
  /* Responsive arrow positioning */
  /* Medium screens (576px-767px) - Arrows below image */
  /* Small screens (below 576px) - Arrows on image centerline with margins */
}
.olss-image-modal .splide__arrows .splide__arrow {
  position: absolute;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  width: 40px;
  height: 40px;
}
.olss-image-modal .splide__arrows .splide__arrow.olss-hero-arrow-left {
  left: 20px;
}
.olss-image-modal .splide__arrows .splide__arrow.olss-hero-arrow-right {
  right: 20px;
}
.olss-image-modal .splide__arrows .splide__pagination {
  display: none;
}
@media (min-width: 576px) and (max-width: 767px) {
  .olss-image-modal .splide__arrows {
    position: absolute !important;
    top: auto !important;
    bottom: 20px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: auto !important;
    display: flex !important;
    justify-content: center !important;
    gap: 80px !important;
  }
  .olss-image-modal .splide__arrows .splide__arrow {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
  }
  .olss-image-modal .splide__arrows .splide__arrow.olss-hero-arrow-left, .olss-image-modal .splide__arrows .splide__arrow.olss-hero-arrow-right {
    position: relative !important;
    left: auto !important;
    right: auto !important;
  }
}
@media (max-width: 575px) {
  .olss-image-modal .splide__arrows {
    display: none;
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: calc(100% - 80px) !important; /* Account for margins */
    left: 40px !important; /* 40px margin from left edge */
    right: 40px !important; /* 40px margin from right edge */
  }
  .olss-image-modal .splide__arrows .splide__arrow {
    position: absolute !important;
    top: 0 !important;
    transform: translateY(-50%) !important;
    mix-blend-mode: multiply;
    opacity: 0.9;
  }
  .olss-image-modal .splide__arrows .splide__arrow.olss-hero-arrow-left {
    left: 0 !important;
  }
  .olss-image-modal .splide__arrows .splide__arrow.olss-hero-arrow-right {
    right: 0 !important;
  }
}

/* Additional mobile optimization for image viewing */
/* Prevent body scrolling when modal is open */
body.modal-open {
  overflow: hidden;
}

/* Linked Pages Grid Styles */
.olss-linked-pages-section:not(.olss-linked-pages-grid-row-max-4) + .olss-last-element, .olss-linked-pages-section:not(.olss-linked-pages-grid-row-max-4) + .olss-cta-block-image {
  margin-top: var(--olss-width-margin-bottom);
}
.olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container {
  padding-top: var(--olss-width-margin-bottom) !important;
  padding-left: 20px;
  padding-right: 20px;
  padding-top: var(--olss-width-margin-top);
  padding-bottom: var(--olss-width-margin-bottom);
}
@media (min-width: 576px) {
  .olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 768px) {
  .olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.olss-linked-pages-section .olss-linked-pages-container {
  width: 100%;
  background-color: var(--olss-white);
  padding-top: var(--olss-width-margin-top);
  padding-bottom: var(--olss-width-margin-bottom);
  padding-left: 20px;
  padding-right: 20px;
  /* Card styling */
  /* Allow images to scale while maintaining aspect ratio */
  /* Title overlay styling */
  /* Heading styles */
  /* Border highlight under heading */
  /* Card body styling */
  /* Card link styling */
}
@media (min-width: 576px) {
  .olss-linked-pages-section .olss-linked-pages-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .olss-linked-pages-section .olss-linked-pages-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.olss-linked-pages-section .olss-linked-pages-container .olss-linked-pages-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr); /* Allow column to shrink/expand */
  gap: var(--olss-width-grid-gap-row);
}
@media (min-width: 576px) {
  .olss-linked-pages-section .olss-linked-pages-container .olss-linked-pages-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* Two equal columns that fill the space */
  }
}
.olss-linked-pages-section .olss-linked-pages-container .card {
  width: 100%; /* Fill the grid cell width */
  height: 100%; /* Fill the grid cell height */
  overflow: hidden;
  transition: transform var(--olss-transition-delay-300) ease;
  border-radius: 0; /* Square corners per design */
  background-color: transparent;
}
.olss-linked-pages-section .olss-linked-pages-container .card:hover, .olss-linked-pages-section .olss-linked-pages-container .card:focus-within {
  transform: translateY(-3px);
}
.olss-linked-pages-section .olss-linked-pages-container .card-item {
  width: 100%; /* Ensure card item fills the grid cell */
}
.olss-linked-pages-section .olss-linked-pages-container .card-image-container {
  position: relative;
  overflow: hidden;
  width: 100%;
}
.olss-linked-pages-section .olss-linked-pages-container .card-image-wrapper {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/3;
  width: 100%;
  display: block; /* Ensure wrapper is a block element */
}
.olss-linked-pages-section .olss-linked-pages-container .card-img-top {
  position: absolute; /* Position absolutely within the wrapper */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover; /* Cover the entire container */
  object-position: center; /* Center the image */
}
.olss-linked-pages-section .olss-linked-pages-container .card-title-overlay {
  width: calc(100% - 1rem); /* Width minus the grid gap */
  position: absolute;
  left: 0;
  bottom: 0;
  padding-left: 1em;
  padding-right: 1em;
  padding-top: 0.5em;
  padding-bottom: 0.5em;
}
.olss-linked-pages-section .olss-linked-pages-container .card-title-overlay:after {
  content: "";
  position: absolute;
  bottom: 0px;
  left: 1em;
  right: 0;
  height: 1px;
  background-color: var(--olss-white);
}
.olss-linked-pages-section .olss-linked-pages-container .card-title-overlay.title-radius-corner {
  border-top-right-radius: 2.5rem; /* Keep radius only on title corner */
}
.olss-linked-pages-section .olss-linked-pages-container .page-link-heading {
  position: relative;
  color: var(--olss-white);
  font-size: var(--olss-font-size-heading-4);
  line-height: var(--olss-line-height-heading-4);
  font-weight: var(--olss-font-weight-semi-bold);
  margin: 0;
}
.olss-linked-pages-section .olss-linked-pages-container .card-body {
  width: calc(100% - 1rem); /* Match title width */
  padding: 1rem;
}
.olss-linked-pages-section .olss-linked-pages-container .card-text {
  font-size: var(--olss-font-size-small);
  color: var(--olss-white);
}
.olss-linked-pages-section .olss-linked-pages-container .card-link {
  display: block;
  width: 100%;
  height: 100%;
  color: inherit;
  text-decoration: none;
}
.olss-linked-pages-section .olss-linked-pages-container .card-link:focus {
  outline: none;
}
.olss-linked-pages-section .olss-linked-pages-container .card-link:focus-visible {
  outline: 3px solid var(--olss-bright-blue);
  outline-offset: 3px;
}
.olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container {
  background-color: var(--olss-beige);
  /* Card body styling */
  /* Title overlay styling */
}
.olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container .olss-linked-pages-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr); /* Single column on mobile */
  gap: 1rem;
}
@media (min-width: 576px) {
  .olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container .olss-linked-pages-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* Two equal columns */
    /* Dynamic grid templates based on number of children */
  }
  .olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container .olss-linked-pages-grid:has(.card-item:only-child) {
    grid-template-columns: minmax(0, 1fr); /* Single item fills row */
  }
}
@media (min-width: 768px) {
  .olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container .olss-linked-pages-grid {
    gap: 1rem;
    padding-top: var(--olss-width-margin-top);
    padding-bottom: var(--olss-width-margin-bottom);
  }
  .olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container .olss-linked-pages-grid:has(.card-item:nth-child(2):last-child) {
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* Two equal columns */
  }
  .olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container .olss-linked-pages-grid:has(.card-item:nth-child(3):last-child) {
    grid-template-columns: repeat(3, minmax(0, 1fr)); /* Three equal columns */
  }
  .olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container .olss-linked-pages-grid:has(.card-item:nth-child(4):last-child) {
    grid-template-columns: repeat(4, minmax(0, 1fr)); /* Four equal columns */
  }
}
@media (min-width: 1024px) {
  .olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container .olss-linked-pages-grid {
    gap: 1.5rem;
  }
}
.olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container .card-image-wrapper {
  aspect-ratio: 1/1;
}
@media (min-width: 767px) {
  .olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container .card-image-wrapper {
    aspect-ratio: 260/400;
  }
}
@media screen and (min-width: 768px) and (max-width: 809px) {
  .olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container .card-body {
    width: calc(100% - 0.5rem); /* Match title width */
    padding: 0.5rem; /* Match grid gap */
  }
}
@media screen and (min-width: 768px) and (max-width: 809px) {
  .olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container .card-title-overlay {
    width: calc(100% - 0.5rem); /* Match title width */
    padding: 0.5rem; /* Match grid gap */
  }
  .olss-linked-pages-section.olss-linked-pages-grid-row-max-4 .olss-linked-pages-container .card-title-overlay:after {
    left: 0.5em;
  }
}

/* Map Section Styles */
.olss-map-section {
  margin-top: var(--olss-width-margin-top);
  margin-left: auto;
  margin-right: auto;
  background-color: var(--olss-white);
}
.olss-map-section + .olss-last-element {
  margin-bottom: var(--olss-width-margin-bottom);
}
.olss-map-section .olss-map-container {
  width: 100%;
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 576px) {
  .olss-map-section .olss-map-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .olss-map-section .olss-map-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.olss-map-section .olss-map-container .olss-map-content {
  position: relative;
  width: 100%;
  overflow: hidden;
  padding-bottom: 75%; /* 4:3 aspect ratio (3/4 = 0.75 = 75%) */
  margin-bottom: 2rem;
  height: 0;
}
.olss-map-section .olss-map-container .olss-map-content iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Linked Pages Grid Styles */
.olss-newsletters-section + .olss-last-element {
  margin-bottom: var(--olss-width-margin-bottom);
}
.olss-newsletters-section .olss-newsletters-container {
  padding-top: var(--olss-width-margin-top);
  padding-bottom: var(--olss-width-margin-bottom);
  width: 100%;
  background-color: var(--olss-white);
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 576px) {
  .olss-newsletters-section .olss-newsletters-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .olss-newsletters-section .olss-newsletters-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.olss-newsletters-section .olss-newsletters-container .olss-newsletters-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr); /* Allow column to shrink/expand */
  gap: calc(var(--olss-width-grid-gap-row) / 2);
  padding-bottom: var(--olss-width-margin-bottom);
  /* Add height consistency to cards */
}
.olss-newsletters-section .olss-newsletters-container .olss-newsletters-grid a {
  text-decoration: none;
}
@media (min-width: 576px) {
  .olss-newsletters-section .olss-newsletters-container .olss-newsletters-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* Two equal columns that fill the space */
  }
}
@media (min-width: 1024px) {
  .olss-newsletters-section .olss-newsletters-container .olss-newsletters-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)); /* Four equal columns that fill the space */
  }
}
.olss-newsletters-section .olss-newsletters-container .olss-newsletters-grid .card {
  padding: var(--olss-width-margin-top);
  border-radius: 0;
  position: relative;
  overflow: hidden; /* Ensure pattern overflow is hidden */
  transition: transform 0.3s ease;
}
.olss-newsletters-section .olss-newsletters-container .olss-newsletters-grid .card .card-image-container > p {
  color: var(--olss-black);
  text-decoration: none;
  margin-bottom: 0.5rem;
  position: relative;
  z-index: 1; /* Ensure text appears above the pattern */
}
.olss-newsletters-section .olss-newsletters-container .olss-newsletters-grid .card .card-image-container > p:first-of-type {
  font-weight: var(--olss-font-weight-semi-bold); /* Ensure text appears above the pattern */
  text-transform: uppercase;
  letter-spacing: 0.05rem;
}
.olss-newsletters-section .olss-newsletters-container .olss-newsletters-grid .card .card-image-container > p.olss-page-link {
  color: var(--olss-dirty-red);
  font-weight: var(--olss-font-weight-semi-bold);
  text-transform: none;
  letter-spacing: normal;
}
.olss-newsletters-section .olss-newsletters-container .olss-newsletters-grid .card:hover {
  text-decoration: underline;
  transform: translateY(-3px); /* Subtle lift effect on hover */
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  /* Custom hover effect for the "Download" text */
}
.olss-newsletters-section .olss-newsletters-container .olss-newsletters-grid .card:hover p + p {
  text-decoration: underline;
}
.olss-newsletters-section .olss-newsletters-container .olss-newsletters-grid .card-item {
  height: 180px;
}
@media (min-width: 576px) {
  .olss-newsletters-section .olss-newsletters-container .olss-newsletters-grid .card-item {
    height: 200px;
  }
}
@media (min-width: 1024px) {
  .olss-newsletters-section .olss-newsletters-container .olss-newsletters-grid .card-item {
    height: 260px; /* Four equal columns that fill the space */
  }
}
.olss-newsletters-section .olss-newsletters-container .olss-newsletters-grid .card-item a {
  display: block;
  height: 100%;
}
.olss-newsletters-section .olss-newsletters-container .olss-newsletters-grid .card-item a .card {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* Table Layout Styles */
.olss-table-section + .olss-last-element, .olss-table-section + .olss-cta-block-image {
  margin-top: var(--olss-width-margin-bottom);
}
.olss-table-section .olss-table-container {
  margin-top: var(--olss-width-margin-top);
  margin-left: auto;
  margin-right: auto;
  background-color: var(--olss-white);
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 576px) {
  .olss-table-section .olss-table-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .olss-table-section .olss-table-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.olss-table-section .olss-table-container .olss-table {
  width: 100%;
  /* Small viewports: full width within container */
  /* Medium viewports: maintain exactly 524px content width */
  /* Large viewports: maintain exactly 524px content width */
  /* Extra large viewports: maintain exactly 720px content width */
  /* Responsive adjustments for smaller screens */
}
@media (max-width: 603px) {
  .olss-table-section .olss-table-container .olss-table {
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 604px) and (max-width: 1023px) {
  .olss-table-section .olss-table-container .olss-table {
    /* Account for the container's existing padding (30px each side from fixed-responsive-padding-no-vertical) */
    width: 564px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  .olss-table-section .olss-table-container .olss-table {
    /* Account for the container's existing padding (80px each side from fixed-responsive-padding-no-vertical) */
    width: 720px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 1280px) {
  .olss-table-section .olss-table-container .olss-table {
    /* Fixed width approach for consistency */
    width: 720px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
.olss-table-section .olss-table-container .olss-table .olss-table-row {
  display: flex;
  flex-direction: row;
  width: 100%;
  align-items: flex-start;
  padding: 0.5em 0;
}
.olss-table-section .olss-table-container .olss-table .olss-table-row:not(:last-child) {
  border-bottom: 1px solid var(--olss-key-line-beige);
}
.olss-table-section .olss-table-container .olss-table .olss-table-row:first-child {
  padding-top: 0;
}
.olss-table-section .olss-table-container .olss-table .olss-table-row:last-child {
  padding-bottom: 0;
}
.olss-table-section .olss-table-container .olss-table .olss-table-cell {
  flex: 1;
  padding-right: 10px;
  text-align: left;
  vertical-align: top;
  align-self: flex-start;
}
.olss-table-section .olss-table-container .olss-table .olss-table-cell:last-child {
  padding-right: 0;
  padding-left: 10px;
}
.olss-table-section .olss-table-container .olss-table .olss-table-cell-title {
  font-weight: var(--olss-font-weight-semi-bold);
  font-size: var(--olss-font-size-heading-3);
  line-height: var(--olss-font-line-height-heading-3);
  color: var(--olss-bright-blue);
  position: relative;
}
.olss-table-section .olss-table-container .olss-table .olss-table-cell-content {
  color: var(--olss-black);
}
@media (max-width: 575px) {
  .olss-table-section .olss-table-container .olss-table .olss-table-row {
    flex-direction: column;
  }
  .olss-table-section .olss-table-container .olss-table .olss-table-cell {
    width: 100%;
    padding: 0;
  }
  .olss-table-section .olss-table-container .olss-table .olss-table-cell:last-child {
    padding: 0;
  }
}

.olss-text-link-section + .olss-last-element {
  margin-bottom: var(--olss-width-margin-bottom);
}
.olss-text-link-section + .olss-cta-block-image {
  margin-top: var(--olss-width-margin-bottom);
}
.olss-text-link-section .olss-text-link-container {
  margin-left: auto;
  margin-right: auto;
  background-color: var(--olss-white);
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 576px) {
  .olss-text-link-section .olss-text-link-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .olss-text-link-section .olss-text-link-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.olss-text-link-section .olss-text-link-container .olss-text-link-content {
  width: 100%;
  /* Small viewports: full width within container */
  /* Medium viewports: maintain exactly 524px content width */
  /* Large viewports: maintain exactly 524px content width */
  /* Extra large viewports: maintain exactly 720px content width */
}
@media (max-width: 603px) {
  .olss-text-link-section .olss-text-link-container .olss-text-link-content {
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 604px) and (max-width: 1023px) {
  .olss-text-link-section .olss-text-link-container .olss-text-link-content {
    /* Account for the container's existing padding (30px each side from fixed-responsive-padding-no-vertical) */
    width: 564px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  .olss-text-link-section .olss-text-link-container .olss-text-link-content {
    /* Account for the container's existing padding (80px each side from fixed-responsive-padding-no-vertical) */
    width: 720px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 1280px) {
  .olss-text-link-section .olss-text-link-container .olss-text-link-content {
    /* Fixed width approach for consistency */
    width: 720px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
.olss-text-link-section .olss-text-link-container .olss-text-link-content .olss-text-link-item {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.olss-text-link-section .olss-text-link-container .olss-text-link-content .olss-text-link-item:first-child {
  padding-top: 0;
}
.olss-text-link-section .olss-text-link-container .olss-text-link-content .olss-text-link-item:last-child {
  padding-bottom: 0;
}
.olss-text-link-section .olss-text-link-container .olss-text-link-content .olss-text-link-item a {
  text-decoration: none;
}
.olss-text-link-section .olss-text-link-container .olss-text-link-content .olss-text-link-item a .olss-text-link-title {
  font-weight: var(--olss-font-weight-semi-bold);
  font-size: var(--bs-body-font-size);
  color: var(--olss-dirty-red);
  margin-bottom: 0;
}
.olss-text-link-section .olss-text-link-container .olss-text-link-content .olss-text-link-item a .olss-text-link-description {
  font-weight: var(--olss-font-weight-regular);
  font-size: var(--bs-body-font-size);
  color: var(--olss-black);
  margin-bottom: 0;
}
.olss-text-link-section .olss-text-link-container .olss-text-link-content .olss-text-link-item a:hover .olss-text-link-title, .olss-text-link-section .olss-text-link-container .olss-text-link-content .olss-text-link-item a:hover .olss-text-link-description {
  text-decoration: underline;
}

/* Title Row Styles */
.olss-title-row {
  margin-top: var(--olss-width-margin-top);
  margin-left: auto;
  margin-right: auto;
  background-color: var(--olss-white);
}
.olss-title-row + .olss-last-element {
  margin-bottom: var(--olss-width-margin-bottom);
}
.olss-title-row .olss-title-row-container {
  width: 100%;
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 576px) {
  .olss-title-row .olss-title-row-container {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (min-width: 1024px) {
  .olss-title-row .olss-title-row-container {
    padding-left: 80px;
    padding-right: 80px;
  }
}
.olss-title-row .olss-title-row-container .olss-title-row-content {
  font-family: "Noto Sans", sans-serif;
  font-weight: var(--olss-font-weight-medium);
  color: var(--olss-mid-blue);
  font-size: var(--olss-font-size-heading-2);
  line-height: var(--olss-line-height-heading-2);
  text-align: left;
  /* Small viewports: full width within container */
  /* Medium viewports: maintain exactly 524px content width */
  /* Large viewports: maintain exactly 524px content width */
  /* Extra large viewports: maintain exactly 720px content width */
}
@media (max-width: 603px) {
  .olss-title-row .olss-title-row-container .olss-title-row-content {
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 604px) and (max-width: 1023px) {
  .olss-title-row .olss-title-row-container .olss-title-row-content {
    /* Account for the container's existing padding (30px each side from fixed-responsive-padding-no-vertical) */
    width: 564px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  .olss-title-row .olss-title-row-container .olss-title-row-content {
    /* Account for the container's existing padding (80px each side from fixed-responsive-padding-no-vertical) */
    width: 720px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 1280px) {
  .olss-title-row .olss-title-row-container .olss-title-row-content {
    /* Fixed width approach for consistency */
    width: 720px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}

.olss-horizontal-rule + .olss-title-row {
  margin-top: 0;
}
