:root {
  /* Heading */
  --oxfcms-heading--background_colour: transparent;
  --oxfcms-heading--underline: none;
  /* Heading 1 */
  --oxfcms-heading--h1--text_colour: #002147;
  --oxfcms-heading--h1--font_family: 'Noto Serif';
  --oxfcms-heading--h1--font_size: 3.375rem;
  --oxfcms-heading--h1--font_weight: 400;
  --oxfcms-heading--h1--font_style: normal;
  --oxfcms-heading--h1--line_height: 120%;
  /* Heading 2 */
  --oxfcms-heading--h2--text_colour: #002147;
  --oxfcms-heading--h2--font_family: 'Noto Serif';
  --oxfcms-heading--h2--font_size: 2.75rem;
  --oxfcms-heading--h2--font_weight: 400;
  --oxfcms-heading--h2--font_style: normal;
  --oxfcms-heading--h2--line_height: 120%;
  /* Heading 3 */
  --oxfcms-heading--h3--text_colour: #002147;
  --oxfcms-heading--h3--font_family: 'Noto Serif';
  --oxfcms-heading--h3--font_size: 2.125rem;
  --oxfcms-heading--h3--font_weight: 400;
  --oxfcms-heading--h3--font_style: normal;
  --oxfcms-heading--h3--line_height: 120%;
  /* Heading 4 */
  --oxfcms-heading--h4--text_colour: #002147;
  --oxfcms-heading--h4--font_family: 'Noto Serif';
  --oxfcms-heading--h4--font_size: 1.75rem;
  --oxfcms-heading--h4--font_weight: 400;
  --oxfcms-heading--h4--font_style: normal;
  --oxfcms-heading--h4--line_height: 120%;
  /* Heading 5 */
  --oxfcms-heading--h5--text_colour: #002147;
  --oxfcms-heading--h5--font_family: 'Noto Serif';
  --oxfcms-heading--h5--font_size: 1.5rem;
  --oxfcms-heading--h5--font_weight: 400;
  --oxfcms-heading--h5--font_style: normal;
  --oxfcms-heading--h5--line_height: 120%;
  /* Heading 6 */
  --oxfcms-heading--h6--text_colour: #002147;
  --oxfcms-heading--h6--font_family: 'Noto Serif';
  --oxfcms-heading--h6--font_size: 1.375rem;
  --oxfcms-heading--h6--font_weight: 400;
  --oxfcms-heading--h6--font_style: normal;
  --oxfcms-heading--h6--line_height: 120%;
}
/* Main styling */
.paragraph--type--oxfcms-heading,
.paragraph--type--text,
.paragraph--type--oxfcms-media-gallery {
  .oxfcms-heading {
    background-color: var(--oxfcms-heading--background_colour);
    text-decoration: var(--oxfcms-heading--underline);
  }
  h1 {
    color: var(--oxfcms-heading--h1--text_colour);
    font-family: var(--oxfcms-heading--h1--font_family);
    font-size: var(--oxfcms-heading--h1--font_size);
    font-weight: var(--oxfcms-heading--h1--font_weight);
    font-style: var(--oxfcms-heading--h1--font_style);
    line-height: var(--oxfcms-heading--h1--line_height);
  }
  h2 {
    color: var(--oxfcms-heading--h2--text_colour);
    font-family: var(--oxfcms-heading--h2--font_family);
    font-size: var(--oxfcms-heading--h2--font_size);
    font-weight: var(--oxfcms-heading--h2--font_weight);
    font-style: var(--oxfcms-heading--h2--font_style);
    line-height: var(--oxfcms-heading--h2--line_height);
  }
  h3 {
    color: var(--oxfcms-heading--h3--text_colour);
    font-family: var(--oxfcms-heading--h3--font_family);
    font-size: var(--oxfcms-heading--h3--font_size);
    font-weight: var(--oxfcms-heading--h3--font_weight);
    font-style: var(--oxfcms-heading--h3--font_style);
    line-height: var(--oxfcms-heading--h3--line_height);
  }
  h4 {
    color: var(--oxfcms-heading--h4--text_colour);
    font-family: var(--oxfcms-heading--h4--font_family);
    font-size: var(--oxfcms-heading--h4--font_size);
    font-weight: var(--oxfcms-heading--h4--font_weight);
    font-style: var(--oxfcms-heading--h4--font_style);
    line-height: var(--oxfcms-heading--h4--line_height);
  }
  h5 {
    color: var(--oxfcms-heading--h5--text_colour);
    font-family: var(--oxfcms-heading--h5--font_family);
    font-size: var(--oxfcms-heading--h5--font_size);
    font-weight: var(--oxfcms-heading--h5--font_weight);
    font-style: var(--oxfcms-heading--h5--font_style);
    line-height: var(--oxfcms-heading--h5--line_height);
  }
  h6 {
    color: var(--oxfcms-heading--h6--text_colour);
    font-family: var(--oxfcms-heading--h6--font_family);
    font-size: var(--oxfcms-heading--h6--font_size);
    font-weight: var(--oxfcms-heading--h6--font_weight);
    font-style: var(--oxfcms-heading--h6--font_style);
    line-height: var(--oxfcms-heading--h6--line_height);
  }
  /* Text alignment */
  &.text-align--left {
    text-align: left;
  }
  &.text-align--center {
    text-align: center;
  }
  &.text-align--right {
    text-align: right;
  }
}
/* Override heading colour in Banner/Card */
.oxfcms-layout-banner,
.oxfcms-layout-card {
  .paragraph--type--oxfcms-heading,
  .paragraph--type--text {
    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
      color: inherit;
    }
  }
}
/* Spacing */
.l__main > .l__region > .paragraph--type--text :is(h1, h2, h3, h4, h5, h6),
.l__main > .l__region > .paragraph--type--oxfcms-heading :is(h1, h2, h3, h4, h5, h6) {
  margin-top: clamp(3rem, 2.5rem + 0.5vw, 3.75rem); /* 48px–60px */
  margin-bottom: clamp(1rem, 0.75rem + 0.5vw, 1.25rem); /* 16px–20px */
}
/* Narrowing logic */
.l--layout-onecolumn {
  & > .l__main {
    & > .l__primary {
      & > .paragraph--type--oxfcms-heading {
        /* 
          Heading followed by Text
          Heading followed by up to 5 other Headings followed by Text
          Heading followed by Accordion
        */
        /* H = Heading. T = Text. */
        &:has(+ .paragraph--type--text), /* H > T */
        &:has(+ .paragraph--type--oxfcms-heading + .paragraph--type--text), /* H > H > T */
        &:has(+ .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--text), /* H > H > H > T */
        &:has(+ .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--text), /* H > H > H > H > T */
        &:has(+ .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--text), /* H > H > H > H > H > T */
        &:has(+ .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--text), /* H > H > H > H > H > H > T */
        &:has(+ .paragraph--type--oxfcms-accordion), /* H > A */
        &:has(+ .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-accordion), /* H > H > A */
        &:has(+ .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-accordion), /* H > H > H > A */
        &:has(+ .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-accordion), /* H > H > H > H > A */
        &:has(+ .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-accordion), /* H > H > H > H > H > A */
        &:has(+ .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-accordion) /* H > H > H > H > H > H > A */ 
        {
          width: var(--oxfcms-component--small-width);
          margin: auto;
        }
      }
      & > .paragraph--type--oxfcms-tabs {
        .me-tabs__tab-content {
          & > .paragraph--type--oxfcms-heading {
            &:has(+ .paragraph--type--text),
            &:has(+ .paragraph--type--oxfcms-accordion) {
              width: var(--oxfcms-component--small-width);
              margin: auto;
            }
          }
        }
      }
    }
  }
}
/* Narrowing logic - Mercury */
.field__item, .js-lpb-component {
  /* 
    Section adjacent to Section with Text as first component
    Section adjacent to Section with Heading as first component, adjacent to Text
    Section adjacent to Section with Heading as first component, adjacent to Heading(s) adjacent to Text
  */
  &:has(+ .field__item > .paragraph--type--section > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--text:first-child),
  &:has(+ .field__item > .paragraph--type--section > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--text),
  &:has(+ .field__item > .paragraph--type--section > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-heading + .paragraph--type--text),
  &:has(+ .field__item > .paragraph--type--section > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--text),
  &:has(+ .field__item > .paragraph--type--section > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--text),
  &:has(+ .field__item > .paragraph--type--section > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--text),
  &:has(+ .field__item > .paragraph--type--section > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-accordion:first-child),
  &:has(+ .field__item > .paragraph--type--section > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-accordion),
  &:has(+ .field__item > .paragraph--type--section > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-accordion),
  &:has(+ .field__item > .paragraph--type--section > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-accordion),
  &:has(+ .field__item > .paragraph--type--section > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-accordion),
  &:has(+ .field__item > .paragraph--type--section > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-accordion) {
    & > .paragraph--type--section {
      & > .l--layout-onecolumn {
        & > .l__main {
          & > .l__primary {
            & > .paragraph--type--oxfcms-heading {
              width: var(--oxfcms-component--small-width);
              margin: auto;
            }
          }
        }
      }
    }
  }
  &:has(+ .js-lpb-component > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--text:first-child),
  &:has(+ .js-lpb-component > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--text),
  &:has(+ .js-lpb-component > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-heading + .paragraph--type--text),
  &:has(+ .js-lpb-component > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--text),
  &:has(+ .js-lpb-component > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--text),
  &:has(+ .js-lpb-component > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--text),
  &:has(+ .js-lpb-component > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-accordion:first-child),
  &:has(+ .js-lpb-component > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-accordion),
  &:has(+ .js-lpb-component > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-accordion),
  &:has(+ .js-lpb-component > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-accordion),
  &:has(+ .js-lpb-component > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-accordion),
  &:has(+ .js-lpb-component > .l--layout-onecolumn > .l__main > .l__primary > .paragraph--type--oxfcms-heading:first-child + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-heading + .paragraph--type--oxfcms-accordion) {
    & > .l--layout-onecolumn {
      & > .l__main {
        & > .l__primary {
          & > .paragraph--type--oxfcms-heading {
            width: var(--oxfcms-component--small-width);
            margin: auto;
          }
        }
      }
    }
  }
}
/* Breakpoint - Small Desktop */
@media (width < 1280px) {
  .oxfcms-heading,
  .text-formatted.field--name-field-wysiwyg-content {
    --oxfcms-heading--h1--font_size: 2.625rem;
    --oxfcms-heading--h2--font_size: 2.25rem;
    --oxfcms-heading--h3--font_size: 1.875rem;
    --oxfcms-heading--h4--font_size: 1.625rem;
    --oxfcms-heading--h5--font_size: 1.375rem;
    --oxfcms-heading--h6--font_size: 1.25rem;
  }
}
/* Breakpoint - Tablet */
@media (width < 768px) {
  .oxfcms-heading,
  .text-formatted.field--name-field-wysiwyg-content {
    --oxfcms-heading--h1--font_size: 2.125rem;
    --oxfcms-heading--h2--font_size: 1.75rem;
    --oxfcms-heading--h3--font_size: 1.5rem;
    --oxfcms-heading--h4--font_size: 1.25rem;
    --oxfcms-heading--h5--font_size: 1.125rem;
    --oxfcms-heading--h6--font_size: 1.125rem;
  }
}
