/**
 * Can Group - Global Styles
 */

/* ==========================================================================
   CSS Custom Properties
   ========================================================================== */

:root {
    --cg-font-heading: 'Torque', Arial, sans-serif;
    --cg-font-body: Arial, 'Helvetica Neue', Helvetica, sans-serif;
    
    --cg-color-primary: #00a94f;
    --cg-color-secondary: #43b649;
    --cg-color-lighter-primary: #48ac34;
    --cg-color-dark-highlight: #f08000;
    --cg-color-highlight-green: #03cd00;
    --cg-color-highlight: #f59a00;
    --cg-color-lighter-highlight:#eeb940;
    --cg-color-white: #ffffff;
    --cg-color-off-white: #eeefee;
    --cg-color-black: #000000;
    --cg-color-grey: #777777;
    --cg-color-lighter-grey: #b3b3b3;
    
    --cg-spacing-xs: 0.5rem;
    --cg-spacing-sm: 1rem;
    --cg-spacing-md: 1.5rem;
    --cg-spacing-lg: 2rem;
    --cg-spacing-xl: 3rem;
    --cg-spacing-2xl: 4rem;
    
    --cg-container-narrow: 720px;
    --cg-container-default: 1200px;
    --cg-container-wide: 1320px;
}

/*@font-face {
    font-family: 'Torque';
    src: url('../fonts/Torque-Bold.woff2') format('woff2'),
         url('../fonts/Torque-Bold.woff') format('woff');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}*/

/* Prevent accidental link clicks in block editor */
.block-editor-block-list__layout .acf-block-preview a:not(.components-button) {
    pointer-events: none;
    cursor: default;
}

.u-bg-green {
    background-color: var(--cg-color-primary);
}

.u-bg-white {
    background-color: var(--cg-color-white);
}

.u-bg-off-white {
    background-color: var(--cg-color-off-white);
}

/* ==========================================================================
   Typography
   ========================================================================== */

h1, h2, h3, h4, h5, h6 {
    font-family: var(--cg-font-heading);
    /*font-feature-settings: "titl" 1 !important;*/
    font-weight: 700;
    line-height: 1.2;
    margin-bottom:0;
    margin-top: 0;
}

/*body h1, body h2, body h3, body h4, body h5, body h6 {
    font-feature-settings: "titl" 1 !important;
}*/

h1 { font-size: 2.5rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.75rem; }
h4 { font-size: 1.5rem; }
h5 { font-size: 1.25rem; }
h6 { font-size: 1rem; }

p {
    font-family: var(--cg-font-body);
    font-size: 1.2rem;
    line-height: 1.4;
    margin-top: 0;
    color:var(--cg-color-grey);
}

/* ==========================================================================
   Buttons
   ========================================================================== */

a.c-button,
a.c-button:hover,
a.c-button:focus,
a.c-button:visited {
    display: inline-block;
    font-family: var(--cg-font-body);
    font-size: 1rem;
    font-weight: 700;
    text-decoration: none !important;
    padding: 0.4rem 1.2rem;
    border: 2px solid transparent;
    border-radius: 0.5rem;
    cursor: pointer;
    transition: all 0.3s ease;
}

a.c-button--primary,
a.c-button--primary:visited {
    background-color: var(--cg-color-primary);
    color: var(--cg-color-white) !important;
    border-color: var(--cg-color-primary);
}

a.c-button--primary:hover,
a.c-button--primary:focus {
    background-color: var(--cg-color-secondary);
    color: var(--cg-color-white) !important;
    border-color: var(--cg-color-secondary);
}

/* ==========================================================================
   BLOCK CONTAINER RESPONSIVE PADDING
   ========================================================================== */

@media (max-width: 1300px) {
    /* Add horizontal padding to block containers on tablet/mobile */
    [class*="__container"]:not(.b-homepage-hero__container) {
        padding-left: var(--cg-spacing-md) !important;
        padding-right: var(--cg-spacing-md) !important;
    }

     /* Add horizontal padding to footer sections */
    .site-above-footer-wrap .site-footer-section,
    .site-below-footer-wrap .site-footer-section {
        padding-left: var(--cg-spacing-md) !important;
        padding-right: var(--cg-spacing-md) !important;
    }
}

/* ==========================================================================
   Text & Image Block
   ========================================================================== */

.b-text-image__container {
    width: 100%;
    max-width: 1200px !important;
    margin-left: auto;
    margin-right: auto;
    /*padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);*/
}

.b-text-image {
    padding: var(--cg-spacing-xl) 0;
}

.b-text-image--bg-white {
    background-color: var(--cg-color-white) !important;
}

.b-text-image--bg-off-white {
    background-color: var(--cg-color-off-white) !important;
}

.b-text-image--bg-green {
    background-color: var(--cg-color-primary) !important;
}

.b-text-image--bg-green .b-text-image__heading {
    color: var(--cg-color-white);
}

.b-text-image--bg-green .b-text-image__body,
.b-text-image--bg-green .b-text-image__body p {
    color: var(--cg-color-white) !important;
}

.b-text-image--bg-green a.c-button--primary,
.b-text-image--bg-green a.c-button--primary:visited {
    background-color: var(--cg-color-white);
    color: var(--cg-color-primary) !important;
    border-color: var(--cg-color-white);
}

.b-text-image--bg-green a.c-button--primary:hover,
.b-text-image--bg-green a.c-button--primary:focus {
    background-color: var(--cg-color-highlight);
    color: var(--cg-color-white) !important;
    border-color: var(--cg-color-highlight);
}

.b-text-image__image {
    width: 100%;
    height: auto;
    display: block;
}

.b-text-image__heading {
    color: var(--cg-color-primary);
    margin-bottom: var(--cg-spacing-md);
    text-transform: uppercase;
}

.b-text-image__heading--as-entered {
    text-transform: none !important;
}

.editor-styles-wrapper .b-text-image__heading,
.block-editor-block-list__layout .b-text-image__heading {
    color: var(--cg-color-primary) !important;
    text-transform: uppercase;
}

.editor-styles-wrapper .b-text-image--bg-green .b-text-image__heading,
.block-editor-block-list__layout .b-text-image--bg-green .b-text-image__heading {
    color: var(--cg-color-white) !important;
}

.editor-styles-wrapper .b-text-image--bg-green .b-text-image__body,
.editor-styles-wrapper .b-text-image--bg-green .b-text-image__body p,
.block-editor-block-list__layout .b-text-image--bg-green .b-text-image__body,
.block-editor-block-list__layout .b-text-image--bg-green .b-text-image__body p {
    color: var(--cg-color-white) !important;
}

.editor-styles-wrapper .b-text-image--bg-green a.c-button--primary,
.block-editor-block-list__layout .b-text-image--bg-green a.c-button--primary {
    background-color: var(--cg-color-white) !important;
    color: var(--cg-color-primary) !important;
    border-color: var(--cg-color-white) !important;
}

.b-text-image__body {
    margin-bottom: var(--cg-spacing-md);
}

.b-text-image .row {
    display: flex;
    flex-wrap: wrap;
    --bs-gutter-x: 4rem;
}

.b-text-image--image-left .b-text-image__image-col {
    order: 1;
}

.b-text-image--image-left .b-text-image__content-col {
    order: 2;
}

.b-text-image--image-right .b-text-image__image-col {
    order: 2;
}

.b-text-image--image-right .b-text-image__content-col {
    order: 1;
}

@media (max-width: 991.98px) {
    .b-text-image__image-col {
        order: 1 !important;
        margin-bottom: var(--cg-spacing-lg);
    }
    
    .b-text-image__content-col {
        order: 2 !important;
    }
}

/* ==========================================================================
   09 - CENTERED TEXT BLOCK
   ========================================================================== */

.b-centered-text {
    padding: var(--cg-spacing-2xl) 0;
    text-align: center;
}

.b-centered-text__container {
    width: 100%;
    max-width: 800px !important;
    margin-left: auto;
    margin-right: auto;
    /*padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);*/
}

.b-centered-text__heading {
    color: var(--cg-color-primary);
    text-transform: uppercase;
    margin-bottom: var(--cg-spacing-md);
}

.b-centered-text__heading--as-entered {
    text-transform: none !important;
}

.b-centered-text__content {
    max-width: 650px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: var(--cg-spacing-md);
}

.b-centered-text__content p {
    font-size:1.4rem;
    line-height:1.2;
}

.b-centered-text__content p:last-child {
    margin-bottom: 0;
}

.b-centered-text__cta {
    margin-top: var(--cg-spacing-lg);
}

/* Background variants */
.b-centered-text--bg-white {
    background-color: var(--cg-color-white);
}

.b-centered-text--bg-off-white {
    background-color: var(--cg-color-off-white);
}

.b-centered-text--bg-green {
    background-color: var(--cg-color-primary);
}

.b-centered-text--bg-green .b-centered-text__heading {
    color: var(--cg-color-white);
}

.b-centered-text--bg-green .b-centered-text__content p {
    color: var(--cg-color-white) !important;
}

/* Text Link Component (underline style CTA) */
a.c-text-link,
a.c-text-link:visited {
    display: inline-block;
    font-family: var(--cg-font-heading);
    font-size: 1rem;
    font-weight: 700;
    text-transform: uppercase;
    text-decoration: none !important;
    border-bottom: 6px solid var(--cg-color-highlight);
    transition: all 0.3s ease;
}

a.c-text-link--dark,
a.c-text-link--dark:visited {
    color: var(--cg-color-primary) !important;
}

a.c-text-link--dark:hover,
a.c-text-link--dark:focus {
    color: var(--cg-color-secondary) !important;
}

a.c-text-link--light,
a.c-text-link--light:visited {
    color: var(--cg-color-white) !important;
}

a.c-text-link--light:hover,
a.c-text-link--light:focus {
    color: var(--cg-color-off-white) !important;
}

/* Block editor styles */
.editor-styles-wrapper .b-centered-text__heading,
.block-editor-block-list__layout .b-centered-text__heading {
    color: var(--cg-color-primary) !important;
    text-transform: uppercase;
}

.editor-styles-wrapper .b-centered-text--bg-green .b-centered-text__heading,
.block-editor-block-list__layout .b-centered-text--bg-green .b-centered-text__heading {
    color: var(--cg-color-white) !important;
}

.editor-styles-wrapper .b-centered-text--bg-green .b-centered-text__content,
.block-editor-block-list__layout .b-centered-text--bg-green .b-centered-text__content {
    color: var(--cg-color-white) !important;
}

.editor-styles-wrapper a.c-text-link--dark,
.block-editor-block-list__layout a.c-text-link--dark {
    color: var(--cg-color-primary) !important;
}

.editor-styles-wrapper a.c-text-link--light,
.block-editor-block-list__layout a.c-text-link--light {
    color: var(--cg-color-white) !important;
}

/* Button variant for green background */
.b-centered-text a.c-button--light,
.b-centered-text a.c-button--light:visited {
    background-color: var(--cg-color-white);
    color: var(--cg-color-primary) !important;
    border-color: var(--cg-color-white);
}

.b-centered-text a.c-button--light:hover,
.b-centered-text a.c-button--light:focus {
    background-color: var(--cg-color-highlight);
    color: var(--cg-color-white) !important;
    border-color: var(--cg-color-highlight);
}

/* Block editor button styles */
.editor-styles-wrapper .b-centered-text a.c-button--light,
.block-editor-block-list__layout .b-centered-text a.c-button--light {
    background-color: var(--cg-color-white) !important;
    color: var(--cg-color-primary) !important;
    border-color: var(--cg-color-white) !important;
}

/* Icon Items Section */
.b-centered-text__icon-items {
    margin-top: var(--cg-spacing-2xl);
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.b-centered-text__icon-items .row {
    --bs-gutter-x: 2rem;
    --bs-gutter-y: var(--cg-spacing-md);
}

.b-centered-text__icon-item {
    display: flex;
    align-items: center;
    gap: var(--cg-spacing-sm);
    text-align: left;
}

.b-centered-text__icon-item i {
    font-size: 2rem;
    flex-shrink: 0;
    width: 2.5rem;
    text-align: center;
}

.b-centered-text__icon-text {
    font-family: var(--cg-font-heading);
    font-size: 1.25rem;
    font-weight: 700;
    text-transform: uppercase;
}

/* Icon items on white/off-white backgrounds */
.b-centered-text--bg-white .b-centered-text__icon-item i,
.b-centered-text--bg-off-white .b-centered-text__icon-item i {
    color: var(--cg-color-primary);
}

.b-centered-text--bg-white .b-centered-text__icon-text,
.b-centered-text--bg-off-white .b-centered-text__icon-text {
    color: var(--cg-color-primary);
}

/* Icon items on green background */
.b-centered-text--bg-green .b-centered-text__icon-item i {
    color: var(--cg-color-white);
}

.b-centered-text--bg-green .b-centered-text__icon-text {
    color: var(--cg-color-white);
}

/* Block editor icon items */
.editor-styles-wrapper .b-centered-text__icon-item,
.block-editor-block-list__layout .b-centered-text__icon-item {
    display: flex !important;
    align-items: center !important;
    gap: var(--cg-spacing-sm) !important;
    text-align: left !important;
}

.editor-styles-wrapper .b-centered-text--bg-green .b-centered-text__icon-item i,
.block-editor-block-list__layout .b-centered-text--bg-green .b-centered-text__icon-item i {
    color: var(--cg-color-white) !important;
}

.editor-styles-wrapper .b-centered-text--bg-green .b-centered-text__icon-text,
.block-editor-block-list__layout .b-centered-text--bg-green .b-centered-text__icon-text {
    color: var(--cg-color-white) !important;
}

/* Responsive - single column on mobile */
@media (max-width: 575.98px) {
    .b-centered-text__icon-items .col-6 {
        width: 100%;
    }
}

/* Image Section */
.b-centered-text__image {
    margin-top: var(--cg-spacing-2xl);
}

.b-centered-text__image img {
    display: block;
    max-width: 100%;
    height: auto;
    margin-left: auto;
    margin-right: auto;
}

/* Button variant for light backgrounds (white/off-white) - uses existing c-button--primary */

/* Button variant for green background */
.b-centered-text a.c-button--light,
.b-centered-text a.c-button--light:visited {
    background-color: var(--cg-color-white);
    color: var(--cg-color-primary) !important;
    border-color: var(--cg-color-white);
}

.b-centered-text a.c-button--light:hover,
.b-centered-text a.c-button--light:focus {
    background-color: var(--cg-color-highlight);
    color: var(--cg-color-white) !important;
    border-color: var(--cg-color-highlight);
}

/* Block editor button styles */
.editor-styles-wrapper .b-centered-text a.c-button--light,
.block-editor-block-list__layout .b-centered-text a.c-button--light {
    background-color: var(--cg-color-white) !important;
    color: var(--cg-color-primary) !important;
    border-color: var(--cg-color-white) !important;
}

/* Icon Items Section */
.b-centered-text__icon-items {
    margin-top: var(--cg-spacing-2xl);
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.b-centered-text__icon-items .row {
    --bs-gutter-x: 2rem;
    --bs-gutter-y: var(--cg-spacing-md);
}

.b-centered-text__icon-item {
    display: flex;
    align-items: center;
    gap: var(--cg-spacing-sm);
    text-align: left;
}

.b-centered-text__icon-item i {
    font-size: 2rem;
    flex-shrink: 0;
    width: 2.5rem;
    text-align: center;
}

.b-centered-text__icon-text {
    font-family: var(--cg-font-heading);
    font-size: 1.25rem;
    font-weight: 700;
    text-transform: uppercase;
}

/* Icon items on white/off-white backgrounds */
.b-centered-text--bg-white .b-centered-text__icon-item i,
.b-centered-text--bg-off-white .b-centered-text__icon-item i {
    color: var(--cg-color-primary);
}

.b-centered-text--bg-white .b-centered-text__icon-text,
.b-centered-text--bg-off-white .b-centered-text__icon-text {
    color: var(--cg-color-primary);
}

/* Icon items on green background */
.b-centered-text--bg-green .b-centered-text__icon-item i {
    color: var(--cg-color-white);
}

.b-centered-text--bg-green .b-centered-text__icon-text {
    color: var(--cg-color-white);
}

/* Block editor icon items */
.editor-styles-wrapper .b-centered-text__icon-item,
.block-editor-block-list__layout .b-centered-text__icon-item {
    display: flex !important;
    align-items: center !important;
    gap: var(--cg-spacing-sm) !important;
    text-align: left !important;
}

.editor-styles-wrapper .b-centered-text--bg-green .b-centered-text__icon-item i,
.block-editor-block-list__layout .b-centered-text--bg-green .b-centered-text__icon-item i {
    color: var(--cg-color-white) !important;
}

.editor-styles-wrapper .b-centered-text--bg-green .b-centered-text__icon-text,
.block-editor-block-list__layout .b-centered-text--bg-green .b-centered-text__icon-text {
    color: var(--cg-color-white) !important;
}

/* Responsive - single column on mobile */
@media (max-width: 575.98px) {
    .b-centered-text__icon-items .col-6 {
        width: 100%;
    }
}

/* ==========================================================================
   Block: Centered Heading
   ========================================================================== */

.b-centered-heading {
    background-color: var(--cg-color-white);
    padding-top: var(--cg-spacing-xl);
    padding-bottom: var(--cg-spacing-xl);
}

.b-centered-heading__container {
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
/*    padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);*/
    text-align: center;
}

.b-centered-heading--left .b-centered-heading__container {
    text-align: left;
}

.b-centered-heading--off-white {
    background-color: var(--cg-color-off-white);
}

.b-centered-heading--primary {
    background-color: var(--cg-color-primary);
}

.b-centered-heading--primary .b-centered-heading__heading {
    color: var(--cg-color-white);
}

/* Block editor - primary background */
.editor-styles-wrapper .b-centered-heading--primary,
.block-editor-block-list__layout .b-centered-heading--primary {
    background-color: var(--cg-color-primary) !important;
}

.editor-styles-wrapper .b-centered-heading--primary .b-centered-heading__heading,
.block-editor-block-list__layout .b-centered-heading--primary .b-centered-heading__heading {
    color: var(--cg-color-white) !important;
}

.b-centered-heading__heading {
    color: var(--cg-color-primary);
    /*text-transform: uppercase;*/
    margin-bottom: 0;
}

/* Block editor */
.editor-styles-wrapper .b-centered-heading__heading,
.block-editor-block-list__layout .b-centered-heading__heading {
    color: var(--cg-color-primary) !important;
    text-transform: uppercase;
}

/* ==========================================================================
   Block: Two-Column Text on White + CTA
   ========================================================================== */

.b-two-column-text {
    background-color: var(--cg-color-white);
    padding-top: var(--cg-spacing-xl);
    padding-bottom: var(--cg-spacing-xl);
}

/* Green background variant */
.b-two-column-text--primary {
    background-color: var(--cg-color-primary);
}

.b-two-column-text--primary .b-two-column-text__content,
.b-two-column-text--primary .b-two-column-text__content p,
.b-two-column-text--primary .b-two-column-text__content li {
    color: var(--cg-color-white);
}

/* Block editor - primary background */
.editor-styles-wrapper .b-two-column-text--primary,
.block-editor-block-list__layout .b-two-column-text--primary {
    background-color: var(--cg-color-primary) !important;
}

.editor-styles-wrapper .b-two-column-text--primary .b-two-column-text__content,
.block-editor-block-list__layout .b-two-column-text--primary .b-two-column-text__content,
.editor-styles-wrapper .b-two-column-text--primary .b-two-column-text__content p,
.block-editor-block-list__layout .b-two-column-text--primary .b-two-column-text__content p {
    color: var(--cg-color-white) !important;
}

.b-two-column-text__container {
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
/*    padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);*/
}

.b-two-column-text__content {
    column-count: 2;
    column-gap: var(--cg-spacing-2xl);
    text-align: center;
}

.b-two-column-text__content p:first-child {
    margin-top: 0;
}

.b-two-column-text__content p:last-child {
    margin-bottom: 0;
}

.b-two-column-text__cta-wrapper {
    text-align: center;
    margin-top: var(--cg-spacing-lg);
}

/* Responsive: single column on smaller screens */
@media (max-width: 767px) {
    .b-two-column-text__content {
        column-count: 1;
    }
}

/* Block editor */
.editor-styles-wrapper .b-two-column-text__content,
.block-editor-block-list__layout .b-two-column-text__content {
    column-count: 2;
    column-gap: var(--cg-spacing-2xl);
    text-align: center;
}

@media (max-width: 767px) {
    .editor-styles-wrapper .b-two-column-text__content,
    .block-editor-block-list__layout .b-two-column-text__content {
        column-count: 1;
    }
}

.b-two-column-text--no-top-padding {
    padding-top: 0;
}

.b-two-column-text--off-white {
    background-color: var(--cg-color-off-white);
}

/* ==========================================================================
   Block: Text & Image Columns
   ========================================================================== */

.b-text-image-columns {
    background-color: var(--cg-color-white);
    padding-top: var(--cg-spacing-xl);
    padding-bottom: var(--cg-spacing-xl);
}

.b-text-image-columns--off-white {
    background-color: var(--cg-color-off-white);
}

.b-text-image-columns__container {
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
/*    padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);*/
}

.b-text-image-columns .row {
    --bs-gutter-x: var(--cg-spacing-2xl);
    align-items: flex-start;
}

.b-text-image-columns__section:not(:last-child) {
    margin-bottom: var(--cg-spacing-lg);
}

.b-text-image-columns__heading {
    color: var(--cg-color-primary);
    /*text-transform: uppercase;*/
    margin-bottom: var(--cg-spacing-sm);
}

.b-text-image-columns__text p:first-child {
    margin-top: 0;
}

.b-text-image-columns__text p:last-child {
    margin-bottom: 0;
}

.b-text-image-columns__image {
    width: 100%;
    height: auto;
    display: block;
}

/* Mobile: image above text */
@media (max-width: 767px) {
    .b-text-image-columns__image-col {
        order: -1;
        margin-bottom: var(--cg-spacing-lg);
        align-self: flex-start !important;
    }
}

/* Block editor */
.editor-styles-wrapper .b-text-image-columns__heading,
.block-editor-block-list__layout .b-text-image-columns__heading {
    color: var(--cg-color-primary) !important;
    /*text-transform: uppercase;*/
}

/* ==========================================================================
   Block: Accordion Columns
   ========================================================================== */

.b-accordion-columns {
    background-color: var(--cg-color-white);
    padding-top: var(--cg-spacing-xl);
    padding-bottom: var(--cg-spacing-xl);
}

.b-accordion-columns--off-white {
    background-color: var(--cg-color-off-white);
}

.b-accordion-columns__container {
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
/*    padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);*/
}

.b-accordion-columns .row {
    --bs-gutter-x: var(--cg-spacing-2xl);
}

.b-accordion-columns__item {
    border-bottom: 1px solid #ddd;
}

.b-accordion-columns__item:first-child {
    border-top: 1px solid #ddd;
}

.b-accordion-columns__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: var(--cg-spacing-sm) 0 0 0;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    font-family: var(--cg-font-body);
}

button.b-accordion-columns__header,
button.b-accordion-columns__header:hover,
button.b-accordion-columns__header:focus {
    background-color: transparent !important;
    border-color: transparent !important;
    box-shadow:none !important;
    }

/*.b-accordion-columns__item.is-open button.b-accordion-columns__header,
.b-accordion-columns__item.is-open button.b-accordion-columns__header:hover,
.b-accordion-columns__item.is-open button.b-accordion-columns__header:focus {
    background-color: var(--cg-color-off-white) !important;
}*/

.b-accordion-columns__header:hover .b-accordion-columns__heading {
    color: var(--cg-color-secondary);
}

.b-accordion-columns__header-text {
    display: flex;
    flex-direction: column;
}

.b-accordion-columns__heading {
    color: var(--cg-color-primary);
    font-family: var(--cg-font-heading);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
    transition: color 0.3s ease;
}

.b-accordion-columns__subheading {
    color: var(--cg-color-grey);
    font-size: 1.125rem;
    line-height: 1.4;
}

.b-accordion-columns__toggle {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    margin-left: var(--cg-spacing-md);
    position: relative;
    background-color: var(--cg-color-primary);
    border-radius: 100%;
    transition: background-color 0.3s ease;
}

.b-accordion-columns__header:hover .b-accordion-columns__toggle {
    background-color: var(--cg-color-secondary);
}

/*.b-accordion-columns__item.is-open .b-accordion-columns__header {
    background-color: var(--cg-color-off-white);
}*/

.b-accordion-columns__toggle-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 14px;
    height: 2px;
    background-color: var(--cg-color-white);
    transform: translate(-50%, -50%);
    transition: transform 0.5s ease;
}

.b-accordion-columns__toggle-icon::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 14px;
    height: 2px;
    background-color: var(--cg-color-white);
    transform: translate(-50%, -50%) rotate(90deg);
    transition: transform 0.5s ease, opacity 0.5s ease;
}

/* Open state */
.b-accordion-columns__item.is-open .b-accordion-columns__toggle-icon::before {
    transform: translate(-50%, -50%) rotate(0deg);
    opacity: 0;
}

.b-accordion-columns__content {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    padding: 0 0 var(--cg-spacing-sm) 0;
    padding-bottom:1rem;
    transition: max-height 0.5s ease, opacity 0.5s ease;
}

.b-accordion-columns__item.is-open .b-accordion-columns__content {
    max-height: 500px;
    opacity: 1;
    margin-top:var(--cg-spacing-sm) ;
}

.b-accordion-columns__content p:first-child {
    margin-top: 0;
}

.b-accordion-columns__content p:last-child {
    margin-bottom: 0;
}

/* Block editor */
.editor-styles-wrapper .b-accordion-columns__heading,
.block-editor-block-list__layout .b-accordion-columns__heading {
    color: var(--cg-color-primary) !important;
}

.b-accordion-columns__accordion--single {
    max-width: 850px;
    margin-left: auto;
    margin-right: auto;
}

/* Green background variant */
.b-accordion-columns--green {
    background-color: var(--cg-color-primary);
}

.b-accordion-columns--green .b-accordion-columns__heading,
.b-accordion-columns--green .b-accordion-columns__subheading,
.b-accordion-columns--green .b-accordion-columns__content,
.b-accordion-columns--green .b-accordion-columns__content p {
    color: var(--cg-color-white);
}

.b-accordion-columns--green .b-accordion-columns__header {
    border-color: rgba(255, 255, 255, 0.3);
}

.b-accordion-columns--green .b-accordion-columns__toggle-icon,
.b-accordion-columns--green .b-accordion-columns__toggle-icon::after {
    background-color: var(--cg-color-white);
}

/* Green background variant */
.b-accordion-columns--green {
    background-color: var(--cg-color-primary);
}

.b-accordion-columns--green .b-accordion-columns__item {
    border-bottom-color: rgba(255, 255, 255, 0.3);
}

.b-accordion-columns--green .b-accordion-columns__item:first-child {
    border-top-color: rgba(255, 255, 255, 0.3);
}

.b-accordion-columns--green .b-accordion-columns__heading {
    color: var(--cg-color-white);
}

.b-accordion-columns--green .b-accordion-columns__header:hover .b-accordion-columns__heading {
    color: rgba(255, 255, 255, 0.7);
}

.b-accordion-columns--green .b-accordion-columns__subheading {
    color: rgba(255, 255, 255, 0.8);
}

.b-accordion-columns--green .b-accordion-columns__content,
.b-accordion-columns--green .b-accordion-columns__content p {
    color: var(--cg-color-white);
}

.b-accordion-columns--green .b-accordion-columns__toggle {
    background-color: var(--cg-color-white);
}

.b-accordion-columns--green .b-accordion-columns__header:hover .b-accordion-columns__toggle {
    background-color: rgba(255, 255, 255, 0.7);
}

.b-accordion-columns--green .b-accordion-columns__toggle-icon,
.b-accordion-columns--green .b-accordion-columns__toggle-icon::before {
    background-color: var(--cg-color-primary);
}

/* Green variant - editor styles */
.editor-styles-wrapper .b-accordion-columns--green .b-accordion-columns__heading,
.block-editor-block-list__layout .b-accordion-columns--green .b-accordion-columns__heading {
    color: var(--cg-color-white) !important;
}

.b-accordion-columns__header-block {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    margin-bottom: var(--cg-spacing-xl);
}

.b-accordion-columns__block-heading {
    color: var(--cg-color-primary);
    text-transform: uppercase;
    margin-bottom: var(--cg-spacing-md);
}

.b-accordion-columns__intro {
    font-size: 1.125rem;
    line-height: 1.6;
}

/* Green variant overrides */
.b-accordion-columns--green .b-accordion-columns__block-heading,
.b-accordion-columns--green .b-accordion-columns__intro {
    color: var(--cg-color-white);
}

/* Editor styles */
.editor-styles-wrapper .b-accordion-columns__block-heading,
.block-editor-block-list__layout .b-accordion-columns__block-heading {
    color: var(--cg-color-primary) !important;
    text-transform: uppercase;
}

.editor-styles-wrapper .b-accordion-columns--green .b-accordion-columns__block-heading,
.block-editor-block-list__layout .b-accordion-columns--green .b-accordion-columns__block-heading {
    color: var(--cg-color-white) !important;
}

/* ==========================================================================
   Block: Homepage Hero
   ========================================================================== */

.b-homepage-hero {
    background: 
        linear-gradient(to right, #00cd00 0%, var(--cg-color-secondary) 25%),
        var(--cg-color-primary);
    background-size: 100% 50%, 100% 100%;
    background-position: left bottom, left top;
    background-repeat: no-repeat;
    position: relative;
    overflow: hidden;
}

.b-homepage-hero::before {
  content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 50%;
    background: repeating-linear-gradient(
        to bottom,
        rgba(255, 255, 255, 0.2) 0px,
        rgba(255, 255, 255, 0.4) 1px,
        transparent 1px,
        transparent 1rem
    );
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 100%);
    mask-image: linear-gradient(to right, transparent 0%, black 100%);
    pointer-events: none;
    z-index: 1;
}

.b-homepage-hero__container {
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
}

.b-homepage-hero__text-col {
    display: flex;
    flex-direction: column;
    padding: var(--cg-spacing-2xl) 0;
    position: relative;
    z-index: 2;
    min-height: 600px;
}

.b-homepage-hero__top-content {
    height: 50%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding-bottom: var(--cg-spacing-sm);
}

.b-homepage-hero__bottom-content {
    height: 50%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding-top: var(--cg-spacing-sm);
}



.b-homepage-hero__headline {
    color: var(--cg-color-white);
    font-family: var(--cg-font-heading);
    font-size: 6rem;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 0.8;
    margin: 0 0 0 0 !important;
}

.b-homepage-hero__subheadline {
    color: var(--cg-color-white);
    font-family: var(--cg-font-heading);
    font-size: 2.5rem;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1;
    margin:0 !important;
    white-space: nowrap;
}

.b-homepage-hero__body {
    color: var(--cg-color-white);
    font-size: 1.25rem;
    line-height: 1.2;
    margin: 0 0 var(--cg-spacing-sm) 0 !important;
}

.b-homepage-hero__bottom-content a.c-button {
    align-self: flex-start;
}

/* Outline white button variant */
a.c-button--outline-white,
a.c-button--outline-white:visited {
    background-color: transparent;
    color: var(--cg-color-primary) !important;
    border-color: var(--cg-color-white);
    background-color: var(--cg-color-white);
}

a.c-button--outline-white:hover,
a.c-button--outline-white:focus {
    background-color: var(--cg-color-off-white);
    color: var(--cg-color-primary) !important;
    border-color: var(--cg-color-off-white);
}

/* Quick Links */
.b-homepage-hero__quick-links {
    padding-top: var(--cg-spacing-sm);
    position: relative;
}

.b-homepage-hero__quick-links-label {
    display: block;
    font-family: var(--cg-font-heading);
    font-size: 0.875rem;
    text-transform: uppercase;
    color: var(--cg-color-white);
    margin-top: var(--cg-spacing-md);
    margin-bottom: var(--cg-spacing-xs);
    padding-bottom: var(--cg-spacing-xs);
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--cg-color-white);
    opacity: 0.7;
}

.b-homepage-hero__quick-links-items {
    display: flex;
    gap: var(--cg-spacing-xl);
}

.b-homepage-hero__quick-link {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-decoration: none !important;
    color: var(--cg-color-white) !important;
    transition: opacity 0.3s ease;
}

.b-homepage-hero__quick-link:hover {
    /*opacity: 0.8;*/
}

.b-homepage-hero__quick-link-icon {
    font-size: 1.5rem;
    margin-bottom: 0;
    color: var(--cg-color-white);
}

.b-homepage-hero__quick-link-text {
    font-family: var(--cg-font-heading);
    font-size: 1rem;
    white-space: nowrap;
    font-weight: 700;
    text-transform: uppercase;
    text-align: left;
    padding-bottom: 4px;
}

.b-homepage-hero__quick-link-text::after {
    content: '';
    display: block;
    width: 2rem;
    height: 5px;
    background-color: #f7941d;
    margin-top: 4px;
}

/* Image column */
.b-homepage-hero__image-col {
    position: relative;

    min-height: 400px;
}

.b-homepage-hero__image-wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
}

.b-homepage-hero__bg-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
}

/* Homepage Hero - Background layer stagger animation */
.b-homepage-hero__bg-image {
    opacity: 0;
    transition: opacity 0.6s ease-out;
}

.b-homepage-hero__bg-image.is-visible {
    opacity: 1;
}

.b-homepage-hero__circle-image {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: auto;
    animation: rotateCircle 60s linear infinite;
}

@keyframes rotateCircle {
    from {
        transform: translate(-50%, -50%) rotate(0deg);
    }
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

/* Tablet/smaller desktop padding */
@media (max-width: 1200px) {
    .b-homepage-hero__text-col {
        padding-left: var(--cg-spacing-md);
    }
}

/* Mobile styles */
@media (max-width: 767px) {
    .b-homepage-hero {
        background: none;
    }
    
    .b-homepage-hero .row {
        display: flex;
        flex-direction: column;
    }
    
    .b-homepage-hero__container {
        padding-left: 0;
        padding-right: 0;
    }
    
    .b-homepage-hero__image-col {
        order: 1;
        min-height: 300px;
        background-color: var(--cg-color-primary);
    }
    
    .b-homepage-hero__text-col {
        order: 2;
        min-height: auto;
        padding-left: var(--cg-spacing-md);
        padding-right: var(--cg-spacing-md);
        background: linear-gradient(to right, #00cd00 0%, var(--cg-color-secondary) 30%);
    }
    
    .b-homepage-hero__top-content,
    .b-homepage-hero__bottom-content {
        height: auto;
    }
    
    .b-homepage-hero__headline {
        font-size: 3rem;
    }
    
    .b-homepage-hero__subheadline {
        white-space: normal;
    }
    
    .b-homepage-hero__body {
        font-size: 1.125rem;
    }
    
    .b-homepage-hero__quick-links {
        width: 100%;
    }
    
    .b-homepage-hero__quick-links-items {
        flex-wrap: wrap;
        gap: var(--cg-spacing-md);
    }
    
    .b-homepage-hero__quick-link {
        flex: 0 0 calc(50% - var(--cg-spacing-sm));
    }
}

/* Block editor */
.editor-styles-wrapper .b-homepage-hero__headline,
.block-editor-block-list__layout .b-homepage-hero__headline,
.editor-styles-wrapper .b-homepage-hero__subheadline,
.block-editor-block-list__layout .b-homepage-hero__subheadline,
.editor-styles-wrapper .b-homepage-hero__body,
.block-editor-block-list__layout .b-homepage-hero__body {
    color: var(--cg-color-white) !important;
}

/* ==========================================================================
   Header Navigation Styling
   ========================================================================== */

/* Main nav links - primary green */
.main-header-menu > .menu-item > a.menu-link,
.main-header-menu > .menu-item > a.menu-link:visited {
    color: var(--cg-color-primary) !important;
    position: relative;
}

.main-header-menu > .menu-item > a.menu-link:hover,
.main-header-menu > .menu-item > a.menu-link:focus,
.main-header-menu > .menu-item.current-menu-item > a.menu-link {
    color: var(--cg-color-highlight) !important;
}

/* Underline on hover/active - highlight colour */
/*.main-header-menu > .menu-item > a.menu-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background-color: var(--cg-color-highlight);
    transform: scaleX(0);
    transition: transform 0.3s ease;
}*/

.main-header-menu > .menu-item > a.menu-link:hover::after,
.main-header-menu > .menu-item > a.menu-link:focus::after,
.main-header-menu > .menu-item.current-menu-item > a.menu-link::after {
    transform: scaleX(1);
}

/* Search menu item - icon only */
#menu-item-225 .menu-text {
    display: none;
}

#menu-item-225 .menu-link::before {
    font-family: 'Font Awesome 7 Pro';
    font-weight: 400;
    content: '\f002';
    font-size: 1rem;
    color: var(--cg-color-primary);
}

#menu-item-225 .ast-icon {
    display: none;
}

#menu-item-225 {
/*    margin-left: var(--cg-spacing-sm);*/
}

/* Remove underline effect from search */
#menu-item-225 > a.menu-link::after {
    display: none;
}

/* Contact button styling */
#menu-item-213 {
    margin-left: var(--cg-spacing-sm);
    display: flex;
    align-items: center;
}

#menu-item-213 > a.menu-link,
#menu-item-213 > a.menu-link:visited {
    background-color: var(--cg-color-primary) !important;
    color: var(--cg-color-white) !important;
    padding: 0.625rem 1.25rem !important;
    border-radius: 4px;
    transition: background-color 0.3s ease;
    line-height: 1.4 !important;
    max-height:50px;
}

#menu-item-213 > a.menu-link:hover,
#menu-item-213 > a.menu-link:focus {
    color: var(--cg-color-highlight) !important;
    color: var(--cg-color-white) !important;
}

#menu-item-213 .ast-icon {
    display: none;
}

/* Remove underline effect from Contact button */
#menu-item-213 > a.menu-link::after {
    display: none;
}

/* ==========================================================================
   Sub-menu Dropdown Styling
   ========================================================================== */

/* Sub-menu container */
.main-header-menu .sub-menu {
    background-color: rgba(255, 255, 255, 0.9) !important;
    border: none !important;
    border-top: none !important;
    border-radius: 0 0 0.5rem 0.5rem !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    padding: var(--cg-spacing-xs) 0 !important;
}

/* Remove green top border that Astra adds */
.main-header-menu .sub-menu::before,
.main-header-menu .sub-menu::after {
    display: none !important;
}

.ast-desktop .main-header-menu > .menu-item > .sub-menu {
    border-top: none !important;
}

/* Sub-menu links */
.main-header-menu .sub-menu .menu-item > a.menu-link,
.main-header-menu .sub-menu .menu-item > a.menu-link:visited {
    color: var(--cg-color-primary) !important;
    padding: 0.4rem 1.25rem !important;
    line-height: 1.4 !important;
    font-size: 0.9rem;
}

.main-header-menu .sub-menu .menu-item > a.menu-link:hover,
.main-header-menu .sub-menu .menu-item > a.menu-link:focus,
.main-header-menu .sub-menu .menu-item.current-menu-item > a.menu-link {
    color: var(--cg-color-highlight) !important;
    background-color: transparent !important;
}

/* Hide arrow icons in sub-menu */
.main-header-menu .sub-menu .menu-item .ast-icon {
    display: none;
}

/* Remove underline effect from sub-menu items */
.main-header-menu .sub-menu .menu-item > a.menu-link::after {
    display: none;
}

/* ==========================================================================
   Mobile Off-Canvas Menu Styling
   ========================================================================== */

.ast-mobile-header-content {
    background-color: rgba(255, 255, 255, 0.9) !important;
}

/* Mobile menu links */
#ast-hf-mobile-menu .menu-item > a.menu-link,
#ast-hf-mobile-menu .menu-item > a.menu-link:visited {
    color: var(--cg-color-primary) !important;
}

#ast-hf-mobile-menu .menu-item > a.menu-link:hover,
#ast-hf-mobile-menu .menu-item > a.menu-link:focus,
#ast-hf-mobile-menu .menu-item.current-menu-item > a.menu-link {
    color: var(--cg-color-highlight) !important;
}

/* Hide arrow icons inside menu links (not toggle buttons) */
#ast-hf-mobile-menu .menu-item > a.menu-link .ast-icon {
    display: none;
}

/* ==========================================================================
   03 - Promo Cards with Navigation
   ========================================================================== */

.b-promo-cards {
    padding: var(--cg-spacing-2xl) 0;
}

.b-promo-cards--bg-white {
    background-color: var(--cg-color-white);
}

.b-promo-cards--bg-off-white {
    background-color: var(--cg-color-off-white);
}

.b-promo-cards__container {
    width: 100%;
    overflow: hidden;
}

.b-promo-cards__slider-wrapper {
    overflow: visible;
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    padding-left: calc(50vw - 50%);
}

.b-promo-cards__slider {
    overflow: visible;
}

.b-promo-cards__slider .swiper-slide {
    width: 320px;
    max-width: 320px;
}

.b-promo-cards__card--no-link {
    cursor: default;
}

/* Header */
/*.b-promo-cards__header {
    text-align: center;
    margin-bottom: var(--cg-spacing-xl);
}
*/

.b-promo-cards__header {
    text-align: center;
    margin-bottom: var(--cg-spacing-xl);
    max-width: var(--cg-container-default);
    margin-left: auto;
    margin-right: auto;
/*    padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);*/
}

.b-promo-cards__slider-wrapper {
    width: 100%;
}

.b-promo-cards__heading {
    color: var(--cg-color-primary);
    margin-bottom: var(--cg-spacing-sm);
}

.b-promo-cards__heading--uppercase {
    text-transform: uppercase !important;
}

h2.b-promo-cards__heading--as-entered {
    text-transform: none !important;
}

.b-promo-cards__intro {
    font-size: 1.4rem;
    line-height: 1.2;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 0;
}

/* Slider */
.b-promo-cards__slider {
overflow: visible !important;
}

.b-promo-cards__slider .swiper-wrapper {
    align-items: stretch;
}

.b-promo-cards__slider .swiper-slide {
    height: auto;
}

/* Card */
.b-promo-cards__card {
    display: block;
    text-decoration: none !important;
    border-radius: 12px;
    overflow: hidden;
    height: 100%;
}

.b-promo-cards__card-image {
    position: relative;
    background-size: cover;
    background-position: center;
    aspect-ratio: 2 / 3;
    border-radius: 12px;
    overflow: hidden;
}

.b-promo-cards__card-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to bottom, var(--cg-color-primary) 0%, transparent 60%);
    padding: var(--cg-spacing-md);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    transition: background 0.3s ease;
}

.b-promo-cards__card:hover .b-promo-cards__card-overlay,
.b-promo-cards__card:focus .b-promo-cards__card-overlay {
    background: linear-gradient(to bottom, var(--cg-color-secondary) 0%, transparent 60%);
}

.b-promo-cards__card-title {
    color: var(--cg-color-white);
    font-family: var(--cg-font-heading);
    font-size: 1.5rem;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.1;
    margin: 0 0 var(--cg-spacing-sm) 0;
}

.b-promo-cards__card-button {
    display: inline-block;
    background-color: var(--cg-color-white);
    color: var(--cg-color-primary) !important;
    font-family: var(--cg-font-body);
    font-size: 0.9rem;
    font-weight: 600;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    text-decoration: none !important;
    transition: all 0.3s ease;
}

.b-promo-cards__card:hover .b-promo-cards__card-button,
.b-promo-cards__card:focus .b-promo-cards__card-button {
    background-color: var(--cg-color-primary);
    color: var(--cg-color-white) !important;
}

/* Pagination */
.b-promo-cards__pagination {
    position: static !important;
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: var(--cg-spacing-xl);
    width: 100% !important;
    bottom: auto !important;
    left: auto !important;
}

.b-promo-cards__pagination .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    background-color: var(--cg-color-black);
    opacity: 1;
    border-radius: 50%;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.b-promo-cards__pagination .swiper-pagination-bullet-active {
    background-color: var(--cg-color-primary);
}

.b-promo-cards__card--no-link .b-promo-cards__card-button {
    display: none !important;
}

.b-promo-cards__card--no-link .b-promo-cards__card-image::after,
.b-promo-cards__card--no-link:hover .b-promo-cards__card-overlay {
    /* suppress any hover overlay transitions */
    transition: none !important;
    opacity: 1 !important;
}

.b-promo-cards__card--no-link .b-promo-cards__card-image {
    cursor: grab;
}

.b-promo-cards__card--no-link .b-promo-cards__card-image:active {
    cursor: grabbing;
}

/* Admin notice */
.b-promo-cards__notice {
    padding: var(--cg-spacing-md);
    background-color: #fff3cd;
    border: 1px solid #ffc107;
    border-radius: 4px;
    text-align: center;
    color: #856404;
}

/* Responsive */
@media (max-width: 991px) {
    .b-promo-cards__card-title {
        font-size: 2.25rem !important;
    }
}

@media (max-width: 767px) {
    .b-promo-cards {
        padding: var(--cg-spacing-xl) 0;
    }
    
    .b-promo-cards__intro {
        font-size: 1.2rem;
    }
    
    .b-promo-cards__card-title {
        font-size: 2.1rem !important;
    }
    
    .b-promo-cards__card-button {
        font-size: 0.85rem;
        padding: 0.4rem 0.8rem;
    }
}

/* Block editor styles */
.editor-styles-wrapper .b-promo-cards__heading,
.block-editor-block-list__layout .b-promo-cards__heading {
    color: var(--cg-color-primary) !important;
    text-transform: uppercase;
}

.editor-styles-wrapper .b-promo-cards__card-title,
.block-editor-block-list__layout .b-promo-cards__card-title {
    color: var(--cg-color-white) !important;
}

.editor-styles-wrapper .b-promo-cards__card-button,
.block-editor-block-list__layout .b-promo-cards__card-button {
    color: var(--cg-color-primary) !important;
}


/* ==========================================================================
   Block: Page Header (18)
   Multi-purpose page header with breadcrumbs, heading and subheading.
   ========================================================================== */

.b-page-header {
    position: relative;
    width: 100%;
    overflow: hidden;
}

/* Container
   ========================================================================== */

.b-page-header__container {
    position: relative;
    z-index: 10;
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
    /*padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);
    padding-top: var(--cg-spacing-2xl);*/
    padding-bottom: var(--cg-spacing-2xl);
    box-sizing: border-box;
}

/* Breadcrumbs
   ========================================================================== */

.b-page-header__breadcrumbs {
    font-family: var(--cg-font-body);
    font-size: 0.875rem;
    margin-bottom: var(--cg-spacing-sm);
    padding-top: var(--cg-spacing-xl);
}

.b-page-header__breadcrumbs a,
.b-page-header__breadcrumbs span {
    color: var(--cg-color-white);
    text-decoration: none;
}

.b-page-header__breadcrumbs a:hover {
    text-decoration: underline;
}

.b-page-header__breadcrumb-separator {
    margin: 0 0.5rem;
    opacity: 0.7;
}

/* Split layout breadcrumbs */
.b-page-header--split .b-page-header__breadcrumbs a,
.b-page-header--split .b-page-header__breadcrumbs span,
.b-page-header--split .b-page-header__breadcrumb-separator {
    color: var(--cg-color-grey);
}

.b-page-header--split .b-page-header__breadcrumbs {
    padding-top: 0 !important;
}

/* Heading
   ========================================================================== */

.b-page-header__heading {
    font-family: var(--cg-font-heading);
    font-size: 3rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--cg-color-white);
    margin: 0 0 var(--cg-spacing-sm) 0;
    line-height: 1.1;
        overflow-wrap: normal;
    word-break: keep-all;
    z-index:2;
}

@media (min-width: 768px) {
    .b-page-header__heading {
        font-size: 4.8rem;
        line-height:0.9;
    }
}

/* Split layout heading colours - green for green/grey schemes, orange for orange */
.b-page-header--split.b-page-header--green .b-page-header__heading,
.b-page-header--split.b-page-header--grey .b-page-header__heading {
    color: var(--cg-color-primary);
}

.b-page-header--split.b-page-header--orange .b-page-header__heading {
    color: var(--cg-color-highlight);
}

/* Subheading
   ========================================================================== */

.b-page-header__subheading {
    font-family: var(--cg-font-heading);
    font-size: 1.5rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--cg-color-white);
    margin: 0;
    line-height: 1.1;
}

@media (min-width: 768px) {
    .b-page-header__subheading {
        font-size: 1.75rem;
    }
}

/* Split layout subheading */
.b-page-header--split .b-page-header__subheading {
    color: var(--cg-color-grey);
}

/* ==========================================================================
   Solid Colour Variation
   ========================================================================== */

.b-page-header--solid {
    height: 320px;
    min-height: 240px;
}

/* Stripe pattern overlay for solid colour */
.b-page-header--solid .b-page-header__overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    background: repeating-linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.03) 0px,
        rgba(255, 255, 255, 0.03) 12px,
        rgba(0, 0, 0, 0.03) 12px,
        rgba(0, 0, 0, 0.03) 24px
    );
    pointer-events: none;
}

/* Solid colour backgrounds */
.b-page-header--solid.b-page-header--green {
    background: linear-gradient(135deg, var(--cg-color-primary) 0%, var(--cg-color-secondary) 100%);
}

.b-page-header--solid.b-page-header--grey {
    background: linear-gradient(135deg, #5a5a5a 0%, #8a8a8a 100%);
}

.b-page-header--solid.b-page-header--orange {
    background: linear-gradient(135deg, var(--cg-color-dark-highlight) 0%, var(--cg-color-highlight) 100%);
}

/* Content layout with optional icon */
.b-page-header__content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
}

.b-page-header__text {
    flex: 1;
    max-width: 600px;
}

.b-page-header__content--with-icon {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--cg-spacing-xl);
}

.b-page-header__content--with-icon .b-page-header__text {
    flex: 1;
    min-width: 0;
}

/* Icon styling */
.b-page-header__icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.b-page-header__icon i {
    font-size: 12rem;
    color: var(--cg-color-white);
    opacity: 0.5;
    -webkit-mask-image: linear-gradient(to right, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 50%, rgba(0,0,0,0.15) 100%);
    mask-image: linear-gradient(to right, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 50%, rgba(0,0,0,0.15) 100%);
}

@media (max-width: 991px) {
    .b-page-header__icon {
        display: none;
    }
}

@media (min-width: 768px) {
    .b-page-header__icon {
        display: flex;
    }
}

@media (min-width: 992px) {
    .b-page-header__icon {
        font-size: 10rem;
    }
}

/* ==========================================================================
   Small Image Header Variation
   ========================================================================== */

.b-page-header--small_image {
    height: 320px;
    min-height: 240px;
}

.b-page-header--small_image .b-page-header__background {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-size: cover;
    background-position: center right;
    z-index: 1;
}

/* Gradient overlay - solid left to transparent right */
/*.b-page-header--small_image .b-page-header__overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    pointer-events: none;
}

.b-page-header--small_image.b-page-header--green .b-page-header__overlay {
    background: linear-gradient(
        90deg,
        var(--cg-color-primary) 0%,
        var(--cg-color-primary) 25%,
        rgba(0, 169, 79, 0.7) 50%,
        rgba(0, 169, 79, 0) 75%
    );
}

.b-page-header--small_image.b-page-header--grey .b-page-header__overlay {
    background: linear-gradient(
        90deg,
        var(--cg-color-grey) 0%,
        var(--cg-color-grey) 25%,
        rgba(119, 119, 119, 0.7) 50%,
        rgba(119, 119, 119, 0) 75%
    );
}

.b-page-header--small_image.b-page-header--orange .b-page-header__overlay {
    background: linear-gradient(
        90deg,
        var(--cg-color-highlight) 0%,
        var(--cg-color-highlight) 25%,
        rgba(245, 154, 0, 0.7) 50%,
        rgba(245, 154, 0, 0) 75%
    );
}*/

/* Fade to colour on very wide screens */
/*.b-page-header--small_image::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 100px;
    z-index: 3;
    pointer-events: none;
    opacity: 0;
}*/

@media (min-width: 1600px) {
    .b-page-header--small_image::after {
        opacity: 1;
    }
    
   /* .b-page-header--small_image.b-page-header--green::after {
        background: linear-gradient(90deg, transparent 0%, var(--cg-color-primary) 100%);
    }
    
    .b-page-header--small_image.b-page-header--grey::after {
        background: linear-gradient(90deg, transparent 0%, var(--cg-color-grey) 100%);
    }
    
    .b-page-header--small_image.b-page-header--orange::after {
        background: linear-gradient(90deg, transparent 0%, var(--cg-color-highlight) 100%);
    }*/
}

/* ==========================================================================
   Large Image Header Variation
   ========================================================================== */

/*   .b-page-header--large_image .b-page-header__scheme-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: left center;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 2;
}*/

/* CSS for 830px header here */
.b-page-header--large_image {
    min-height: 830px;
}

/* Green gradient - stops 4rem from bottom */
.b-page-header--large_image .b-page-header__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to right, var(--cg-color-primary) 0%, var(--cg-color-primary) 10%, transparent 50%);
    background-size: 100% calc(100% - 4rem);
    background-repeat: no-repeat;
    z-index:3;
    pointer-events: none;
}

/* Accent bands at specific line positions */
.b-page-header--large_image .b-page-header__overlay::before {
    content: '';
    position: absolute;
    z-index:2;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background:
        /* Line 23 - secondary left to transparent right */
        linear-gradient(to right, var(--cg-color-secondary) 0%, transparent 35%),
        /* Line 21 - secondary left to transparent right */
        linear-gradient(to right, var(--cg-color-secondary) 0%, transparent 35%),
        /* Line 6 - transparent left to secondary right */
        linear-gradient(to right, transparent 65%, var(--cg-color-secondary) 100%);
    background-size: 
        100% 2rem,
        100% 2rem,
        100% 2rem;
    background-position:
        0 46rem,
        0 42rem,
        0 12rem;
    background-repeat: no-repeat;
}

/* Orange compact overlay */
.b-page-header--large_image.b-page-header--large-compact.b-page-header--orange .b-page-header__overlay {
    background: linear-gradient(to right, var(--cg-color-highlight) 0%, var(--cg-color-highlight) 10%, transparent 50%);
    background-size: 100% calc(100% - 4rem);
    background-repeat: no-repeat;
}

/* Grey compact overlay */
.b-page-header--large_image.b-page-header--large-compact.b-page-header--grey .b-page-header__overlay {
    background: linear-gradient(to right, var(--cg-color-lighter-grey) 0%, var(--cg-color-lighter-grey) 10%, transparent 50%);
    background-size: 100% calc(100% - 4rem);
    background-repeat: no-repeat;
}

/* White lines - full height */
.b-page-header--large_image .b-page-header__overlay::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: repeating-linear-gradient(
        to bottom,
        transparent 0,
        transparent calc(2rem - 1px),
        white calc(2rem - 1px),
        white 2rem
    );
    -webkit-mask-image: linear-gradient(to right, transparent 0%, transparent 65%, black 100%);
    mask-image: linear-gradient(to right, transparent 0%, transparent 65%, black 100%);
}
/* End 830px header CSS now */

.b-page-header--large_image .b-page-header__background {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-size: cover;
    background-position: center;
    z-index: 1;
}

@media (min-width: 1600px) {
    .b-page-header--large_image::after {
        opacity: 1;
    }
    
    .b-page-header--large_image.b-page-header--green::after {
        background: linear-gradient(90deg, transparent 0%, var(--cg-color-primary) 100%);
    }
    
    .b-page-header--large_image.b-page-header--grey::after {
        background: linear-gradient(90deg, transparent 0%, var(--cg-color-grey) 100%);
    }
    
    .b-page-header--large_image.b-page-header--orange::after {
        background: linear-gradient(90deg, transparent 0%, var(--cg-color-highlight) 100%);
    }
}

/* Tablet - 576px (36rem, 18 lines) */
@media (max-width: 991.98px) {
    .b-page-header--large_image {
        min-height: 608px;
    }
    
    /* Green gradient stops at 32rem (16 lines, leaving 2 transparent) */
    .b-page-header--large_image .b-page-header__overlay {
        background-size: 100% calc(100% - 4rem);
    }
    
    /* Repositioned accent bands: lines 4, 14, 16 */
    .b-page-header--large_image .b-page-header__overlay::before {
        background-position:
            0 32rem,
            0 28rem,
            0 8rem;
    }
}

@media (max-width: 912px) {
    .b-page-header--large_image {
        min-height: 554px;
    }
    
    /* Green gradient stops at 32rem (16 lines, leaving 2 transparent) */
    .b-page-header--large_image .b-page-header__overlay {
        background-size: 100% calc(100% - 4rem);
    }
    
    /* Repositioned accent bands: lines 4, 14, 16 */
    .b-page-header--large_image .b-page-header__overlay::before {
        background-position:
            0 32rem,
            0 28rem,
            0 8rem;
    }
}

/* Mobile - 384px (24rem, 12 lines) */
@media (max-width: 575.98px) {
    .b-page-header--large_image {
        min-height: 350px;
    }
    
    /* Repositioned accent bands: lines 3, 9, 10 */
    .b-page-header--large_image .b-page-header__overlay::before {
        background-position:
            0 20rem,
            0 18rem,
            0 6rem;
    }
}

/* ==========================================================================
   Large Image - Compact Height Variation (554px desktop)
   ========================================================================== */

/* Desktop compact height - 554px (~17 lines at 2rem) */
.b-page-header--large_image.b-page-header--large-compact {
    min-height: 544px;
}

/* Repositioned accent bands for compact height: lines 4, 12, 14 */
.b-page-header--large_image.b-page-header--large-compact .b-page-header__overlay::before {
    background-position:
        0 28rem,
        0 24rem,
        0 8rem;
}

/* Tablet - 448px */
@media (max-width: 991.98px) {
    .b-page-header--large_image.b-page-header--large-compact {
        min-height: 480px;
    }
    
    .b-page-header--large_image.b-page-header--large-compact .b-page-header__overlay::before {
        background-position:
            0 24rem,
            0 20rem,
            0 6rem;
    }
}

/* Tablet - 448px */
@media (max-width: 912px) {
    .b-page-header--large_image.b-page-header--large-compact {
        min-height: 438px;
    }
    
    .b-page-header--large_image.b-page-header--large-compact .b-page-header__overlay::before {
        background-position:
            0 24rem,
            0 20rem,
            0 6rem;
    }
}

/* Mobile - 320px */
@media (max-width: 575.98px) {
    .b-page-header--large_image.b-page-header--large-compact {
        min-height: 292px;
    }
    
    .b-page-header--large_image.b-page-header--large-compact .b-page-header__overlay::before {
        background-position:
            0 16rem,
            0 14rem,
            0 4rem;
    }
}

/* ==========================================================================
   Large Image - Compact Height + Colour Scheme Combinations
   ========================================================================== */

/* Orange compact */
.b-page-header--large_image.b-page-header--large-compact.b-page-header--orange .b-page-header__overlay::before {
    background:
        linear-gradient(to right, var(--cg-color-lighter-highlight) 0%, transparent 35%),
        linear-gradient(to right, var(--cg-color-lighter-highlight) 0%, transparent 35%),
        linear-gradient(to right, transparent 65%, var(--cg-color-lighter-highlight) 100%);
    background-size: 
        100% 2rem,
        100% 2rem,
        100% 2rem;
    background-position:
        0 28rem,
        0 24rem,
        0 8rem;
    background-repeat: no-repeat;
}

/* Grey compact */
.b-page-header--large_image.b-page-header--large-compact.b-page-header--grey .b-page-header__overlay::before {
    background:
        linear-gradient(to right, var(--cg-color-grey) 0%, transparent 35%),
        linear-gradient(to right, var(--cg-color-grey) 0%, transparent 35%),
        linear-gradient(to right, transparent 65%, var(--cg-color-grey) 100%);
    background-size: 
        100% 2rem,
        100% 2rem,
        100% 2rem;
    background-position:
        0 28rem,
        0 24rem,
        0 8rem;
    background-repeat: no-repeat;
}

/* ==========================================================================
   Split Layout Variation
   ========================================================================== */

.b-page-header__scheme-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 2;
}

.b-page-header--split {
    background-color: var(--cg-color-white);
    padding: 0;
    margin: 0;
}

.b-page-header__split-wrapper {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 448px;
}

@media (min-width: 992px) {
    .b-page-header__split-wrapper {
        flex-direction: row;
        min-height: 448px;
    }
}

/* Content side - mobile */
.b-page-header__split-content {
    width: 100%;
    padding: var(--cg-spacing-md);
    order: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Content side - desktop with calculated left padding */
@media (min-width: 992px) {
    .b-page-header__split-content {
        width: 55%;
        flex-shrink: 0;
        order: 1;
        padding: var(--cg-spacing-xl);
        padding-left: max(var(--cg-spacing-md), calc((100vw - var(--cg-container-default)) / 2));
        padding-right: var(--cg-spacing-xl);
        justify-content: flex-start !important;
    }
}

/* Image side - mobile */
.b-page-header__split-image {
    position: relative;
    width: 100%;
    min-height: 320px;
    order: 1;
}

/* Image side - desktop stretches to viewport edge */
@media (min-width: 992px) {
    .b-page-header__split-image {
        flex: 1;
        min-height: 100%;
        order: 2;
    }
}

.b-page-header__split-image .b-page-header__background-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.b-page-header__split-image .b-page-header__scheme-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 2;
}

/* Split layout - colour gradient fade from left edge of image panel */

/* Split layout - colour fill covering lower ~45% of image panel */
.b-page-header--split.b-page-header--green .b-page-header__scheme-overlay {
    background-image: linear-gradient(to right, var(--cg-color-primary) 0%, var(--cg-color-primary) 15%, rgba(0, 169, 79, 0.55) 50%, rgba(0, 169, 79, 0.1) 80%, transparent 100%);
    background-size: 100% 161px;
    background-position: 0 100%;
    background-repeat: no-repeat;
}

.b-page-header--split.b-page-header--grey .b-page-header__scheme-overlay {
    background-image: linear-gradient(to right, #5a5a5a 0%, #5a5a5a 15%, rgba(90, 90, 90, 0.55) 50%, rgba(90, 90, 90, 0.1) 80%, transparent 100%);
    background-size: 100% 161px;
    background-position: 0 100%;
    background-repeat: no-repeat;
}

.b-page-header--split.b-page-header--orange .b-page-header__scheme-overlay {
    background-image: linear-gradient(to right, var(--cg-color-dark-highlight) 0%, var(--cg-color-dark-highlight) 15%, rgba(240, 128, 0, 0.55) 50%, rgba(240, 128, 0, 0.1) 80%, transparent 100%);
    background-size: 100% 161px;
    background-position: 0 100%;
    background-repeat: no-repeat;
}

/* Split layout - accent colour bands */
/* Band 1 (~line 5): transparent left to accent right */
/* Bands 2 + 3 (~lines 14, 16): within green zone, left to transparent */
.b-page-header--split .b-page-header__scheme-overlay::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 1;
    background-size: 100% 2rem, 100% 2rem, 100% 2rem;
    background-repeat: no-repeat;
    background-position: 0 18rem, 0 22rem, 0 8rem;
}

@media (max-width: 1147px) {
    .b-page-header--split .b-page-header__scheme-overlay::before {
        background-position: 0 14rem, 0 16rem, 0 6rem;
    }

    .b-page-header--split.b-page-header--green .b-page-header__scheme-overlay,
    .b-page-header--split.b-page-header--grey .b-page-header__scheme-overlay,
    .b-page-header--split.b-page-header--orange .b-page-header__scheme-overlay {
        background-size: 100% 146px;
    }
}

.b-page-header--split.b-page-header--green .b-page-header__scheme-overlay::before {
    background-image:
        linear-gradient(to right, var(--cg-color-secondary) 0%, transparent 50%),
        linear-gradient(to right, var(--cg-color-secondary) 0%, transparent 50%),
        linear-gradient(to right, transparent 30%, rgba(0, 205, 0, 0.8) 100%);
}

.b-page-header--split.b-page-header--grey .b-page-header__scheme-overlay::before {
    background-image:
        linear-gradient(to right, var(--cg-color-lighter-grey) 0%, transparent 50%),
        linear-gradient(to right, var(--cg-color-lighter-grey) 0%, transparent 50%),
        linear-gradient(to right, transparent 30%, rgba(179, 179, 179, 0.8) 100%);
}

.b-page-header--split.b-page-header--orange .b-page-header__scheme-overlay::before {
    background-image:
        linear-gradient(to right, var(--cg-color-lighter-highlight) 0%, transparent 50%),
        linear-gradient(to right, var(--cg-color-lighter-highlight) 0%, transparent 50%),
        linear-gradient(to right, transparent 30%, rgba(238, 185, 64, 0.8) 100%);
}

@media (min-width: 922px) and (max-width: 991.98px) {
    .b-page-header--split.b-page-header--green .b-page-header__scheme-overlay,
    .b-page-header--split.b-page-header--grey .b-page-header__scheme-overlay,
    .b-page-header--split.b-page-header--orange .b-page-header__scheme-overlay {
        background-size: 100% 129px;
    }

    .b-page-header--split .b-page-header__scheme-overlay::before {
        background-position: 0 16rem, 0 18rem, 0 6rem;
    }
}

@media (min-width: 992px) and (max-width: 1147px) {
    .b-page-header--split.b-page-header--green .b-page-header__scheme-overlay,
    .b-page-header--split.b-page-header--grey .b-page-header__scheme-overlay,
    .b-page-header--split.b-page-header--orange .b-page-header__scheme-overlay {
        background-size: 100% 234px;
    }

    .b-page-header--split .b-page-header__scheme-overlay::before {
        background-position: 0 20rem, 0 24rem, 0 8rem;
    }
}

/* Split layout - white horizontal lines, fading in left to right */
.b-page-header--split .b-page-header__scheme-overlay::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 2;
    background: repeating-linear-gradient(
        to bottom,
        transparent 0px,
        transparent calc(2rem - 1px),
        rgba(255, 255, 255, 0.8) calc(2rem - 1px),
        rgba(255, 255, 255, 0.8) 2rem
    );
    -webkit-mask-image: linear-gradient(to right, transparent 0%, transparent 20%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.8) 100%);
    mask-image: linear-gradient(to right, transparent 0%, transparent 20%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.8) 100%);
}


/* ===========================================================================
   Page Header - Block Editor Styles
   ========================================================================== */

   /* Split overlay effects - block editor */
.editor-styles-wrapper .b-page-header--split.b-page-header--green .b-page-header__scheme-overlay,
.block-editor-block-list__layout .b-page-header--split.b-page-header--green .b-page-header__scheme-overlay {
    background: linear-gradient(to right, var(--cg-color-primary) 0%, var(--cg-color-primary) 5%, transparent 55%) !important;
}

.editor-styles-wrapper .b-page-header--split.b-page-header--grey .b-page-header__scheme-overlay,
.block-editor-block-list__layout .b-page-header--split.b-page-header--grey .b-page-header__scheme-overlay {
    background: linear-gradient(to right, #5a5a5a 0%, #5a5a5a 5%, transparent 55%) !important;
}

.editor-styles-wrapper .b-page-header--split.b-page-header--orange .b-page-header__scheme-overlay,
.block-editor-block-list__layout .b-page-header--split.b-page-header--orange .b-page-header__scheme-overlay {
    background: linear-gradient(to right, var(--cg-color-dark-highlight) 0%, var(--cg-color-dark-highlight) 5%, transparent 55%) !important;
}

   .editor-styles-wrapper .b-page-header--large_image .b-page-header__scheme-overlay,
.block-editor-block-list__layout .b-page-header--large_image .b-page-header__scheme-overlay {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-size: cover !important;
    background-position: left center !important;
    background-repeat: no-repeat !important;
    pointer-events: none !important;
    z-index: 2 !important;
}

/* Force styles in block editor */
.editor-styles-wrapper .b-page-header,
.block-editor-block-list__layout .b-page-header {
    position: relative;
}

.editor-styles-wrapper .b-page-header__breadcrumbs,
.block-editor-block-list__layout .b-page-header__breadcrumbs {
    color: var(--cg-color-white) !important;
    font-family: var(--cg-font-body) !important;
    font-size: 0.875rem !important;
    text-decoration: none !important;
    padding-top: var(--cg-spacing-xl) !important;
}

.editor-styles-wrapper .b-page-header__breadcrumbs a,
.editor-styles-wrapper .b-page-header__breadcrumbs span,
.block-editor-block-list__layout .b-page-header__breadcrumbs a,
.block-editor-block-list__layout .b-page-header__breadcrumbs span {
    color: var(--cg-color-white) !important;
    font-family: var(--cg-font-body) !important;
    font-size: 0.875rem !important;
    text-decoration: none !important;
}

.editor-styles-wrapper .b-page-header__heading,
.block-editor-block-list__layout .b-page-header__heading {
    color: var(--cg-color-white) !important;
    font-family: var(--cg-font-heading) !important;
    font-size: 4.8rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    line-height: 0.9 !important;
    margin: 0 0 var(--cg-spacing-md) 0 !important;
}

.editor-styles-wrapper .b-page-header__subheading,
.block-editor-block-list__layout .b-page-header__subheading {
    color: var(--cg-color-white) !important;
    font-family: var(--cg-font-heading) !important;
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    line-height: 1.3 !important;
    margin: 0 !important;
}

/* Split layout editor overrides */

.editor-styles-wrapper .b-page-header__scheme-overlay,
.block-editor-block-list__layout .b-page-header__scheme-overlay {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    pointer-events: none !important;
    z-index: 2 !important;
}

.editor-styles-wrapper .b-page-header--split .b-page-header__heading,
.block-editor-block-list__layout .b-page-header--split .b-page-header__heading {
    color: var(--cg-color-primary) !important;
}

.editor-styles-wrapper .b-page-header--split.b-page-header--orange .b-page-header__heading,
.block-editor-block-list__layout .b-page-header--split.b-page-header--orange .b-page-header__heading {
    color: var(--cg-color-highlight) !important;
}

.editor-styles-wrapper .b-page-header--split .b-page-header__subheading,
.block-editor-block-list__layout .b-page-header--split .b-page-header__subheading {
    color: var(--cg-color-grey) !important;
}

.editor-styles-wrapper .b-page-header--split .b-page-header__breadcrumbs,
.editor-styles-wrapper .b-page-header--split .b-page-header__breadcrumbs a,
.editor-styles-wrapper .b-page-header--split .b-page-header__breadcrumbs span,
.block-editor-block-list__layout .b-page-header--split .b-page-header__breadcrumbs,
.block-editor-block-list__layout .b-page-header--split .b-page-header__breadcrumbs a,
.block-editor-block-list__layout .b-page-header--split .b-page-header__breadcrumbs span {
    color: var(--cg-color-grey) !important;
}

/* Split layout editor structure */
.editor-styles-wrapper .b-page-header--split,
.block-editor-block-list__layout .b-page-header--split {
    background-color: var(--cg-color-white) !important;
}

.editor-styles-wrapper .b-page-header__split-wrapper,
.block-editor-block-list__layout .b-page-header__split-wrapper {
    display: flex !important;
    flex-direction: row !important;
    width: 100% !important;
    min-height: 448px !important;
}

.editor-styles-wrapper .b-page-header__split-content,
.block-editor-block-list__layout .b-page-header__split-content {
    width: 55% !important;
    flex-shrink: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    padding: var(--cg-spacing-xl) !important;
    padding-left: var(--cg-spacing-2xl) !important;
    padding-right: var(--cg-spacing-xl) !important;
    order: 1 !important;
}

.editor-styles-wrapper .b-page-header__split-image,
.block-editor-block-list__layout .b-page-header__split-image {
    flex: 1 !important;
    position: relative !important;
    min-height: 448px !important;
    order: 2 !important;
}

.editor-styles-wrapper .b-page-header__split-image .b-page-header__background-image,
.block-editor-block-list__layout .b-page-header__split-image .b-page-header__background-image {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.editor-styles-wrapper .b-page-header__split-image .b-page-header__scheme-overlay,
.block-editor-block-list__layout .b-page-header__split-image .b-page-header__scheme-overlay {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    pointer-events: none !important;
    z-index: 2 !important;
}
/* ==========================================================================
   06 - Contact CTA Block
   ========================================================================== */

.b-contact-cta {
    background-color: var(--cg-color-white);
    padding-top: var(--cg-spacing-lg);
    padding-bottom: 0;
    overflow: visible;
}

.b-contact-cta__container {
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
    /*padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);*/
}

.b-contact-cta .row {
    --bs-gutter-x: 2rem;
    display: flex;
    flex-wrap: wrap;
    position: relative;
    min-height: 450px;
}

/* Left column - content vertically centred */
.b-contact-cta .col-md-5 {
    display: flex;
    align-items: center;
}

/* Right column - image at bottom */
.b-contact-cta .col-md-7 {
    position: relative;
}

/* Content column */
.b-contact-cta__content {
    padding-top: var(--cg-spacing-lg);
    padding-bottom: var(--cg-spacing-lg);
}

.b-contact-cta__heading {
    font-family: var(--cg-font-heading);
    font-size: 2.75rem;
    font-weight: 700;
    color: var(--cg-color-primary);
    text-transform: none;
    line-height: 1.1;
    margin-bottom: var(--cg-spacing-sm);
}

.b-contact-cta__text {
    font-size: 1.25rem;
    line-height: 1.5;
    color: #666666;
    margin-bottom: var(--cg-spacing-md);
}

.b-contact-cta__text p:last-child {
    margin-bottom: 0;
}

/* Image column - absolute positioning to bottom */
.b-contact-cta__image-wrapper {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding-left: calc(var(--bs-gutter-x) * 0.5);
}

.b-contact-cta__image {
    display: block;
    max-width: 100%;
    height: auto;
}

/* Responsive */
@media (max-width: 767.98px) {
    .b-contact-cta .row {
        min-height: auto;
    }
    
    .b-contact-cta .col-md-7 {
        position: static;
    }
    
    .b-contact-cta__image-wrapper {
        position: static;
        padding-left: 0;
        text-align: center;
        margin-top: var(--cg-spacing-md);
    }
    
    .b-contact-cta__heading {
        font-size: 2rem;
    }
}

/* Block editor styles */
.editor-styles-wrapper .b-contact-cta__heading,
.block-editor-block-list__layout .b-contact-cta__heading {
    font-family: var(--cg-font-heading) !important;
    font-size: 2.75rem !important;
    font-weight: 700 !important;
    color: var(--cg-color-primary) !important;
    text-transform: none !important;
}

.editor-styles-wrapper .b-contact-cta__text,
.block-editor-block-list__layout .b-contact-cta__text {
    font-size: 1.25rem !important;
    color: #666666 !important;
}

/* ==========================================================================
   22 - Image in Container Block
   ========================================================================== */

/*.b-image-in-container {
    padding: var(--cg-spacing-xl) 0;
}*/

.b-image-in-container--padded {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
}

.b-image-in-container__container {
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
}

.b-image-in-container--full-width .b-image-in-container__container {
    max-width: none !important;
}

.b-image-in-container__image {
    display: block;
    max-width: 100%;
    height: auto;
    margin-left: auto;
    margin-right: auto;
}

.b-image-in-container--full-width .b-image-in-container__image {
    width: 100%;
    max-width: none;
}

/* ==========================================================================
   FOOTER STYLES
   ========================================================================== */

/* Footer container - decorative lines
   ========================================================================== */

.site-footer {
    position: relative;
    overflow: hidden;
}

.site-footer::after {
    content: '';
    position: absolute;
    bottom: 60px;
    right: 0;
    width: 600px;
    height: 300px;
    background-image: url('https://cangroup.buchanandrive.digital/wp-content/uploads/2026/01/white_footer_lines.png');
    background-repeat: no-repeat;
    background-position: bottom right;
    background-size: auto;
    pointer-events: none;
    z-index: 0;
}

/* Above Footer - Menu Columns
   ========================================================================== */

/* Column containers - borders and spacing */
.site-above-footer-wrap .site-footer-section {
    position: relative;
    padding-top: var(--cg-spacing-xl);
    padding-bottom: var(--cg-spacing-lg);
}

/*.site-above-footer-wrap .site-footer-section-1::after,
.site-above-footer-wrap .site-footer-section-2::after,
.site-above-footer-wrap .site-footer-section-3::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    background-color: var(--cg-color-white);
}*/

/* Base link styling for all footer stacked menus */
.site-above-footer-wrap .widget_nav_menu .menu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.site-above-footer-wrap .widget_nav_menu .menu-item {
    margin-bottom: 0.5rem;
}

.site-above-footer-wrap .widget_nav_menu .menu-link {
    color: var(--cg-color-white) !important;
    text-decoration: none !important;
    font-size: 1rem;
    font-weight: 400;
    transition: opacity 0.3s ease;
}

.site-above-footer-wrap .widget_nav_menu .menu-link:hover {
    opacity: 0.8;
}

/* Heading style for first item in menus 1 and 2 */
#menu-footer-stacked-1 > .menu-item:first-child,
#menu-footer-stacked-2 > .menu-item:first-child {
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid var(--cg-color-white);
}

#menu-footer-stacked-1 > .menu-item:first-child > .menu-link,
#menu-footer-stacked-2 > .menu-item:first-child > .menu-link {
    font-weight: 700;
    font-size: 1.125rem;
}

/* Menu 3 - pseudo-element to match heading space */
#menu-footer-stacked-3::before {
    content: '\00a0';
    display: block;
    font-size: 1.125rem;
    font-weight: 700;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid var(--cg-color-white);
}

/* Footer Social Icon (LinkedIn)
   ========================================================================== */

/* Footer Social Icon (LinkedIn)
   ========================================================================== */

.site-above-footer-wrap .wp-block-social-links {
    margin-top: var(--cg-spacing-md);
}

.site-above-footer-wrap[data-section="section-above-footer-builder"] .site-footer-section {
    align-items: flex-start;
    min-height: 350px;
    margin-bottom: 2rem;
    border-bottom: 0 !important;
}

.site-above-footer-wrap .wp-block-social-link {
    background-color: var(--cg-color-primary) !important;
    border-radius: 50%;
    width: 3rem !important;
    height: 3rem !important;
}

.site-above-footer-wrap .wp-block-social-link a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem !important;
    height: 3rem !important;
    padding: 0 !important;
    border-radius: 50%;
    transition: opacity 0.3s ease;
    margin-left:-0.5rem;
}

.site-above-footer-wrap .wp-block-social-link a:hover {
    opacity: 0.8;
}

.site-above-footer-wrap .wp-block-social-link svg {
    width: 2.5rem !important;
    height: 2.5rem !important;
    fill: var(--cg-color-white) !important;
}

.site-primary-footer-wrap[data-section="section-primary-footer-builder"] {
    border-style:none;
}

.site-below-footer-wrap {
    padding-top:0;
}

/* Below Footer - Copyright and Legal Links
   ========================================================================== */

.site-below-footer-wrap {
    padding: var(--cg-spacing-sm) 0 var(--cg-spacing-xl) !important;
}

.site-below-footer-wrap .ast-builder-html-element,
.site-below-footer-wrap .ast-builder-html-element p {
    font-size: 1rem;
    color: var(--cg-color-primary) !important;
    margin: 0;
}

.site-below-footer-wrap .widget_nav_menu .menu {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
    justify-content: flex-end;
}

.site-below-footer-wrap .widget_nav_menu .menu-item {
    margin: 0;
}

.site-below-footer-wrap .widget_nav_menu .menu-link {
    color: var(--cg-color-primary) !important;
    text-decoration: none !important;
    font-size: 1rem;
    transition: opacity 0.3s ease;
}

.site-below-footer-wrap .widget_nav_menu .menu-link:hover {
    opacity: 0.7;
}

/* Tablet and Mobile adjustments */
@media (max-width: 992px) {
    /* Force menu columns to stack on tablet portrait */
    .site-above-footer-wrap .ast-builder-grid-row {
        display: flex !important;
        flex-direction: column !important;
    }
    
    .site-above-footer-wrap .site-footer-section {
        width: 100% !important;
        min-height: auto !important;
        padding-top: var(--cg-spacing-lg);
        padding-bottom: var(--cg-spacing-lg);
    }
    
    /* Hide the empty fourth column */
    .site-above-footer-wrap .site-footer-section-4 {
        display: none;
    }
    
    /* Below footer - force stack and centre */
    .site-below-footer-wrap .ast-builder-footer-grid-columns {
        display: block !important;
        text-align: center;
    }
    
    .site-below-footer-wrap .site-footer-below-section-1,
    .site-below-footer-wrap .site-footer-below-section-2 {
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
        margin-bottom: var(--cg-spacing-sm);
    }
    
    .site-below-footer-wrap .widget_nav_menu .menu {
        justify-content: left;
    }
    
    /* Hide decorative lines on tablet/mobile */
    .site-footer::after {
        display: none;
    }
}

@media (max-width: 768px) {
    /* Larger font sizes for mobile readability */
    .site-above-footer-wrap .widget_nav_menu .menu-link {
        font-size: 1.125rem;
    }
    
    #menu-footer-stacked-1 > .menu-item:first-child > .menu-link,
    #menu-footer-stacked-2 > .menu-item:first-child > .menu-link {
        font-size: 1.25rem;
    }
    
    /* Adjust spacing for mobile */
    .site-above-footer-wrap .site-footer-section {
        padding-top: var(--cg-spacing-md);
        padding-bottom: var(--cg-spacing-md);
    }
}

/* ==========================================================================
   Block: Header, Text & Image Grid (23)
   ========================================================================== */

.b-header-text-image-grid {
    padding: var(--cg-spacing-2xl) 0;
}

.b-header-text-image-grid__container {
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);
}

.b-header-text-image-grid__heading {
    color: var(--cg-color-primary);
    text-transform: uppercase;
    text-align: center;
    margin-bottom: var(--cg-spacing-md);
}

p.b-header-text-image-grid__text {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    margin-bottom: var(--cg-spacing-xl);
}

/* Editor Placeholder */
.b-header-text-image-grid__editor-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--cg-spacing-sm);
    padding: var(--cg-spacing-2xl) var(--cg-spacing-md);
    background-color: var(--cg-color-white);
    border: 2px dashed var(--cg-color-primary);
    border-radius: 4px;
    text-align: center;
}

.b-header-text-image-grid__editor-placeholder i {
    font-size: 2.5rem;
    color: var(--cg-color-primary);
}

.b-header-text-image-grid__editor-placeholder span {
    font-family: var(--cg-font-body);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--cg-color-black);
}

.b-header-text-image-grid__editor-placeholder small {
    font-family: var(--cg-font-body);
    font-size: 0.875rem;
    color: var(--cg-color-grey);
}

/* Masonry Grid */
.b-header-text-image-grid__grid {
    column-count: 3;
    column-gap: var(--cg-spacing-md);
}

.b-header-text-image-grid__item {
    break-inside: avoid;
    margin-bottom: var(--cg-spacing-md);
    cursor: pointer;
    overflow: hidden;
    border-radius: 4px;
}

.b-header-text-image-grid__item img {
    display: block;
    width: 100%;
    height: auto;
    transition: transform 0.3s ease;
}

.b-header-text-image-grid__item:hover img {
    transform: scale(1.05);
}

/* Load More Button */
.b-header-text-image-grid__load-more-wrapper {
    text-align: center;
    margin-top: var(--cg-spacing-xl);
}

button.c-button.b-header-text-image-grid__load-more {
    display: inline-block;
    font-family: var(--cg-font-body);
    font-size: 1rem;
    font-weight: 700;
    padding: 0.75rem 1.5rem;
    border: 2px solid var(--cg-color-primary);
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.3s ease;
    background-color: var(--cg-color-primary);
    color: var(--cg-color-white);
}

button.c-button.b-header-text-image-grid__load-more:hover,
button.c-button.b-header-text-image-grid__load-more:focus {
    background-color: var(--cg-color-secondary);
    border-color: var(--cg-color-secondary);
    color: var(--cg-color-white);
}

.b-header-text-image-grid__load-more-wrapper.is-hidden {
    display: none;
}

/* Lightbox Modal */
.b-header-text-image-grid__lightbox {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.b-header-text-image-grid__lightbox[aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
}

.b-header-text-image-grid__lightbox-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.75);
}

.b-header-text-image-grid__lightbox-content {
    position: relative;
    max-width: 90vw;
    max-height: 90vh;
    z-index: 1;
}

.b-header-text-image-grid__lightbox-image {
    display: block;
    max-width: 90vw;
    max-height: 90vh;
    object-fit: contain;
}

.b-header-text-image-grid__lightbox-close,
.b-header-text-image-grid__lightbox-prev,
.b-header-text-image-grid__lightbox-next {
    position: absolute;
    background: transparent;
    border: none;
    color: var(--cg-color-white);
    font-size: 1.5rem;
    cursor: pointer;
    padding: 1rem;
    transition: color 0.3s ease;
    z-index: 2;
}

.b-header-text-image-grid__lightbox-close:hover,
.b-header-text-image-grid__lightbox-prev:hover,
.b-header-text-image-grid__lightbox-next:hover {
    color: var(--cg-color-primary);
}

.b-header-text-image-grid__lightbox-close {
    position: fixed;
    top: 1.5rem;
    right: 1.5rem;
    font-size: 2rem;
}

.b-header-text-image-grid__lightbox-prev {
    top: 50%;
    left: -4rem;
    transform: translateY(-50%);
}

.b-header-text-image-grid__lightbox-next {
    top: 50%;
    right: -4rem;
    transform: translateY(-50%);
}

/* Responsive: Tablet */
@media (max-width: 991px) {
    .b-header-text-image-grid__grid {
        column-count: 2;
    }
    
    .b-header-text-image-grid__lightbox-prev {
        left: 0.5rem;
    }
    
    .b-header-text-image-grid__lightbox-next {
        right: 0.5rem;
    }
    
    .b-header-text-image-grid__lightbox-close {
        top: 1rem;
        right: 1rem;
    }
}

/* Responsive: Mobile */
@media (max-width: 575px) {
    .b-header-text-image-grid__grid {
        column-count: 1;
    }
    
    .b-header-text-image-grid__lightbox-content {
        max-width: 95vw;
    }
    
    .b-header-text-image-grid__lightbox-image {
        max-width: 95vw;
    }
}

/* Block Editor Styles */
.editor-styles-wrapper .b-header-text-image-grid__heading,
.block-editor-block-list__layout .b-header-text-image-grid__heading {
    color: var(--cg-color-primary) !important;
    text-transform: uppercase;
    text-align: center;
}

.editor-styles-wrapper .b-header-text-image-grid__text,
.block-editor-block-list__layout .b-header-text-image-grid__text {
    text-align: center;
}

/* ==========================================================================
   24 - RECRUITMENT PLUGIN BLOCK
   ========================================================================== */

.b-recruitment-plugin {
    padding-top: var(--cg-spacing-2xl);
    padding-bottom: var(--cg-spacing-2xl);
}

.b-recruitment-plugin__container {
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);
}

.b-recruitment-plugin__heading {
    color: var(--cg-color-primary);
    text-transform: uppercase;
    text-align: center;
    margin-bottom: var(--cg-spacing-md);
}

.b-recruitment-plugin__text {
    text-align: center;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: var(--cg-spacing-xl);
}

.b-recruitment-plugin__embed {
    margin-top: var(--cg-spacing-lg);
}

/* Green background colour adjustments */
.b-recruitment-plugin.u-bg-green .b-recruitment-plugin__heading,
.b-recruitment-plugin.u-bg-green .b-recruitment-plugin__text {
    color: var(--cg-color-white);
}

/* Block editor styles */
.editor-styles-wrapper .b-recruitment-plugin__heading,
.block-editor-block-list__layout .b-recruitment-plugin__heading {
    color: var(--cg-color-primary) !important;
    text-transform: uppercase;
    text-align: center;
}

.editor-styles-wrapper .b-recruitment-plugin.u-bg-green .b-recruitment-plugin__heading,
.editor-styles-wrapper .b-recruitment-plugin.u-bg-green .b-recruitment-plugin__text,
.block-editor-block-list__layout .b-recruitment-plugin.u-bg-green .b-recruitment-plugin__heading,
.block-editor-block-list__layout .b-recruitment-plugin.u-bg-green .b-recruitment-plugin__text {
    color: var(--cg-color-white) !important;
}

/* Editor placeholder */
.b-recruitment-plugin__editor-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--cg-spacing-sm);
    padding: var(--cg-spacing-xl);
    background-color: rgba(0, 0, 0, 0.05);
    border: 2px dashed rgba(0, 0, 0, 0.2);
    border-radius: 4px;
    text-align: center;
}

.b-recruitment-plugin__editor-placeholder i {
    font-size: 2rem;
    color: var(--cg-color-primary);
}

.b-recruitment-plugin__editor-placeholder span {
    font-weight: 700;
}

.b-recruitment-plugin__editor-placeholder small {
    color: rgba(0, 0, 0, 0.6);
}

.b-recruitment-plugin.u-bg-green .b-recruitment-plugin__editor-placeholder {
    background-color: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.3);
}

.b-recruitment-plugin.u-bg-green .b-recruitment-plugin__editor-placeholder i,
.b-recruitment-plugin.u-bg-green .b-recruitment-plugin__editor-placeholder span {
    color: var(--cg-color-white);
}

.b-recruitment-plugin.u-bg-green .b-recruitment-plugin__editor-placeholder small {
    color: rgba(255, 255, 255, 0.7);
}

/* ==========================================================================
   25 - MAP EMBED & CONTACT INFO BLOCK
   ========================================================================== */

.b-map-embed-contact {
    padding-top: var(--cg-spacing-2xl);
    padding-bottom: var(--cg-spacing-2xl);
}

.b-map-embed-contact__container {
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);
}

.b-map-embed-contact__heading {
    color: var(--cg-color-primary);
    text-transform: uppercase;
    text-align: center;
    margin-bottom: var(--cg-spacing-xl);
}

.b-map-embed-contact__content {
    display: grid;
    grid-template-columns: 70% 30%;
    gap: var(--cg-spacing-xl);
    align-items: center;
}

/* Map */
.b-map-embed-contact__map-wrapper {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    background-color: var(--cg-color-off-white);
}

.b-map-embed-contact__map-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* Contact details */
.b-map-embed-contact__details {
    font-size: 1rem;
    line-height: 1.6;
}

.b-map-embed-contact__company {
    font-weight: 700;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.b-map-embed-contact__address {
    font-style: normal;
    margin-bottom: var(--cg-spacing-md);
}

.b-map-embed-contact__phone,
.b-map-embed-contact__fax,
.b-map-embed-contact__email {
    /*margin-bottom: 0.25rem;*/
    margin-bottom:0.25rem !important;
    padding-bottom:0 !important;
}

.b-map-embed-contact__phone i,
.b-map-embed-contact__fax i,
.b-map-embed-contact__email i {
    width: 1rem;
    margin-right: 0.5rem;
}

/* Green background colour adjustments */
.b-map-embed-contact.u-bg-green .b-map-embed-contact__heading,
.b-map-embed-contact.u-bg-green .b-map-embed-contact__company,
.b-map-embed-contact.u-bg-green .b-map-embed-contact__address,
.b-map-embed-contact.u-bg-green .b-map-embed-contact__phone,
.b-map-embed-contact.u-bg-green .b-map-embed-contact__fax,
.b-map-embed-contact.u-bg-green .b-map-embed-contact__email,
.b-map-embed-contact.u-bg-green .b-map-embed-contact__details a {
    color: var(--cg-color-white);
}

.b-map-embed-contact.u-bg-green .b-map-embed-contact__details a:hover {
    text-decoration: underline;
}

/* Editor placeholder */
.b-map-embed-contact__editor-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--cg-spacing-sm);
    padding: var(--cg-spacing-xl);
    background-color: rgba(0, 0, 0, 0.05);
    border: 2px dashed rgba(0, 0, 0, 0.2);
    border-radius: 4px;
    text-align: center;
    min-height: 200px;
}

.b-map-embed-contact__editor-placeholder i {
    font-size: 2rem;
    color: var(--cg-color-primary);
}

.b-map-embed-contact__editor-placeholder span {
    font-weight: 700;
}

.b-map-embed-contact__editor-placeholder small {
    color: rgba(0, 0, 0, 0.6);
}

.b-map-embed-contact.u-bg-green .b-map-embed-contact__editor-placeholder {
    background-color: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.3);
}

.b-map-embed-contact.u-bg-green .b-map-embed-contact__editor-placeholder i,
.b-map-embed-contact.u-bg-green .b-map-embed-contact__editor-placeholder span {
    color: var(--cg-color-white);
}

.b-map-embed-contact.u-bg-green .b-map-embed-contact__editor-placeholder small {
    color: rgba(255, 255, 255, 0.7);
}

/* Block editor styles */
.editor-styles-wrapper .b-map-embed-contact__heading,
.block-editor-block-list__layout .b-map-embed-contact__heading {
    color: var(--cg-color-primary) !important;
    text-transform: uppercase;
    text-align: center;
}

.editor-styles-wrapper .b-map-embed-contact.u-bg-green .b-map-embed-contact__heading,
.editor-styles-wrapper .b-map-embed-contact.u-bg-green .b-map-embed-contact__details,
.block-editor-block-list__layout .b-map-embed-contact.u-bg-green .b-map-embed-contact__heading,
.block-editor-block-list__layout .b-map-embed-contact.u-bg-green .b-map-embed-contact__details {
    color: var(--cg-color-white) !important;
}

/* Responsive */
@media (max-width: 768px) {
    .b-map-embed-contact__content {
        grid-template-columns: 1fr;
        gap: var(--cg-spacing-lg);
    }
    
    .b-map-embed-contact__map {
        order: 1;
    }
    
    .b-map-embed-contact__details {
        order: 2;
        text-align: center;
    }
}

/* ==========================================================================
   26 - Contact Tiles
   ========================================================================== */

.b-contact-tiles {
    padding: var(--cg-spacing-2xl) 0;
}

.b-contact-tiles__container {
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);
}

.b-contact-tiles__heading {
    font-family: var(--cg-font-heading);
    font-weight: 400;
    text-align: center;
    color: var(--cg-color-grey);
    text-transform: none;
    margin-bottom: var(--cg-spacing-xl);
}

.b-contact-tiles__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--cg-spacing-md);
}

.b-contact-tiles__tile {
    border-radius: 12px;
    padding: var(--cg-spacing-lg);
    display: flex;
    flex-direction: column;
}

.b-contact-tiles__tile--green {
    background-color: var(--cg-color-primary);
}

.b-contact-tiles__tile--grey {
    background-color: var(--cg-color-grey);
}

.b-contact-tiles__tile-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: var(--cg-spacing-sm);
}

.b-contact-tiles__tile-heading {
    font-family: var(--cg-font-heading);
    font-size: 1.5rem;
    font-weight: 700;
    text-transform: none;
    margin: 0;
}

.b-contact-tiles__tile--green .b-contact-tiles__tile-heading {
    color: var(--cg-color-white);
}

.b-contact-tiles__tile--grey .b-contact-tiles__tile-heading {
    color: var(--cg-color-white);
}

.b-contact-tiles__tile-icon {
    font-size: 1.75rem;
    line-height: 1;
}

.b-contact-tiles__tile--green .b-contact-tiles__tile-icon {
    color: var(--cg-color-white);
}

.b-contact-tiles__tile--grey .b-contact-tiles__tile-icon {
    color: var(--cg-color-white);
}

.b-contact-tiles__tile-description {
    font-family: var(--cg-font-body);
    font-size: 1rem;
    line-height: 1.5;
    margin-bottom: var(--cg-spacing-md);
    flex-grow: 1;
}

.b-contact-tiles__tile--green .b-contact-tiles__tile-description {
    color: var(--cg-color-white);
}

.b-contact-tiles__tile--grey .b-contact-tiles__tile-description {
    color: var(--cg-color-white);
}

a.b-contact-tiles__tile-link,
a.b-contact-tiles__tile-link:visited {
    font-family: var(--cg-font-body);
    font-size: 1rem;
    text-decoration: underline !important;
    margin-top: auto;
}

a.b-contact-tiles__tile-link:hover,
a.b-contact-tiles__tile-link:focus {
    text-decoration: none !important;
}

.b-contact-tiles__tile--green a.b-contact-tiles__tile-link,
.b-contact-tiles__tile--green a.b-contact-tiles__tile-link:visited,
.b-contact-tiles__tile--green a.b-contact-tiles__tile-link:hover,
.b-contact-tiles__tile--green a.b-contact-tiles__tile-link:focus {
    color: var(--cg-color-white) !important;
}

.b-contact-tiles__tile--grey a.b-contact-tiles__tile-link,
.b-contact-tiles__tile--grey a.b-contact-tiles__tile-link:visited,
.b-contact-tiles__tile--grey a.b-contact-tiles__tile-link:hover,
.b-contact-tiles__tile--grey a.b-contact-tiles__tile-link:focus {
    color: var(--cg-color-white) !important;
}

/* Responsive: Stack on mobile */
@media (max-width: 767px) {
    .b-contact-tiles__grid {
        grid-template-columns: 1fr;
    }
}

/* Block editor styles */
.editor-styles-wrapper .b-contact-tiles__heading,
.block-editor-block-list__layout .b-contact-tiles__heading {
    color: var(--cg-color-black) !important;
    text-transform: none !important;
}

.editor-styles-wrapper .b-contact-tiles__tile--green .b-contact-tiles__tile-heading,
.block-editor-block-list__layout .b-contact-tiles__tile--green .b-contact-tiles__tile-heading {
    color: var(--cg-color-white) !important;
}

.editor-styles-wrapper .b-contact-tiles__tile--grey .b-contact-tiles__tile-heading,
.block-editor-block-list__layout .b-contact-tiles__tile--grey .b-contact-tiles__tile-heading {
    color: var(--cg-color-white) !important;
}

/* ==========================================================================
   32 - Alt Header
   ========================================================================== */

.b-alt-header {
    position: relative;
    width: 100%;
}

/* Header section */
.b-alt-header__header {
    position: relative;
    padding: var(--cg-spacing-xl) 0 var(--cg-spacing-sm);
    min-height: 320px;
    display: flex;
    align-items: flex-start;
    overflow: hidden;
}

/* Horizontal faded lines overlay */
.b-alt-header__header::before,
.b-alt-header__accent-bar::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    background-image: repeating-linear-gradient(
        to bottom,
        transparent 0,
        transparent calc(1rem - 1px),
        rgba(255, 255, 255, 0.15) calc(1rem - 1px),
        rgba(255, 255, 255, 0.15) 1rem
    );
    -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0, 0, 0, 1) 100%);
    mask-image: linear-gradient(to right, transparent 0%, rgba(0, 0, 0, 1) 100%);
}

/* Solid gradient bar near top of header */
.b-alt-header__header::after {
    content: '';
    position: absolute;
    top: 5rem;
    left: 0;
    right: 0;
    height: 1rem;
    pointer-events: none;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, transparent 55%, rgba(0, 0, 0, 1) 100%);
    mask-image: linear-gradient(to right, transparent 0%, transparent 55%, rgba(0, 0, 0, 1) 100%);
}

/* Green variant solid bar */
.b-alt-header--green .b-alt-header__header::after {
    background: linear-gradient(to right, transparent, var(--cg-color-lighter-primary));
}

/* Orange variant solid bar */
.b-alt-header--orange .b-alt-header__header::after {
    background: linear-gradient(to right, transparent, var(--cg-color-lighter-highlight));
}

.b-alt-header__container {
    width: 100%;
    max-width: var(--cg-container-default);
    margin: 0 auto;
    padding: 0;
    position: relative;
    z-index: 1;
}

/* Green variant */
.b-alt-header--green .b-alt-header__header {
    background-color: var(--cg-color-primary);
}

.b-alt-header--green .b-alt-header__accent-bar {
    height: 4rem;
    background: linear-gradient(to right, var(--cg-color-lighter-primary), var(--cg-color-primary));
    position: relative;
    z-index: 1;
    overflow: hidden;
}

.b-alt-header--green .b-alt-header__bottom-bar {
    background: linear-gradient(to right, var(--cg-color-lighter-primary), var(--cg-color-primary));
}

/* Orange variant */
.b-alt-header--orange .b-alt-header__header {
    background: linear-gradient(to right, var(--cg-color-primary) 0%, var(--cg-color-primary) 20%, var(--cg-color-highlight) 70%);
}

.b-alt-header--orange .b-alt-header__accent-bar {
    height: 4rem;
    background: linear-gradient(to right, var(--cg-color-lighter-highlight), var(--cg-color-highlight));
    position: relative;
    z-index: 1;
    overflow: hidden;
}

.b-alt-header--orange .b-alt-header__bottom-bar {
    background: linear-gradient(to right, var(--cg-color-lighter-highlight), var(--cg-color-highlight));
}

/* Breadcrumbs */
.b-alt-header__breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: var(--cg-spacing-lg);
    font-family: var(--cg-font-body);
    font-size: 0.875rem;
}

.b-alt-header__breadcrumb-item,
.b-alt-header__breadcrumb-item:visited {
    color: var(--cg-color-white);
    text-decoration: none;
}

.b-alt-header__breadcrumb-item:hover,
.b-alt-header__breadcrumb-item:focus {
    text-decoration: underline;
}

.b-alt-header__breadcrumb-item--current {
    text-decoration: underline;
}

.b-alt-header__breadcrumb-separator {
    color: var(--cg-color-white);
}

/* Heading */
.b-alt-header__heading {
    font-family: var(--cg-font-heading);
    font-size: clamp(3rem, 8vw, 5rem);
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.b-alt-header__heading-solid {
    color: var(--cg-color-white);
}

.b-alt-header__heading-outline {
    -webkit-text-stroke: 2px var(--cg-color-white);
    -webkit-text-fill-color: transparent;
    color: transparent;
}

/* People section */
.b-alt-header__people {
    /*background-color: var(--cg-color-white);*/
    position: relative;
    z-index: 2;
}

.b-alt-header__people-inner {
    max-width: var(--cg-container-default);
    margin: 0 auto;
    text-align: center;
}

.b-alt-header__people-image {
    display: block;
    margin: -8.5rem auto 0;
    max-width: 950px;
    width: 100%;
    height: auto;
    position: relative;
    z-index: 3;
}

/* Bottom bar */
.b-alt-header__bottom-bar {
    height: 0.5rem;
}

/* Responsive */
@media (max-width: 768px) {
    .b-alt-header__header {
        min-height: 240px;
        padding: var(--cg-spacing-lg) 0 var(--cg-spacing-sm);
    }
    
    .b-alt-header__heading {
        font-size: clamp(2rem, 10vw, 3rem);
    }
    
    .b-alt-header__heading-outline {
        -webkit-text-stroke-width: 1.5px;
    }
    
    .b-alt-header__people-image {
        margin-top: -7rem;
    }
}

/* Block editor styles */
.editor-styles-wrapper .b-alt-header__heading,
.block-editor-block-list__layout .b-alt-header__heading {
    font-family: var(--cg-font-heading) !important;
    font-size: clamp(3rem, 8vw, 5rem) !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
}

.editor-styles-wrapper .b-alt-header__heading-solid,
.block-editor-block-list__layout .b-alt-header__heading-solid {
    color: var(--cg-color-white) !important;
}

.editor-styles-wrapper .b-alt-header__heading-outline,
.block-editor-block-list__layout .b-alt-header__heading-outline {
    -webkit-text-stroke: 2px var(--cg-color-white) !important;
    -webkit-text-fill-color: transparent !important;
    color: transparent !important;
}

.editor-styles-wrapper .b-alt-header__breadcrumb-item,
.editor-styles-wrapper .b-alt-header__breadcrumb-separator,
.block-editor-block-list__layout .b-alt-header__breadcrumb-item,
.block-editor-block-list__layout .b-alt-header__breadcrumb-separator {
    color: var(--cg-color-white) !important;
}

/* ==========================================================================
   31 - Team Grid
   ========================================================================== */

.b-team-grid {
    padding: var(--cg-spacing-2xl) 0;
}

.b-team-grid__container {
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
}

.b-team-grid__heading {
    color: var(--cg-color-primary);
    text-transform: uppercase;
    text-align: center;
    margin-bottom: var(--cg-spacing-lg);
}

.b-team-grid__intro {
    text-align: center;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: var(--cg-spacing-xl);
}

.b-team-grid__grid {
    --bs-gutter-x: 2rem;
    --bs-gutter-y: 1.25rem;
}

.b-team-grid__card {
    height: 100%;
}

.b-team-grid__image-wrapper {
    aspect-ratio: 3 / 2;
    overflow: hidden;
    margin-bottom: var(--cg-spacing-sm);
}

.b-team-grid__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}

.b-team-grid__name {
    color: var(--cg-color-primary);
    font-family: var(--cg-font-body);
    font-size: 1.125rem;
    font-weight: 700;
    text-transform: none;
    margin-bottom: 0.25rem;
}

.b-team-grid__position {
    color: var(--cg-color-grey);
    font-size: 1rem;
    margin-bottom: 0;
}

.b-team-grid__empty {
    text-align: center;
    color: #666;
}

.b-team-grid .b-team-grid__heading {
    text-align: center !important;
}

/* Block editor */
.editor-styles-wrapper .b-team-grid__heading,
.block-editor-block-list__layout .b-team-grid__heading {
    color: var(--cg-color-primary) !important;
    text-transform: uppercase;
    text-align: center !important;
}

.editor-styles-wrapper .b-team-grid__name,
.block-editor-block-list__layout .b-team-grid__name {
    color: var(--cg-color-primary) !important;
}

/* ==========================================================================
   24 - News Grid
   ========================================================================== */

.b-news-grid {
    padding: var(--cg-spacing-2xl) 0;
}

/* ==========================================================================
   News Grid - Background Variants
   ========================================================================== */

.b-news-grid--bg-white {
    background-color: var(--cg-color-white);
}

.b-news-grid--bg-off-white {
    background-color: var(--cg-color-off-white);
}

.b-news-grid--bg-green {
    background-color: var(--cg-color-primary);
}

/* Green background text colours */
.b-news-grid--bg-green .b-news-grid__heading {
    color: var(--cg-color-white);
}

.b-news-grid--bg-green .b-news-grid__title a,
.b-news-grid--bg-green .b-news-grid__title a:visited,
.b-news-grid--bg-green .b-news-grid__title a:hover,
.b-news-grid--bg-green .b-news-grid__title a:focus {
    color: var(--cg-color-white) !important;
}

.b-news-grid--bg-green .b-news-grid__excerpt {
    color: var(--cg-color-white);
}

.b-news-grid--bg-green .b-news-grid__date {
    color: var(--cg-color-white);
}

.b-news-grid--bg-green .b-news-grid__category {
    color: var(--cg-color-white);
    background-color: rgba(255, 255, 255, 0.2);
}

/* Green background button variant */
.b-news-grid--bg-green button.c-button--primary {
    background-color: var(--cg-color-white);
    color: var(--cg-color-primary) !important;
    border-color: var(--cg-color-white);
}

.b-news-grid--bg-green button.c-button--primary:hover,
.b-news-grid--bg-green button.c-button--primary:focus {
    background-color: var(--cg-color-highlight);
    color: var(--cg-color-white) !important;
    border-color: var(--cg-color-highlight);
}

/* ==========================================================================
   News Grid - Manual Mode Spacing Fix
   ========================================================================== */

/* Add spacing between image and title when meta is hidden */
.b-news-grid--manual .b-news-grid__title {
    margin-top: var(--cg-spacing-sm);
}

/* ==========================================================================
   News Grid - Block Editor Green Background
   ========================================================================== */

.editor-styles-wrapper .b-news-grid--bg-green .b-news-grid__heading,
.block-editor-block-list__layout .b-news-grid--bg-green .b-news-grid__heading {
    color: var(--cg-color-white) !important;
}

.editor-styles-wrapper .b-news-grid--bg-green .b-news-grid__title a,
.block-editor-block-list__layout .b-news-grid--bg-green .b-news-grid__title a {
    color: var(--cg-color-white) !important;
}

.editor-styles-wrapper .b-news-grid--bg-green .b-news-grid__excerpt,
.block-editor-block-list__layout .b-news-grid--bg-green .b-news-grid__excerpt {
    color: var(--cg-color-white) !important;
}

.editor-styles-wrapper .b-news-grid--bg-green .b-news-grid__date,
.block-editor-block-list__layout .b-news-grid--bg-green .b-news-grid__date {
    color: var(--cg-color-white) !important;
}

.editor-styles-wrapper .b-news-grid--bg-green .b-news-grid__category,
.block-editor-block-list__layout .b-news-grid--bg-green .b-news-grid__category {
    color: var(--cg-color-white) !important;
    background-color: rgba(255, 255, 255, 0.2) !important;
}

.b-news-grid__container {
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
    /*padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);*/
}

.b-news-grid__heading {
    color: var(--cg-color-primary);
    text-align: center;
    margin-bottom: var(--cg-spacing-2xl);
}

.b-news-grid__heading--uppercase {
    text-transform: uppercase !important;
}

.b-news-grid__heading--as-entered {
    text-transform: none !important;
}


/* Heading alignment variants */
.b-news-grid .b-news-grid__heading--center {
    text-align: center !important;
}

.b-news-grid .b-news-grid__heading--left {
    text-align: left !important;
}

/* Block editor heading alignment */
.editor-styles-wrapper .b-news-grid__heading--center,
.block-editor-block-list__layout .b-news-grid__heading--center {
    text-align: center !important;
}

.editor-styles-wrapper .b-news-grid__heading--left,
.block-editor-block-list__layout .b-news-grid__heading--left {
    text-align: left !important;
}
/* Grid - Isotope masonry */
.b-news-grid .b-news-grid__grid {
    margin-left: -1rem;
    margin-right: -1rem;
}

.b-news-grid__grid-sizer,
.b-news-grid article.b-news-grid__item {
    width: calc(33.333% - 2rem) !important;
    margin-left: 1rem;
    margin-right: 1rem;
    box-sizing: border-box;
}

.b-news-grid__gutter-sizer {
    width: 2rem;
}

   .b-news-grid__grid-sizer,
.b-news-grid__gutter-sizer {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

.b-news-grid article.b-news-grid__item {
    margin-bottom: var(--cg-spacing-lg);
}

/* Card styling */
.b-news-grid__image-link {
    display: block;
    text-decoration: none;
    overflow: hidden;
}

.b-news-grid__image-wrapper {
    position: relative;
    padding-bottom: 66.666%; /* 3:2 aspect ratio */
    overflow: hidden;
    background-color: var(--cg-color-off-white);
}

.b-news-grid__image-wrapper--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
}

.b-news-grid__placeholder-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: var(--cg-color-black);
    opacity: 0.4;
    font-size: 0.875rem;
}

.b-news-grid__image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
    display: block;
}

.b-news-grid__image-link:hover .b-news-grid__image,
.b-news-grid__image-link:focus .b-news-grid__image {
    transform: scale(1.05);
}

/* Meta row */
.b-news-grid__meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: var(--cg-spacing-sm);
    margin-bottom: var(--cg-spacing-xs);
}

.b-news-grid__category {
    display: inline-block;
    background-color: var(--cg-color-dark-highlight);
    color: var(--cg-color-white);
    font-family: var(--cg-font-body);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    padding: 0.25rem 0.5rem;
    letter-spacing: 0.025em;
}

.b-news-grid__date {
    font-family: var(--cg-font-body);
    font-size: 0.875rem;
    color: var(--cg-color-black);
    opacity: 0.7;
}

/* Title */
.b-news-grid__title {
    font-family: var(--cg-font-heading);
    font-size: 1.25rem;
    line-height: 1.3;
    margin: 0 0 var(--cg-spacing-xs);
}

.b-news-grid__title a,
.b-news-grid__title a:visited {
    color: var(--cg-color-primary) !important;
    text-decoration: none !important;
    transition: color 0.3s ease;
}

.b-news-grid__title a:hover,
.b-news-grid__title a:focus {
    color: var(--cg-color-secondary);
}

/* Excerpt */
.b-news-grid__excerpt {
    font-family: var(--cg-font-body);
    font-size: 0.9375rem;
    line-height: 1.5;
    color: var(--cg-color-black);
    margin: 0;
}

/* Load more */
.b-news-grid__load-more-wrapper {
    text-align: center;
    margin-top: var(--cg-spacing-xl);
}

.b-news-grid__load-more-wrapper.is-hidden {
    display: none;
}

.b-news-grid__load-more.is-loading {
    opacity: 0.7;
    pointer-events: none;
}

/* No posts message */
.b-news-grid__no-posts {
    width: 100%;
    text-align: center;
    padding: var(--cg-spacing-2xl);
    color: var(--cg-color-black);
    opacity: 0.6;
}

/* Responsive */
@media (max-width: 991px) {
    .b-news-grid__grid-sizer,
    .b-news-grid article.b-news-grid__item {
        width: calc(50% - 2rem) !important;
    }
}

@media (max-width: 575px) {
    .b-news-grid .b-news-grid__grid {
        margin-left: 0;
        margin-right: 0;
    }
    
    .b-news-grid__grid-sizer,
    .b-news-grid article.b-news-grid__item {
        width: 100% !important;
        margin-left: 0;
        margin-right: 0;
    }
    
    .b-news-grid__gutter-sizer {
        width: 0;
    }
}

/* Block editor */
.editor-styles-wrapper .b-news-grid__heading,
.block-editor-block-list__layout .b-news-grid__heading {
    color: var(--cg-color-primary) !important;
    text-transform: uppercase;
}

.editor-styles-wrapper .b-news-grid__category,
.block-editor-block-list__layout .b-news-grid__category {
    background-color: var(--cg-color-dark-highlight) !important;
    color: var(--cg-color-white) !important;
}

/* ==========================================================================
   24 - News Grid
   ========================================================================== */

.b-news-grid {
    padding: var(--cg-spacing-2xl) 0;
}

.b-news-grid__container {
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
    /*padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);*/
}

.b-news-grid__heading {
    color: var(--cg-color-primary);
    text-transform: uppercase;
    text-align: center;
    margin-bottom: var(--cg-spacing-2xl);
}

/* Grid - Isotope masonry */
.b-news-grid .b-news-grid__grid {
    width: 100%;
}

.b-news-grid__grid-sizer,
.b-news-grid article.b-news-grid__item {
    width: calc((100% - 64px) / 3) !important;
}

.b-news-grid__gutter-sizer {
    width: 32px;
}

.b-news-grid article.b-news-grid__item {
    margin-bottom: var(--cg-spacing-lg);
}

/* Card styling */
.b-news-grid__image-link {
    display: block;
    text-decoration: none;
    overflow: hidden;
    line-height: 0;
}

.b-news-grid__image-wrapper {
    position: relative;
    padding-bottom: 66.666%; /* 3:2 aspect ratio */
    overflow: hidden;
    background-color: var(--cg-color-off-white);
}

.b-news-grid__image-wrapper--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
}

.b-news-grid__placeholder-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: var(--cg-color-black);
    opacity: 0.4;
    font-size: 0.875rem;
}

.b-news-grid__image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
    display: block;
}

.b-news-grid__image-link:hover .b-news-grid__image,
.b-news-grid__image-link:focus .b-news-grid__image {
    transform: scale(1.05);
}

/* Meta row */
.b-news-grid__meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: var(--cg-spacing-sm);
    margin-bottom: var(--cg-spacing-xs);
}

.b-news-grid__category {
    display: inline-block;
    background-color: var(--cg-color-dark-highlight);
    color: var(--cg-color-white);
    font-family: var(--cg-font-body);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    padding: 0.25rem 0.5rem 0.2rem;
    line-height: 1;
    letter-spacing: 0.025em;
}

.b-news-grid__date {
    font-family: var(--cg-font-body);
    font-size: 0.875rem;
    color: var(--cg-color-black);
    opacity: 0.7;
}

/* Title */
.b-news-grid__title {
    font-family: var(--cg-font-heading);
    font-size: 1.125rem;
    line-height: 1.3;
    margin: 0 0 var(--cg-spacing-xs);
}

.b-news-grid__title a,
.b-news-grid__title a:hover,
.b-news-grid__title a:focus,
.b-news-grid__title a:visited {
    color: var(--cg-color-black);
    text-decoration: none !important;
    transition: color 0.3s ease;
}

.b-news-grid__title a:hover,
.b-news-grid__title a:focus {
    color: var(--cg-color-primary);
}

/* Excerpt */
.b-news-grid__excerpt {
    font-family: var(--cg-font-body);
    font-size: 1rem;
    line-height: 1.5;
    color: var(--cg-color-black);
    margin: 0;
}

/* Load more */
.b-news-grid__load-more-wrapper {
    text-align: center;
    margin-top: var(--cg-spacing-xl);
}

.b-news-grid__load-more-wrapper.is-hidden {
    display: none;
}

.b-news-grid__load-more.is-loading {
    opacity: 0.7;
    pointer-events: none;
}

/* No posts message */
.b-news-grid__no-posts {
    width: 100%;
    text-align: center;
    padding: var(--cg-spacing-2xl);
    color: var(--cg-color-black);
    opacity: 0.6;
}

/* Responsive */
@media (max-width: 991px) {
    .b-news-grid__grid-sizer,
    .b-news-grid article.b-news-grid__item {
        width: calc((100% - 32px) / 2) !important;
    }
}

@media (max-width: 575px) {
    .b-news-grid__grid-sizer,
    .b-news-grid article.b-news-grid__item {
        width: 100% !important;
    }
    
    .b-news-grid__gutter-sizer {
        width: 0;
    }
}

/* Block editor */
.editor-styles-wrapper .b-news-grid__heading,
.block-editor-block-list__layout .b-news-grid__heading {
    color: var(--cg-color-primary) !important;
    text-transform: uppercase;
}

.editor-styles-wrapper .b-news-grid__category,
.block-editor-block-list__layout .b-news-grid__category {
    background-color: var(--cg-color-dark-highlight) !important;
    color: var(--cg-color-white) !important;
}

/* ==========================================================================
   09 - News Hero
   ========================================================================== */

.b-news-hero {
    background-color: var(--cg-color-white);
}

/* Featured Image Section */
.b-news-hero__image {
    position: relative;
    width: 100%;
    height: 500px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

@media (min-width: 768px) {
    .b-news-hero__image {
        height: 600px;
    }
}

/* Container */
.b-news-hero__container {
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);
}

/* Breadcrumbs */
.b-news-hero__breadcrumbs {
    padding-top: var(--cg-spacing-md);
}

.b-news-hero__breadcrumbs,
.b-news-hero__breadcrumbs a,
.b-news-hero__breadcrumbs span {
    color: var(--cg-color-white) !important;
    font-size: 0.875rem;
}

.b-news-hero__breadcrumbs a:hover {
    text-decoration: underline;
}

/* Content Section */
.b-news-hero__content {
    padding-top: var(--cg-spacing-xl);
    padding-bottom: var(--cg-spacing-xl);
    text-align: center;
}

/* Page Title */
.b-news-hero__page-title {
    color: var(--cg-color-primary);
    text-transform: uppercase;
    margin-bottom: var(--cg-spacing-lg);
}

/* Post Title */
.b-news-hero__post-title {
    color: var(--cg-color-primary);
    margin-bottom: var(--cg-spacing-sm);
}

/* Meta (date and category) */
.b-news-hero__meta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--cg-spacing-xs);
    margin-bottom: var(--cg-spacing-md);
}

.b-news-hero__date {
    font-size: 0.875rem;
    color: var(--cg-color-black);
    text-transform: uppercase;
}

.b-news-hero__category {
    display: inline-block;
    background-color: #f59a00;
    color: var(--cg-color-white) !important;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    padding: 0.25rem 0.75rem;
    border-radius: 4px;
}

/* Excerpt */
.b-news-hero__excerpt {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: var(--cg-spacing-lg);
    color: var(--cg-color-black);
}

/* Block Editor Overrides */
.editor-styles-wrapper .b-news-hero__page-title,
.block-editor-block-list__layout .b-news-hero__page-title {
    color: var(--cg-color-primary) !important;
    text-transform: uppercase;
}

.editor-styles-wrapper .b-news-hero__post-title,
.block-editor-block-list__layout .b-news-hero__post-title {
    color: var(--cg-color-primary) !important;
}

.editor-styles-wrapper .b-news-hero__category,
.block-editor-block-list__layout .b-news-hero__category {
    background-color: #f59a00 !important;
    color: var(--cg-color-white) !important;
}

.editor-styles-wrapper .b-news-hero__breadcrumbs,
.editor-styles-wrapper .b-news-hero__breadcrumbs a,
.editor-styles-wrapper .b-news-hero__breadcrumbs span {
    color: var(--cg-color-white) !important;
}

/* ==========================================================================
   04 - FULL WIDTH RIBBON
   ========================================================================== */

.b-full-width-ribbon {
    background: linear-gradient(90deg, var(--cg-color-lighter-primary) 0%, var(--cg-color-primary) 100%);
    overflow: hidden;
    padding: 0.5rem 0;
}

.b-full-width-ribbon__track {
    display: flex;
    width: 100%;
}

.b-full-width-ribbon__content {
    display: flex;
    animation: ribbon-scroll 30s linear infinite;
}

.b-full-width-ribbon__text {
    flex-shrink: 0;
    white-space: nowrap;
    font-family: var(--cg-font-heading);
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--cg-color-white);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

@keyframes ribbon-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

/* Pause animation on hover for accessibility */
.b-full-width-ribbon:hover .b-full-width-ribbon__content {
    animation-play-state: paused;
}

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
    .b-full-width-ribbon__content {
        animation: none;
    }
}

/* Block editor */
.editor-styles-wrapper .b-full-width-ribbon__text,
.block-editor-block-list__layout .b-full-width-ribbon__text {
    color: var(--cg-color-white) !important;
}

/* ==========================================================================
   05 - FULL WIDTH STATIC SEARCH
   ========================================================================== */

a.b-static-search,
a.b-static-search:hover,
a.b-static-search:focus,
a.b-static-search:visited {
    display: block;
    background: linear-gradient(90deg, var(--cg-color-lighter-primary) 0%, var(--cg-color-primary) 100%);
    padding: var(--cg-spacing-xl) 0;
    text-decoration: none !important;
    transition: filter 0.3s ease;
}

a.b-static-search:hover,
a.b-static-search:focus {
    filter: brightness(1.05);
}

.b-static-search__container {
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);
}

.b-static-search__content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--cg-spacing-lg);
}

.b-static-search__heading {
    color: var(--cg-color-white);
    text-transform: uppercase;
    margin: 0;
    flex-shrink: 0;
}

.b-static-search__button {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    background-color: var(--cg-color-white);
    padding: 0.75rem 1.25rem;
    border-radius: 50px;
    min-width: 200px;
}

.b-static-search__button i {
    font-size: 1.25rem;
    color: var(--cg-color-primary);
}

/* Responsive */
@media (max-width: 768px) {
    .b-static-search__content {
        flex-direction: column;
        text-align: center;
    }
    
    .b-static-search__heading {
        flex-shrink: 1;
    }
    
    .b-static-search__button {
        min-width: 0;
        width: auto;
        padding: 0.75rem 1rem;
        justify-content: center;
    }
}

/* Block editor */
.editor-styles-wrapper .b-static-search__heading,
.block-editor-block-list__layout .b-static-search__heading {
    color: var(--cg-color-white) !important;
}

/* Light button variant (for dark backgrounds) */
a.c-button--light,
a.c-button--light:visited {
    background-color: var(--cg-color-white);
    color: var(--cg-color-primary) !important;
    border-color: var(--cg-color-white);
}

a.c-button--light:hover,
a.c-button--light:focus {
    background-color: transparent;
    color: var(--cg-color-white) !important;
    border-color: var(--cg-color-white);
}

/* ==========================================================================
   Text & Image Columns - Quote Box Variant
   ========================================================================== */

.b-text-image-columns__quote-col {
    display: flex;
}

.b-text-image-columns__quote-box {
    display: flex;
    flex-direction: column;
    width: 100%;
    overflow: hidden;
}

/* Quote heading */
.b-text-image-columns__quote-heading {
    font-family: var(--cg-font-heading);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--cg-color-primary);
    text-transform: uppercase;
    line-height: 1;
    margin-bottom: var(--cg-spacing-sm);
}

/* Visual area with striped gradient background */
.b-text-image-columns__quote-visual {
    position: relative;
    min-height: 160px;
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    overflow: visible;
    background: 
        linear-gradient(to right, var(--cg-color-secondary), transparent) no-repeat 0 6rem / 100% 1rem,
        linear-gradient(to right, var(--cg-color-secondary), transparent) no-repeat 0 8rem / 100% 1rem,
        linear-gradient(to right, var(--cg-color-primary), var(--cg-color-white));
}

/* White horizontal lines that fade in from left to right */
.b-text-image-columns__quote-visual::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        to bottom,
        transparent 0,
        transparent calc(1rem - 1px),
        var(--cg-color-white) calc(1rem - 1px),
        var(--cg-color-white) 1rem
    );
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 100%);
    mask-image: linear-gradient(to right, transparent 0%, black 100%);
    pointer-events: none;
}

.b-text-image-columns__quote-image {
    position: relative;
    z-index: 1;
    display: block;
    max-width: 220px;
    height: auto;
    object-fit: contain;
    object-position: bottom left;
    margin-left:10px;
}

/* Quote content area */
.b-text-image-columns__quote-content {
    background: linear-gradient(to right, var(--cg-color-primary) 0%, var(--cg-color-secondary) 100%);
    padding: var(--cg-spacing-md);
}

.b-text-image-columns__quote-text {
    font-family: var(--cg-font-heading);
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 400;
    color: var(--cg-color-white);
    line-height: 1.4;
    margin: 0 0 var(--cg-spacing-sm) 0;
    padding: 0;
    border: none;
}

.b-text-image-columns__quote-text::before {
    content: '\201C';
    display: inline;
}

.b-text-image-columns__quote-text::after {
    content: '\201D';
    display: inline;
}

.b-text-image-columns__quote-citation {
    display: block;
    font-style: normal;
    font-family: var(--cg-font-body);
    font-size: 1rem;
    color: var(--cg-color-white);
}

.b-text-image-columns__quote-citation-name {
    font-weight: 700;
}

.b-text-image-columns__quote-citation-name::after {
    content: ', ';
    font-weight: 400;
}

.b-text-image-columns__quote-citation-title {
    font-weight: 400;
}

/* Block editor styles */
.editor-styles-wrapper .b-text-image-columns__quote-heading,
.block-editor-block-list__layout .b-text-image-columns__quote-heading {
    color: var(--cg-color-primary) !important;
    text-transform: uppercase !important;
}

.editor-styles-wrapper .b-text-image-columns__quote-text,
.block-editor-block-list__layout .b-text-image-columns__quote-text {
    color: var(--cg-color-white) !important;
    font-style: normal !important;
        padding:0 !important;
    margin:0 !important;
}

.editor-styles-wrapper .b-text-image-columns__quote-citation-name,
.editor-styles-wrapper .b-text-image-columns__quote-citation-title,
.block-editor-block-list__layout .b-text-image-columns__quote-citation-name,
.block-editor-block-list__layout .b-text-image-columns__quote-citation-title {
    color: var(--cg-color-white) !important;
    font-style: normal !important;

}

/* Responsive */
@media (max-width: 767.98px) {
    .b-text-image-columns__quote-col {
        margin-top: var(--cg-spacing-lg);
    }
    
    .b-text-image-columns__quote-heading {
        font-size: 2rem;
    }
    
    .b-text-image-columns__quote-text {
        font-size: 1.125rem;
    }
    
    .b-text-image-columns__quote-image {
        max-width: 180px;
        margin-top: -60px;
    }
}

/* Block editor - Quote visual background */
.editor-styles-wrapper .b-text-image-columns__quote-visual,
.block-editor-block-list__layout .b-text-image-columns__quote-visual {
    background: 
        linear-gradient(to right, var(--cg-color-secondary), transparent) no-repeat 0 6rem / 100% 1rem,
        linear-gradient(to right, var(--cg-color-secondary), transparent) no-repeat 0 8rem / 100% 1rem,
        linear-gradient(to right, var(--cg-color-primary), var(--cg-color-white)) !important;
}

.editor-styles-wrapper .b-text-image-columns__quote-visual::before,
.block-editor-block-list__layout .b-text-image-columns__quote-visual::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background: repeating-linear-gradient(
        to bottom,
        transparent 0,
        transparent calc(1rem - 1px),
        var(--cg-color-white) calc(1rem - 1px),
        var(--cg-color-white) 1rem
    ) !important;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 100%) !important;
    mask-image: linear-gradient(to right, transparent 0%, black 100%) !important;
    pointer-events: none !important;
}

/* Block editor - Quote image size */
.editor-styles-wrapper .b-text-image-columns__quote-image,
.block-editor-block-list__layout .b-text-image-columns__quote-image {
    max-width: 220px !important;
    margin-left: 10px !important;
}

/* Block editor - Quote content padding */
.editor-styles-wrapper .b-text-image-columns__quote-content,
.block-editor-block-list__layout .b-text-image-columns__quote-content {
    padding: var(--cg-spacing-md) !important;
}

/* ==========================================================================
   News Grid - CSS Grid for Latest/Manual Modes (No Isotope)
   ========================================================================== */

/* Hide sizer elements when not using Isotope */
.b-news-grid--latest .b-news-grid__grid-sizer,
.b-news-grid--latest .b-news-grid__gutter-sizer,
.b-news-grid--manual .b-news-grid__grid-sizer,
.b-news-grid--manual .b-news-grid__gutter-sizer {
    display: none !important;
}

/* CSS Grid layout for latest/manual modes */
.b-news-grid--latest .b-news-grid__grid,
.b-news-grid--manual .b-news-grid__grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: var(--cg-spacing-lg) !important;
}

/* Override Isotope item sizing for grid modes */
.b-news-grid--latest article.b-news-grid__item,
.b-news-grid--manual article.b-news-grid__item {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Tablet: 2 columns */
@media (max-width: 991.98px) {
    .b-news-grid--latest .b-news-grid__grid,
    .b-news-grid--manual .b-news-grid__grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* Mobile: 1 column */
@media (max-width: 575.98px) {
    .b-news-grid--latest .b-news-grid__grid,
    .b-news-grid--manual .b-news-grid__grid {
        grid-template-columns: 1fr !important;
    }
}

/* ==========================================================================
   News Grid - Force CSS Grid in Editor for Latest/Manual Modes
   Override Isotope inline styles
   ========================================================================== */

/* Reset grid container inline styles */
.editor-styles-wrapper .b-news-grid--latest .b-news-grid__grid,
.editor-styles-wrapper .b-news-grid--manual .b-news-grid__grid,
.block-editor-block-list__layout .b-news-grid--latest .b-news-grid__grid,
.block-editor-block-list__layout .b-news-grid--manual .b-news-grid__grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: var(--cg-spacing-lg) !important;
    position: static !important;
    height: auto !important;
}

/* Reset item inline styles from Isotope */
.editor-styles-wrapper .b-news-grid--latest article.b-news-grid__item,
.editor-styles-wrapper .b-news-grid--manual article.b-news-grid__item,
.block-editor-block-list__layout .b-news-grid--latest article.b-news-grid__item,
.block-editor-block-list__layout .b-news-grid--manual article.b-news-grid__item {
    position: static !important;
    left: auto !important;
    top: auto !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Hide sizers in editor */
.editor-styles-wrapper .b-news-grid--latest .b-news-grid__grid-sizer,
.editor-styles-wrapper .b-news-grid--latest .b-news-grid__gutter-sizer,
.editor-styles-wrapper .b-news-grid--manual .b-news-grid__grid-sizer,
.editor-styles-wrapper .b-news-grid--manual .b-news-grid__gutter-sizer,
.block-editor-block-list__layout .b-news-grid--latest .b-news-grid__grid-sizer,
.block-editor-block-list__layout .b-news-grid--latest .b-news-grid__gutter-sizer,
.block-editor-block-list__layout .b-news-grid--manual .b-news-grid__grid-sizer,
.block-editor-block-list__layout .b-news-grid--manual .b-news-grid__gutter-sizer {
    display: none !important;
}

/* ==========================================================================
   Scroll Animations - DEBUG (remove after testing)
   ========================================================================== */

/* Base state - hidden */
div[data-animate] {
    opacity: 0 !important;
    transform: translateY(1.5rem) !important;
    transition: opacity 0.6s ease-out, transform 0.6s ease-out !important;
}

/* Visible state */
div[data-animate].is-visible {
    opacity: 1 !important;
    transform: translateY(0) !important;
}

/* Debug: Show stagger containers */

/* Staggered items within animated containers */
[data-animate-stagger] > [data-animate-item] {
    opacity: 0 !important;
    transform: translateY(1rem) !important;
    transition: opacity 0.5s ease-out, transform 0.5s ease-out !important;
}

[data-animate-stagger].is-visible > [data-animate-item] {
    opacity: 1 !important;
    transform: translateY(0) !important;
}

/* Debug: Show stagger items */

/* Promo Cards stagger animation (handled by Swiper init) */
.b-promo-cards__card {
    opacity: 0 !important;
    transition: opacity 0.5s ease-out !important;
}

.b-promo-cards__card.is-visible {
    opacity: 1 !important;
}

/* Image Grid stagger animation */
.b-header-text-image-grid__item {
    opacity: 0 !important;
    transform: translateY(1rem) !important;
}

.b-header-text-image-grid__item.is-ready {
    transition: opacity 0.5s ease-out, transform 0.5s ease-out !important;
}

.b-header-text-image-grid__item.is-visible {
    opacity: 1 !important;
    transform: translateY(0) !important;
}

/* ==========================================================================
   Text + Image Collage Block
   ========================================================================== */

.b-tic {
    padding: var(--cg-spacing-xl) 0;
}

.b-tic--bg-white {
    background-color: var(--cg-color-white) !important;
}

.b-tic--bg-off-white {
    background-color: var(--cg-color-off-white) !important;
}

.b-tic__container {
    width: 100%;
    max-width: var(--cg-container-default) !important;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--cg-spacing-md);
    padding-right: var(--cg-spacing-md);
}

.b-tic .row {
    display: flex;
    flex-wrap: wrap;
    --bs-gutter-x: 4rem;
}

/* Grid unit - everything aligns to this */
.b-tic__collage {
    --tic-grid: 30px;
    position: relative;
    height: calc(var(--tic-grid) * 12);
    overflow: visible;
}

/* Layer: Background pattern (Image C) - behind everything, bottom aligned to grid line 11 */
.b-tic__layer-bg {
position: absolute;
    bottom: 0;
    left: 0;
    width: calc(var(--tic-grid) * 10);
    height: calc(var(--tic-grid) * 6);
    background-size: cover;
    background-position: center;
    z-index: 7;
}

/* Layer: Main photo panel - offset left by 2 grid cells */
.b-tic__layer-photo {
    position: absolute;
    top: 0;
    right: 0;
    left: calc(var(--tic-grid) * 2);
    bottom: calc(var(--tic-grid) * 2);
    z-index: 6;
    overflow: hidden;
}

.b-tic__image-a {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Overlay: Bright green bands - spans full collage, grid rows 3 and 5 */
.b-tic__overlay-bands {
    position: absolute;
    opacity:0.5 !important;
    top: 0;
    right: 0;
    left: calc(var(--tic-grid) * 2);
    bottom: calc(var(--tic-grid) * 2);
    background: linear-gradient(
        to bottom,
        transparent 20%,
        var(--cg-color-highlight-green) 20%,
        var(--cg-color-highlight-green) 30%,
        transparent 30%,
        transparent 40%,
        var(--cg-color-highlight-green) 40%,
        var(--cg-color-highlight-green) 50%,
        transparent 50%
    );
    -webkit-mask-image: linear-gradient(to right, rgba(0,0,0,1) 0%, rgba(0,0,0,0.6) 30%, transparent 65%);
    mask-image: linear-gradient(to right, rgba(0,0,0,1) 0%, rgba(0,0,0,0.6) 30%, transparent 65%);
    z-index: 9;
    pointer-events: none;
}

/* Overlay: White horizontal lines - spans full collage, snapped to grid */
.b-tic__overlay-lines {
    position: absolute;
    top: 0;
    right: 0;
    left: calc(var(--tic-grid) * 2);
    height: calc(var(--tic-grid) * 8);
    background: repeating-linear-gradient(
        to bottom,
        transparent 0px,
        transparent calc(var(--tic-grid) - 1px),
        rgba(255, 255, 255, 0.8) calc(var(--tic-grid) - 1px),
        rgba(255, 255, 255, 0.8) var(--tic-grid)
    );
   -webkit-mask-image: linear-gradient(to right, transparent 0%, transparent 60%, rgba(0,0,0,0.5) 75%, rgba(0,0,0,1) 90%);
mask-image: linear-gradient(to right, transparent 0%, transparent 60%, rgba(0,0,0,0.5) 75%, rgba(0,0,0,1) 90%);
    z-index: 10;
    pointer-events: none;
}
/* Bottom gradient bar - 1 grid row tall */
.b-tic__collage::after {
    content: '';
    position: absolute;
    bottom: calc(var(--tic-grid) * 2);
    right: 0;
    left: calc(var(--tic-grid) * 2);
    height: var(--tic-grid);
    background: linear-gradient(
        to right,
        var(--cg-color-primary) 0%,
        var(--cg-color-primary) 40%,
        rgba(0, 169, 79, 0.5) 60%,
        rgba(255, 255, 255, 0.6) 80%,
        var(--cg-color-white) 100%
    );
    z-index: 4;
}

/* Layer: Figure background - wider gradient box behind the figure */
.b-tic__layer-figure-bg {
    position: absolute;
    bottom: calc(var(--tic-grid) * 1);
    left: calc(var(--tic-grid) * 2);
    width: calc(var(--tic-grid) * 14);
    height: calc(var(--tic-grid) * 9);
    background: linear-gradient(
        to right,
        var(--cg-color-primary) 20%,
        rgba(0, 169, 79, 0) 90%
    );
    z-index: 8;
}

/* Layer: Figure - green background, bottom aligns to grid line 11 */
.b-tic__layer-figure {
    position: absolute;
    bottom: calc(var(--tic-grid) * 1);
    left: calc(var(--tic-grid) * 2);
    width: calc(var(--tic-grid) * 6);
    height: calc(var(--tic-grid) * 8);
    z-index: 20;
    display: flex;
    align-items: flex-end;
}

.b-tic__image-b {
    width: 100%;
    height: auto;
    display: block;
}

/* Layer: Icons - replaces figure when icon mode selected */
.b-tic__layer-icons {
    position: absolute;
    bottom: calc(var(--tic-grid) * 3);
    left: calc(var(--tic-grid) * 3);
    width: calc(var(--tic-grid) * 6);
    height: calc(var(--tic-grid) * 8);
    z-index: 8;
    display: flex;
    align-items: flex-end;
    justify-content: left;
    gap: var(--cg-spacing-md);
    pointer-events: none;
}

.b-tic--image-right .b-tic__layer-icons {
    left: auto;
    right: calc(var(--tic-grid) * 3) !important;
    justify-content: right !important;
}

.b-tic__icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

.b-tic__icon i {
    font-size: 4rem;
    color: var(--cg-color-white);
}

/* Scale icon size based on count */
.b-tic__layer-icons--count-1 .b-tic__icon i {
    font-size: 5rem;
}

.b-tic__layer-icons--count-3 .b-tic__icon i,
.b-tic__layer-icons--count-4 .b-tic__icon i {
    font-size: 3rem;
}

/* Right layout mirror */
.b-tic--image-right .b-tic__layer-icons {
    left: auto;
    right: calc(var(--tic-grid) * 2);
}

/* Layout direction */
.b-tic--image-left .b-tic__collage-col {
    order: 1;
}

.b-tic--image-left .b-tic__content-col {
    order: 2;
}

.b-tic--image-right .b-tic__collage-col {
    order: 2;
}

.b-tic--image-right .b-tic__content-col {
    order: 1;
}

/* Right layout: mirror all positioned elements */
.b-tic--image-right .b-tic__layer-bg {
    left: auto;
    right: 0;
}

.b-tic--image-right .b-tic__layer-photo {
    left: 0;
    right: calc(var(--tic-grid) * 2);
}

.b-tic--image-right .b-tic__collage::after {
    left: 0;
    right: calc(var(--tic-grid) * 2);
    background: linear-gradient(
        to left,
        var(--cg-color-primary) 0%,
        var(--cg-color-primary) 40%,
        rgba(0, 169, 79, 0.5) 60%,
        rgba(255, 255, 255, 0.6) 80%,
        var(--cg-color-white) 100%
    );
}

.b-tic--image-right .b-tic__layer-figure {
    left: auto;
    right: calc(var(--tic-grid) * 2);
    transform: scaleX(-1);
}

.b-tic--image-right .b-tic__layer-figure-bg {
    left: auto;
    right: calc(var(--tic-grid) * 2);
    background: linear-gradient(
        to right,
        rgba(0, 169, 79, 0) 0%,
        var(--cg-color-primary) 80%
    );
}

.b-tic--image-right .b-tic__overlay-bands {
    left: 0;
    right: calc(var(--tic-grid) * 2);
    -webkit-mask-image: linear-gradient(to left, rgba(0,0,0,1) 0%, rgba(0,0,0,0.6) 40%, transparent 65%);
    mask-image: linear-gradient(to left, rgba(0,0,0,1) 0%, rgba(0,0,0,0.6) 40%, transparent 65%);
}

.b-tic--image-right .b-tic__overlay-lines {
   left: 0;
    right: calc(var(--tic-grid) * 2);
    -webkit-mask-image: linear-gradient(to left, transparent 0%, transparent 60%, rgba(0,0,0,0.5) 75%, rgba(0,0,0,1) 90%);
mask-image: linear-gradient(to left, transparent 0%, transparent 60%, rgba(0,0,0,0.5) 75%, rgba(0,0,0,1) 90%);
}}

/* Heading */
.b-tic__heading {
    color: var(--cg-color-primary);
    margin-bottom: var(--cg-spacing-md);
}

.b-tic__heading--uppercase {
    text-transform: uppercase !important;
}

.b-tic__heading--as-entered {
    text-transform: none !important;
}

.b-tic__body {
    margin-bottom: var(--cg-spacing-md);
}

/* Block editor */
.editor-styles-wrapper .b-tic__heading,
.block-editor-block-list__layout .b-tic__heading {
    color: var(--cg-color-primary) !important;
    text-transform: uppercase;
}

@media (max-width: 991.98px) {
    .b-tic__collage-col {
        order: 1 !important;
        margin-bottom: var(--cg-spacing-lg);
    }

    .b-tic__content-col {
        order: 2 !important;
    }

    .b-tic__collage {
        --tic-grid: 32px;
    }
}

/* DEBUG - REMOVE LATER */
/*.b-tic__collage { border: 5px solid red !important; }
.b-tic__layer-photo { border: 5px solid blue !important; }
.b-tic__layer-bg { border: 5px solid yellow !important; }
.b-tic__layer-figure { border: 5px solid magenta !important; }*/

.single .ast-single-post-featured-section {
    display: none;
}

.single .site-content .ast-container {
    display: block !important;
    max-width: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.single .t-single-post__columns {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: var(--cg-spacing-2xl);
    align-items: start;
}

.single .t-single-post__portrait {
    width: 100%;
    height: auto;
    display: block;
}

@media (max-width: 650px) {
    .single .ast-article-single .entry-content .t-single-post__columns {
        grid-template-columns: 1fr !important;
    }

    .single .t-single-post__image-col {
        order: -1;
        margin-bottom: var(--cg-spacing-lg);
    }
}

.single .ast-article-single .entry-content {
    max-width: none !important;
    font-size: inherit !important;
}

.single .ast-article-single .entry-content .t-single-post__columns {
    display: grid !important;
    grid-template-columns: 1fr 360px !important;
    gap: var(--cg-spacing-2xl) !important;
    align-items: start !important;
}