/* ==========================================================================

1.  FILE METADATA AND CONTENTS
2.  DESIGN TOKENS
3.  RESET AND BASE
4.  SHARED LAYOUT AND UTILITIES

5.  SITE HEADER
    5.1 Branding
    5.2 Announcement Ribbon

6.  PRIMARY NAVIGATION
    6.1 Navigation Row
    6.2 Navigation Links and States
    6.3 Dropdowns
    6.4 Search Trigger
    6.5 Donate Button

7.  SITE SEARCH
    7.1 Expandable Search Panel
    7.2 Search Results Page

8.  FOOTER
    8.1 Newsletter
    8.2 Main Footer
    8.3 Social Links
    8.4 Identity
    8.5 Bottom Bar
    8.6 Responsive Rules

9.  SHARED UI COMPONENTS
    9.1 Buttons
    9.2 Section Headings
    9.3 Layout Helpers

10. STANDARD PROGRAMME COMPONENTS
    10.1 Standard Programme Hero
    10.2 Programme Content Section
    10.3 Programme Services
    10.4 Standard Programme Journey
    10.5 Family Partnership
    10.6 Standard Programme Outcomes

11. EDITORIAL PROGRAMME COMPONENTS
    11.1 Editorial Programme Hero
    11.2 Editorial Introduction
    11.3 Programme Approach
    11.4 Programme Life
    11.5 Stories
    11.6 Journey
    11.7 Programme Outcomes

12. PAGE-SPECIFIC MODULES
    12.1 Counselling and Assessments

13. ACCESSIBILITY AND MOTION
14. LEGACY OVERRIDES

========================================================================== */

/* ==========================================================================
   1. DESIGN TOKENS
   ========================================================================== */

:root

{
    /* Brand colours */
    --vx-primary: #d24b38;
    --vx-primary-dark: #a93c2d;
    --vx-accent: #f28c28;

    /* Surfaces */
    --vx-background: #f6f2eb;
    --vx-secondary: #f6f2eb;
    --vx-surface: #ffffff;

    /* Text */
    --vx-text: #333333;
    --vx-text-muted: #686868;
    --vx-heading: #1f2d3d;

    /* Borders and effects */
    --vx-border: #ded8cf;
    --vx-radius-sm: 4px;
    --vx-radius: 8px;
    --vx-radius-lg: 12px;
    --vx-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);

    /* Typography */
    --vx-font-body: "Open Sans", Arial, sans-serif;
    --vx-font-heading: "Poppins", Arial, sans-serif;

    /* Spacing */
    --vx-space-xs: 0.5rem;
    --vx-space-sm: 1rem;
    --vx-space-md: 1.5rem;
    --vx-space-lg: 2rem;
    --vx-space-xl: 3rem;

    /* Layout */
    --vx-content-width: 1170px;
	
	/* From yes.css */
    --vexcel-orange: #d24b38;
    --vexcel-orange-dark: #a9431e;

    --vexcel-cream: #f6f2eb;
    --vexcel-cream-light: #fbf8f3;
    --vexcel-white: #ffffff;

    --vexcel-heading: #1f2d3d;
    --vexcel-text: #3d4147;
    --vexcel-muted: #6c7178;
    --vexcel-line: rgba(47, 42, 38, 0.14);

    --content-width: 1180px;
    --reading-width: 760px;

    --radius-large: 22px;
    --shadow-soft: 0 18px 50px rgba(31, 45, 61, 0.10);	
}

/* ==========================================================================
   3. RESET AND BASE
   ========================================================================== */
*,
*::before,
*::after
{
	box-sizing: border-box;
}


/* Remove unintended space above the site header */
html,
body
{
    margin: 0;
    padding: 0;
}

.main-page-wrapper
{
    margin-top: 0;
    padding-top: 0;
}

.main-page-wrapper > .header-section
{
    margin-top: 0 !important;
}

/* ==========================================================================
   5.1 BRANDING
   ========================================================================== */

.vx-brand-title
{
    color: white;
    font-family: var(--vx-font-heading);
    font-size: 3rem;
    font-weight: 700;
    letter-spacing: -0.5px;
    text-align: center;
    padding-top: 12px;
}

/* ==========================================================================
   5.2 ANNOUNCEMENT RIBBON
   ========================================================================== */

.vx-announcement

{
    background: var(--vx-background);
    border-top: 1px solid var(--vx-border);
    border-bottom: 1px solid var(--vx-border);
    padding: 10px 15px;
    text-align: center;
}

.vx-announcement p

{
    margin: 0;
    color: var(--vx-text);
    font-family: var(--vx-font-body);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.5;
}

@media (max-width: 767px)

{
    .vx-brand-title
    
    {
        font-size: 27px;
        padding: 10px 15px;
    }

    .vx-announcement
    
    {
        padding: 8px 15px;
    }

    .vx-announcement p
    
    {
        font-size: 14px;
        line-height: 1.45;
    }
}

/* ==========================================================================
   6.1 NAVIGATION ROW
   ========================================================================== */

/* ==========================================================================
   6.2 NAVIGATION LINKS AND STATES
   ========================================================================== */

.theme-main-menu

{
    height: auto !important;
    min-height: 0 !important;
}

.main-menu.menu-skew-div

{
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
}

.main-menu.menu-skew-div > nav.navbar

{
    flex: 1 1 auto;
    float: none !important;
    width: auto;
}

@media (max-width: 767px)

{
    .main-menu.menu-skew-div
    
    {
        display: block;
    }

    .main-menu.menu-skew-div > nav.navbar
    
    {
        width: 100%;
    }

    .main-menu .navbar-nav
    
    {
        display: block;
    }

    .main-menu .navbar-nav > li > a
    
    {
        padding: 14px 18px;
    }

    .main-menu .navbar-nav > li.active > a::after
    
    {
        display: none;
    }

    .main-menu .navbar-nav > li.dropdown-holder .sub-menu
    
    {
        position: static;
        min-width: 100%;
        padding: 0;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
    }
}

/* =========================================================
   PRIMARY NAVIGATION
   ========================================================= */

.theme-main-menu

{
    background: var(--vx-heading);
    border: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.main-menu .navbar-nav

{
    display: flex;
    align-items: stretch;
    gap: 4px;
}

.main-menu .navbar-nav > li

{
    margin: 0;
}

.main-menu .navbar-nav > li > a

{
    position: relative;
    color: #ffffff;
    font-family: var(--vx-font-body);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
    padding: 20px 18px;
    text-transform: uppercase;
    transform: none;
    transition:
        background-color 0.2s ease,
        color 0.2s ease;
}

/* Remove legacy zoom effect */
.nav > li > a:focus,
.nav > li > a:hover,
.main-menu .navbar-nav > li.active > a,
.main-menu .navbar-nav > li:hover > a,
.main-menu .navbar-nav > li:focus > a

{
    transform: none !important;
}

/* Hover and keyboard focus */
.main-menu .navbar-nav > li > a:hover,
.main-menu .navbar-nav > li > a:focus

{
    background: rgba(255, 255, 255, 0.08) !important;
    color: #ffffff;
}

/* Active page */
.main-menu .navbar-nav > li.active > a

{
    background: var(--vx-primary) !important;
    color: #ffffff;
}

/* Active-page underline */
.main-menu .navbar-nav > li.active > a::after

{
    content: "";
    position: absolute;
    right: 18px;
    bottom: 8px;
    left: 18px;
    height: 2px;
    background: #ffffff;
    border-radius: 2px;
}

/* ==========================================================================
   6.3 NAVIGATION DROPDOWNS
   ========================================================================== */

.main-menu .navbar-nav > li.dropdown-holder .sub-menu

{
    top: calc(100% + 10px);
    min-width: 240px;
    padding: 8px 0;
    background: #ffffff;
    border: 1px solid var(--vx-border);
    border-radius: 0 0 var(--vx-radius) var(--vx-radius);
    box-shadow: var(--vx-shadow);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition:
        opacity 0.2s ease,
        transform 0.2s ease,
        visibility 0.2s ease;
}

.main-menu .navbar-nav > li.dropdown-holder:hover .sub-menu,
.main-menu .navbar-nav > li.dropdown-holder:focus-within .sub-menu

{
    top: 100%;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    border-top: 0;
}

.main-menu .navbar-nav > li.dropdown-holder .sub-menu li a

{
    padding: 11px 16px;
    background: #ffffff;
    color: var(--vx-text);
    font-family: var(--vx-font-body);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
    border-top: 0;
}

.main-menu .navbar-nav > li.dropdown-holder .sub-menu li a:hover,
.main-menu .navbar-nav > li.dropdown-holder .sub-menu li a:focus

{
    background: var(--vx-background);
    color: var(--vx-primary);
}


/* ==========================================================================
   6.4 SEARCH TRIGGER
   ========================================================================== */

.vx-search-nav-item

{
    display: flex !important;
    align-items: stretch !important;
    margin-left: auto !important;
}

.vx-search-toggle

{
    display: flex !important;
    align-items: center !important;
    gap: 6px;
    height: 100% !important;
    min-height: 62px;
    padding: 0 16px !important;
    border: 0 !important;
    background: transparent !important;
    color: #ffffff !important;
    font-family: var(--vx-font-body);
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    cursor: pointer;
    transition:
        background-color 0.2s ease,
        color 0.2s ease;
}

.vx-search-toggle:hover,
.vx-search-toggle:focus,
.vx-search-toggle[aria-expanded="true"]

{
    background: var(--vx-primary) !important;
    color: #ffffff !important;
    outline: 2px solid transparent;
}

.vx-search-toggle .fa

{
    font-size: 16px;
}

@media (max-width: 767px)

{
    .vx-search-nav-item
    
    {
        display: block !important;
        margin-left: 0 !important;
    }

    .vx-search-toggle
    
    {
        width: 100%;
        min-height: 48px;
        justify-content: flex-start;
        padding: 14px 18px !important;
    }
}

/* ==========================================================================
   6.5 DONATE BUTTON
   ========================================================================== */

.vx-donate-wrap

{
    position: relative;
    z-index: 5;
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    align-self: center;
    float: none !important;
    min-height: 0;
    margin-left: 18px;
    padding: 6px 0;
}

.vx-donate-button

{
    position: relative;
    z-index: 6;
    display: inline-flex;
    align-items: center;
    overflow: hidden;
    min-height: 52px;
    border-radius: 999px;
    background: var(--vx-primary);
    color: #ffffff;
    font-family: var(--vx-font-body);
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.14);
    pointer-events: auto;
    transition:
        background-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.vx-donate-button:hover,
.vx-donate-button:focus

{
    background: #8f3025 !important;
    color: #ffffff !important;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.24) !important;
    transform: translateY(-2px) !important;
    outline: none;
}

.vx-donate-button__text

{
    padding: 0 18px 0 22px;
    white-space: nowrap;
}

.vx-donate-button__icon

{
    display: inline-flex;
    align-self: stretch;
    align-items: center;
    justify-content: center;
    width: 52px;
    background: var(--vx-accent);
    color: #ffffff;
    font-size: 22px;
    transition: background-color 0.2s ease;
}

.vx-donate-button__icon i

{
    margin: 0;
}

.vx-donate-button:hover .vx-donate-button__icon,
.vx-donate-button:focus .vx-donate-button__icon

{
    background: #c96c12 !important;
}

@media (max-width: 767px)

{
    .vx-donate-wrap
    
    {
        display: block;
        width: 100%;
        margin-left: 0;
        padding: 10px 15px;
    }

    .vx-donate-button
    
    {
        width: 100%;
        justify-content: space-between;
    }

    .vx-donate-button__text
    
    {
        flex: 1;
        text-align: center;
    }
}


/* ==========================================================================
   7.1 EXPANDABLE SEARCH PANEL
   ========================================================================== */

.vx-section-heading
{
    max-width: 760px;
    margin: 0 auto 42px;
    text-align: center;
}

.vx-section-heading__eyebrow
{
    display: inline-block;
    margin-bottom: 12px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(210,75,56,.10);
    color: var(--vx-primary-dark);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vx-section-heading h2
{
    margin-bottom: 20px;
    font-size: clamp(34px,4vw,48px);
    color: var(--vx-heading);
}

.vx-section-heading p
{
    font-size:1.35rem;
    line-height: 1.8;
    color: var(--vx-text);
}

.vx-site-search

{
    display: block;
    padding: 16px 20px;
    background: var(--vx-background);
    border-bottom: 1px solid var(--vx-border);
    box-shadow: var(--vx-shadow);
}

.vx-site-search[hidden]

{
    display: none !important;
}

.vx-site-search__form

{
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: 900px;
    margin: 0 auto;
}

.vx-site-search__form input[type="search"]

{
    flex: 1;
    min-width: 0;
    height: 48px;
    padding: 0 16px;
    border: 1px solid var(--vx-border);
    border-radius: var(--vx-radius);
    background: var(--vx-surface);
    color: var(--vx-text);
    font-family: var(--vx-font-body);
    font-size: 16px;
}

.vx-site-search__form input[type="search"]:focus

{
    border-color: var(--vx-primary);
    box-shadow: 0 0 0 3px rgba(210, 75, 56, 0.15);
    outline: none;
}

.vx-site-search__submit,
.vx-site-search__close

{
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 48px;
    padding: 0 !important;
    border: 0 !important;
    border-radius: var(--vx-radius);
    cursor: pointer;
}

.vx-site-search__submit

{
    padding: 0 20px !important;
    background: var(--vx-primary) !important;
    color: #ffffff !important;
    font-family: var(--vx-font-body);
    font-size: 15px;
    font-weight: 600;
}

.vx-site-search__submit:hover,
.vx-site-search__submit:focus

{
    background: var(--vx-primary-dark) !important;
}

.vx-site-search__close

{
    width: 48px;
    background: transparent !important;
    color: var(--vx-text) !important;
    font-size: 18px;
}

.vx-site-search__close:hover,
.vx-site-search__close:focus

{
    background: rgba(0, 0, 0, 0.06) !important;
    color: var(--vx-text) !important;
}

@media (max-width: 767px)

{
    .vx-site-search
    
    {
        padding: 12px 15px;
    }

    .vx-site-search__form
    
    {
        flex-wrap: wrap;
    }

    .vx-site-search__form input[type="search"]
    
    {
        flex-basis: 100%;
    }

    .vx-site-search__submit
    
    {
        flex: 1;
    }
}

/* ==========================================================================
   7.2 SEARCH RESULTS PAGE
   ========================================================================== */

.vx-search-results

{
    padding: var(--vx-space-xl) 0;
    background: var(--vx-surface);
}

.vx-search-results__header

{
    max-width: 900px;
    margin: 0 auto var(--vx-space-lg);
}

.vx-search-results__header h1

{
    margin: 0 0 var(--vx-space-md);
    color: var(--vx-heading);
    font-family: var(--vx-font-heading);
    font-size: 36px;
    line-height: 1.2;
}

.vx-search-results__form

{
    display: flex;
    gap: 10px;
}

.vx-search-results__form input

{
    flex: 1;
    min-width: 0;
    height: 50px;
    padding: 0 16px;
    border: 1px solid var(--vx-border);
    border-radius: var(--vx-radius);
    font-family: var(--vx-font-body);
    font-size: 16px;
}

.vx-search-results__form input:focus

{
    border-color: var(--vx-primary);
    box-shadow: 0 0 0 3px rgba(210, 75, 56, 0.14);
    outline: none;
}

.vx-search-results__form button

{
    height: 50px;
    padding: 0 24px;
    border: 0;
    border-radius: var(--vx-radius);
    background: var(--vx-primary);
    color: #ffffff;
    font-family: var(--vx-font-body);
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
}

.vx-search-results__message,
.vx-search-results__count,
.vx-search-results__list

{
    max-width: 900px;
    margin-right: auto;
    margin-left: auto;
}

.vx-search-results__count

{
    margin-bottom: var(--vx-space-md);
    color: var(--vx-text-muted);
    font-size: 15px;
}

.vx-search-results__list

{
    padding: 0;
    list-style: none;
}

.vx-search-result

{
    padding: var(--vx-space-md) 0;
    border-bottom: 1px solid var(--vx-border);
}

.vx-search-result h2

{
    margin: 0 0 6px;
    font-size: 22px;
    line-height: 1.3;
}

.vx-search-result h2 a

{
    color: var(--vx-primary);
}

.vx-search-result h2 a:hover,
.vx-search-result h2 a:focus

{
    color: var(--vx-primary-dark);
}

.vx-search-result p

{
    margin: 0;
    color: var(--vx-text);
    font-size: 15px;
    line-height: 1.7;
}

@media (max-width: 767px)

{
    .vx-search-results
    
    {
        padding: var(--vx-space-lg) 15px;
    }

    .vx-search-results__header h1
    
    {
        font-size: 30px;
    }

    .vx-search-results__form
    
    {
        flex-direction: column;
    }

    .vx-search-results__form button
    
    {
        width: 100%;
    }
}

/* Search-result category labels */

.vx-search-result__category

{
    display: inline-block;
    margin-bottom: 8px;
    padding: 4px 9px;
    border-radius: 999px;
    background: var(--vx-background);
    color: var(--vx-primary-dark);
    font-family: var(--vx-font-body);
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.vx-search-results__updated

{
    max-width: 900px;
    margin: -8px auto var(--vx-space-md);
    color: var(--vx-text-muted);
    font-size: 13px;
}

.vx-search-result__url

{
    display: inline-block;
    margin-top: 8px;
    color: var(--vx-text-muted);
    font-size: 13px;
    word-break: break-word;
}

/* Search term highlighting */

.vx-search-result mark

{
    background: #fff2a8;
    color: inherit;
    padding: 0 2px;
    border-radius: 2px;
}

/* ==========================================================================
   8. FOOTER
   ========================================================================== */

.vx-footer
{
    font-family: var(--vx-font-body);
    color: var(--vx-text);
}


/* Newsletter */

.vx-footer-newsletter
{
    background: linear-gradient(
        135deg,
        var(--vx-accent),
        var(--vx-primary)
    );
    color: #ffffff;
    padding: 34px 0 26px;
}

.vx-footer-newsletter__grid
{
    display: flex;
    align-items: flex-start;
}

.vx-footer-newsletter__intro
{
    display: flex;
    align-items: flex-start;
    gap: 16px;
    flex: 0 0 36%;
    padding-top: 6px;
}

.vx-footer-newsletter__intro > i
{
    font-size: 34px;
    line-height: 1;
    margin-top: 3px;
}

.vx-footer-newsletter__intro h2
{
    margin: 0 0 6px;
    color: #ffffff;
    font-family: var(--vx-font-heading);
    font-size: 24px;
    font-weight: 700;
    line-height: 1.25;
}

.vx-footer-newsletter__intro p
{
    margin: 0;
    color: rgba(255, 255, 255, 0.92);
    font-size: 15px;
    line-height: 1.6;
}

.vx-footer-newsletter__form
{
    display: flex;
    flex: 1;
    gap: 10px;
}

.vx-footer-newsletter__form input
{
    flex: 1;
    min-width: 0;
    height: 52px;
    padding: 0 16px;
    border: 0;
    border-radius: var(--vx-radius);
    background: #ffffff;
    color: var(--vx-text);
    font-size: 16px;
}

.vx-footer-newsletter__form button
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 170px;
    height: 52px;
    border: 0;
    border-radius: var(--vx-radius);
    background: var(--vx-primary-dark);
    color: #ffffff;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition:
        background-color 0.2s ease,
        transform 0.2s ease;
}

.vx-footer-newsletter__form button:hover,
.vx-footer-newsletter__form button:focus
{
    background: #7f2d23;
    transform: translateY(-1px);
}

.vx-footer-newsletter__privacy
{
    margin: 12px 0 0 calc(36% + 36px);
    color: rgba(255, 255, 255, 0.82);
    font-size: 13px;
}


/* Main footer */

.vx-footer-main
{
    background: var(--vx-background);
    padding: 56px 0 44px;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.vx-footer-column
{
    margin-bottom: 28px;
}

.vx-footer-column h3
{
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 20px;
    color: var(--vx-heading);
    font-family: var(--vx-font-heading);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    text-transform: uppercase;
}

.vx-footer-column h3 i
{
    color: var(--vx-primary);
}

.vx-footer-column p
{
    margin: 0 0 12px;
    color: var(--vx-text);
    font-size: 14px;
    line-height: 1.7;
}

.vx-footer-links,
.vx-footer-contact
{
    margin: 0;
    padding: 0;
    list-style: none;
}

.vx-footer-links li
{
    margin-bottom: 10px;
}

.vx-footer-links a
{
    position: relative;
    padding-left: 15px;
    color: var(--vx-text);
    font-size: 14px;
}

.vx-footer-links a::before
{
    content: "›";
    position: absolute;
    left: 0;
    color: var(--vx-primary);
    font-weight: 700;
}

.vx-footer-links a:hover,
.vx-footer-links a:focus
{
    color: var(--vx-primary);
}

.vx-footer-contact li
{
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    color: var(--vx-text);
    font-size: 14px;
    line-height: 1.6;
}

.vx-footer-contact li > i
{
    flex: 0 0 18px;
    margin-top: 4px;
    color: var(--vx-primary);
    text-align: center;
}

.vx-footer-contact a
{
    color: var(--vx-primary);
}

.vx-footer-contact a:hover,
.vx-footer-contact a:focus
{
    color: var(--vx-primary-dark);
}


/* Social */

.vx-footer-social
{
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 18px;
}

.vx-footer-social a
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #ffffff;
    color: var(--vx-primary);
    box-shadow: var(--vx-shadow);
    transition:
        background-color 0.2s ease,
        color 0.2s ease,
        transform 0.2s ease;
}

.vx-footer-social a:hover,
.vx-footer-social a:focus
{
    background: var(--vx-primary);
    color: #ffffff;
    transform: translateY(-3px) scale(1.08);
}

.vx-footer-message

{
    text-align: center;
}

.vx-footer-message p

{
    color: var(--vx-primary);
    font-family: var(--vx-font-heading);
    font-size: 15px;
    line-height: 1.5;
    max-width: 180px;
    margin: 16px auto 0;
    font-style: italic;
}

.vx-footer-message strong

{
    font-style: normal;
    font-weight: 700;
}

/* Identity */

.vx-footer-identity
{
    background: #efe9df;
    padding: 22px 0;
    text-align: center;
        border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.vx-footer-identity p
{
    margin: 0;
    color: var(--vx-heading);
    font-size: 14px;
    line-height: 1.6;
}

.vx-footer-identity strong
{
    font-size: 17px;
}


/* Bottom */

.vx-footer-bottom
{
    background: #242424;
    padding: 24px 0 30px;
    text-align: center;
}

.vx-footer-copyright
{
    margin: 0 0 22px;
    color: #ffffff;
    font-size: 14px;
}

.vx-footer-badges
{
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.vx-footer-badges img
{
    width: auto;
    max-width: 96px;
    max-height: 86px;
    object-fit: contain;
}

.vx-footer-badges li:last-child img
{
    max-width: 112px;
}


/* Mobile */

@media (max-width: 767px)
{
    .vx-footer-newsletter__grid
    {
        display: block;
    }

    .vx-footer-newsletter__intro
    {
        margin-bottom: 20px;
    }

    .vx-footer-newsletter__form
    {
        display: block;
    }

    .vx-footer-newsletter__form input,
    .vx-footer-newsletter__form button
    {
        width: 100%;
    }

    .vx-footer-newsletter__form button
    {
        margin-top: 10px;
    }

    .vx-footer-newsletter__privacy
    {
        margin-left: 0;
    }

    .vx-footer-main
    {
        padding: 44px 0 30px;
    }

    .vx-footer-column h3
    {
        margin-bottom: 12px;
    }

    .vx-footer-badges
    {
        gap: 18px;
    }

    .vx-footer-badges img
    {
        max-width: 78px;
        max-height: 72px;
    }
}

.vx-footer-newsletter,
.vx-footer-main,
.vx-footer-identity,
.vx-footer-bottom

{
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/*
============= 9.1 BUTTONS =====================
*/
.vx-button
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 22px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-family: var(--vx-font-body);
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease,
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.vx-button:hover,
.vx-button:focus
{
    transform: translateY(-1px);
    text-decoration: none;
}

.vx-button--primary
{
    background: var(--vx-primary);
    color: #ffffff;
    box-shadow: var(--vx-shadow);
}

.vx-button--primary:hover,
.vx-button--primary:focus
{
    background: var(--vx-primary-dark);
    color: #ffffff;
}

.vx-button--secondary
{
    background: transparent;
    border-color: var(--vx-primary);
    color: var(--vx-primary-dark);
}

.vx-button--secondary:hover,
.vx-button--secondary:focus
{
    background: rgba(210, 75, 56, 0.08);
    color: var(--vx-primary-dark);
}


/* ==========================================================================
   10.1 STANDARD PROGRAMME HERO
   ========================================================================== */

.vx-programme-hero
{
    padding: 64px 0;
    overflow: hidden;
    background:
        linear-gradient(
            135deg,
            rgba(246, 242, 235, 0.98),
            rgba(255, 255, 255, 0.98)
        );
    border-bottom: 1px solid var(--vx-border);
}

.vx-programme-hero__grid
{
    display: grid;
    grid-template-columns: 0.95fr 1.05fr;
    align-items: center;
    gap: 56px;
}

.vx-programme-hero__content
{
    min-width: 0;
}

.vx-programme-hero__eyebrow
{
    display: inline-block;
    margin-bottom: 14px;
    padding: 6px 11px;
    border-radius: 999px;
    background: rgba(210, 75, 56, 0.10);
    color: var(--vx-primary-dark);
    font-family: var(--vx-font-body);
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.vx-programme-hero h1
{
    margin: 0 0 18px;
    color: var(--vx-heading);
    font-family: var(--vx-font-heading);
    font-size: clamp(38px, 5vw, 60px);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -0.02em;
}

.vx-programme-hero__lead
{
    max-width: 650px;
    margin: 0;
    color: var(--vx-text);
    font-family: var(--vx-font-body);
    font-size: 19px;
    line-height: 1.7;
}

.vx-programme-hero__description
{
    max-width: 650px;
    margin: 18px 0 0;
    color: var(--vx-text);
    font-family: var(--vx-font-body);
    font-size: 16px;
    line-height: 1.75;
}

.vx-programme-hero__actions
{
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    width: fit-content;
    max-width: 100%;
    margin-top: 28px;
}

.vx-programme-hero__trust
{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0;
    width: 430px;
    max-width: 100%;
    margin: 14px 0 0;
    padding: 0;
    color: var(--vx-text-muted);
    font-family: var(--vx-font-body);
    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;
    text-align: center;
}

.vx-programme-hero__trust-item
{
    display: inline-block;
    color: var(--vx-text-muted);
}

.vx-programme-hero__trust-separator
{
    display: inline-block;
    margin: 0 8px;
    color: var(--vx-primary);
}

.vx-programme-hero__highlights
{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 34px 0 0;
    padding: 0;
    list-style: none;
}

.vx-programme-hero__highlights li
{
    padding-top: 14px;
    border-top: 2px solid rgba(210, 75, 56, 0.22);
}

.vx-programme-hero__highlights strong
{
    display: block;
    margin-bottom: 4px;
    color: var(--vx-heading);
    font-family: var(--vx-font-heading);
    font-size: 15px;
    line-height: 1.3;
}

.vx-programme-hero__highlights span
{
    display: block;
    color: var(--vx-text-muted);
    font-size: 13px;
    line-height: 1.5;
}

.vx-programme-hero__media
{
    position: relative;
    min-width: 0;
    transform: translateY(16px);
}

.vx-programme-hero__media::before
{
    content: "";
    position: absolute;
    top: -16px;
    right: -16px;
    width: 55%;
    height: 55%;
    border-radius: var(--vx-radius-lg);
    background: rgba(242, 140, 40, 0.14);
}

.vx-programme-hero__media img
{
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center center;
    border-radius: var(--vx-radius-lg);
    box-shadow: 0 18px 40px rgba(31, 45, 61, 0.16);
}

@media (max-width: 991px)
{
    .vx-programme-hero
    {
        padding: 48px 0;
    }

    .vx-programme-hero__grid
    {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .vx-programme-hero__media
    {
        max-width: 760px;
        transform: none;
    }
}

@media (max-width: 767px)
{
    .vx-programme-hero
    {
        padding: 36px 15px;
    }

    .vx-programme-hero h1
    {
        font-size: 38px;
    }

    .vx-programme-hero__lead
    {
        font-size: 17px;
    }

    .vx-programme-hero__actions
    {
        display: block;
        width: 100%;
    }

    .vx-button
    {
        width: 100%;
    }

    .vx-button + .vx-button
    {
        margin-top: 10px;
    }

    .vx-programme-hero__trust
    {
        width: 100%;
        justify-content: center;
        text-align: center;
    }

    .vx-programme-hero__highlights
    {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .vx-programme-hero__media::before
    {
        top: -10px;
        right: -10px;
    }
}

/* ==========================================================================
   10.2 PROGRAMME CONTENT SECTION
   ========================================================================== */

.vx-programme-section
{
    padding: 80px 0;
    background: #ffffff;
}

.vx-two-column
{
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 70px;
    align-items: start;
}

.vx-two-column p
{
    margin-bottom: 24px;
    font-size: 18px;
    line-height: 1.9;
}

.vx-programme-quote
{
    padding: 36px;
    border-left: 5px solid var(--vx-primary);
    border-radius: var(--vx-radius);
    background: var(--vx-secondary);
    font-size: 24px;
    font-style: italic;
    line-height: 1.6;
    color: var(--vx-heading);
    box-shadow: var(--vx-shadow);
}

@media (max-width: 991px)
{
    .vx-two-column
    {
        grid-template-columns: 1fr;
        gap: 40px;
    }
}

/* ==========================================================================
   10.3 PROGRAMME SERVICES
   ========================================================================== */

.vx-programme-services
{
    padding: 72px 0 80px;
    background: var(--vx-background);
}

.vx-service-grid
{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.vx-service-grid--center-last > :last-child:nth-child(4)
{
    grid-column: 2;
}

.vx-service-card
{
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
    min-height: 100%;
    padding: 30px;
	padding-bottom: 36px;
    border: 1px solid rgba(210, 75, 56, 0.10);
    border-radius: var(--vx-radius-lg);
    background: var(--vx-surface);
    box-shadow: 0 8px 24px rgba(31, 45, 61, 0.08);
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.vx-service-card::before
{
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(
        90deg,
        var(--vx-primary),
        var(--vx-accent)
    );
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.25s ease;
}

.vx-service-card:hover,
.vx-service-card:focus-within
{
    border-color: rgba(210, 75, 56, 0.24);
    box-shadow: 0 14px 34px rgba(31, 45, 61, 0.14);
    transform: translateY(-5px);
}

.vx-service-card:hover::before,
.vx-service-card:focus-within::before
{
    transform: scaleX(1);
}

.vx-service-card__icon
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin-bottom: 22px;
    border-radius: 50%;
    background: rgba(210, 75, 56, 0.10);
    color: var(--vx-primary);
    font-size: 21px;
    transition:
        background-color 0.2s ease,
        color 0.2s ease,
        transform 0.2s ease;
}

.vx-service-card:hover .vx-service-card__icon,
.vx-service-card:focus-within .vx-service-card__icon
{
    background: var(--vx-primary);
    color: #ffffff;
    transform: scale(1.06);
}

.vx-service-card h3
{
    margin: 0 0 12px;
    color: var(--vx-heading);
    font-family: var(--vx-font-heading);
    font-size: 21px;
    font-weight: 700;
    line-height: 1.35;
}

.vx-service-card p
{
    margin: 0;
    color: var(--vx-text-muted);
    font-family: var(--vx-font-body);
    font-size: 15px;
    line-height: 1.75;
	margin-top: auto;
}

@media (max-width: 991px)
{
    .vx-service-grid
    {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px)
{
    .vx-programme-services
    {
        padding: 56px 15px 64px;
    }

    .vx-service-grid
    {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .vx-service-card
    {
        padding: 26px;
    }
}

/* ==========================================================
   Centre the final card in four-card grids
   Usage:
   <div class="vx-service-grid vx-service-grid--center-last">
   ========================================================== */

@media (min-width: 992px) 
{

    .vx-service-grid--center-last 
	{
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 2rem;
    }

    .vx-service-grid--center-last > :last-child:nth-child(4) 
	{
        grid-column: 2;
    }

}

/* ==========================================================================
   10.4 STANDARD PROGRAMME JOURNEY
   ========================================================================== */

.vx-programme-journey
{
    padding: 80px 0;
    background: var(--vx-surface);
}

.vx-journey
{
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 34px;
    margin-top: 20px;
}

.vx-journey::before
{
    content: "";
    position: absolute;
    top: 34px;
    right: 11%;
    left: 11%;
    height: 3px;
    background: linear-gradient(
        90deg,
        rgba(210, 75, 56, 0.15),
        rgba(242, 140, 40, 0.40),
        rgba(210, 75, 56, 0.15)
    );
}

.vx-journey-step
{
    position: relative;
    z-index: 1;
    text-align: center;
}

.vx-journey-step__icon
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 68px;
    margin: 0 auto 22px;
    border: 2px solid rgba(210, 75, 56, 0.20);
    border-radius: 50%;
    background: var(--vx-surface);
    color: var(--vx-primary);
    font-size: 25px;
    box-shadow: 0 8px 22px rgba(31, 45, 61, 0.10);
    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease,
        transform 0.2s ease;
}

.vx-journey-step:hover .vx-journey-step__icon
{
    border-color: var(--vx-primary);
    background: var(--vx-primary);
    color: #ffffff;
    transform: translateY(-3px);
}

.vx-journey-step h3
{
    min-height: 58px;
    margin: 0 0 12px;
    color: var(--vx-heading);
    font-family: var(--vx-font-heading);
    font-size: 21px;
    font-weight: 700;
    line-height: 1.35;
}

.vx-journey-step p
{
    max-width: 250px;
    margin: 0 auto;
    color: var(--vx-text-muted);
    font-family: var(--vx-font-body);
    font-size: 15px;
    line-height: 1.75;
}

@media (max-width: 991px)
{
    .vx-journey
    {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 46px 30px;
    }

    .vx-journey::before
    {
        display: none;
    }
}

@media (max-width: 767px)
{
    .vx-programme-journey
    {
        padding: 60px 15px;
    }

    .vx-journey
    {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .vx-journey-step h3
    {
        min-height: 0;
    }
}

/* ==========================================================================
   10.5 FAMILY PARTNERSHIP
   ========================================================================== */

.vx-family-partnership
{
    padding: 80px 0;
    background: var(--vx-background);
}

.vx-family-grid
{
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 72px;
}

.vx-family-photo
{
    position: relative;
}

.vx-family-photo::before
{
    content: "";
    position: absolute;
    top: -14px;
    left: -14px;
    width: 52%;
    height: 52%;
    border-radius: var(--vx-radius-lg);
    background: rgba(242, 140, 40, 0.14);
}

.vx-family-photo img
{
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--vx-radius-lg);
    box-shadow: 0 18px 40px rgba(31, 45, 61, 0.16);
}

.vx-family-content h2
{
    margin: 0 0 20px;
    color: var(--vx-heading);
    font-family: var(--vx-font-heading);
    font-size: clamp(34px, 4vw, 48px);
    font-weight: 700;
    line-height: 1.15;
}

.vx-family-content > p
{
    margin: 0 0 20px;
    color: var(--vx-text);
    font-family: var(--vx-font-body);
    font-size: 17px;
    line-height: 1.8;
}

.vx-family-list
{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 22px;
    margin: 30px 0 0;
    padding: 0;
    list-style: none;
}

.vx-family-list li
{
    position: relative;
    padding-left: 30px;
    color: var(--vx-heading);
    font-family: var(--vx-font-body);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.5;
}

.vx-family-list li::before
{
    content: "\f00c";
    position: absolute;
    top: 1px;
    left: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(210, 75, 56, 0.11);
    color: var(--vx-primary);
    font-family: "Font Awesome 5 Free";
    font-size: 10px;
    font-weight: 900;
}

@media (max-width: 991px)
{
    .vx-family-grid
    {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .vx-family-photo
    {
        max-width: 760px;
    }
}

@media (max-width: 767px)
{
    .vx-family-partnership
    {
        padding: 60px 15px;
    }

    .vx-family-content h2
    {
        font-size: 36px;
    }

    .vx-family-content > p
    {
        font-size: 16px;
    }

    .vx-family-list
    {
        grid-template-columns: 1fr;
    }

    .vx-family-photo::before
    {
        top: -10px;
        left: -10px;
    }
}

/* ==========================================================================
   10.6 STANDARD PROGRAMME OUTCOMES
   ========================================================================== */

.vx-programme-outcomes
{
    padding: 80px 0;
    background: #ffffff;
}

.vx-outcome-grid
{
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 28px;
    margin-top: 50px;
}

.vx-outcome-card
{
    text-align: center;
    padding: 28px;
}

.vx-outcome-card__icon
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 70px;
    height: 70px;
    margin-bottom: 24px;
    border-radius: 50%;
    background: rgba(210,75,56,.10);
    color: var(--vx-primary);
    font-size: 28px;
}

.vx-outcome-card h3
{
    margin-bottom: 14px;
    color: var(--vx-heading);
    font-size: 22px;
    line-height: 1.35;
}

.vx-outcome-card p
{
    font-size: 15px;
    line-height: 1.8;
    color: var(--vx-text-muted);
}

@media (max-width:991px)
{
    .vx-outcome-grid
    {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@media (max-width:767px)
{
    .vx-outcome-grid
    {
        grid-template-columns:1fr;
    }
    .vx-programme-outcomes .vx-programme-quote
    {
        font-size:22px;
    }
}

.vx-outcomes-statement
{
    position: relative;
    max-width: 820px;
    margin: 90px auto 0;
    padding-top: 46px;
    text-align: center;
}

.vx-outcomes-statement::before
{
    content: "";
    display: block;
    width: 80px;
    height: 2px;
    margin: 0 auto 34px;
    background: rgba(210, 75, 56, 0.28);
}

.vx-outcomes-statement p
{
    max-width: 720px;
    margin: 0 auto;
    padding: 0;
    color: var(--vx-heading);
    font-family: var(--vx-font-heading);
    font-size: 22px;
    font-style: italic;
    font-weight: 400;
    line-height: 1.75;
}

@media (max-width: 767px)
{
    .vx-outcomes-statement
    {
        margin-top: 52px;
        padding-top: 34px;
    }

    .vx-outcomes-statement p
    {
        font-size: 19px;
    }
}

/* ==========================================================================
   11.1 EDITORIAL PROGRAMME HERO
   ========================================================================== */

.programme-hero
{
	padding: 48px 0 88px;
	background:
		radial-gradient(circle at top right, rgba(210, 75, 56, 0.12), transparent 34%),
		var(--vexcel-cream);
}

.hero-image 
{
	position: relative;
	min-height: 520px;
	overflow: hidden;
	border-radius: var(--radius-large);
	background: #f0f0f0;
	box-shadow: var(--shadow-soft);
}

/* Force image to span the full width and height */
.hero-image img 
{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}		

.hero-image::before
{
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		linear-gradient(to top, rgba(20, 25, 32, 0.34), transparent 48%),
		repeating-linear-gradient(
			115deg,
			transparent 0,
			transparent 46px,
			rgba(255, 255, 255, 0.035) 47px,
			rgba(255, 255, 255, 0.035) 48px
		);
}

.photo-note
{
	position: absolute;
	right: 24px;
	bottom: 22px;
	z-index: 1;
	max-width: 290px;
	padding: 11px 15px;
	border: 1px solid rgba(255, 255, 255, 0.42);
	border-radius: 999px;
	background: rgba(31, 45, 61, 0.62);
	color: var(--vexcel-white);
	font-size: 0.82rem;
	line-height: 1.35;
	text-align: center;
	backdrop-filter: blur(8px);
}

.hero-copy
{
	max-width: 920px;
	margin: 58px auto 0;
	text-align: center;
}

.programme-name
{
	margin: 0 0 18px;
	color: var(--vexcel-orange);
	font-family: "Poppins", Arial, sans-serif;
	font-size: 2.5rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.hero-title
{
	max-width: 900px;
	margin: 0 auto;
	color: var(--vexcel-heading);
	font-family: "Poppins", Arial, sans-serif;
	font-size: clamp(2.45rem, 5.3vw, 4.75rem);
	font-weight: 650;
	letter-spacing: -0.045em;
	line-height: 1.08;
}

.hero-summary
{
	max-width: 760px;
	margin: 28px auto 0;
	color: var(--vexcel-text);
	font-size: clamp(1.74rem, 1.8vw, 1.74rem);
	line-height: 1.75;
}

/* ==========================================================================
   11.2 EDITORIAL INTRODUCTION
   ========================================================================== */
   
.opening-narrative
{
	padding: 110px 0 124px;
	background: var(--vexcel-white);
}

.narrative-inner
{
	max-width: var(--reading-width);
	margin: 0 auto;
}

.narrative-inner p
{
	margin: 0 0 26px;
	font-size: 1.74rem;
}

.section-kicker
{
	margin: 0 0 14px;
	color: var(--vexcel-orange);
	font-family: "Poppins", Arial, sans-serif;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.section-title
{
	margin: 0 0 42px;
	color: var(--vexcel-heading);
	font-family: "Poppins", Arial, sans-serif;
	font-size: clamp(2.1rem, 4vw, 3.4rem);
	font-weight: 650;
	letter-spacing: -0.035em;
	line-height: 1.14;
}

.narrative-question
{
	margin: 42px 0;
	padding: 30px 34px;
	border-left: 5px solid var(--vexcel-orange);
	background: var(--vexcel-cream);
	color: var(--vexcel-heading);
	font-family: "Poppins", Arial, sans-serif;
	font-size: clamp(1.65rem, 3vw, 2.35rem);
	font-weight: 600;
	letter-spacing: -0.025em;
	line-height: 1.3;
}

.foundation-line
{
	margin-top: 34px !important;
	color: var(--vexcel-heading);
	font-family: "Poppins", Arial, sans-serif;
	font-size: 1.74rem !important;
	font-weight: 600;
}

.narrative-closing
{
	margin-bottom: 0 !important;
}

.next-section-marker
{
	display: flex;
	justify-content: center;
	padding: 28px 0;
	background: var(--vexcel-cream);
	color: var(--vexcel-muted);
	font-size: 0.8rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

@media (max-width: 760px)
{
	.container
	{
		width: min(calc(100% - 28px), var(--content-width));
	}

	.programme-hero
	{
		padding: 22px 0 64px;
	}

	.hero-image
	{
		min-height: 360px;
		border-radius: 16px;
	}

	.photo-note
	{
		right: 14px;
		bottom: 14px;
		left: 14px;
		max-width: none;
		border-radius: 12px;
	}

	.hero-copy
	{
		margin-top: 42px;
	}

	.opening-narrative
	{
		padding: 76px 0 88px;
	}

	.narrative-question
	{
		margin: 32px 0;
		padding: 24px;
	}
}

/* ==========================================================================
   11.3 PROGRAMME APPROACH
   ========================================================================== */
   
.programme-approach
{
	padding: 112px 0 126px;
	background: var(--vexcel-cream);
}

.approach-heading
{
	max-width: 820px;
	margin: 0 auto 72px;
	text-align: center;
}

.approach-heading .section-title
{
	margin-bottom: 26px;
}

.approach-introduction
{
	margin: 0;
	color: var(--vexcel-text);
	font-size: 1.74rem;
	line-height: 1.8;
}

.approach-list
{
	display: grid;
	gap: 54px;
}

.approach-item
{
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
	align-items: center;
	gap: clamp(38px, 6vw, 82px);
	padding: 24px;
	border: 1px solid rgba(31, 45, 61, 0.08);
	border-radius: var(--radius-large);
	background: var(--vexcel-white);
	box-shadow: var(--shadow-soft);
}

.approach-item-reverse .approach-photo
{
	order: 2;
}

.approach-item-reverse .approach-copy
{
	order: 1;
}

.approach-photo 
{
	position: relative;
	min-height: 410px;
	overflow: hidden;
	border-radius: 16px;
	background: #f0f0f0;
}

/* Force image to cover the entire absolute area */
.approach-photo img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Make sure the decorative overlay sits ON TOP of the image */
.approach-photo::before 
{
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1; /* Sits above the image */
	pointer-events: none; /* Allows clicking through */
	background:
		linear-gradient(to top, rgba(31, 45, 61, 0.20), transparent 60%),
		repeating-linear-gradient(120deg, transparent 0, transparent 42px, rgba(255, 255, 255, 0.02) 43px, rgba(255, 255, 255, 0.02) 44px);
}

.approach-photo-note
{
	position: absolute;
	right: 18px;
	bottom: 18px;
	left: 18px;
	z-index: 2;
	padding: 11px 14px;
	border: 1px solid rgba(255, 255, 255, 0.42);
	border-radius: 12px;
	background: rgba(31, 45, 61, 0.64);
	color: var(--vexcel-white);
	font-size: 0.8rem;
	line-height: 1.4;
	text-align: center;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.approach-copy
{
	max-width: 500px;
}

.approach-number
{
	margin: 0 0 14px;
	color: var(--vexcel-orange);
	font-family: "Poppins", Arial, sans-serif;
	font-size: 1.74rem;
	font-weight: 700;
	letter-spacing: 0.16em;
}

.approach-copy h3
{
	margin: 0 0 22px;
	color: var(--vexcel-heading);
	font-family: "Poppins", Arial, sans-serif;
	font-size: clamp(1.65rem, 3vw, 2.35rem);
	font-weight: 650;
	letter-spacing: -0.03em;
	line-height: 1.2;
}

.approach-copy p:last-child
{
	margin: 0;
	font-size: 1.5rem;
	line-height: 1.8;
}

@media (max-width: 860px)
{
	.approach-item
	{
		grid-template-columns: 1fr;
		gap: 32px;
		padding: 22px;
	}

	.approach-item-reverse .approach-photo,
	.approach-item-reverse .approach-copy
	{
		order: initial;
	}

	.approach-copy
	{
		max-width: none;
	}

	.approach-photo
	{
		min-height: 340px;
	}
}

@media (max-width: 560px)
{
	.programme-approach
	{
		padding: 78px 0 88px;
	}

	.approach-heading
	{
		margin-bottom: 48px;
		text-align: left;
	}

	.approach-list
	{
		gap: 30px;
	}

	.approach-item
	{
		padding: 16px;
		border-radius: 16px;
	}

	.approach-photo
	{
		min-height: 285px;
		border-radius: 12px;
	}

	.approach-copy
	{
		padding: 4px 4px 10px;
	}
}
	
/* ==========================================================================
   11.4 PROGRAMME LIFE
   ========================================================================== */
   
.programme-life
{
	overflow: hidden;
	background: linear-gradient(180deg, var(--vexcel-white) 0%, var(--vexcel-white) 28%, #fbf9f5 28%, #fbf9f5 100%);
}

.programme-life__container
{
	width: min(calc(100% - 40px), var(--content-width));
	margin: 0 auto;
}

.programme-life__intro
{
	max-width: 860px;
	margin: 0 auto;
	padding: 112px 0 92px;
	text-align: center;
}

.programme-life__eyebrow,
.life-scene__kicker
{
	display: inline-block;
	margin-bottom: 18px;
	color: var(--vexcel-orange);
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.programme-life__invitation,
.life-scene__opening
{
	color: var(--vexcel-muted);
	font-family: Georgia, "Times New Roman", serif;
	font-style: italic;
}

.programme-life__invitation
{
	margin: 0 0 18px;
	font-size: clamp(1.5rem, 2vw, 1.35rem);
}

.programme-life__title
{
	max-width: 760px;
	margin: 0 auto 34px;
	color: var(--vexcel-heading);
	font-family: "Poppins", Arial, sans-serif;
	font-size: clamp(2.5rem, 6vw, 5.3rem);
	font-weight: 600;
	letter-spacing: -0.045em;
	line-height: 1.02;
}

.programme-life__lead
{
	margin: 0;
	color: #454545;
	font-size: clamp(1.74rem, 1.8vw, 1.18rem);
	line-height: 1.9;
}

.programme-life__lead + .programme-life__lead 
{ 
	margin-top: 24px; 
}

.life-scenes 
{ 
	padding: 32px 0 120px; 
}

.life-scene 
{
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(48px, 6vw, 80px);
	align-items: start;
	margin: 0 0 128px;
}

.life-scene:last-child 
{ 
	margin-bottom: 0; 
}

.life-scene--reverse 
{ 
	grid-template-columns: minmax(320px, 0.84fr) minmax(0, 1.16fr); 
}

.life-scene--reverse .life-scene__image 
{ 
	order: 2; 
}

.life-scene--reverse .life-scene__story 
{ 
	order: 1; 
}

.life-scene__image 
{
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: var(--radius-large);
	background: #ded8d0;
	box-shadow: var(--shadow-soft);
	margin: 0;
}

.life-scene__image::after 
{
	position: absolute;
	inset: 0;
	content: "";
	z-index: 1;
	pointer-events: none;
	border-radius: inherit;
	background: linear-gradient(180deg, rgba(31, 45, 61, 0.02) 0%, rgba(31, 45, 61, 0.12) 100%);
}

.life-scene__image img 
{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .45s ease;
}

.life-scene:hover .life-scene__image img 
{ 
	transform: scale(1.025); 
}

.life-scene__story 
{ 
	max-width: 500px; 
}

.life-scene__opening 
{ 
	margin: 0 0 10px; 
	font-size: clamp(1.5rem, 1.7vw, 1.28rem); 
}

.life-scene__title
{
	margin: 0 0 24px;
	color: var(--vexcel-heading);
	font-family: "Poppins", Arial, sans-serif;
	font-size: clamp(2rem, 4vw, 3.6rem);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 1.08;
}

.life-scene__body 
{ 
	margin: 0; 
	color: #4b4b4b; 
	font-size: 1.74rem; 
}

.life-scene__body + .life-scene__body 
{ 
	margin-top: 18px; 
}

.life-community 
{
	padding: 0 0 120px; 
}

.life-community__image
{
	position: relative;
	min-height: 430px;
	overflow: hidden;
	border-radius: var(--radius-large);
	background: #ded8d0;
	box-shadow: var(--shadow-soft);
}

.life-community__image::after
{
	position: absolute;
	inset: 0;
	content: "";
	background: linear-gradient(90deg, rgba(20,29,37,0.68) 0%, rgba(20,29,37,0.36) 42%, rgba(20,29,37,0.08) 72%, rgba(20,29,37,0.02) 100%);
}

.life-community__image img 
{ 
	position: absolute;
	inset:0;
	width: 100%; 
	height: 100%; 
	object-fit: cover; 
}

.life-community__story
{
	position: absolute;
	z-index: 2;
	top: 50%;
	left: clamp(28px, 6vw, 84px);
	width: min(520px, calc(100% - 56px));
	color: var(--vexcel-white);
	transform: translateY(-50%);
}

.life-community__story .life-scene__kicker,
.life-community__story .life-scene__opening,
.life-community__story .life-scene__title,
.life-community__story .life-scene__body 
{ 
	color: var(--vexcel-white); 
}

.life-community__story .life-scene__kicker 
{ 	
	opacity: 0.9; 
}

.life-quote 
{ 
	padding: 110px 20px 126px; 
	background: var(--vexcel-cream); 
	text-align: center; 
}

.life-quote__mark 
{ 
	display: block; 
	height: 40px; 
	margin-bottom: 18px; 
	color: var(--vexcel-orange); 
	font-family: Georgia, "Times New Roman", serif; 
	font-size: 5rem; 
	line-height: 1; 
}

.life-quote blockquote
{
	max-width: 900px;
	margin: 0 auto;
	color: var(--vexcel-heading);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.75rem, 3.7vw, 3rem);
	line-height: 1.42;
}

.media-placeholder 
{
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background-color: #e3ded6;
	border-radius: inherit;
	text-align: center;
	box-sizing: border-box;
}		

.media-placeholder span
{
	max-width: 360px;
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1.65;
	text-transform: uppercase;
}

@media (max-width: 920px)
{
	.programme-life__intro 
	{ 
		padding: 88px 0 74px; 
	}
	.life-scenes 
	{ 
		padding-bottom: 90px; 
	}
	.life-scene,
	.life-scene--reverse 
	{ 
		grid-template-columns: 1fr; 
		gap: 42px; 
		margin-bottom: 92px; 
	}
	.life-scene--reverse .life-scene__image,
	.life-scene--reverse .life-scene__story 
	{ 
		order: initial; 
	}
	.life-scene__story 
	{ 
		max-width: 700px; 
	}
	.life-scene__image 
	{ 
		min-height: 430px; 
	}
	.life-scene__image img 
	{ 
		min-height: 430px; 
	}
	.life-community__image 
	{ 
		min-height: 680px; 
	}
	.life-community__image img 
	{ 
		min-height: 680px; 
	}
	.life-community__image::after 
	{ 
		background: linear-gradient(180deg, rgba(20,29,37,0.10) 15%, rgba(20,29,37,0.76) 100%); 
	}
	.life-community__story 
	{ 
		top: auto; 
		right: 32px; 
		bottom: 48px; 
		left: 32px; 
		width: auto; 
		transform: none; 
	}
}

@media (max-width: 640px)
{
	.programme-life__container 
	{ 
		width: min(calc(100% - 28px), var(--content-width)); 
	}
	.programme-life__intro 
	{ 
		padding: 72px 0 60px; 
		text-align: left; 
	}
	.programme-life__title 
	{ 
		margin-left: 0; 
	}
	.life-scenes 
	{ 
		padding: 16px 0 72px; 
	}
	.life-scene,
	.life-scene--reverse 
	{ 	
		gap: 32px; 
		margin-bottom: 72px; 
	}
	.life-scene__image,
	.life-scene__image img 
	{ 
		min-height: 340px; 
	}
	.life-community 
	{ 
		padding-bottom: 80px; 
	}
	.life-community__image,
	.life-community__image img 
	{ 
		min-height: 620px; 
	}
	.life-community__story 
	{ 
		right: 22px; 
		bottom: 34px; 
		left: 22px; 
	}
	.life-quote 
	{ 
		padding: 84px 20px 94px; 
	}
}

@media (prefers-reduced-motion: reduce)
{
	html 
	{ 
		scroll-behavior: auto; 
	}
	.life-scene__image img 
	{ 
		transition: none; 
	}
	.life-scene:hover .life-scene__image img 
	{ 
		transform: none; 
	}
}		

/* ==========================================================================
   11.5 STORIES
   ========================================================================== */
   
.stories-section
{
	padding: clamp(72px, 9vw, 132px) 24px;
	overflow: hidden;
}

.stories-shell
{
	width: min(100%, var(--content-width));
	margin: 0 auto;
}

.stories-intro
{
	max-width: 850px;
	margin: 0 auto clamp(72px, 9vw, 124px);
	text-align: center;
}

.stories-kicker,
.story-theme
{
	margin: 0 0 14px;
	color: var(--vexcel-orange);
	font-family: "Poppins", Arial, sans-serif;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.35;
	text-transform: uppercase;
}

.stories-intro h1,
.stories-outro h2,
.story-content h2
{
	margin-top: 0;
	color: var(--vexcel-heading);
	font-family: "Poppins", Arial, sans-serif;
	font-weight: 600;
	letter-spacing: -0.035em;
	line-height: 1.12;
}

.stories-intro h1
{
	margin-bottom: 26px;
	font-size: clamp(2.55rem, 5.2vw, 5.2rem);
}

.stories-lead
{
	max-width: 760px;
	margin: 0 auto;
	color: var(--vexcel-muted);
	font-size: clamp(1.74rem, 1.45vw, 1.22rem);
}

.story
{
	display:grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: clamp(52px, 7vw, 96px);
	align-items:center;
}

.story--image-right .story-media
{
	grid-column: 2;
	grid-row: 1;
	justify-self: start;
}

.story--image-right .story-content
{
	grid-column: 1;
	grid-row: 1;
	justify-self: end;
}

.story-media
{
	position: relative;
	width: 92%;
	max-width: 620px;
	justify-self: end;
}


.story-media::before
{
	content: "";
	position: absolute;
	z-index: -1;
	top: 28px;
	right: -28px;
	bottom: -28px;
	left: 28px;
	border-radius: var(--radius-large);
	background: rgba(216, 102, 50, 0.13);
}

.story--image-right .story-media::before
{
	right: 28px;
	left: -28px;
}

.story-media img
{
	width: 100%;
	aspect-ratio: 5 / 4;
	display: block;
	border-radius: var(--radius-large);
	background: #ddd4ca;
	box-shadow: var(--shadow-soft);
	object-fit: cover;
}

.story-content
{
	max-width: 610px;
}

.story-content h2
{
	margin-bottom: 30px;
	font-size: clamp(2.2rem, 4vw, 4.05rem);
}

.story-content p
{
	margin: 0 0 22px;
}

.story-content p:last-child
{
	margin-bottom: 0;
}

.story-content blockquote
{
	position: relative;
	margin: 0 0 34px;
	padding: 2px 0 2px 28px;
	border-left: 3px solid var(--vexcel-orange);
}

.story-content blockquote p
{
	margin: 0 0 12px;
	color: var(--vexcel-heading);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.18rem, 1.8vw, 1.46rem);
	font-style: italic;
	line-height: 1.55;
}

.story-content blockquote cite
{
	color: var(--vexcel-muted);
	font-size: 0.88rem;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.story-closing
{
	position: relative;
	margin-top: 34px;
	padding-top: 26px;
	color: var(--vexcel-orange-dark);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.5rem;
	font-style: italic;
}

.story-closing::before
{
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 68px;
	height: 2px;
	background: var(--vexcel-orange);
}

.stories-outro
{
    position: relative;
    max-width: 850px;
    margin: clamp(7rem, 11vw, 11rem) auto 0;
    padding: clamp(48px, 7vw, 78px);
    border: 1px solid var(--vexcel-line);
    border-radius: var(--radius-large);
    background: rgba(255, 253, 249, 0.72);
    box-shadow: var(--shadow-soft);
    text-align: center;
}

.stories-outro h2
{
	margin-bottom: 24px;
	font-size: clamp(2rem, 3.7vw, 3.6rem);
}

.stories-outro p
{
	max-width: 690px;
	margin: 0 auto 18px;
	color: var(--vexcel-muted);
}

.stories-outro p:last-child
{
	margin-bottom: 0;
}

.story:last-of-type 
{
    margin-bottom: 20rem; /* Ensures text finishes higher up */
}

@media (max-width: 900px)
{
	.story,
	.story--image-right
	{
		grid-template-columns: 1fr;
		gap: 52px;
	}

	.story--image-right .story-media,
	.story--image-right .story-content
	{
		grid-column: 1;
		grid-row: auto;
	}

	.story-content
	{
		max-width: none;
	}

	.story-media
	{
		width: min(100%, 620px);
		margin: 0 auto;
	}

	.story-media img
	{
		aspect-ratio: 5 / 4;
		border-radius: 16px;
	}
}

@media (max-width: 600px)
{
	body
	{
		font-size: 17px;
	}

	.stories-section
	{
		padding-right: 18px;
		padding-left: 18px;
	}

	.story
	{
		margin-bottom: 100px;
	}

	.story-media::before
	{
		top: 16px;
		right: -12px;
		bottom: -16px;
		left: 12px;
	}

	.story--image-right .story-media::before
	{
		right: 12px;
		left: -12px;
	}

	.story-media img
	{
		aspect-ratio: 4 / 5;
		border-radius: 16px;
	}

	.stories-outro
	{
		padding: 42px 24px;
		border-radius: 16px;
	}
}

@media (prefers-reduced-motion: reduce)
{
	html
	{
		scroll-behavior: auto;
	}
}

/* ==========================================================================
   11.6 JOURNEY
   ========================================================================== */
   
.journey
{
	overflow: hidden;
	background: linear-gradient(180deg, var(--vexcel-white) 0%, var(--vexcel-white) 22%, var(--vexcel-paper) 22%, var(--vexcel-paper) 100%);
}

.journey__container
{
	width: min(calc(100% - 80px), var(--content-width));
	margin: 0 auto;
}

.journey__intro
{
	max-width: 860px;
	margin: 0 auto;
	padding: 112px 0 94px;
	text-align: center;
}

.journey__eyebrow,
.journey-step__label
{
	display: inline-block;
	margin-bottom: 18px;
	color: var(--vexcel-primary);
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.journey__reflection
{
	margin: 0 0 18px;
	color: var(--vexcel-muted);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.5rem, 2vw, 1.35rem);
	font-style: italic;
}

.journey__title
{
	max-width: 780px;
	margin: 0 auto 34px;
	color: var(--vexcel-heading);
	font-family: "Poppins", Arial, sans-serif;
	font-size: clamp(2.6rem, 6vw, 5.3rem);
	font-weight: 600;
	letter-spacing: -0.045em;
	line-height: 1.02;
}

.journey__lead
{
	margin: 0;
	color: var(--vexcel-text);
	font-size: clamp(1.74rem, 1.8vw, 1.18rem);
	line-height: 1.9;
}

.journey__lead + .journey__lead
{
	margin-top: 24px;
}

.journey-path
{
	position: relative;
	padding: 24px 0 122px;
}

.journey-path::before
{
	position: absolute;
	top: 54px;
	bottom: 150px;
	left: 50%;
	width: 1px;
	content: "";
	background: linear-gradient(180deg, transparent 0%, var(--vexcel-line) 8%, var(--vexcel-line) 92%, transparent 100%);
	transform: translateX(-50%);
}

.journey-step
{
    position: relative;
    display: grid;
    grid-template-columns:
        minmax(0, 0.92fr)
        96px
        minmax(0, 1.08fr);
    align-items: center;
    min-height: 500px;
    margin-bottom: 96px;
}

.journey-step:last-child
{
	margin-bottom: 0;
}

.journey-step__marker
{
	position: relative;
	z-index: 2;
	grid-column: 2;
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	margin: 0 auto;
	border: 1px solid rgba(210, 75, 56, 0.28);
	border-radius: 50%;
	color: var(--vexcel-primary);
	background: var(--vexcel-paper);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.8rem;
	font-style: italic;
	box-shadow: 0 0 0 12px var(--vexcel-paper);
}

.journey-step__image
{
    position: relative;
    width: 100%;
    max-width: 700px;
    min-height: 460px;
    overflow: hidden;
    border-radius: var(--radius-large);
    background: #ded8d0;
    box-shadow: var(--shadow-soft);
}

.journey-step__image::after
{
	position: absolute;
	inset: 0;
	content: "";
	pointer-events: none;
	background: linear-gradient(180deg, rgba(31, 45, 61, 0.02) 0%, rgba(31, 45, 61, 0.10) 100%);
}

.journey-step__image img
{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform 700ms ease;
}

.journey-step:hover .journey-step__image img
{
	transform: scale(1.025);
}

.journey-step__story
{
	max-width: 470px;
}

.journey-step:nth-child(odd) .journey-step__image
{
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
}

.journey-step:nth-child(even) .journey-step__image
{
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
}

.journey-step:nth-child(odd) .journey-step__story
{
	grid-column: 3;
	grid-row: 1;
	padding-left: clamp(26px, 4vw, 58px);
}

.journey-step:nth-child(even) .journey-step__story
{
	grid-column: 1;
	grid-row: 1;
	justify-self: end;
	padding-right: clamp(26px, 4vw, 58px);
	text-align: right;
}

.journey-step:nth-child(even) .journey-step__image
{
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
}

.journey-step__whisper
{
	margin: 0 0 10px;
	color: var(--vexcel-muted);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.5rem, 1.7vw, 1.27rem);
	font-style: italic;
}

.journey-step__title
{
	margin: 0 0 22px;
	color: var(--vexcel-heading);
	font-family: "Poppins", Arial, sans-serif;
	font-size: clamp(2.1rem, 4vw, 3.7rem);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 1.06;
}

.journey-step__body
{
	margin: 0;
	color: var(--vexcel-text);
	font-size: 1.74rem;
}

.journey-step__body + .journey-step__body
{
	margin-top: 16px;
}

.journey-step__essence
{
	display: block;
	margin-top: 25px;
	color: var(--vexcel-heading);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.74rem;
	font-style: italic;
	line-height: 1.6;
}

.journey-close
{
	padding: 112px 20px 124px;
	background: var(--vexcel-secondary);
	text-align: center;
}

.journey-close__mark
{
	display: block;
	height: 40px;
	margin-bottom: 18px;
	color: var(--vexcel-primary);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 5rem;
	line-height: 1;
}

.journey-close blockquote
{
	max-width: 900px;
	margin: 0 auto;
	color: var(--vexcel-heading);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.75rem, 3.7vw, 3rem);
	line-height: 1.42;
}

@media (max-width: 980px)
{
	.journey-path::before
	{
		left: 28px;
		transform: none;
	}

	.journey-step
	{
		grid-template-columns: 56px minmax(0, 1fr);
		gap: 24px;
		min-height: auto;
		margin-bottom: 92px;
	}

	.journey-step__marker
	{
		grid-column: 1;
		grid-row: 1 / span 2;
		align-self: start;
		width: 54px;
		height: 54px;
		box-shadow: 0 0 0 9px var(--vexcel-paper);
	}

	.journey-step:nth-child(odd) .journey-step__image,
	.journey-step:nth-child(even) .journey-step__image
	{
		grid-column: 2;
		grid-row: 1;
	}

	.journey-step:nth-child(odd) .journey-step__story,
	.journey-step:nth-child(even) .journey-step__story
	{
		grid-column: 2;
		grid-row: 2;
		justify-self: start;
		max-width: 700px;
		padding: 38px 0 0;
		text-align: left;
	}
}

@media (max-width: 640px)
{
	.journey__container
	{
		width: min(calc(100% - 28px), var(--vexcel-max-width));
	}

	.journey__intro
	{
		padding: 72px 0 60px;
		text-align: left;
	}

	.journey-path
	{
		padding: 8px 0 72px;
	}

	.journey-path::before
	{
		left: 21px;
		bottom: 95px;
	}

	.journey-step
	{
		grid-template-columns: 42px minmax(0, 1fr);
		gap: 18px;
		margin-bottom: 74px;
	}

	.journey-step__marker
	{
		width: 42px;
		height: 42px;
		font-size: 1rem;
		box-shadow: 0 0 0 7px var(--vexcel-paper);
	}

	.journey-step__image,
	{
		min-height: 340px;
	}

	.journey-step:nth-child(odd) .journey-step__story,
	.journey-step:nth-child(even) .journey-step__story
	{
		padding-top: 28px;
	}

	.journey-close
	{
		padding: 84px 20px 94px;
	}
}

/* ==========================================================================
   11.7 PROGRAMME OUTCOMES
   ========================================================================== */
   
.programme-outcomes
{
	padding: clamp(5.5rem, 9vw, 9rem) 0;
	background: #fff;
}

/*
.programme-outcomes *, .programme-outcomes *::before, .programme-outcomes *::after
{
	box-sizing: border-box;
}
*/

.programme-outcomes__container
{
	width:min(calc(100% - 80px), var(--content-width));
	margin-inline: auto;
}

.programme-outcomes__intro
{
	max-width: 850px;
	margin: 0 auto clamp(5rem, 9vw, 8rem);
	text-align: center;
}

.programme-outcomes__eyebrow
{
	margin: 0 0 1.1rem;
	color: var(--vexcel-orange);
	font-family: "Poppins", sans-serif;
	font-size: 2rem;
	font-weight: 600;
	letter-spacing: .19em;
	line-height: 1.4;
	text-transform: uppercase;
}

.programme-outcomes__kicker
{
	margin: 0 0 1.35rem;
	color: var(--vexcel-muted);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.5rem, 1.5vw, 1.16rem);
	font-style: italic;
	line-height: 1.7;
}

.programme-outcomes__intro h2
{
	margin: 0 0 2.4rem;
	color: var(--vexcel-heading);
	font-family: "Poppins", sans-serif;
	font-size: clamp(2.35rem, 5vw, 4.2rem);
	font-weight: 500;
	letter-spacing: -.035em;
	line-height: 1.1;
}

.programme-outcomes__opening
{
	max-width: 760px;
	margin-inline: auto;
}

.programme-outcomes__opening p
{
	margin: 0;
	font-family: "Open Sans", sans-serif;
	font-size: clamp(1.74rem, 1.25vw, 1.08rem);
	line-height: 1.9;
}

.programme-outcomes__opening p+p
{
	margin-top: 1.65rem;
}

.programme-outcomes__list
{
	display: grid;
	gap: clamp(5rem, 10vw, 9rem);
}

.programme-outcome
{
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(300px, .88fr);
	align-items: center;
	gap: clamp(2.5rem, 6vw, 6rem);
}

.programme-outcome--reverse .programme-outcome__media
{
	order: 2;
}

.programme-outcome--reverse .programme-outcome__copy
{
	order: 1;
}

.programme-outcome__media
{
	/*
	position:relative;
	overflow:hidden;
	min-height:420px;
	*/
    position: relative;
    width: 100%;
    max-width: 700px;
    min-height: 460px;
    overflow: hidden;
    border-radius: var(--radius-large);
    background: #ded8d0;
    box-shadow: var(--shadow-soft);
}

.programme-outcome__media::after
{
	position: absolute;
	z-index: -1;
	right: -1.15rem;
	bottom: -1.15rem;
	width: 62%;
	height: 68%;
	border-radius: 2px;
	content: "";
}

.programme-outcome--reverse .programme-outcome__media::after
{
	right: auto;
	left: -1.15rem;
}

.programme-outcome__media img
{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:cover;
}

.programme-outcome__copy
{
	max-width: 470px;
}

.programme-outcome__number
{
	margin: 0 0 1rem;
	color: var(--vexcel-orange);
	font-family: "Poppins", sans-serif;
	font-size: 1.75rem;
	font-weight: 600;
	letter-spacing: .18em;
}

.programme-outcome__copy h3
{
	margin: 0 0 1.35rem;
	color: var(--vexcel-heading);
	font-family: "Poppins", sans-serif;
	font-size: clamp(1.65rem, 2.6vw, 2.35rem);
	font-weight: 500;
	letter-spacing: -.025em;
	line-height: 1.25;
}

.programme-outcome__copy p:last-child
{
	margin: 0;
	font-family: "Open Sans", sans-serif;
	font-size: clamp(1.74rem, 1.15vw, 1.07rem);
	line-height: 1.85;
}

.programme-outcomes__reflection
{
	max-width: 900px;
	margin: clamp(6rem, 11vw, 10rem) auto 0;
	padding: clamp(2.5rem, 5vw, 4rem);
	border-top: 1px solid var(--vexcel-line);
	border-bottom: 1px solid var(--vexcel-line);
	text-align: center;
}

.programme-outcomes__reflection p
{
	margin: 0;
	color: var(--vexcel-heading);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.2rem, 2.15vw, 1.65rem);
	font-style: italic;
	line-height: 1.75;
}

@media(max-width:820px)
{
	.programme-outcomes__container
	{
		width: min(100% - 2rem, 680px);
	}

	.programme-outcome, .programme-outcome--reverse
	{
		grid-template-columns: 1fr;
		gap: 2.25rem;
	}

	.programme-outcome--reverse .programme-outcome__media, .programme-outcome--reverse .programme-outcome__copy
	{
		order: initial;
	}

	.programme-outcome__copy
	{
		max-width: 620px;
	}

	.programme-outcome__media::after, .programme-outcome--reverse .programme-outcome__media::after
	{
		right: -.65rem;
		bottom: -.65rem;
		left: auto;
	}
}

@media(max-width:520px)
{
	.programme-outcomes
	{
		padding-block: 4.5rem;
	}

	.programme-outcomes__intro
	{
		margin-bottom: 4.5rem;
	}

	.programme-outcomes__opening
	{
		text-align: left;
	}

	.programme-outcomes__list
	{
		gap: 4.75rem;
	}

	.programme-outcomes__reflection
	{
		padding-inline: .5rem;
	}
}	

/* ========================================================================== 
   12.1 COUNSELLING & ASSESSMENTS
   ========================================================================== */

.ca-page
{
    overflow: hidden;
    color: var(--vx-text);
    font-family: var(--vx-font-body);
}

.ca-page h2,
.ca-page h3
{
    font-family: var(--vx-font-heading);
}

.ca-page h2
{
    margin: 0 0 22px;
    color: var(--vx-heading);
    font-size: 38px;
    font-weight: 700;
    line-height: 1.25;
}

.ca-page h3
{
    margin: 0 0 14px;
    color: var(--vx-heading);
    font-size: 21px;
    font-weight: 700;
    line-height: 1.35;
}

.ca-page p
{
    color: var(--vx-text);
    font-size: 16px;
    line-height: 1.8;
}

.ca-intro,
.ca-support,
.ca-audiences,
.ca-process,
.ca-faq
{
    padding: 88px 0;
}

.ca-intro__grid,
.ca-context__grid
{
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 72px;
    align-items: start;
}

.ca-intro__heading h2,
.ca-context h2
{
    max-width: 520px;
}

.ca-intro__copy p:first-child,
.ca-context__copy p:first-child
{
    margin-top: 0;
}

.ca-intro__copy p:last-child,
.ca-context__copy p:last-child
{
    margin-bottom: 0;
}

.ca-promise
{
    padding: 0 0 88px;
    background: #ffffff;
}

.ca-promise__panel
{
    position: relative;
    overflow: hidden;
    padding: 58px 70px;
    border-left: 6px solid var(--vx-primary);
    border-radius: var(--vx-radius-lg);
    background: var(--vx-background);
}

.ca-promise__panel::after
{
    content: "";
    position: absolute;
    right: -65px;
    bottom: -85px;
    width: 230px;
    height: 230px;
    border: 38px solid rgba(242, 140, 40, 0.12);
    border-radius: 50%;
}

.ca-promise__panel h2,
.ca-promise__panel p,
.ca-values
{
    position: relative;
    z-index: 1;
}

.ca-promise__panel p
{
    max-width: 780px;
    margin-bottom: 30px;
    font-size: 18px;
}

.ca-values
{
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.ca-values span
{
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 7px 16px;
    border: 1px solid rgba(210, 75, 56, 0.24);
    border-radius: 999px;
    background: #ffffff;
    color: var(--vx-primary-dark);
    font-family: var(--vx-font-heading);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ca-support
{
    background: #fbf8f3;
}

.ca-support-grid
{
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 24px;
    margin-top: 48px;
}

.ca-support-card
{
    grid-column: span 2;
    min-height: 100%;
    padding: 32px 28px;
    border: 1px solid var(--vx-border);
    border-radius: var(--vx-radius-lg);
    background: #ffffff;
    box-shadow: 0 6px 18px rgba(31, 45, 61, 0.05);
    transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.ca-support-card:nth-child(4)
{
    grid-column: 2 / span 2;
}

.ca-support-card:hover
{
    transform: translateY(-4px);
    border-color: rgba(210, 75, 56, 0.32);
    box-shadow: 0 14px 30px rgba(31, 45, 61, 0.10);
}

.ca-support-card__icon
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin-bottom: 22px;
    border-radius: 50%;
    background: rgba(210, 75, 56, 0.10);
    color: var(--vx-primary);
    font-size: 21px;
}

.ca-support-card p
{
    margin: 0;
    color: var(--vx-text-muted);
    font-size: 15px;
    line-height: 1.75;
}

.ca-life-changing
{
    padding: 96px 0;
    background: var(--vx-heading);
}

.ca-life-changing__grid
{
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: 76px;
    align-items: center;
}

.ca-life-changing__media
{
    position: relative;
}

.ca-life-changing__media::before
{
    content: "";
    position: absolute;
    top: -18px;
    left: -18px;
    width: 100%;
    height: 100%;
    border: 2px solid rgba(242, 140, 40, 0.55);
    border-radius: var(--vx-radius-lg);
}

.ca-life-changing__media img
{
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    min-height: 500px;
    object-fit: cover;
    border-radius: var(--vx-radius-lg);
    background: #314052;
}

.ca-life-changing .vx-section-heading__eyebrow
{
    color: #f4aa63;
}

.ca-life-changing h2,
.ca-life-changing p,
.ca-life-changing li
{
    color: #ffffff;
}

.ca-life-changing h2
{
    max-width: 620px;
    font-size: 42px;
}

.ca-life-changing__lead
{
    margin: -8px 0 30px;
    color: #f8c18b !important;
    font-family: var(--vx-font-heading);
    font-size: 22px !important;
    font-style: italic;
}

.ca-life-changing ul
{
    margin: 0 0 30px;
    padding: 0;
    list-style: none;
}

.ca-life-changing li
{
    position: relative;
    margin-bottom: 13px;
    padding-left: 26px;
    font-size: 16px;
    line-height: 1.65;
}

.ca-life-changing li::before
{
    content: "";
    position: absolute;
    top: 0.68em;
    left: 0;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--vx-accent);
}

.ca-life-changing__content > p:last-child
{
    margin-bottom: 0;
    color: rgba(255, 255, 255, 0.82);
}

.ca-audiences
{
    background: #ffffff;
}

.ca-audience-grid
{
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    margin-top: 48px;
}

.ca-audience-card
{
    overflow: hidden;
    border: 1px solid var(--vx-border);
    border-radius: var(--vx-radius-lg);
    background: #ffffff;
    box-shadow: 0 6px 18px rgba(31, 45, 61, 0.05);
}

.ca-audience-card__media
{
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: var(--vx-background);
}

.ca-audience-card__media img
{
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.ca-audience-card:hover .ca-audience-card__media img
{
    transform: scale(1.035);
}

.ca-audience-card__content
{
    padding: 25px 24px 28px;
}

.ca-audience-card__content p
{
    margin: 0;
    color: var(--vx-text-muted);
    font-size: 15px;
    line-height: 1.7;
}

.ca-context
{
    padding: 88px 0;
    background: var(--vx-background);
}

.ca-context__grid
{
    align-items: center;
}

.ca-context__copy
{
    padding: 34px 38px;
    border-radius: var(--vx-radius-lg);
    background: #ffffff;
    box-shadow: var(--vx-shadow);
}

.ca-process
{
    background: #ffffff;
}

.ca-process-grid
{
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin-top: 54px;
}

.ca-process-step
{
    position: relative;
    padding: 34px 30px 32px;
    border-top: 3px solid rgba(210, 75, 56, 0.22);
}

.ca-process-step:not(:last-child)
{
    border-right: 1px solid var(--vx-border);
}

.ca-process-step__number
{
    display: block;
    margin-bottom: 18px;
    color: rgba(210, 75, 56, 0.48);
    font-family: var(--vx-font-heading);
    font-size: 34px;
    font-weight: 700;
    line-height: 1;
}

.ca-process-step p
{
    margin: 0;
    color: var(--vx-text-muted);
    font-size: 15px;
    line-height: 1.7;
}

.ca-faq
{
    background: #fbf8f3;
}

.ca-faq__container
{
    max-width: 960px;
}

.ca-faq__list
{
    margin-top: 42px;
    border-top: 1px solid var(--vx-border);
}

.ca-faq details
{
    border-bottom: 1px solid var(--vx-border);
    background: transparent;
}

.ca-faq summary
{
    position: relative;
    padding: 23px 50px 23px 0;
    color: var(--vx-heading);
    font-family: var(--vx-font-heading);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
}

.ca-faq summary::-webkit-details-marker
{
    display: none;
}

.ca-faq summary::after
{
    content: "+";
    position: absolute;
    top: 50%;
    right: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: rgba(210, 75, 56, 0.10);
    color: var(--vx-primary);
    font-size: 21px;
    font-weight: 400;
    transform: translateY(-50%);
}

.ca-faq details[open] summary::after
{
    content: "–";
}

.ca-faq details p
{
    max-width: 820px;
    margin: -4px 0 24px;
    color: var(--vx-text-muted);
    font-size: 15px;
}

.ca-cta
{
    padding: 0 0 92px;
    background: #fbf8f3;
}

.ca-cta__panel
{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 42px;
    padding: 56px 62px;
    border-radius: var(--vx-radius-lg);
    background: linear-gradient(135deg, #fff7ed, #f8e6da);
    box-shadow: 0 10px 30px rgba(31, 45, 61, 0.08);
}

.ca-cta__panel > div
{
    max-width: 720px;
}

.ca-cta__panel h2
{
    font-size: 34px;
}

.ca-cta__panel p
{
    margin-bottom: 0;
}

.ca-cta__panel .vx-button
{
    flex: 0 0 auto;
    white-space: nowrap;
}

@media (max-width: 991px)
{
    .ca-intro__grid,
    .ca-context__grid,
    .ca-life-changing__grid
    {
        grid-template-columns: 1fr;
        gap: 44px;
    }

    .ca-support-grid
    {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ca-support-card,
    .ca-support-card:nth-child(4)
    {
        grid-column: auto;
    }

    .ca-support-card:last-child
    {
        grid-column: 1 / -1;
        max-width: calc(50% - 12px);
        justify-self: center;
    }

    .ca-audience-grid,
    .ca-process-grid
    {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ca-process-step:nth-child(2)
    {
        border-right: 0;
    }

    .ca-process-step:nth-child(3),
    .ca-process-step:nth-child(4)
    {
        border-top-color: var(--vx-border);
    }

    .ca-life-changing__media img
    {
        min-height: 430px;
    }

    .ca-cta__panel
    {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 767px)
{
    .ca-page h2
    {
        font-size: 30px;
    }

    .ca-intro,
    .ca-support,
    .ca-audiences,
    .ca-process,
    .ca-faq,
    .ca-context,
    .ca-life-changing
    {
        padding: 62px 0;
    }

    .ca-promise,
    .ca-cta
    {
        padding-bottom: 62px;
    }

    .ca-promise__panel,
    .ca-cta__panel
    {
        padding: 38px 28px;
    }

    .ca-promise__panel p
    {
        font-size: 16px;
    }

    .ca-support-grid,
    .ca-audience-grid,
    .ca-process-grid
    {
        grid-template-columns: 1fr;
    }

    .ca-support-card:last-child
    {
        grid-column: auto;
        max-width: none;
    }

    .ca-life-changing__grid
    {
        gap: 38px;
    }

    .ca-life-changing__media::before
    {
        top: -10px;
        left: -10px;
    }

    .ca-life-changing__media img
    {
        min-height: 320px;
    }

    .ca-life-changing h2
    {
        font-size: 32px;
    }

    .ca-life-changing__lead
    {
        font-size: 19px !important;
    }

    .ca-context__copy
    {
        padding: 28px 24px;
    }

    .ca-process-step,
    .ca-process-step:not(:last-child)
    {
        border-right: 0;
        border-top: 1px solid var(--vx-border);
    }

    .ca-process-step:first-child
    {
        border-top: 3px solid rgba(210, 75, 56, 0.22);
    }

    .ca-cta__panel h2
    {
        font-size: 29px;
    }

    .ca-cta__panel .vx-button
    {
        width: 100%;
        white-space: normal;
    }
}

@media (prefers-reduced-motion: reduce)
{
    .ca-support-card,
    .ca-audience-card__media img
    {
        transition: none;
    }
}

/* =========================================================
   V-EXCEL HEADER V2
   ========================================================= */

.vx-header-v2,
.vx-header-v2 * 
{
    box-sizing: border-box;
}

.vx-header-v2 
{
    position: relative;
    z-index: 1000;
    font-family: "Open Sans", "Segoe UI", sans-serif;
}

.vx-header-v2 ul,
.vx-header-v2 li,
.vx-header-v2 p 
{
    margin: 0;
    padding: 0;
}

.vx-header-v2 ul 
{
    list-style: none;
}

.vx-header-v2 a,
.vx-header-v2 button 
{
    font: inherit;
}


/* UTILITY BAR */

.vx-header-v2__utility 
{
    background: #8f8f8f;
    color: #fff;
}

.vx-header-v2__utility-inner 
{
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.vx-header-v2__contact,
.vx-header-v2__social 
{
    display: flex;
    align-items: center;
    gap: 22px;
}

.vx-header-v2__contact a,
.vx-header-v2__social a 
{
    color: #fff;
}

.vx-header-v2__contact a 
{
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.vx-header-v2__social a 
{
    width: 28px;
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.vx-header-v2__contact a:hover,
.vx-header-v2__contact a:focus,
.vx-header-v2__social a:hover,
.vx-header-v2__social a:focus 
{
    color: #fff;
    opacity: 0.78;
}


/* BRAND BAR */

.vx-header-v2__brand 
{
    background: #ff9900;
}

.vx-header-v2__brand-inner 
{
    min-height: 118px;
    display: grid;
    grid-template-columns: 280px 1fr 100px;
	align-items: center;
    gap: 24px;
}

.vx-header-v2__logo 
{
    justify-self: start;
}

.vx-header-v2__logo img 
{
    width: 280px;
    max-height: 90px;
    object-fit: contain;
}

.vx-header-v2__name 
{
    color: #fff;
    font-family: "Poppins", "Segoe UI", sans-serif;
    font-size: clamp(24px, 2.4vw, 34px);
    line-height: 1.2;
    font-weight: 600;
    text-align: center;
}

.vx-header-v2__anniversary 
{
    justify-self: end;
}

.vx-header-v2__anniversary img 
{
    max-height: 80px;
    /* width: auto; */
}


/* ANNOUNCEMENT */

.vx-header-v2__announcement 
{
    background: #f6f2eb;
    border-bottom: 1px solid rgba(31, 45, 61, 0.12);
}

.vx-header-v2__announcement p 
{
    padding: 11px 0;
    color: #1f2d3d;
    font-size: 15px;
    line-height: 1.45;
    text-align: center;
}


/* NAVIGATION */

.vx-header-v2__nav-shell 
{
    background: #1f2d3d;
}

.vx-header-v2__nav-inner 
{
    min-height: 72px;
    display: flex;
    align-items: stretch;
    gap: 24px;
}

.vx-header-v2__nav 
{
    flex: 1 1 auto;
    min-width: 0;
}

.vx-header-v2__menu 
{
    min-height: 72px;
    display: flex;
    align-items: stretch;
}

.vx-header-v2__item 
{
    position: relative;
    display: flex;
}

.vx-header-v2__link 
{
    min-height: 72px;
    padding: 0 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 14px;
    line-height: 1.2;
    font-weight: 700;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
}

.vx-header-v2__item.is-active >
.vx-header-v2__link,
.vx-header-v2__item:hover >
.vx-header-v2__link,
.vx-header-v2__link:focus-visible 
{
    background: #d24b38;
    color: #fff;
}

.vx-header-v2__dropdown-toggle::after 
{
    content: "";
    width: 7px;
    height: 7px;
    margin-left: 8px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
}


/* SUBMENUS */

.vx-header-v2__submenu 
{
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 250px;
    padding: 8px 0;
    background: #fff;
    border-top: 3px solid #d24b38;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.16);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition:
        opacity 0.2s ease,
        transform 0.2s ease,
        visibility 0.2s ease;
    z-index: 1200;
}

.vx-header-v2__submenu--wide 
{
    width: 560px;
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
}

.vx-header-v2__submenu a 
{
    display: block;
    padding: 11px 16px;
    color: #222;
    font-size: 14px;
    line-height: 1.45;
    font-weight: 600;
}

.vx-header-v2__submenu a:hover,
.vx-header-v2__submenu a:focus 
{
    background: #d24b38;
    color: #fff;
}

@media (min-width: 992px) 
{
    .vx-header-v2__item--dropdown:hover >
    .vx-header-v2__submenu,

    .vx-header-v2__item--dropdown:focus-within >
    .vx-header-v2__submenu,

    .vx-header-v2__item--dropdown.is-open >
    .vx-header-v2__submenu 
	{
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }
}


/* SEARCH AND DONATE */

.vx-header-v2__actions 
{
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 14px;
}

.vx-header-v2__search-toggle,
.vx-header-v2__donate 
{
    min-height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 0;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
}

.vx-header-v2__search-toggle 
{
    padding: 0 10px;
    background: transparent;
    cursor: pointer;
}

.vx-header-v2__search-toggle:hover,
.vx-header-v2__search-toggle:focus-visible 
{
    color: #ffb04d;
}

.vx-header-v2__donate 
{
    min-width: 150px;
    padding: 0 18px;
    background: #d24b38;
    border-radius: 999px;
}

.vx-header-v2__donate i 
{
    font-size: 22px;
}

.vx-header-v2__donate:hover,
.vx-header-v2__donate:focus 
{
    background: #b93d2d;
    color: #fff;
}

.vx-header-v2__menu-toggle 
{
    display: none;
}


/* SEARCH PANEL */

.vx-header-v2__search-panel 
{
    background: #fff;
    border-bottom: 1px solid rgba(31, 45, 61, 0.12);
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.08);
}

.vx-header-v2__search-form 
{
    min-height: 82px;
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 10px;
}

.vx-header-v2__search-form input 
{
    width: 100%;
    min-height: 48px;
    padding: 0 16px;
    border: 1px solid #cfd6dc;
    border-radius: 6px;
    font-size: 16px;
}

.vx-header-v2__search-submit,
.vx-header-v2__search-close 
{
    min-height: 48px;
    border: 0;
    border-radius: 6px;
    cursor: pointer;
}

.vx-header-v2__search-submit 
{
    padding: 0 18px;
    background: #d24b38;
    color: #fff;
}

.vx-header-v2__search-close 
{
    width: 48px;
    background: #eef1f3;
    color: #1f2d3d;
}


/* TABLET AND MOBILE */

@media (max-width: 991px) 
{

    .vx-header-v2__utility-inner 
	{
        min-height: 44px;
    }

    .vx-header-v2__social 
	{
        display: none;
    }

    .vx-header-v2__brand-inner 
	{
        min-height: 84px;
        grid-template-columns: 1fr auto;
    }

    .vx-header-v2__logo img 
	{
        width: 210px;
    }

    .vx-header-v2__name 
	{
        display: none;
    }

    .vx-header-v2__anniversary img 
	{
        max-height: 64px;
    }

    .vx-header-v2__nav-inner 
	{
        min-height: 64px;
        position: relative;
        align-items: center;
        justify-content: space-between;
    }

    .vx-header-v2__menu-toggle 
	{
        width: 48px;
        height: 48px;
        padding: 10px;
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        gap: 5px;
        border: 0;
        background: transparent;
        cursor: pointer;
    }

    .vx-header-v2__menu-toggle
    span:not(.sr-only) 
	{
        width: 28px;
        height: 3px;
        display: block;
        background: #fff;
    }

    .vx-header-v2__nav 
	{
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        display: none;
        background: #1f2d3d;
        box-shadow: 0 14px 28px rgba(0, 0, 0, 0.18);
        z-index: 1200;
    }

    .vx-header-v2.menu-is-open
    .vx-header-v2__nav 
	{
        display: block;
    }

    .vx-header-v2__menu 
	{
        min-height: 0;
        display: block;
        padding: 8px 0 14px;
    }

    .vx-header-v2__item 
	{
        display: block;
    }

    .vx-header-v2__link 
	{
        width: 100%;
        min-height: 50px;
        padding: 0 20px;
        justify-content: space-between;
        text-align: left;
    }

    .vx-header-v2__submenu,
    .vx-header-v2__submenu--wide 
	{
        position: static;
        width: auto;
        min-width: 0;
        display: none;
        grid-template-columns: 1fr;
        padding: 0;
        border-top: 0;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .vx-header-v2__item.is-open >
    .vx-header-v2__submenu 
	{
        display: block;
    }

    .vx-header-v2__submenu a 
	{
        padding: 11px 30px;
        border-top: 1px solid #eceff1;
    }

    .vx-header-v2__actions 
	{
        margin-left: auto;
    }

    .vx-header-v2__search-toggle span 
	{
        display: none;
    }

    .vx-header-v2__donate 
	{
        min-width: auto;
        min-height: 44px;
        padding: 0 16px;
    }
}


@media (max-width: 575px) 
{

    .vx-header-v2__utility-inner 
	{
        justify-content: center;
    }

    .vx-header-v2__contact 
	{
        width: 100%;
        justify-content: center;
        gap: 14px;
        flex-wrap: wrap;
        padding: 7px 0;
    }

    .vx-header-v2__contact a 
	{
        font-size: 13px;
    }

    .vx-header-v2__brand-inner 
	{
        gap: 12px;
    }

    .vx-header-v2__logo img 
	{
        width: 175px;
    }

    .vx-header-v2__anniversary img 
	{
        max-height: 55px;
    }

    .vx-header-v2__announcement p 
	{
        font-size: 13px;
    }

    .vx-header-v2__donate span 
	{
        display: none;
    }

    .vx-header-v2__donate 
	{
        width: 44px;
        padding: 0;
        border-radius: 50%;
    }
}

/* Prevent Bootstrap clearfix pseudo-elements from becoming
   Grid or Flex items inside Header V2 */
.vx-header-v2 .container::before,
.vx-header-v2 .container::after 
{
    display: none;
    content: none;
}

/* ==========================================================
   TEAM CARDS
   ========================================================== */

.vx-team-grid
{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
    max-width: 960px;
    margin: 0 auto;
}

.vx-team-card
{
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    gap: 28px;
    align-items: top;
    padding: 32px;
    background: #fff;
    border: 1px solid rgba(210, 75, 56, 0.15);
    border-radius: var(--vx-radius, 8px);
    box-shadow: var(--vx-shadow, 0 4px 12px rgba(0, 0, 0, 0.08));
}

.vx-team-card__image
{
    width: 160px;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: 50%;
    background: #f6f2eb;
}

.vx-team-card__image img
{
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.vx-team-card__content h3
{
    margin: 0 0 6px;
}

.vx-team-card__role
{
    margin: 0 0 16px;
    color: #d24b38;
    font-weight: 600;
}

.vx-team-card__content p:last-child
{
    margin-bottom: 0;
}

@media (max-width: 991px)
{
    .vx-team-grid
    {
        grid-template-columns: 1fr;
        max-width: 720px;
    }
}

@media (max-width: 575px)
{
    .vx-team-card
    {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .vx-team-card__image
    {
        margin: 0 auto;
    }
}

/* ==========================================================
   CTA
   ========================================================== */

.vx-programme-cta
{
    display: flex;
    justify-content: center;
    gap: 20px;
    margin: 48px 0;
    flex-wrap: wrap;
}

.vx-programme-section--cta
{
    text-align: center;
}

/* ==========================================================
   LEGACY FIXED HEADER — KEEP ABOVE PAGE CONTENT
   ========================================================== */

header
{
	position: relative;
	z-index: 10000;
}

.theme-main-menu
{
	position: relative;
	z-index: 10001;
}

.theme-main-menu.fixed
{
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	z-index: 10002;
}

main
{
	position: relative;
	z-index: 1;
}


/* =====================================================
   FEATURE SPLIT
====================================================== */

.vx-feature-split 
{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: center;
}

.vx-feature-split__content h2 
{
    margin: 12px 0 24px;
}

.vx-feature-split__content p 
{
    margin-bottom: 18px;
}

.vx-feature-split__emphasis 
{
    margin-top: 28px;
    padding-left: 20px;
    border-left: 4px solid var(--vx-primary);
    font-style: italic;
    font-size: 1.48rem;
    line-height: 1.7;
}

.vx-feature-split__media img 
{
    display: block;
    width: 100%;
    height: 480px;
    object-fit: cover;
    border-radius: var(--vx-radius);
    box-shadow: var(--vx-shadow);
}

@media (max-width: 767px) 
{
    .vx-feature-split 
	{
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .vx-feature-split__media img {
        height: auto;
    }
}

/* =====================================================
   JOURNEY / PROCESS
====================================================== */

.vx-journey 
{
    max-width: 980px;
    margin: 56px auto 0;
    position: relative;
}

.vx-journey::before 
{
    content: "";
    position: absolute;
    top: 32px;
    bottom: 32px;
    left: 31px;
    width: 2px;
    background: rgba(210, 75, 56, 0.18);
}

.vx-journey__step 
{
    position: relative;
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    padding-bottom: 36px;
}

.vx-journey__step:last-child 
{
    padding-bottom: 0;
}

.vx-journey__number 
{
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #faece9;
    color: var(--vx-primary);
    font-weight: 600;
}

.vx-journey__content 
{
    padding: 6px 0 28px;
    border-bottom: 1px solid rgba(31, 45, 61, 0.10);
	min-width: 0;
}

.vx-journey__step:last-child .vx-journey__content 
{
    border-bottom: 0;
}

.vx-journey__content h3 
{
    margin: 0 0 8px;
	overflow-wrap: break-word;
	font-size: 1.75rem;
}

.vx-journey__content p 
{
    margin: 0;
    max-width: 760px;
}

@media (max-width: 767px) 
{

    .vx-journey 
	{
        margin-top: 40px;
    }

    .vx-journey::before 
	{
        left: 23px;
    }

    .vx-journey__step 
	{
        grid-template-columns: 48px 1fr;
        gap: 20px;
        padding-bottom: 28px;
    }

    .vx-journey__number 
	{
        width: 48px;
        height: 48px;
        font-size: 0.85rem;
    }

    .vx-journey__content 
	{
        padding-top: 2px;
    }
}

.vx-feature-split--reverse .vx-feature-split__media 
{
    order: 1;
}

.vx-feature-split--reverse .vx-feature-split__content 
{
    order: 2;
}

@media (max-width: 767px) 
{
    .vx-feature-split--reverse .vx-feature-split__media,
    .vx-feature-split--reverse .vx-feature-split__content 
	{
        order: initial;
    }
}

/* =====================================================
   DUAL CTA
====================================================== */

.vx-dual-cta 
{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
    max-width: 1000px;
    margin: 48px auto 0;
}

.vx-dual-cta__card 
{
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 44px 40px;
    text-align: center;
    background: #fff;
    border-radius: var(--vx-radius);
    box-shadow: var(--vx-shadow);
}

.vx-dual-cta__icon 
{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin-bottom: 22px;
    border-radius: 50%;
    background: #faece9;
    color: var(--vx-primary);
    font-size: 1.35rem;
}

.vx-dual-cta__eyebrow 
{
    margin-bottom: 10px;
    color: var(--vx-primary);
    font-size: 1.00rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.vx-dual-cta__card h3 
{
    margin: 0 0 16px;
}

.vx-dual-cta__card p 
{
    margin: 0 0 28px;
    line-height: 1.7;
}

.vx-dual-cta__card .vx-button 
{
    margin-top: auto;
}

@media (max-width: 767px) 
{

    .vx-dual-cta 
	{
        grid-template-columns: 1fr;
    }

    .vx-dual-cta__card 
	{
        padding: 36px 24px;
    }
}

/* =====================================================
   OUTREACH — WIDER CIRCLE OF SUPPORT
====================================================== */

.vx-support-circle 
{
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    max-width: 1100px;
    margin: 52px auto 0;
}

.vx-support-circle__item 
{
    position: relative;
    text-align: center;
    padding: 28px 18px;
}

/* connector between items */
.vx-support-circle__item:not(:last-of-type)::after 
{
    content: "•";
    position: absolute;
    top: 46px;
    right: -17px;
    color: #d24b38;
    font-size: 1.8rem;
    opacity: 0.55;
}

.vx-support-circle__icon 
{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin: 0 auto 20px;
    border-radius: 50%;
    background: #faece9;
    color: #d24b38;
    font-size: 1.25rem;
}

.vx-support-circle__item h3 
{
    margin: 0 0 12px;
    font-size: 1.25rem;
	font-weight: 600;
}

.vx-support-circle__item p 
{
    margin: 0 auto;
    max-width: 230px;
    line-height: 1.6;
}

/* Hide the arrow elements already present in the HTML */
.vx-support-circle__arrow 
{
    display: none;
}

@media (max-width: 767px) 
{

    .vx-support-circle 
	{
        grid-template-columns: 1fr;
        gap: 12px;
        max-width: 420px;
    }

    .vx-support-circle__item 
	{
        padding: 22px 18px;
    }

    .vx-support-circle__item:not(:last-of-type)::after 
	{
        content: "•";
        top: auto;
        right: 50%;
        bottom: -12px;
        transform: translateX(50%);
    }
}

/* =====================================================
   MILESTONES
====================================================== */

.vx-milestones 
{
    display: grid;
    grid-template-columns:
        minmax(0, 1fr) 80px
        minmax(0, 1fr) 80px
        minmax(0, 1fr);
    align-items: center;
    max-width: 1050px;
    margin: 56px auto 0;
}

.vx-milestone 
{
    text-align: center;
}

.vx-milestone__eyebrow 
{
    display: block;
    margin-bottom: 18px;
    color: #d24b38;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.vx-milestone__icon 
{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 68px;
    margin: 0 auto 20px;
    border-radius: 50%;
    background: #faece9;
    color: #d24b38;
    font-size: 1.35rem;
}

.vx-milestone h3 
{
    margin: 0 0 10px;
}

.vx-milestone p 
{
    max-width: 250px;
    margin: 0 auto;
    line-height: 1.6;
}

.vx-milestone__connector 
{
    height: 2px;
    background: rgba(210, 75, 56, 0.25);
}

.vx-milestones__closing 
{
    max-width: 760px;
    margin: 48px auto 0;
    text-align: center;
    line-height: 1.7;
}


/* MOBILE */

@media (max-width: 767px) 
{

    .vx-milestones 
	{
        grid-template-columns: 1fr;
        gap: 24px;
        max-width: 420px;
    }

    .vx-milestone__connector 
	{
        width: 2px;
        height: 32px;
        margin: 0 auto;
    }

    .vx-milestones__closing 
	{
        margin-top: 36px;
    }
}

/* =====================================================
   GROWTH STORY — 1 TO 18
====================================================== */

.vx-growth-story 
{
    display: grid;
    grid-template-columns: 1fr minmax(220px, 360px) 1fr;
    align-items: center;
    gap: 40px;
    max-width: 1000px;
    margin: 60px auto 0;
}

.vx-growth-story__point 
{
    text-align: center;
}

.vx-growth-story__eyebrow 
{
    display: block;
    margin-bottom: 8px;
    color: #d24b38;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.vx-growth-story__number 
{
    display: block;
    color: #1f2d3d;
    font-size: clamp(4.5rem, 8vw, 7rem);
    font-weight: 600;
    line-height: 1;
}

.vx-growth-story__point h3 
{
    margin: 6px 0 12px;
    font-size: 1.45rem;
}

.vx-growth-story__point p 
{
    margin: 0 0 6px;
    font-weight: 600;
}

.vx-growth-story__note 
{
    display: block;
    font-size: 0.92rem;
    line-height: 1.5;
}


/* JOURNEY LINE */

.vx-growth-story__journey 
{
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.vx-growth-story__journey::before 
{
    content: "";
    position: absolute;
}

.vx-growth-story__journey span 
{
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    border-radius: 50%;
    background: #d24b38;
}

.vx-growth-story__journey i 
{
    position: relative;
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
    border-radius: 50%;
    background: rgba(210, 75, 56, 0.35);
}

.vx-growth-story__journey 
{
    position: relative;
}

.vx-growth-story__journey::after 
{
    content: "";
    position: absolute;
    left: 5px;
    right: 5px;
    top: 50%;
    height: 2px;
    background: rgba(210, 75, 56, 0.22);
    transform: translateY(-50%);
    z-index: 0;
}

.vx-growth-story__journey span,
.vx-growth-story__journey i 
{
    z-index: 1;
}


/* PRINCIPLE */

.vx-growth-story__principle 
{
    max-width: 760px;
    margin: 58px auto 0;
    padding-top: 30px;
    border-top: 1px solid rgba(210, 75, 56, 0.2);
    text-align: center;
}

.vx-growth-story__principle span 
{
    display: block;
    margin-bottom: 10px;
    color: #d24b38;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.vx-growth-story__principle p 
{
    margin: 0;
    font-size: 1.15rem;
    line-height: 1.7;
}


/* MOBILE */

@media (max-width: 767px) 
{

    .vx-growth-story 
	{
        grid-template-columns: 1fr;
        gap: 26px;
        max-width: 420px;
    }

    .vx-growth-story__journey 
	{
        width: 2px;
        height: 80px;
        margin: 0 auto;
        flex-direction: column;
    }

    .vx-growth-story__journey::after 
	{
        top: 5px;
        bottom: 5px;
        left: 50%;
        right: auto;
        width: 2px;
        height: auto;
        transform: translateX(-50%);
    }

    .vx-growth-story__principle 
	{
        margin-top: 42px;
    }
}

/* =====================================================
   FIVE-CARD SERVICE GRID — 3 + 2 CENTRED
====================================================== */

.vx-service-grid--five 
{
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 24px;
}

.vx-service-grid--five .vx-service-card 
{
    grid-column: span 2;
}

/* Centre cards 4 and 5 */
.vx-service-grid--five .vx-service-card:nth-child(4) 
{
    grid-column: 2 / span 2;
}

.vx-service-grid--five .vx-service-card:nth-child(5) 
{
    grid-column: 4 / span 2;
}

@media (max-width: 991px) 
{

    .vx-service-grid--five 
	{
        grid-template-columns: repeat(2, 1fr);
    }

    .vx-service-grid--five .vx-service-card,
    .vx-service-grid--five .vx-service-card:nth-child(4),
    .vx-service-grid--five .vx-service-card:nth-child(5) 
	{
        grid-column: auto;
    }

    .vx-service-grid--five .vx-service-card:last-child 
	{
        grid-column: 1 / -1;
        max-width: calc(50% - 12px);
        width: 100%;
        justify-self: center;
    }
}

@media (max-width: 767px) 
{

    .vx-service-grid--five 
	{
        grid-template-columns: 1fr;
    }

    .vx-service-grid--five .vx-service-card:last-child 
	{
        grid-column: auto;
        max-width: none;
    }
}

/* =====================================================
   LOCATION GROUPS
====================================================== */

.vx-location-group 
{
    margin-top: 64px;
}

.vx-location-group + .vx-location-group 
{
    margin-top: 80px;
}

.vx-location-group__heading 
{
    margin-bottom: 28px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(210, 75, 56, 0.2);
}

.vx-location-group__heading > span 
{
    display: block;
    margin-bottom: 4px;
    color: var(--vx-primary);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.vx-location-group__heading h3 
{
    margin: 0;
    font-size: 1.35rem;
}


/* CENTRE COUNT */

.vx-location-card__count 
{
    display: inline-block;
    margin-bottom: 10px;
    color: var(--vx-primary);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

/* =====================================================
   PARTNERSHIP FEATURE
====================================================== */

.vx-partner-feature 
{
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 64px;
    align-items: center;
}

.vx-partner-feature__media img 
{
    display: block;
    width: 100%;
    min-height: 480px;
    object-fit: cover;
    border-radius: 12px;
}

.vx-partner-feature__content h2 
{
    margin: 14px 0 24px;
    color: #1f2d3d;
    font-size: clamp(2rem, 3.5vw, 3rem);
    line-height: 1.15;
}

.vx-partner-feature__content > p 
{
    margin: 0 0 18px;
    line-height: 1.75;
}

.vx-partner-feature__statement 
{
    margin: 30px 0 26px;
    padding: 20px 0 20px 22px;
    border-left: 3px solid #d24b38;
    color: #1f2d3d;
    font-size: 1.15rem;
    font-weight: 600;
    line-height: 1.55;
}

@media (max-width: 900px) 
{

    .vx-partner-feature {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .vx-partner-feature__media img {
        min-height: 360px;
    }

}

@media (max-width: 600px) 
{

    .vx-partner-feature__media img {
        min-height: 280px;
    }

}

.vx-service-grid--four 
{
    grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 991px) 
{
    .vx-service-grid--four 
	{
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) 
{
    .vx-service-grid--four 
	{
        grid-template-columns: 1fr;
    }
}

/* =====================================================
   VTU — VOCATIONAL EXPERIENCES
====================================================== */

.vx-vtu-pathways 
{
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 64px;
    align-items: stretch;
    margin-top: 56px;
}


/* IMAGE */
.vx-vtu-pathways__media img 
{
    display: block;
    width: 100%;
    height: 100%;
    min-height: 520px;
    object-fit: cover;
    border-radius: 12px;
}


/* CONTENT */
.vx-vtu-pathways__content 
{
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.vx-vtu-pathways__label 
{
    display: block;
    margin-bottom: 26px;
    color: #d24b38;
    font-size: 1.5rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}


/* 2 x 4 GRID */
.vx-vtu-pathways__grid 
{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 34px;
    row-gap: 0;
}


/* INDIVIDUAL ACTIVITY */

.vx-vtu-pathway-item 
{
    display: flex;
    gap: 16px;
    padding: 20px 0;
    border-top: 1px solid rgba(210, 75, 56, 0.16);
}

.vx-vtu-pathway-item__icon 
{
    display: flex;
    flex: 0 0 40px;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #faece9;
    color: #d24b38;
    font-size: 0.9rem;
}

.vx-vtu-pathway-item h3 
{
    margin: 0 0 5px;
    color: #1f2d3d;
    font-size: 1.5rem;
    line-height: 1.35;
}

.vx-vtu-pathway-item p 
{
    margin: 0;
    color: #555;
    font-size: 1.35rem;
    line-height: 1.6;
}


/* TABLET */
@media (max-width: 991px) 
{
    .vx-vtu-pathways 
	{
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .vx-vtu-pathways__media img 
	{
        height: 420px;
        min-height: 0;
    }

}


/* MOBILE */
@media (max-width: 600px) 
{

    .vx-vtu-pathways__grid 
	{
        grid-template-columns: 1fr;
    }

    .vx-vtu-pathways__media img 
	{
        height: 320px;
    }

}

/* =====================================================
   VTU — FROM ACTIVITY TO PARTICIPATION
====================================================== */

.vx-vtu-participation
{
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
    gap: 64px;
    align-items: center;
    margin-top: 56px;
}


/* IMAGE COMPOSITION */

.vx-vtu-participation__images
{
    position: relative;
    padding: 0 54px 54px 0;
}

.vx-vtu-participation__image-main img
{
    display: block;
    width: 100%;
    height: 470px;
    object-fit: cover;
    border-radius: 12px;
}

.vx-vtu-participation__image-small
{
    position: absolute;
    right: 0;
    bottom: 0;
    width: 46%;
    padding: 7px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12);
}

.vx-vtu-participation__image-small img
{
    display: block;
    width: 100%;
    height: 180px;
    object-fit: cover;
    border-radius: 7px;
}


/* TEXT */

.vx-vtu-participation__content h3
{
    margin: 0 0 20px;
    color: #1f2d3d;
    font-size: 1.5rem;
}

.vx-vtu-participation__content p
{
    margin: 0 0 17px;
    line-height: 1.75;
}

.vx-vtu-participation__emphasis
{
    margin-top: 26px !important;
    padding-left: 20px;
    border-left: 3px solid #d24b38;
    color: #1f2d3d;
    font-size: 1.45rem;
    font-weight: 600;
}


/* =====================================================
   GROW → CREATE → CONTRIBUTE
====================================================== */

.vx-vtu-cycle
{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin-top: 64px;
}

.vx-vtu-cycle__item
{
    position: relative;
    padding: 30px;
    border-top: 2px solid rgba(210, 75, 56, 0.25);
}

.vx-vtu-cycle__number
{
    position: absolute;
    top: 28px;
    right: 4px;
    color: #d24b38;
    font-size: 2rem;
    font-weight: 600;
}

.vx-vtu-cycle__icon
{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 20px;
    border-radius: 50%;
    background: #faece9;
    color: #d24b38;
}

.vx-vtu-cycle__item h3
{
    margin: 0 0 5px;
    color: #1f2d3d;
    font-size: 1.5rem;
}

.vx-vtu-cycle__subtitle
{
    display: block;
    margin-bottom: 12px;
    color: #d24b38;
    font-size: 1.4rem;
    font-weight: 600;
}

.vx-vtu-cycle__item p
{
    margin: 0;
    font-size: 1.35rem;
    line-height: 1.65;
}


/* RESPONSIVE */

@media (max-width: 991px)
{
    .vx-vtu-participation
    {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .vx-vtu-cycle
    {
        grid-template-columns: 1fr;
        gap: 10px;
    }
}

@media (max-width: 600px)
{
    .vx-vtu-participation__images
    {
        padding: 0;
    }

    .vx-vtu-participation__image-main img
    {
        height: 340px;
    }

    .vx-vtu-participation__image-small
    {
        position: relative;
        right: auto;
        bottom: auto;
        width: 72%;
        margin: -55px 18px 0 auto;
    }
}

/* =====================================================
   VTU — WHAT SUCCESS LOOKS LIKE
====================================================== */

.vx-vtu-success-grid
{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin-top: 58px;
    border-top: 1px solid rgba(210, 75, 56, 0.18);
    border-bottom: 1px solid rgba(210, 75, 56, 0.18);
}

.vx-vtu-success-item
{
    position: relative;
    padding: 36px 30px 38px;
}

.vx-vtu-success-item + .vx-vtu-success-item
{
    border-left: 1px solid rgba(210, 75, 56, 0.18);
}

.vx-vtu-success-item__icon
{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 22px;
    border-radius: 50%;
    background: #faece9;
    color: #d24b38;
    font-size: 1.35rem;
}

.vx-vtu-success-item h3
{
    margin: 0 0 12px;
    color: #1f2d3d;
    font-size: 1.45rem;
    line-height: 1.4;
}

.vx-vtu-success-item p
{
    margin: 0;
    color: #555;
    font-size: 1.35rem;
    line-height: 1.7;
}


/* =====================================================
   CLOSING STATEMENT
====================================================== */

.vx-vtu-success-statement
{
    max-width: 820px;
    margin: 58px auto 0;
    text-align: center;
}

.vx-vtu-success-statement p
{
    margin: 0;
    color: #1f2d3d;
    font-size: clamp(1.25rem, 2vw, 1.6rem);
    line-height: 1.55;
}

.vx-vtu-success-statement strong
{
    display: block;
    margin-top: 5px;
    color: #d24b38;
    font-weight: 600;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 991px)
{
    .vx-vtu-success-grid
    {
        grid-template-columns: repeat(2, 1fr);
    }

    .vx-vtu-success-item:nth-child(3)
    {
        border-left: 0;
        border-top: 1px solid rgba(210, 75, 56, 0.18);
    }

    .vx-vtu-success-item:nth-child(4)
    {
        border-top: 1px solid rgba(210, 75, 56, 0.18);
    }
}

@media (max-width: 600px)
{
    .vx-vtu-success-grid
    {
        grid-template-columns: 1fr;
    }

    .vx-vtu-success-item + .vx-vtu-success-item
    {
        border-left: 0;
        border-top: 1px solid rgba(210, 75, 56, 0.18);
    }

    .vx-vtu-success-item
    {
        padding: 30px 12px;
    }

    .vx-vtu-success-statement
    {
        margin-top: 44px;
        text-align: left;
    }

    .vx-vtu-success-statement strong
    {
        margin-top: 8px;
    }
}

/* =====================================================
   VTU — MEET THE TEAM
====================================================== */

.vx-vtu-team
{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 56px;
    max-width: 1050px;
    margin: 56px auto 0;
}

.vx-vtu-team__member
{
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 26px;
    align-items: start;
}

.vx-vtu-team__photo img
{
    display: block;
    width: 150px;
    height: 180px;
    object-fit: cover;
    border-radius: 10px;
}

.vx-vtu-team__content
{
    padding-top: 8px;
}

.vx-vtu-team__content h3
{
    margin: 0 0 4px;
    color: #1f2d3d;
    font-size: 1.55rem;
    line-height: 1.35;
}

.vx-vtu-team__role
{
    display: block;
    margin-bottom: 15px;
    color: #d24b38;
    font-size: 1.45rem;
    font-weight: 600;
}

.vx-vtu-team__content p
{
    margin: 0;
    color: #555;
    font-size: 1.25rem;
    line-height: 1.7;
}


/* RESPONSIVE */

@media (max-width: 991px)
{
    .vx-vtu-team
    {
        grid-template-columns: 1fr;
        max-width: 680px;
        gap: 42px;
    }
}

@media (max-width: 600px)
{
    .vx-vtu-team__member
    {
        grid-template-columns: 100px 1fr;
        gap: 20px;
    }

    .vx-vtu-team__photo img
    {
        width: 100px;
        height: 125px;
    }

    .vx-vtu-team__content
    {
        padding-top: 0;
    }
}

.vx-vtu-team--simple
{
    display: flex;
    justify-content: center;
    gap: 80px;
    margin-top: 48px;
}

.vx-vtu-team-profile
{
    width: 220px;
    text-align: center;
}

.vx-vtu-team-profile img
{
    display: block;
    width: 160px;
    height: 160px;
    margin: 0 auto 20px;
    object-fit: cover;
    border-radius: 50%;
}

.vx-vtu-team-profile h3
{
    margin: 0 0 5px;
    color: #1f2d3d;
    font-size: 1.15rem;
}

.vx-vtu-team-profile span
{
    color: #d24b38;
    font-size: 0.88rem;
    font-weight: 600;
}

@media (max-width: 600px)
{
    .vx-vtu-team--simple
    {
        flex-direction: column;
        align-items: center;
        gap: 42px;
    }
}

/* =====================================================
   KLC — INSIDE THE SCHOOL DAY
====================================================== */

.vx-klc-day-grid
{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    max-width: 1120px;
    margin: 58px auto 0;
}

.vx-klc-day-item
{
    padding: 34px 40px 38px;
}

.vx-klc-day-item:nth-child(2),
.vx-klc-day-item:nth-child(3),
.vx-klc-day-item:nth-child(5),
.vx-klc-day-item:nth-child(6)
{
    border-left: 1px solid rgba(210, 75, 56, 0.16);
}

.vx-klc-day-item:nth-child(n + 4)
{
    border-top: 1px solid rgba(210, 75, 56, 0.16);
}

.vx-klc-day-item__icon
{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-bottom: 20px;
    border-radius: 50%;
    background: #faece9;
    color: #d24b38;
    font-size: 1rem;
}

.vx-klc-day-item h3
{
    margin: 0 0 11px;
    color: #1f2d3d;
    font-size: 1.4rem;
    line-height: 1.4;
}

.vx-klc-day-item p
{
    margin: 0;
    color: #555;
    font-size: 1.3rem;
    line-height: 1.7;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 991px)
{
    .vx-klc-day-grid
    {
        grid-template-columns: repeat(2, 1fr);
    }

    .vx-klc-day-item
    {
        border-left: 0 !important;
        border-top: 0 !important;
    }

    .vx-klc-day-item:nth-child(even)
    {
        border-left: 1px solid rgba(210, 75, 56, 0.16) !important;
    }

    .vx-klc-day-item:nth-child(n + 3)
    {
        border-top: 1px solid rgba(210, 75, 56, 0.16) !important;
    }
}

@media (max-width: 600px)
{
    .vx-klc-day-grid
    {
        grid-template-columns: 1fr;
    }

    .vx-klc-day-item
    {
        padding: 28px 12px;
        border-left: 0 !important;
    }

    .vx-klc-day-item + .vx-klc-day-item
    {
        border-top: 1px solid rgba(210, 75, 56, 0.16) !important;
    }
}

/* =====================================================
   KLC — LEARNING STAGES
====================================================== */

.vx-klc-stages
{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 42px;
    max-width: 1120px;
    margin: 62px auto 0;
}

.vx-klc-stage
{
    position: relative;
    padding: 34px 8px 0;
    border-top: 2px solid rgba(210, 75, 56, 0.24);
}

.vx-klc-stage__number
{
    display: block;
    margin-bottom: 22px;
    color: rgba(210, 75, 56, 0.20);
    font-size: 3.4rem;
    font-weight: 600;
    line-height: 1;
}

.vx-klc-stage__label
{
    display: block;
    margin-bottom: 7px;
    color: #d24b38;
    font-size: 1.5rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.vx-klc-stage h3
{
    margin: 0 0 18px;
    color: #1f2d3d;
    font-size: 1.3rem;
    line-height: 1.4;
}

.vx-klc-stage p
{
    margin: 0 0 14px;
    color: #555;
    font-size: 1.3rem;
    line-height: 1.75;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 991px)
{
    .vx-klc-stages
    {
        grid-template-columns: 1fr;
        max-width: 700px;
        gap: 38px;
    }

    .vx-klc-stage
    {
        padding-top: 28px;
    }
}

@media (max-width: 600px)
{
    .vx-klc-stages
    {
        margin-top: 46px;
    }

    .vx-klc-stage__number
    {
        font-size: 2.8rem;
    }
}

/* =====================================================
   KLC — LEARNING IN MANY FORMS
====================================================== */

.vx-klc-experiences__gallery
{
    display: grid;
    grid-template-columns: 1.35fr 0.85fr;
    grid-template-rows: repeat(2, 230px);
    gap: 24px;
    max-width: 1120px;
    margin: 58px auto 0;
}

.vx-klc-experience
{
    position: relative;
    margin: 0;
    overflow: hidden;
    border-radius: 12px;
}

.vx-klc-experience--large
{
    grid-row: span 2;
}

.vx-klc-experience--wide
{
    grid-column: 1 / -1;
    height: 280px;
    margin-top: 4px;
}

.vx-klc-experience__image
{
    width: 100%;
    height: 100%;
}

.vx-klc-experience__image img
{
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.vx-klc-experience:hover
.vx-klc-experience__image img
{
    transform: scale(1.025);
}


/* CAPTIONS */

.vx-klc-experience figcaption
{
    position: absolute;
    left: 18px;
    bottom: 18px;
    padding: 8px 14px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.94);
    color: #1f2d3d;
    font-size: 0.88rem;
    font-weight: 600;
    line-height: 1.3;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 991px)
{
    .vx-klc-experiences__gallery
    {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto;
    }

    .vx-klc-experience
    {
        height: 260px;
    }

    .vx-klc-experience--large
    {
        grid-column: 1 / -1;
        grid-row: auto;
        height: 420px;
    }

    .vx-klc-experience--wide
    {
        grid-column: 1 / -1;
        height: 300px;
    }
}

@media (max-width: 600px)
{
    .vx-klc-experiences__gallery
    {
        grid-template-columns: 1fr;
        gap: 18px;
        margin-top: 42px;
    }

    .vx-klc-experience,
    .vx-klc-experience--large,
    .vx-klc-experience--wide
    {
        grid-column: auto;
        width: 100%;
        height: 280px;
    }

    .vx-klc-experience figcaption
    {
        left: 14px;
        bottom: 14px;
    }
}

/* =====================================================
   KLC — MEET THE TEAM
====================================================== */

.vx-klc-team
{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 240px));
    justify-content: center;
    gap: 56px;
    max-width: 900px;
    margin: 52px auto 0;
}

.vx-klc-team__member
{
    text-align: center;
}

.vx-klc-team__photo
{
    width: 180px;
    height: 180px;
    margin: 0 auto 20px;
    overflow: hidden;
    border-radius: 50%;
}

.vx-klc-team__photo img
{
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vx-klc-team__details h3
{
    margin: 0 0 5px;
    color: #1f2d3d;
    font-size: 1.45rem;
    line-height: 1.4;
}

.vx-klc-team__details p
{
    margin: 0;
    color: #666;
    font-size: 1.35rem;
    line-height: 1.5;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 900px)
{
    .vx-klc-team
    {
        grid-template-columns: repeat(3, minmax(0, 200px));
        gap: 32px;
    }

    .vx-klc-team__photo
    {
        width: 150px;
        height: 150px;
    }
}

@media (max-width: 700px)
{
    .vx-klc-team
    {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .vx-klc-team__photo
    {
        width: 160px;
        height: 160px;
    }
}

/* =====================================================
   KLC — CLOSING CTA
====================================================== */

.vx-klc-cta
{
    padding: 90px 0;
    background: #f6f2eb;
}

.vx-klc-cta__grid
{
    display: grid;
    grid-template-columns: 0.95fr 1.05fr;
    align-items: center;
    gap: 72px;
}

.vx-klc-cta__media
{
    overflow: hidden;
    border-radius: 12px;
}

.vx-klc-cta__media img
{
    display: block;
    width: 100%;
    height: 430px;
    object-fit: cover;
}

.vx-klc-cta__eyebrow
{
    display: inline-block;
    margin-bottom: 20px;
    padding: 7px 13px;
    border-radius: 20px;
    background: #fae9e5;
    color: #c74432;
    font-size: 1.45rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.vx-klc-cta__content h2
{
    max-width: 560px;
    margin: 0 0 22px;
    color: #1f2d3d;
    font-size: clamp(2rem, 3.5vw, 3rem);
    font-weight: 500;
    line-height: 1.15;
}

.vx-klc-cta__content p
{
    max-width: 590px;
    margin: 0 0 30px;
    color: #444;
    font-size: 1.35rem;
    line-height: 1.8;
}

@media (max-width: 900px)
{
    .vx-klc-cta
    {
        padding: 70px 0;
    }

    .vx-klc-cta__grid
    {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .vx-klc-cta__media img
    {
        height: 380px;
    }
}

@media (max-width: 600px)
{
    .vx-klc-cta
    {
        padding: 56px 0;
    }

    .vx-klc-cta__media img
    {
        height: 300px;
    }
}

/* =====================================================
   VIKASITH — OUR COMMITMENT
====================================================== */

.vx-commitment
{
    padding: 90px 0;
    background: #f6f2eb;
}

.vx-commitment-card
{
    max-width: 820px;
    margin: 0 auto;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    text-align: center;
}

.vx-commitment-card .vx-section-heading__eyebrow
{
    margin-bottom: 20px;
}

.vx-commitment-card h2
{
    margin: 0 0 30px;
    color: #1f2d3d;
    font-size: clamp(2.2rem, 4vw, 3.25rem);
    font-weight: 500;
    line-height: 1.15;
}

.vx-commitment-card p
{
    max-width: 760px;
    margin: 0 auto 18px;
    color: #444;
    font-size: 1.4rem;
    line-height: 1.8;
}

.vx-commitment-card p:last-child
{
    margin-bottom: 0;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 768px)
{
    .vx-commitment
    {
        padding: 68px 0;
    }

    .vx-commitment-card
    {
        max-width: 620px;
    }

    .vx-commitment-card h2
    {
        margin-bottom: 24px;
    }

    .vx-commitment-card p
    {
        font-size: 0.95rem;
        line-height: 1.75;
    }
}

@media (max-width: 480px)
{
    .vx-commitment
    {
        padding: 56px 0;
    }
}

/* =====================================================
   WHO WE ARE — HERO
====================================================== */

.vx-about-hero
{
    padding: 88px 0 82px;
    background: #fff;
}

.vx-about-hero__grid
{
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 72px;
}

.vx-about-hero__content
{
    position: relative;
}

.vx-about-hero__content .vx-section-heading__eyebrow
{
    margin-bottom: 20px;
}

.vx-about-hero__content h1
{
    max-width: 620px;
    margin: 0 0 28px;
    color: #1f2d3d;
    font-size: clamp(2.8rem, 4.8vw, 4.4rem);
    font-weight: 600;
    line-height: 1.08;
    letter-spacing: -0.025em;
}

.vx-about-hero__intro
{
    max-width: 620px;
}

.vx-about-hero__intro p
{
    margin: 0 0 16px;
    color: #333;
    font-size: 1.45rem;
    line-height: 1.75;
}

.vx-about-hero__intro p:last-child
{
    margin-bottom: 0;
}


/* =====================================================
   QUICK FACTS
====================================================== */

.vx-about-hero__facts
{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-top: 42px;
}

.vx-about-hero__fact
{
    padding-top: 16px;
    border-top: 2px solid rgba(210, 75, 56, 0.24);
}

.vx-about-hero__fact strong
{
    display: block;
    margin-bottom: 7px;
    color: #1f2d3d;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.35;
}

.vx-about-hero__fact span
{
    display: block;
    color: #666;
    font-size: 1.35rem;
    line-height: 1.5;
}


/* =====================================================
   HERO IMAGE
====================================================== */

.vx-about-hero__media
{
    position: relative;
    padding: 18px 18px 0 0;
}

.vx-about-hero__accent
{
    position: absolute;
    top: 0;
    right: 0;
    width: 58%;
    height: 54%;
    border-radius: 14px;
    background: #f6e8da;
}

.vx-about-hero__media img
{
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: 540px;
    object-fit: cover;
    border-radius: 12px;
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.08);
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 991px)
{
    .vx-about-hero
    {
        padding: 70px 0;
    }

    .vx-about-hero__grid
    {
        grid-template-columns: 1fr;
        gap: 52px;
    }

    .vx-about-hero__content h1
    {
        max-width: 720px;
    }

    .vx-about-hero__intro
    {
        max-width: 720px;
    }

    .vx-about-hero__media
    {
        max-width: 760px;
    }

    .vx-about-hero__media img
    {
        height: 460px;
    }
}

@media (max-width: 600px)
{
    .vx-about-hero
    {
        padding: 54px 0 58px;
    }

    .vx-about-hero__grid
    {
        gap: 42px;
    }

    .vx-about-hero__content h1
    {
        font-size: 2.6rem;
    }

    .vx-about-hero__facts
    {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-top: 34px;
    }

    .vx-about-hero__fact
    {
        padding-top: 13px;
    }

    .vx-about-hero__media
    {
        padding: 12px 12px 0 0;
    }

    .vx-about-hero__media img
    {
        height: 330px;
    }
}

/* =====================================================
   WHO WE ARE — WHY V-EXCEL EXISTS
====================================================== */

.vx-about-purpose
{
    padding: 96px 0;
    background: #f6f2eb;
}

.vx-about-purpose__intro
{
    max-width: 860px;
    margin: 0 auto;
    text-align: center;
}

.vx-about-purpose__intro .vx-section-heading__eyebrow
{
    margin-bottom: 20px;
}

.vx-about-purpose__intro h2
{
    margin: 0 0 30px;
    color: #1f2d3d;
    font-size: clamp(2.4rem, 4vw, 3.5rem);
    font-weight: 500;
    line-height: 1.15;
}

.vx-about-purpose__copy
{
    max-width: 780px;
    margin: 0 auto;
}

.vx-about-purpose__copy p
{
    margin: 0 0 16px;
    color: #444;
    font-size: 1.35rem;
    line-height: 1.8;
}

.vx-about-purpose__copy p:last-child
{
    margin-bottom: 0;
}


/* =====================================================
   PURPOSE PRINCIPLES
====================================================== */

.vx-about-purpose__principles
{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    max-width: 1080px;
    margin: 64px auto 0;
    border-top: 1px solid rgba(210, 75, 56, 0.22);
    border-bottom: 1px solid rgba(210, 75, 56, 0.22);
}

.vx-about-purpose__principle
{
    padding: 38px 42px 42px;
}

.vx-about-purpose__principle + .vx-about-purpose__principle
{
    border-left: 1px solid rgba(210, 75, 56, 0.22);
}

.vx-about-purpose__number
{
    display: block;
    margin-bottom: 18px;
    color: #d24b38;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.vx-about-purpose__principle h3
{
    margin: 0 0 14px;
    color: #1f2d3d;
    font-size: 1.35rem;
    font-weight: 600;
    line-height: 1.3;
}

.vx-about-purpose__principle p
{
    margin: 0;
    color: #555;
    font-size: 1.25rem;
    line-height: 1.7;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 900px)
{
    .vx-about-purpose
    {
        padding: 76px 0;
    }

    .vx-about-purpose__principle
    {
        padding: 32px 26px 36px;
    }
}

@media (max-width: 700px)
{
    .vx-about-purpose
    {
        padding: 60px 0;
    }

    .vx-about-purpose__principles
    {
        grid-template-columns: 1fr;
        margin-top: 46px;
    }

    .vx-about-purpose__principle
    {
        padding: 30px 6px;
    }

    .vx-about-purpose__principle + .vx-about-purpose__principle
    {
        border-left: 0;
        border-top: 1px solid rgba(210, 75, 56, 0.22);
    }
}

/* =====================================================
   WHO WE ARE — ONE ORGANISATION, MANY PATHWAYS
====================================================== */

.vx-about-pathways
{
    padding: 96px 0;
    background: #fff;
}

.vx-about-pathways__intro
{
    max-width: 880px;
    margin: 0 auto;
    text-align: center;
}

.vx-about-pathways__intro .vx-section-heading__eyebrow
{
    margin-bottom: 20px;
}

.vx-about-pathways__intro h2
{
    max-width: 760px;
    margin: 0 auto 28px;
    color: #1f2d3d;
    font-size: clamp(2.4rem, 4vw, 3.5rem);
    font-weight: 500;
    line-height: 1.15;
}

.vx-about-pathways__copy
{
    max-width: 780px;
    margin: 0 auto;
}

.vx-about-pathways__copy p
{
    margin: 0 0 16px;
    color: #444;
    font-size: 1.35rem;
    line-height: 1.8;
}

.vx-about-pathways__copy p:last-child
{
    margin-bottom: 0;
}


/* =====================================================
   LIFESPAN CONTINUUM
====================================================== */

.vx-about-pathways__continuum
{
    position: relative;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    max-width: 1160px;
    margin: 60px auto 0;
}

.vx-about-pathways__continuum::before
{
    content: "";
    position: absolute;
    top: 9px;
    left: 10%;
    right: 10%;
    height: 2px;
    background: rgba(210, 75, 56, 0.22);
}

.vx-about-pathways__stage
{
    position: relative;
    padding: 0 22px;
    text-align: center;
}

.vx-about-pathways__marker
{
    position: relative;
    z-index: 1;
    width: 20px;
    height: 20px;
    margin: 0 auto 24px;
    border: 5px solid #f8e9e5;
    border-radius: 50%;
    background: #d24b38;
}

.vx-about-pathways__stage h3
{
    margin: 0 0 12px;
    color: #1f2d3d;
    font-size: 1.3rem;
    font-weight: 600;
    line-height: 1.35;
}

.vx-about-pathways__stage p
{
    margin: 0;
    color: #555;
    font-size: 1.25rem;
    line-height: 1.65;
}


/* =====================================================
   PROGRAMMES LINK
====================================================== */

.vx-about-pathways__action
{
    margin-top: 52px;
    text-align: center;
}

.vx-about-pathways__action .vx-text-link
{
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #d24b38;
    font-size: 1.25rem;
    font-weight: 600;
    text-decoration: none;
}

.vx-about-pathways__action .vx-text-link:hover
{
    text-decoration: underline;
}

.vx-about-pathways__action .vx-text-link span
{
    transition: transform 0.2s ease;
}

.vx-about-pathways__action .vx-text-link:hover span
{
    transform: translateX(4px);
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 900px)
{
    .vx-about-pathways
    {
        padding: 76px 0;
    }

    .vx-about-pathways__stage
    {
        padding: 0 12px;
    }

    .vx-about-pathways__stage p
    {
        font-size: 0.85rem;
    }
}

@media (max-width: 700px)
{
    .vx-about-pathways
    {
        padding: 60px 0;
    }

    .vx-about-pathways__continuum
    {
        display: block;
        max-width: 520px;
        margin-top: 50px;
    }

    .vx-about-pathways__continuum::before
    {
        top: 10px;
        bottom: 10px;
        left: 9px;
        right: auto;
        width: 2px;
        height: auto;
    }

    .vx-about-pathways__stage
    {
        min-height: 120px;
        padding: 0 0 34px 48px;
        text-align: left;
    }

    .vx-about-pathways__marker
    {
        position: absolute;
        top: 0;
        left: 0;
        margin: 0;
    }

    .vx-about-pathways__stage h3
    {
        margin-bottom: 8px;
    }

    .vx-about-pathways__stage p
    {
        max-width: 380px;
        font-size: 1.0rem;
    }

    .vx-about-pathways__stage:last-child
    {
        min-height: 0;
        padding-bottom: 0;
    }

    .vx-about-pathways__action
    {
        margin-top: 42px;
    }
}

/* =====================================================
   WHO WE ARE — VISION, MISSION & OBJECTIVES
====================================================== */

.vx-about-direction
{
    padding: 96px 0;
    background: #fff;
}

.vx-about-direction__heading
{
    margin-bottom: 52px;
    text-align: center;
}

.vx-about-direction__heading .vx-section-heading__eyebrow
{
    margin-bottom: 20px;
}

.vx-about-direction__heading h2
{
    margin: 0;
    color: #1f2d3d;
    font-size: clamp(2.4rem, 4vw, 3.5rem);
    font-weight: 500;
    line-height: 1.15;
}


/* =====================================================
   VISION & MISSION
====================================================== */

.vx-about-direction__statements
{
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    max-width: 1100px;
    margin: 0 auto;
    border-top: 1px solid rgba(210, 75, 56, 0.24);
    border-bottom: 1px solid rgba(210, 75, 56, 0.24);
}

.vx-about-direction__statement
{
    padding: 46px 52px 50px;
}

.vx-about-direction__statement + .vx-about-direction__statement
{
    border-left: 1px solid rgba(210, 75, 56, 0.24);
}

.vx-about-direction__label
{
    display: block;
    margin-bottom: 18px;
    color: #d24b38;
    font-size: 1.38rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.vx-about-direction__statement-text
{
    margin: 0;
    color: #1f2d3d;
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.65;
}


/* =====================================================
   OBJECTIVES
====================================================== */

.vx-about-objectives
{
    max-width: 1100px;
    margin: 86px auto 0;
}

.vx-about-objectives__heading
{
    max-width: 700px;
    margin-bottom: 42px;
}

.vx-about-objectives__eyebrow
{
    display: block;
    margin-bottom: 12px;
    color: #d24b38;
    font-size: 1.38rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.vx-about-objectives__heading h3
{
    margin: 0 0 12px;
    color: #1f2d3d;
    font-size: clamp(1.9rem, 3vw, 2.6rem);
    font-weight: 500;
    line-height: 1.2;
}

.vx-about-objectives__heading p
{
    margin: 0;
    color: #555;
    font-size: 1.35rem;
    line-height: 1.7;
}

.vx-about-objectives__grid
{
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    border-top: 1px solid rgba(210, 75, 56, 0.22);
}

.vx-about-objective
{
    grid-column: span 2;
    padding: 34px 34px 38px 0;
    border-bottom: 1px solid rgba(210, 75, 56, 0.22);
}

.vx-about-objective:not(:nth-child(3n + 1))
{
    padding-left: 34px;
    border-left: 1px solid rgba(210, 75, 56, 0.22);
}

/* Centre the final two objectives */

.vx-about-objective:nth-child(4)
{
    grid-column: 2 / span 2;
    padding-left: 34px;
    border-left: 0;
}

.vx-about-objective:nth-child(5)
{
    grid-column: 4 / span 2;
    padding-left: 34px;
    border-left: 1px solid rgba(210, 75, 56, 0.22);
    border-right: 0;
}

.vx-about-objective__number
{
    display: block;
    margin-bottom: 16px;
    color: #d24b38;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.vx-about-objective h4
{
    margin: 0 0 12px;
    color: #1f2d3d;
    font-size: 1.3rem;
    font-weight: 600;
    line-height: 1.4;
}

.vx-about-objective p
{
    margin: 0;
    color: #555;
    font-size: 1.25rem;
    line-height: 1.7;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 900px)
{
    .vx-about-direction
    {
        padding: 76px 0;
    }

    .vx-about-direction__statement
    {
        padding: 38px 34px 42px;
    }

    .vx-about-objectives
    {
        margin-top: 70px;
    }
}

@media (max-width: 700px)
{
    .vx-about-direction
    {
        padding: 60px 0;
    }

    .vx-about-direction__statements
    {
        grid-template-columns: 1fr;
    }

    .vx-about-direction__statement
    {
        padding: 34px 6px;
    }

    .vx-about-direction__statement + .vx-about-direction__statement
    {
        border-left: 0;
        border-top: 1px solid rgba(210, 75, 56, 0.24);
    }

    .vx-about-direction__statement-text
    {
        font-size: 1.1rem;
    }

    .vx-about-objectives
    {
        margin-top: 58px;
    }

    .vx-about-objectives__grid
    {
        display: block;
    }

    .vx-about-objective,
    .vx-about-objective:nth-child(4),
    .vx-about-objective:nth-child(5)
    {
        padding: 28px 6px;
        border-right: 0;
        border-left: 0;
    }
}

/* =====================================================
   WHO WE ARE — OUR REACH
====================================================== */

.vx-about-reach
{
    padding: 96px 0;
    background: #f6f2eb;
}

.vx-about-reach__intro
{
    max-width: 880px;
    margin: 0 auto;
    text-align: center;
}

.vx-about-reach__intro .vx-section-heading__eyebrow
{
    margin-bottom: 20px;
}

.vx-about-reach__intro h2
{
    max-width: 760px;
    margin: 0 auto 28px;
    color: #1f2d3d;
    font-size: clamp(2.4rem, 4vw, 3.5rem);
    font-weight: 500;
    line-height: 1.15;
}

.vx-about-reach__copy
{
    max-width: 780px;
    margin: 0 auto;
}

.vx-about-reach__copy p
{
    margin: 0 0 16px;
    color: #444;
    font-size: 1.25rem;
    line-height: 1.8;
}

.vx-about-reach__copy p:last-child
{
    margin-bottom: 0;
}


/* =====================================================
   REACH FACTS
====================================================== */

.vx-about-reach__facts
{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    max-width: 1100px;
    margin: 64px auto 0;
    border-top: 1px solid rgba(210, 75, 56, 0.22);
    border-bottom: 1px solid rgba(210, 75, 56, 0.22);
}

.vx-about-reach__fact
{
    min-height: 170px;
    padding: 34px 30px;
}

.vx-about-reach__fact + .vx-about-reach__fact
{
    border-left: 1px solid rgba(210, 75, 56, 0.22);
}

.vx-about-reach__fact strong
{
    display: block;
    margin-bottom: 12px;
    color: #d24b38;
    font-size: 2.5rem;
    font-weight: 500;
    line-height: 1;
}

.vx-about-reach__fact span
{
    display: block;
    max-width: 190px;
    color: #1f2d3d;
    font-size: 1.28rem;
    line-height: 1.6;
}

.vx-about-reach__fact--text strong
{
    max-width: 190px;
    font-size: 1.35rem;
    line-height: 1.2;
}


/* =====================================================
   REACH STORY
====================================================== */

.vx-about-reach__story
{
    display: grid;
    grid-template-columns: 1.6fr 0.8fr;
    gap: 64px;
    max-width: 1100px;
    margin: 58px auto 0;
    align-items: center;
}

.vx-about-reach__media img
{
    display: block;
    width: 100%;
    height: 390px;
    object-fit: cover;
    border-radius: 12px;
}

.vx-about-reach__locations
{
    display: grid;
    gap: 34px;
}

.vx-about-reach__location
{
    padding-top: 22px;
    border-top: 1px solid rgba(210, 75, 56, 0.24);
}

.vx-about-reach__location span
{
    display: block;
    margin-bottom: 10px;
    color: #d24b38;
    font-size: 1.28rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.vx-about-reach__location p
{
    margin: 0;
    color: #444;
    font-size: 1.25rem;
    line-height: 1.75;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 900px)
{
    .vx-about-reach
    {
        padding: 76px 0;
    }

    .vx-about-reach__facts
    {
        grid-template-columns: repeat(2, 1fr);
    }

    .vx-about-reach__fact:nth-child(3)
    {
        border-left: 0;
        border-top: 1px solid rgba(210, 75, 56, 0.22);
    }

    .vx-about-reach__fact:nth-child(4)
    {
        border-top: 1px solid rgba(210, 75, 56, 0.22);
    }

    .vx-about-reach__story
    {
        grid-template-columns: 1.35fr 0.85fr;
        gap: 42px;
    }
}

@media (max-width: 700px)
{
    .vx-about-reach
    {
        padding: 60px 0;
    }

    .vx-about-reach__facts
    {
        grid-template-columns: 1fr;
        margin-top: 46px;
    }

    .vx-about-reach__fact
    {
        min-height: 0;
        padding: 26px 6px;
    }

    .vx-about-reach__fact + .vx-about-reach__fact
    {
        border-left: 0;
        border-top: 1px solid rgba(210, 75, 56, 0.22);
    }

    .vx-about-reach__story
    {
        grid-template-columns: 1fr;
        gap: 38px;
        margin-top: 52px;
    }

    .vx-about-reach__media img
    {
        height: 320px;
    }
}

/* =====================================================
   WHO WE ARE — THE PEOPLE BEHIND THE WORK
====================================================== */

.vx-about-people
{
    padding: 96px 0;
    background: #fff;
}

.vx-about-people__intro
{
    max-width: 880px;
    margin: 0 auto;
    text-align: center;
}

.vx-about-people__intro .vx-section-heading__eyebrow
{
    margin-bottom: 20px;
}

.vx-about-people__intro h2
{
    margin: 0 0 28px;
    color: #1f2d3d;
    font-size: clamp(2.4rem, 4vw, 3.5rem);
    font-weight: 500;
    line-height: 1.15;
}

.vx-about-people__copy
{
    max-width: 780px;
    margin: 0 auto;
}

.vx-about-people__copy p
{
    margin: 0 0 16px;
    color: #444;
    font-size: 1.35rem;
    line-height: 1.8;
}

.vx-about-people__copy p:last-child
{
    margin-bottom: 0;
}


/* =====================================================
   TEAM IMAGE
====================================================== */

.vx-about-people__media
{
    max-width: 1000px;
    margin: 58px auto 0;
}

.vx-about-people__media img
{
    display: block;
    width: 100%;
    height: auto;
    border-radius: 12px;
}


/* =====================================================
   PEOPLE THEMES
====================================================== */

.vx-about-people__themes
{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    max-width: 1100px;
    margin: 0 auto;
    border-bottom: 1px solid rgba(210, 75, 56, 0.22);
}

.vx-about-people__theme
{
    min-height: 190px;
    padding: 32px 28px 36px;
}

.vx-about-people__theme + .vx-about-people__theme
{
    border-left: 1px solid rgba(210, 75, 56, 0.22);
}

.vx-about-people__number
{
    display: block;
    margin-bottom: 16px;
    color: #d24b38;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.vx-about-people__theme h3
{
    margin: 0 0 12px;
    color: #1f2d3d;
    font-size: 1.35rem;
    font-weight: 600;
    line-height: 1.4;
}

.vx-about-people__theme p
{
    margin: 0;
    color: #555;
    font-size: 1.25rem;
    line-height: 1.7;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 900px)
{
    .vx-about-people
    {
        padding: 76px 0;
    }

    .vx-about-people__media img
    {
        height: 400px;
    }

    .vx-about-people__themes
    {
        grid-template-columns: repeat(2, 1fr);
    }

    .vx-about-people__theme:nth-child(3)
    {
        border-left: 0;
        border-top: 1px solid rgba(210, 75, 56, 0.22);
    }

    .vx-about-people__theme:nth-child(4)
    {
        border-top: 1px solid rgba(210, 75, 56, 0.22);
    }
}

@media (max-width: 700px)
{
    .vx-about-people
    {
        padding: 60px 0;
    }

    .vx-about-people__media
    {
        margin-top: 44px;
    }

    .vx-about-people__media img
    {
        height: 320px;
    }

    .vx-about-people__themes
    {
        grid-template-columns: 1fr;
    }

    .vx-about-people__theme
    {
        min-height: 0;
        padding: 26px 6px;
    }

    .vx-about-people__theme + .vx-about-people__theme,
    .vx-about-people__theme:nth-child(3),
    .vx-about-people__theme:nth-child(4)
    {
        border-left: 0;
        border-top: 1px solid rgba(210, 75, 56, 0.22);
    }
}

/* =====================================================
   WHO WE ARE — LOOKING AHEAD
====================================================== */

.vx-about-looking-ahead
{
    padding: 92px 0 96px;
    background: #f6f2eb;
}

.vx-about-looking-ahead__inner
{
    max-width: 820px;
    margin: 0 auto;
    text-align: center;
}

.vx-about-looking-ahead__inner .vx-section-heading__eyebrow
{
    margin-bottom: 20px;
}

.vx-about-looking-ahead__inner h2
{
    margin: 0 0 28px;
    color: #1f2d3d;
    font-size: clamp(2.4rem, 4vw, 3.5rem);
    font-weight: 500;
    line-height: 1.15;
}

.vx-about-looking-ahead__copy
{
    max-width: 720px;
    margin: 0 auto;
}

.vx-about-looking-ahead__copy p
{
    margin: 0 0 16px;
    color: #444;
    font-size: 1.35rem;
    line-height: 1.8;
}

.vx-about-looking-ahead__copy p:last-child
{
    margin-bottom: 0;
}


/* =====================================================
   LOOKING AHEAD — LINKS
====================================================== */

.vx-about-looking-ahead__links
{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 42px;
    margin-top: 36px;
}

.vx-about-looking-ahead__links .vx-text-link
{
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.vx-about-looking-ahead__links .vx-text-link span
{
    transition: transform 0.2s ease;
}

.vx-about-looking-ahead__links .vx-text-link:hover span
{
    transform: translateX(4px);
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 700px)
{
    .vx-about-looking-ahead
    {
        padding: 64px 0 68px;
    }

    .vx-about-looking-ahead__links
    {
        flex-direction: column;
        gap: 18px;
        margin-top: 30px;
    }
}

/* =====================================================
   LEADERSHIP TEAM
====================================================== */

.vx-leadership
{
    padding: 96px 0 104px;
    background: #fff;
}


/* =====================================================
   LEADERSHIP — INTRO
====================================================== */

.vx-leadership__intro
{
    max-width: 820px;
    margin: 0 auto 62px;
    text-align: center;
}

.vx-leadership__intro .vx-section-heading__eyebrow
{
    margin-bottom: 20px;
}

.vx-leadership__intro h1
{
    margin: 0 0 26px;
    color: #1f2d3d;
    font-size: clamp(2.5rem, 4vw, 3.6rem);
    font-weight: 500;
    line-height: 1.15;
}

.vx-leadership__intro p
{
    max-width: 720px;
    margin: 0 auto;
    color: #444;
    font-size: 1.35rem;
    line-height: 1.8;
}


/* =====================================================
   LEADERSHIP — GRID
====================================================== */

.vx-leadership__grid
{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 48px 28px;
    max-width: 1100px;
    margin: 0 auto;
}


/* =====================================================
   LEADER
====================================================== */

.vx-leader
{
    min-width: 0;
}

.vx-leader__image
{
    position: relative;
    overflow: hidden;
    margin-bottom: 22px;
    border-radius: 10px;
    background: #f6f2eb;
}

.vx-leader__image::before
{
    display: block;
    padding-top: 112%;
    content: "";
}

.vx-leader__image img
{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    transition: transform 0.35s ease;
}

.vx-leader:hover .vx-leader__image img
{
    transform: scale(1.025);
}


/* =====================================================
   LEADER — CONTENT
====================================================== */

.vx-leader__content
{
    padding-right: 8px;
}

.vx-leader__content h2
{
    margin: 0 0 7px;
    color: #1f2d3d;
    font-size: 1.4rem;
    font-weight: 600;
    line-height: 1.35;
}

.vx-leader__role
{
    min-height: 38px;
    margin: 0 0 8px;
    color: #666;
    font-size: 1.35rem;
    line-height: 1.55;
}


/* =====================================================
   LEADER — PROFILE LINK
====================================================== */

.vx-leader__link
{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #d24b38;
    font-family: inherit;
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.4;
    cursor: pointer;
}

.vx-leader__link span
{
    transition: transform 0.2s ease;
}

.vx-leader__link:hover span,
.vx-leader__link:focus span
{
    transform: translateX(4px);
}

.vx-leader__link:focus-visible
{
    outline: 2px solid #d24b38;
    outline-offset: 5px;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 1000px)
{
    .vx-leadership__grid
    {
        grid-template-columns: repeat(3, 1fr);
        gap: 44px 26px;
    }
}

@media (max-width: 760px)
{
    .vx-leadership
    {
        padding: 72px 0 80px;
    }

    .vx-leadership__intro
    {
        margin-bottom: 48px;
    }

    .vx-leadership__grid
    {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px 22px;
    }
}

@media (max-width: 520px)
{
    .vx-leadership
    {
        padding: 60px 0 68px;
    }

    .vx-leadership__grid
    {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .vx-leader
    {
        max-width: 340px;
        margin: 0 auto;
    }

    .vx-leader__role
    {
        min-height: 0;
    }
}

/* =====================================================
   LEADERSHIP — PROFILE MODAL
====================================================== */

.vx-profile-modal .modal-dialog
{
    width: calc(100% - 40px);
    max-width: 980px;
    margin: 40px auto;
}

.vx-profile-modal .modal-content
{
    position: relative;
    overflow: hidden;
    border: 0;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
}

/* =====================================================
   PROFILE MODAL — LAYOUT
====================================================== */

.vx-profile-modal__layout
{
    display: grid;
    grid-template-columns: 40% 60%;
    min-height: 560px;
}


/* =====================================================
   PROFILE MODAL — PORTRAIT
====================================================== */

.vx-profile-modal__portrait
{
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 54px 36px;
    background: #f6f2eb;
}

.vx-profile-modal__portrait img
{
    display: block;
    width: 100%;
    height: auto;
    max-height: 450px;
    object-fit: contain;
    border-radius: 12px;
    box-shadow: 0 12px 32px rgba(31, 45, 61, 0.10);
}



/* =====================================================
   PROFILE MODAL — CONTENT
====================================================== */

.vx-profile-modal__content
{
    position: relative;
    padding: 62px 64px 54px;
    background: #fff;
}

.vx-profile-modal__content::before
{
    position: absolute;
    top: 62px;
    left: 0;
    width: 4px;
    height: 86px;
    background: #d24b38;
    content: "";
}

.vx-profile-modal__eyebrow
{
    display: block;
    margin-bottom: 14px;
    color: #d24b38;
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.vx-profile-modal__content h2
{
    margin: 0 0 9px;
    color: #1f2d3d;
    font-size: 2.4rem;
    font-weight: 500;
    line-height: 1.15;
}

.vx-profile-modal__role
{
    margin: 0 0 30px;
    padding-bottom: 25px;
    border-bottom: 1px solid #ead8d1;
    color: #555;
    font-size: 1.28rem;
    font-weight: 500;
    line-height: 1.5;
}



/* =====================================================
   PROFILE MODAL — BIOGRAPHY
====================================================== */

.vx-profile-modal__bio
{
    max-width: 590px;
}

.vx-profile-modal__bio p
{
    margin: 0 0 20px;
    color: #2f3741;
    font-size: 1.35rem;
    font-weight: 400;
    line-height: 1.85;
}

.vx-profile-modal__bio p:last-child
{
    margin-bottom: 0;
}


/* =====================================================
   BOOTSTRAP 3 MODAL
====================================================== */

.vx-profile-modal.modal
{
    padding-right: 0 !important;
}

.vx-profile-modal .modal-dialog
{
    transform: translateY(14px);
    transition: transform 0.25s ease;
}

.vx-profile-modal.in .modal-dialog
{
    transform: translateY(0);
}

.modal-backdrop.in
{
    opacity: 0.48;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 760px)
{
    .vx-profile-modal .modal-dialog
    {
        width: calc(100% - 28px);
        margin: 20px auto;
    }

    .vx-profile-modal__layout
    {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .vx-profile-modal__portrait
    {
        padding: 32px;
    }

    .vx-profile-modal__portrait img
    {
        width: auto;
        max-width: 100%;
        max-height: 380px;
        margin: 0 auto;
    }

    .vx-profile-modal__content
    {
        padding: 42px 30px 40px;
    }

    .vx-profile-modal__content::before
    {
        left: 30px;
    }

    .vx-profile-modal__content h2
    {
        font-size: 1.8rem;
    }

    .vx-profile-modal__bio p
    {
        font-size: 1.25rem;
        line-height: 1.75;
    }
}

@media (max-width: 480px)
{
    .vx-profile-modal__portrait
    {
        padding: 24px;
    }

    .vx-profile-modal__content
    {
        padding: 38px 24px 34px;
    }

    .vx-profile-modal__content::before
    {
        left: 24px;
    }
}

/* =====================================================
   PROFILE MODAL — CLOSE BUTTON FIX
====================================================== */

.vx-profile-modal .modal-content
{
    position: relative;
}

.vx-profile-modal__layout
{
    position: relative;
    z-index: 1;
}

/* =====================================================
   PROFILE MODAL — CLOSE
====================================================== */

.vx-profile-modal .modal-content
{
    position: relative;
}

.vx-profile-close
{
    position: absolute;
    top: 15px;
    right: 15px;
    z-index: 1055;

    display: flex;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;

    margin: 0;
    padding: 0;

    border: 1px solid #d9d9d9;
    border-radius: 50%;

    background: #fff;
    color: #1f2d3d;

    font-family: Arial, sans-serif;
    font-size: 24px;
    font-weight: 300;
    line-height: 1;

    opacity: 1;
    cursor: pointer;
    pointer-events: auto;
}

.vx-profile-close:hover
{
    border-color: #d24b38;
    background: #d24b38;
    color: #fff;
}

.vx-profile-close span
{
    display: block;
    pointer-events: none;
}

/* =====================================================
   PROFILE MODAL — STACKING FIX
====================================================== */

.modal-backdrop
{
    z-index: 1040 !important;
}

.vx-profile-modal
{
    z-index: 1050 !important;
}

.vx-profile-modal .modal-dialog
{
    position: relative;
    z-index: 1051;
}

/* =====================================================
   BOARD OF TRUSTEES
====================================================== */

.vx-board
{
    padding: 96px 0 104px;
    background: #fff;
}


/* =====================================================
   BOARD — INTRO
====================================================== */

.vx-board__intro
{
    max-width: 820px;
    margin: 0 auto 62px;
    text-align: center;
}

.vx-board__intro .vx-section-heading__eyebrow
{
    margin-bottom: 20px;
}

.vx-board__intro h1
{
    margin: 0 0 26px;
    color: #1f2d3d;
    font-size: clamp(2.5rem, 4vw, 3.6rem);
    font-weight: 500;
    line-height: 1.15;
}

.vx-board__intro p
{
    max-width: 720px;
    margin: 0 auto;
    color: #444;
    font-size: 1.35rem;
    line-height: 1.8;
}


/* =====================================================
   BOARD — GRID
====================================================== */

.vx-board__grid
{
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 48px 28px;
    max-width: 1100px;
    margin: 0 auto;
}


/* First row: 4 across */

.vx-board-member:nth-child(1),
.vx-board-member:nth-child(2),
.vx-board-member:nth-child(3),
.vx-board-member:nth-child(4)
{
    grid-column: span 2;
}


/* Second row: 3 centred */

.vx-board-member:nth-child(5)
{
    grid-column: 2 / span 2;
}

.vx-board-member:nth-child(6)
{
    grid-column: 4 / span 2;
}

.vx-board-member:nth-child(7)
{
    grid-column: 6 / span 2;
}


/* =====================================================
   BOARD MEMBER
====================================================== */

.vx-board-member
{
    min-width: 0;
}

.vx-board-member__image
{
    position: relative;
    overflow: hidden;
    margin-bottom: 22px;
    border-radius: 10px;
    background: #f6f2eb;
}

.vx-board-member__image::before
{
    display: block;
    padding-top: 112%;
    content: "";
}

.vx-board-member__image::after
{
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 2;
    height: 3px;
    background: #d24b38;
    content: "";
}

.vx-board-member__image img
{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    transition: transform 0.3s ease;
}

.vx-board-member:hover .vx-board-member__image img
{
    transform: scale(1.02);
}


/* =====================================================
   BOARD MEMBER — CONTENT
====================================================== */

.vx-board-member__content
{
    padding-right: 8px;
    text-align: left;
}

.vx-board-member__content h2
{
    margin: 0 0 7px;
    color: #1f2d3d;
    font-size: 1.45rem;
    font-weight: 600;
    line-height: 1.4;
}

.vx-board-member__content p
{
    margin: 0;
    color: #666;
    font-size: 1.35rem;
    line-height: 1.55;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 1000px)
{
    .vx-board__grid
    {
        grid-template-columns: repeat(6, 1fr);
        gap: 44px 26px;
    }

    .vx-board-member:nth-child(n)
    {
        grid-column: span 2;
    }

    .vx-board-member:nth-child(7)
    {
        grid-column: 3 / span 2;
    }
}

@media (max-width: 760px)
{
    .vx-board
    {
        padding: 72px 0 80px;
    }

    .vx-board__intro
    {
        margin-bottom: 48px;
    }

    .vx-board__grid
    {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px 22px;
    }

    .vx-board-member:nth-child(n)
    {
        grid-column: auto;
    }

    .vx-board-member:nth-child(7)
    {
        grid-column: 1 / -1;
        width: calc(50% - 11px);
        margin: 0 auto;
    }
}

@media (max-width: 520px)
{
    .vx-board
    {
        padding: 60px 0 68px;
    }

    .vx-board__grid
    {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .vx-board-member,
    .vx-board-member:nth-child(7)
    {
        width: 100%;
        max-width: 340px;
        margin: 0 auto;
    }
}

/* =====================================================
   OUR PARTNERS
====================================================== */

.vx-partners
{
    padding: 96px 0 104px;
    background: #fff;
}


/* =====================================================
   PARTNERS — INTRO
====================================================== */

.vx-partners__intro
{
    max-width: 820px;
    margin: 0 auto 60px;
    text-align: center;
}

.vx-partners__intro .vx-section-heading__eyebrow
{
    margin-bottom: 20px;
}

.vx-partners__intro h1
{
    margin: 0 0 24px;
    color: #1f2d3d;
    font-size: clamp(2.5rem, 4vw, 3.6rem);
    font-weight: 500;
    line-height: 1.15;
}

.vx-partners__intro p
{
    max-width: 720px;
    margin: 0 auto;
    color: #444;
    font-size: 1.25rem;
    line-height: 1.8;
}


/* =====================================================
   PARTNERS — GRID
====================================================== */

.vx-partners__grid
{
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 38px 28px;
    max-width: 1120px;
    margin: 0 auto;
}


/* =====================================================
   PARTNER
====================================================== */

.vx-partner
{
    min-width: 0;
    text-align: center;
}


/* =====================================================
   PARTNER — LOGO
====================================================== */

.vx-partner__logo
{
    display: flex;
    height: 150px;
    align-items: center;
    justify-content: center;
    padding: 24px;

    border: 1px solid rgba(31, 45, 61, 0.10);
    border-radius: 10px;

    background: #fff;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

a.vx-partner__logo:hover
{
    border-color: rgba(210, 75, 56, 0.30);
    box-shadow: 0 8px 24px rgba(31, 45, 61, 0.08);
    transform: translateY(-2px);
}

.vx-partner__logo img
{
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 100%;
    margin: 0;
    object-fit: contain;
}


/* =====================================================
   PARTNER — NAME
====================================================== */

.vx-partner__name
{
    margin: 14px 0 0;
    color: #1f2d3d;
    font-size: 1.0rem;
    font-weight: 500;
    line-height: 1.45;
}


/* =====================================================
   PARTNERS — EMPTY
====================================================== */

.vx-partners__empty
{
    grid-column: 1 / -1;
    margin: 20px 0;
    color: #666;
    font-size: 1rem;
    line-height: 1.7;
    text-align: center;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 1000px)
{
    .vx-partners__grid
    {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 34px 24px;
    }
}

@media (max-width: 700px)
{
    .vx-partners
    {
        padding: 72px 0 80px;
    }

    .vx-partners__intro
    {
        margin-bottom: 48px;
    }

    .vx-partners__grid
    {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 28px 18px;
    }

    .vx-partner__logo
    {
        height: 130px;
        padding: 20px;
    }
}

@media (max-width: 480px)
{
    .vx-partners
    {
        padding: 60px 0 68px;
    }

    .vx-partners__grid
    {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .vx-partner
    {
        max-width: 300px;
        margin: 0 auto;
    }

    .vx-partner__logo
    {
        height: 140px;
    }
}

/* =====================================================
   MILESTONES
====================================================== */

.vx-milestones
{
    padding: 96px 0 110px;
    background: #fff;
}


/* =====================================================
   MILESTONES — INTRO
====================================================== */

.vx-milestones__intro
{
    max-width: 820px;
    margin: 0 auto 72px;
    text-align: center;
}

.vx-milestones__intro .vx-section-heading__eyebrow
{
    margin-bottom: 20px;
}

.vx-milestones__intro h1
{
    margin: 0 0 24px;
    color: #1f2d3d;
    font-size: clamp(2.5rem, 4vw, 3.6rem);
    font-weight: 500;
    line-height: 1.15;
}

.vx-milestones__intro p
{
    max-width: 760px;
    margin: 0 auto;
    color: #444;
    font-size: 1.35rem;
    line-height: 1.8;
}

/* =====================================================
   MILESTONE JOURNEY
====================================================== */

.vx-timeline
{
    position: relative;
    max-width: 860px;
    margin: 0 auto;
    padding: 0 0 20px 80px;
}


/* vertical line */

.vx-timeline::before
{
    position: absolute;
    top: 18px;
    bottom: 0;
    left: 29px;
    width: 1px;
    background: #edcbc5;
    content: "";
}


/* =====================================================
   YEAR
====================================================== */

.vx-milestone-year
{
    position: relative;

    margin: 58px 0 28px;
}

.vx-milestone-year:first-child
{
    margin-top: 0;
}

.vx-milestone-year span
{
    color: #d24b38;

    font-size: 1.45rem;
    font-weight: 600;
    line-height: 1;
}


/* =====================================================
   MILESTONE ENTRY
====================================================== */

.vx-milestone-entry
{
    position: relative;

    width: 100%;
    margin: 0 0 46px;
}


/* dot */

.vx-milestone-entry__dot
{
    position: absolute;

    top: 5px;
    left: -56px;

    width: 11px;
    height: 11px;

    border: 2px solid #d24b38;
    border-radius: 50%;

    background: #fff;

    box-sizing: border-box;
}


/* content */

.vx-milestone-entry__body
{
    width: 100%;
    max-width: 700px;
}

.vx-milestone-entry__body h2
{
    margin: 0 0 9px;

    color: #1f2d3d;

    font-size: 1.3rem;
    font-weight: 600;
    line-height: 1.4;
}

.vx-milestone-entry__body p
{
    margin: 0;

    color: #555;

    font-size: 1.25rem;
    line-height: 1.75;
}


/* =====================================================
   MOBILE
====================================================== */

@media (max-width: 767px)
{
    .vx-timeline
    {
        padding-left: 42px;
    }

    .vx-timeline::before
    {
        left: 9px;
    }

    .vx-milestone-entry__dot
    {
        left: -38px;
    }

    .vx-milestone-year
    {
        margin: 44px 0 24px;
    }
}

/* =========================================================
   TATTVA
   Annual Inclusive Art Exhibition
========================================================= */


/* ---------------------------------------------------------
   SHARED
--------------------------------------------------------- */

.vx-tattva-hero,
.vx-tattva-about,
.vx-tattva-process,
.vx-tattva-years,
.vx-tattva-artists,
.vx-tattva-community,
.vx-tattva-participate
{
    font-family: inherit;
}

.vx-tattva-section-heading
{
    max-width: 760px;
    margin: 0 auto 54px;
    text-align: center;
}

.vx-tattva-section-heading h2
{
    margin: 18px 0 0;

    color: #1f2d3d;

    font-size: 2.35rem;
    font-weight: 500;
    line-height: 1.2;
}


/* =========================================================
   HERO
========================================================= */

/* =========================================================
   TATTVA HERO
========================================================= */

.vx-tattva-hero
{
    position: relative;

    padding: 90px 0 100px;

    overflow: hidden;

    background: #f8f4ee;
}


.vx-tattva-hero .container
{
    display: grid;

    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(360px, 0.85fr);

    gap: 75px;

    align-items: center;
}


/* ---------------------------------------------------------
   HERO IMAGE
--------------------------------------------------------- */

.vx-tattva-hero__visual
{
    overflow: hidden;

    border-radius: 12px;
}


.vx-tattva-hero__visual img
{
    display: block;

    width: 100%;
    height: auto;

    aspect-ratio: 3 / 2;

    object-fit: cover;
    object-position: center;

    border-radius: 12px;
}


/* ---------------------------------------------------------
   HERO COPY
--------------------------------------------------------- */

.vx-tattva-hero__content
{
    max-width: 560px;
}


.vx-tattva-hero__content h1
{
    margin: 22px 0 28px;

    color: #1f2d3d;

    font-size: clamp(3.2rem, 4.7vw, 5rem);
    font-weight: 500;

    letter-spacing: -0.035em;
    line-height: 1.02;
}


.vx-tattva-hero__lead
{
    margin: 0 0 24px;

    color: #283746;

    font-size: 1.46rem;
    line-height: 1.75;
}


.vx-tattva-hero__text
{
    margin: 0;

    color: #5a5a5a;

    font-size: 1.32rem;
    line-height: 1.8;
}


/* ---------------------------------------------------------
   HERO STATEMENT
--------------------------------------------------------- */

.vx-tattva-hero__statement
{
    margin-top: 38px;

    padding: 18px 0 18px 22px;

    border-left: 3px solid #d24b38;
}


.vx-tattva-hero__statement p
{
    margin: 0;

    color: #1f2d3d;

    font-size: 1.32rem;
    line-height: 1.7;
}


.vx-tattva-hero__statement strong
{
    color: #d24b38;

    font-weight: 600;
}


/* ---------------------------------------------------------
   TABLET
--------------------------------------------------------- */

@media (max-width: 991px)
{
    .vx-tattva-hero .container
    {
        grid-template-columns: 1fr;

        gap: 50px;
    }


    .vx-tattva-hero__visual img
    {
        height: auto;

        aspect-ratio: 16 / 10;
    }


    .vx-tattva-hero__content
    {
        max-width: 720px;
    }
}


/* ---------------------------------------------------------
   MOBILE
--------------------------------------------------------- */

@media (max-width: 767px)
{
    .vx-tattva-hero
    {
        padding: 60px 0 70px;
    }


    .vx-tattva-hero__visual img
    {
        aspect-ratio: 4 / 3;

        object-position: center;
    }


    .vx-tattva-hero__content h1
    {
        font-size: 3.1rem;
    }


    .vx-tattva-hero__lead
    {
        font-size: 1.05rem;
    }


    .vx-tattva-hero__statement
    {
        margin-top: 30px;

        padding-left: 22px;
    }
}


/* =========================================================
   ABOUT
========================================================= */

.vx-tattva-about
{
    padding: 110px 0;
    background: #fff;
}


.vx-tattva-about__grid
{
    display: grid;
    grid-template-columns: minmax(280px, 0.75fr) minmax(0, 1.25fr);

    gap: 100px;

    align-items: start;
}


.vx-tattva-about__heading
{
    position: sticky;
    top: 120px;
}


.vx-tattva-about__heading h2
{
    max-width: 430px;
    margin: 20px 0 0;

    color: #1f2d3d;

    font-size: 2.65rem;
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: 1.15;
}


.vx-tattva-about__copy
{
    max-width: 700px;
}


.vx-tattva-about__copy p
{
    margin: 0 0 22px;

    color: #50565c;

    font-size: 1.35rem;
    line-height: 1.85;
}


.vx-tattva-about__highlight
{
    margin-top: 34px !important;

    padding: 24px 28px !important;

    border-left: 3px solid #d24b38;

    background: #faf5f2;

    color: #1f2d3d !important;

    font-size: 1.38rem !important;
    font-weight: 600;
    line-height: 1.65;
}


/* =========================================================
   PROCESS
========================================================= */

.vx-tattva-process
{
    padding: 110px 0 120px;

    background: #f8f4ee;
}


.vx-tattva-process__grid
{
    display: grid;
    grid-template-columns: repeat(3, 1fr);

    border-top: 1px solid #e8c8c1;
    border-left: 1px solid #e8c8c1;
}


.vx-tattva-step
{
    position: relative;

    min-height: 285px;
    padding: 38px 34px 42px;

    border-right: 1px solid #e8c8c1;
    border-bottom: 1px solid #e8c8c1;

    background: rgba(255, 255, 255, 0.35);
}


.vx-tattva-step__number
{
    display: block;

    margin-bottom: 38px;

    color: #d24b38;

    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}


.vx-tattva-step h3
{
    margin: 0 0 16px;

    color: #1f2d3d;

    font-size: 1.35rem;
    font-weight: 600;
    line-height: 1.3;
}


.vx-tattva-step p
{
    margin: 0;

    color: #5c6064;

    font-size: 1.28rem;
    line-height: 1.75;
}


/* tiny movement, not a "card" effect */

.vx-tattva-step
{
    transition:
        background 0.25s ease,
        transform 0.25s ease;
}


.vx-tattva-step:hover
{
    z-index: 1;

    background: #fff;
    transform: translateY(-3px);
}


/* =========================================================
   THROUGH THE YEARS
========================================================= */

.vx-tattva-years
{
    padding: 115px 0 125px;

    background: #fff;
}


.vx-tattva-years .vx-tattva-section-heading p
{
    max-width: 680px;
    margin: 22px auto 0;

    color: #5c6064;

    font-size: 1.35rem;
    line-height: 1.8;
}


/* year navigation */

.vx-tattva-years__tabs
{
    display: grid;
    grid-template-columns: repeat(5, 1fr);

    margin: 0 0 58px;

    border-top: 1px solid #ead3ce;
    border-bottom: 1px solid #ead3ce;
}


.vx-tattva-year-tab
{
    appearance: none;

    position: relative;

    min-height: 105px;
    padding: 22px 18px;

    border: 0;
    border-right: 1px solid #ead3ce;

    background: transparent;

    text-align: left;

    cursor: pointer;

    transition: background 0.2s ease;
}


.vx-tattva-year-tab:last-child
{
    border-right: 0;
}


.vx-tattva-year-tab:hover,
.vx-tattva-year-tab.is-active
{
    background: #faf5f2;
}


.vx-tattva-year-tab.is-active::after
{
    content: "";

    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;

    height: 3px;

    background: #d24b38;
}


.vx-tattva-year-tab__year
{
    display: block;

    margin-bottom: 8px;

    color: #d24b38;

    font-size: 1.4rem;
    font-weight: 600;
}


.vx-tattva-year-tab__label
{
    display: block;

    color: #1f2d3d;

    font-size: 1.35rem;
    line-height: 1.4;
}


/* selected year introduction */

.vx-tattva-year-panel__intro
{
    display: grid;
    grid-template-columns: 100px minmax(200px, 0.65fr) minmax(0, 1.35fr);

    gap: 35px;

    align-items: start;

    max-width: 700px;

    margin: 0 0 38px;
}


.vx-tattva-year-panel__intro > span
{
    display: block;
    margin-bottom: 12px;

    color: #d24b38;

    font-size: 1.55rem;
    font-weight: 600;
    letter-spacing: 0.08em;
}


.vx-tattva-year-panel__intro h3
{
    margin: 0 0 12px;
    color: #1f2d3d;
    font-size: 1.65rem;
    font-weight: 500;
    line-height: 1.35;
}


.vx-tattva-year-panel__intro p
{
	max-width: 680px;
    margin: 0;
    color: #555;
    font-size: 1.35rem;
    line-height: 1.8;
}


/* gallery */

.vx-tattva-gallery
{
    display: grid;
    grid-template-columns: repeat(12, 1fr);

    gap: 16px;
}


.vx-tattva-gallery__item
{
    grid-column: span 4;

    margin: 0;

    overflow: hidden;

    border-radius: 10px;

    background: #f3f0ec;
}


.vx-tattva-gallery__item:nth-child(5n + 1),
.vx-tattva-gallery__item:nth-child(5n + 4)
{
    grid-column: span 8;
}


.vx-tattva-gallery__item img
{
    display: block;

    width: 100%;
    height: 330px;

    object-fit: cover;

    transition: transform 0.45s ease;
}


.vx-tattva-gallery__item:nth-child(5n + 1) img,
.vx-tattva-gallery__item:nth-child(5n + 4) img
{
    height: 410px;
}


.vx-tattva-gallery__item:hover img
{
    transform: scale(1.025);
}


.vx-tattva-gallery__empty
{
    padding: 55px;

    border: 1px solid #ead3ce;

    color: #6a6a6a;

    text-align: center;
}


/* =========================================================
   ART & ARTISTS
========================================================= */

.vx-tattva-artists
{
    padding: 115px 0;

    background: #f8f4ee;
}


.vx-tattva-artists__grid
{
    display: grid;
    grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);

    gap: 100px;

    align-items: start;
}


.vx-tattva-artists__heading h2
{
    max-width: 440px;
    margin: 20px 0 0;

    color: #1f2d3d;

    font-size: 2.6rem;
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: 1.15;
}


.vx-tattva-artists__copy
{
    max-width: 700px;
}


.vx-tattva-artists__copy p
{
    margin: 0 0 22px;

    color: #50565c;

    font-size: 1.35
	rem;
    line-height: 1.85;
}


.vx-tattva-artists__statement
{
    margin-top: 38px !important;

    color: #1f2d3d !important;

    font-size: 1.35rem !important;
    line-height: 1.65 !important;
}


.vx-tattva-artists__statement strong
{
    color: #d24b38;
}


/* =========================================================
   MORE THAN AN EXHIBITION
========================================================= */

.vx-tattva-community
{
    padding: 120px 0;

    background: #fff;
}


.vx-tattva-community__inner
{
    max-width: 850px;
    margin: 0 auto;

    text-align: center;
}


.vx-tattva-community__inner h2
{
    margin: 20px 0 34px;

    color: #1f2d3d;

    font-size: 2.7rem;
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: 1.15;
}


.vx-tattva-community__inner > p
{
    max-width: 720px;
    margin: 0 auto 20px;

    color: #50565c;

    font-size: 1.35rem;
    line-height: 1.85;
}


.vx-tattva-community blockquote
{
    position: relative;

    max-width: 820px;

    margin: 55px auto 0;
    padding: 48px 50px;

    border: 0;
    border-top: 1px solid #e8c8c1;
    border-bottom: 1px solid #e8c8c1;

    color: #1f2d3d;

    font-size: 1.55rem;
    font-weight: 400;
    line-height: 1.65;
}


/* =========================================================
   PARTICIPATE / 2026
========================================================= */

.vx-tattva-participate
{
    padding: 105px 0;

    background: #1f2d3d;
}


.vx-tattva-participate__inner
{
    display: grid;
    grid-template-columns: minmax(300px, 1fr) minmax(0, 1fr);

    gap: 90px;

    align-items: center;
}


.vx-tattva-participate__edition > span
{
    display: inline-block;

    margin-bottom: 22px;

    color: #f1a091;

    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}


.vx-tattva-participate__edition h2
{
    max-width: 570px;
    margin: 0;

    color: #fff;

    font-size: 2.65rem;
    font-weight: 500;
    line-height: 1.3;
}


.vx-tattva-participate__copy
{
    padding-left: 55px;

    border-left: 1px solid rgba(255, 255, 255, 0.22);
}


.vx-tattva-participate__copy h3
{
    margin: 0 0 22px;

    color: #fff;

    font-size: 1.5rem;
    font-weight: 500;
}


.vx-tattva-participate__copy p
{
    margin: 0 0 17px;

    color: rgba(255, 255, 255, 0.78);

    font-size: 1.28rem;
    line-height: 1.8;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 991px)
{
    .vx-tattva-hero .container
    {
        grid-template-columns: 1fr;
        gap: 55px;
    }

    .vx-tattva-hero__statement
    {
        max-width: 650px;
    }


    .vx-tattva-about__grid,
    .vx-tattva-artists__grid
    {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .vx-tattva-about__heading
    {
        position: static;
    }


    .vx-tattva-process__grid
    {
        grid-template-columns: repeat(2, 1fr);
    }


    .vx-tattva-years__tabs
    {
        grid-template-columns: repeat(3, 1fr);
    }

    .vx-tattva-year-tab
    {
        border-bottom: 1px solid #ead3ce;
    }


    .vx-tattva-year-panel__intro
    {
        grid-template-columns: 80px 1fr;
    }

    .vx-tattva-year-panel__intro p
    {
        grid-column: 2;
    }


    .vx-tattva-gallery__item,
    .vx-tattva-gallery__item:nth-child(5n + 1),
    .vx-tattva-gallery__item:nth-child(5n + 4)
    {
        grid-column: span 6;
    }

    .vx-tattva-gallery__item img,
    .vx-tattva-gallery__item:nth-child(5n + 1) img,
    .vx-tattva-gallery__item:nth-child(5n + 4) img
    {
        height: 330px;
    }


    .vx-tattva-participate__inner
    {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .vx-tattva-participate__copy
    {
        padding: 35px 0 0;

        border-top: 1px solid rgba(255, 255, 255, 0.22);
        border-left: 0;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px)
{
    .vx-tattva-hero
    {
        padding: 72px 0 78px;
    }

    .vx-tattva-hero__content h1
    {
        margin-top: 18px;

        font-size: 3.2rem;
    }

    .vx-tattva-hero__lead
    {
        font-size: 1.08rem;
    }

    .vx-tattva-hero__statement
    {
        padding: 28px 0 28px 25px;
    }

    .vx-tattva-hero__statement p
    {
        font-size: 1.35rem;
    }


    .vx-tattva-about,
    .vx-tattva-process,
    .vx-tattva-years,
    .vx-tattva-artists,
    .vx-tattva-community,
    .vx-tattva-participate
    {
        padding-top: 78px;
        padding-bottom: 78px;
    }


    .vx-tattva-about__heading h2,
    .vx-tattva-artists__heading h2,
    .vx-tattva-community__inner h2
    {
        font-size: 2.1rem;
    }


    .vx-tattva-section-heading
    {
        margin-bottom: 38px;
    }

    .vx-tattva-section-heading h2
    {
        font-size: 2rem;
    }


    .vx-tattva-process__grid
    {
        grid-template-columns: 1fr;
    }

    .vx-tattva-step
    {
        min-height: 0;
    }


    .vx-tattva-years__tabs
    {
        display: flex;

        margin-right: -15px;
        margin-left: -15px;

        overflow-x: auto;

        border-left: 0;
        border-right: 0;
    }

    .vx-tattva-year-tab
    {
        flex: 0 0 155px;
    }


    .vx-tattva-year-panel__intro
    {
        display: block;

        margin-bottom: 35px;
    }

    .vx-tattva-year-panel__intro > span
    {
        display: block;

        margin-bottom: 12px;
    }

    .vx-tattva-year-panel__intro h3
    {
        margin-bottom: 15px;
    }


    .vx-tattva-gallery
    {
        display: block;
    }

    .vx-tattva-gallery__item
    {
        margin-bottom: 15px;
    }

    .vx-tattva-gallery__item img,
    .vx-tattva-gallery__item:nth-child(5n + 1) img,
    .vx-tattva-gallery__item:nth-child(5n + 4) img
    {
        height: auto;
        aspect-ratio: 4 / 3;
    }


    .vx-tattva-community blockquote
    {
        margin-top: 40px;
        padding: 35px 15px;

        font-size: 1.25rem;
    }


    .vx-tattva-participate__edition h2
    {
        font-size: 2rem;
    }
}

/* =========================================================
   TATTVA HERO — FINAL GRID OVERRIDE
========================================================= */

.vx-tattva-hero .container
{
    display: grid !important;

    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(360px, 0.85fr) !important;

    grid-template-areas: none !important;

    gap: 75px;

    align-items: center;
}


.vx-tattva-hero__visual
{
    grid-column: 1 !important;
    grid-row: 1 !important;

    width: 100%;
}


.vx-tattva-hero__content
{
    grid-area: auto !important;

    grid-column: 2 !important;
    grid-row: 1 !important;

    width: 100%;
    max-width: 560px;
}


.vx-tattva-hero__statement
{
    grid-area: auto !important;
}

.vx-tattva-about__heading h2
{
    max-width: 430px;

    margin: 22px 0 0;

    color: #1f2d3d;

    font-size: 2.6rem !important;
    font-weight: 500;

    letter-spacing: -0.025em;
    line-height: 1.15;
}

/* =====================================================
   STRIDES NEWSLETTER ARCHIVE
====================================================== */

.vx-newsletters
{
    padding: 96px 0 110px;
    background: #fff;
}


/* =====================================================
   INTRO
====================================================== */

.vx-newsletters__intro
{
    max-width: 820px;
    margin: 0 auto 58px;
    text-align: center;
}

.vx-newsletters__intro .vx-section-heading__eyebrow
{
    margin-bottom: 20px;
}

.vx-newsletters__intro h1
{
    margin: 0 0 24px;

    color: #1f2d3d;

    font-size: clamp(2.5rem, 4vw, 3.6rem);
    font-weight: 500;
    line-height: 1.15;
}

.vx-newsletters__intro p
{
    max-width: 760px;
    margin: 0 auto;

    color: #555;

    font-size: 1.45rem;
    line-height: 1.8;
}


/* =====================================================
   ARCHIVE CONTROLS
====================================================== */

.vx-newsletters__controls
{
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        190px;

    gap: 18px;

    max-width: 1120px;

    margin: 0 auto 48px;
    padding-bottom: 24px;

    border-bottom:
        1px solid rgba(31, 45, 61, 0.12);
}


.vx-newsletters__search input,
.vx-newsletters__year-filter select
{
    width: 100%;
    height: 48px;

    padding: 0 16px;

    border:
        1px solid rgba(31, 45, 61, 0.18);

    border-radius: 6px;

    background: #fff;

    color: #333;

    font-family: inherit;
    font-size: 1.45rem;

    outline: none;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}


.vx-newsletters__search input:focus,
.vx-newsletters__year-filter select:focus
{
    border-color: #d24b38;

    box-shadow:
        0 0 0 3px
        rgba(210, 75, 56, 0.08);
}


.vx-newsletters__search input::placeholder
{
    color: #888;
}


/* =====================================================
   NEWSLETTER GRID
====================================================== */

.vx-newsletters__grid
{
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 52px 30px;

    max-width: 1120px;

    margin: 0 auto;
}


/* =====================================================
   NEWSLETTER
====================================================== */

.vx-newsletter
{
    min-width: 0;
}


/* =====================================================
   COVER
====================================================== */

.vx-newsletter__cover
{
    display: flex;

    align-items: center;
    justify-content: center;

    width: 100%;

    aspect-ratio: 3 / 4;

    padding: 12px;

    overflow: hidden;

    border:
        1px solid rgba(31, 45, 61, 0.10);

    background: #f8f6f2;

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease;
}


a.vx-newsletter__cover:hover
{
    transform: translateY(-3px);

    border-color:
        rgba(210, 75, 56, 0.25);

    box-shadow:
        0 10px 28px
        rgba(31, 45, 61, 0.10);
}


.vx-newsletter__cover img
{
    display: block;

    width: 100%;
    height: 100%;

    object-fit: contain;
}


/* =====================================================
   NEWSLETTER CONTENT
====================================================== */

.vx-newsletter__content
{
    padding-top: 18px;
}


.vx-newsletter__date
{
    margin: 0 0 7px;

    color: #d24b38;

    font-size: 1.40rem;
    font-weight: 600;

    letter-spacing: 0.08em;
}


.vx-newsletter__content h2
{
    margin: 0 0 12px;

    color: #1f2d3d;

    font-size: 1.4rem;
    font-weight: 600;
    line-height: 1.45;
}


.vx-newsletter__content .vx-text-link
{
    font-size: 1.4rem;
}


/* =====================================================
   EMPTY RESULT
====================================================== */

.vx-newsletters__empty
{
    max-width: 600px;

    margin: 60px auto 0;

    text-align: center;
}


.vx-newsletters__empty h2
{
    margin: 0 0 10px;

    color: #1f2d3d;

    font-size: 1.35rem;
    font-weight: 600;
}


.vx-newsletters__empty p
{
    margin: 0;

    color: #666;

    font-size: 0.95rem;
    line-height: 1.7;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 1000px)
{
    .vx-newsletters__grid
    {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }
}


@media (max-width: 767px)
{
    .vx-newsletters
    {
        padding: 72px 0 80px;
    }

    .vx-newsletters__intro
    {
        margin-bottom: 46px;
    }

    .vx-newsletters__controls
    {
        grid-template-columns: 1fr;

        margin-bottom: 38px;
    }

    .vx-newsletters__grid
    {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 40px 20px;
    }
}


@media (max-width: 480px)
{
    .vx-newsletters
    {
        padding: 60px 0 68px;
    }

    .vx-newsletters__grid
    {
        grid-template-columns: 1fr;

        max-width: 320px;
    }
}

/* =====================================================
   TARANG CONCERT SERIES
====================================================== */


/* =====================================================
   INTRO
====================================================== */

.vx-tarang-intro
{
    padding: 96px 0 88px;
    background: #fff;
}


.vx-tarang-intro__heading
{
    max-width: 800px;

    margin: 0 auto 68px;

    text-align: center;
}


.vx-tarang-intro__heading .vx-section-heading__eyebrow
{
    margin-bottom: 20px;
}


.vx-tarang-intro__heading h1
{
    margin: 0 0 24px;

    color: #1f2d3d;

    font-size: clamp(2.5rem, 4vw, 3.6rem);
    font-weight: 500;
    line-height: 1.15;
}


.vx-tarang-intro__heading > p
{
    max-width: 680px;

    margin: 0 auto;

    color: #555;

    font-size: 1.48rem;
    line-height: 1.8;
}


/* =====================================================
   TARANG STORY
====================================================== */

.vx-tarang-story
{
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    max-width: 1060px;

    margin: 0 auto;

    border-top:
        1px solid rgba(210, 75, 56, 0.28);

    border-bottom:
        1px solid rgba(210, 75, 56, 0.28);
}


.vx-tarang-story__item
{
    position: relative;

    padding: 48px 52px 52px;
}


.vx-tarang-story__item + .vx-tarang-story__item
{
    border-left:
        1px solid rgba(210, 75, 56, 0.22);
}


.vx-tarang-story__year
{
    display: block;

    margin-bottom: 20px;

    color: #d24b38;

    font-size: 1.5rem;
    font-weight: 600;

    letter-spacing: 0.08em;
}


.vx-tarang-story__item h2
{
    margin: 0 0 18px;

    color: #1f2d3d;

    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1.35;
}


.vx-tarang-story__item p
{
    margin: 0;

    color: #555;

    font-size: 1.48rem;
    line-height: 1.8;
}


/* =====================================================
   ARCHIVE
====================================================== */

.vx-tarang-archive
{
    padding: 92px 0 110px;

    background: #f8f6f2;
}


.vx-tarang-archive__heading
{
    max-width: 800px;

    margin: 0 auto 52px;

    text-align: center;
}


.vx-tarang-archive__heading .vx-section-heading__eyebrow
{
    margin-bottom: 20px;
}


.vx-tarang-archive__heading h2
{
    margin: 0 0 20px;

    color: #1f2d3d;

    font-size: clamp(2rem, 3vw, 2.8rem);
    font-weight: 500;
    line-height: 1.2;
}


.vx-tarang-archive__heading p
{
    max-width: 650px;

    margin: 0 auto;

    color: #666;

    font-size: 1.48rem;
    line-height: 1.75;
}


/* =====================================================
   ARCHIVE CONTROLS
====================================================== */

.vx-tarang-archive__controls
{
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        190px;

    gap: 18px;

    max-width: 1120px;

    margin: 0 auto 42px;
    padding-bottom: 24px;

    border-bottom:
        1px solid rgba(31, 45, 61, 0.12);
}


.vx-tarang-archive__search input,
.vx-tarang-archive__year select
{
    width: 100%;
    height: 48px;

    padding: 0 16px;

    border:
        1px solid rgba(31, 45, 61, 0.18);

    border-radius: 6px;

    background: #fff;

    color: #333;

    font-family: inherit;
    font-size: 1.45rem;

    outline: none;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}


.vx-tarang-archive__search input:focus,
.vx-tarang-archive__year select:focus
{
    border-color: #d24b38;

    box-shadow:
        0 0 0 3px
        rgba(210, 75, 56, 0.08);
}


.vx-tarang-archive__search input::placeholder
{
    color: #888;
}


/* =====================================================
   CONCERT GRID
====================================================== */

.vx-tarang-grid
{
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 46px 30px;

    max-width: 1120px;

    margin: 0 auto;
}


/* =====================================================
   CONCERT CARD
====================================================== */

.vx-tarang-card
{
    min-width: 0;
}


.vx-tarang-card__image
{
    display: flex;

    align-items: center;
    justify-content: center;

    width: 100%;

    aspect-ratio: 4 / 3;

    overflow: hidden;

    border-radius: 10px;

    background: #eeeae3;
}


.vx-tarang-card__image img
{
    display: block;

    width: 100%;
    height: 100%;

    object-fit: contain;

    transition:
        transform 0.35s ease;
}


.vx-tarang-card:hover
.vx-tarang-card__image img
{
    transform: none;
}


/* =====================================================
   CONCERT DETAILS
====================================================== */

.vx-tarang-card__content
{
    padding-top: 18px;
}


.vx-tarang-card__content h3
{
    margin: 0 0 7px;

    color: #1f2d3d;

    font-size: 1.48rem;
    font-weight: 600;
    line-height: 1.4;
}


.vx-tarang-card__venue
{
    margin: 0 0 6px;

    color: #555;

    font-size: 1.38rem;
    line-height: 1.5;
}


.vx-tarang-card__date
{
    display: block;

    color: #d24b38;

    font-size: 1.38rem;
    font-weight: 600;

    letter-spacing: 0.035em;
}


/* =====================================================
   EMPTY RESULT
====================================================== */

.vx-tarang-empty
{
    max-width: 600px;

    margin: 60px auto 0;

    text-align: center;
}


.vx-tarang-empty h2
{
    margin: 0 0 10px;

    color: #1f2d3d;

    font-size: 1.35rem;
    font-weight: 600;
}


.vx-tarang-empty p
{
    margin: 0;

    color: #666;

    font-size: 0.95rem;
    line-height: 1.7;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 900px)
{
    .vx-tarang-story__item
    {
        padding:
            42px 36px
            46px;
    }

    .vx-tarang-grid
    {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}


@media (max-width: 767px)
{
    .vx-tarang-intro
    {
        padding: 72px 0 70px;
    }

    .vx-tarang-intro__heading
    {
        margin-bottom: 50px;
    }

    .vx-tarang-story
    {
        grid-template-columns: 1fr;
    }

    .vx-tarang-story__item
    {
        padding: 36px 28px 40px;
    }

    .vx-tarang-story__item
    + .vx-tarang-story__item
    {
        border-left: 0;

        border-top:
            1px solid
            rgba(210, 75, 56, 0.22);
    }

    .vx-tarang-archive
    {
        padding: 72px 0 80px;
    }

    .vx-tarang-archive__controls
    {
        grid-template-columns: 1fr;
    }
}


@media (max-width: 520px)
{
    .vx-tarang-grid
    {
        grid-template-columns: 1fr;
    }

    .vx-tarang-card
    {
        max-width: 420px;

        margin: 0 auto;
    }
}

/* =====================================================
   SUPPORT A LEARNER
====================================================== */


/* =====================================================
   INTRODUCTION
====================================================== */

.vx-support-intro
{
    padding: 100px 0 88px;
    background: #fff;
}


.vx-support-intro__heading
{
    max-width: 820px;
    margin: 0 auto 54px;

    text-align: center;
}


.vx-support-intro__heading
.vx-section-heading__eyebrow
{
    margin-bottom: 20px;
}


.vx-support-intro__heading h1
{
    margin: 0 0 24px;

    color: #1f2d3d;

    font-size: clamp(2.5rem, 4vw, 3.6rem);
    font-weight: 500;
    line-height: 1.15;
}


.vx-support-intro__heading p
{
    max-width: 680px;
    margin: 0 auto;

    color: #555;

    font-size: 1.45rem;
    line-height: 1.8;
}


.vx-support-intro__statement
{
    max-width: 900px;

    margin: 0 auto;
    padding: 36px 44px;

    border-top:
        1px solid rgba(210, 75, 56, 0.28);

    border-bottom:
        1px solid rgba(210, 75, 56, 0.28);

    text-align: center;
}


.vx-support-intro__statement p
{
    max-width: 760px;
    margin: 0 auto;

    color: #444;

    font-size: 1.45rem;
    line-height: 1.85;
}


/* =====================================================
   SECTION HEADING
====================================================== */

.vx-support-section-heading
{
    max-width: 780px;

    margin: 0 auto 58px;

    text-align: center;
}


.vx-support-section-heading
.vx-section-heading__eyebrow
{
    margin-bottom: 18px;
}


.vx-support-section-heading h2
{
    margin: 0 0 20px;

    color: #1f2d3d;

    font-size: clamp(2rem, 3vw, 2.8rem);
    font-weight: 500;
    line-height: 1.2;
}


.vx-support-section-heading p
{
    max-width: 650px;
    margin: 0 auto;

    color: #666;

    font-size: 1.45rem;
    line-height: 1.75;
}


/* =====================================================
   AREAS OF SUPPORT
====================================================== */

.vx-support-areas
{
    padding: 90px 0 100px;

    background: #f8f6f2;
}


.vx-support-areas__grid
{
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    max-width: 1080px;

    margin: 0 auto;

    border-top:
        1px solid rgba(210, 75, 56, 0.24);
}


.vx-support-area
{
    display: grid;

    grid-template-columns: 52px 1fr;

    gap: 18px;

    padding: 38px 36px 40px;

    border-bottom:
        1px solid rgba(210, 75, 56, 0.24);
}


.vx-support-area:nth-child(odd):not(
    .vx-support-area--wide
)
{
    border-right:
        1px solid rgba(210, 75, 56, 0.24);
}


.vx-support-area--wide
{
    grid-column: 1 / -1;

    max-width: 720px;
    width: 100%;

    margin: 0 auto;

    border-left:
        1px solid rgba(210, 75, 56, 0.24);

    border-right:
        1px solid rgba(210, 75, 56, 0.24);
}


.vx-support-area__number
{
    padding-top: 4px;

    color: #d24b38;

    font-size: 1.45rem;
    font-weight: 600;

    letter-spacing: 0.08em;
}


.vx-support-area__content h3
{
    margin: 0 0 13px;

    color: #1f2d3d;

    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.35;
}


.vx-support-area__content p
{
    margin: 0;

    color: #555;

    font-size: 1.45rem;
    line-height: 1.75;
}


/* =====================================================
   HOW SPONSORSHIP WORKS
====================================================== */

.vx-support-how
{
    padding: 100px 0;

    background: #fff;
}


.vx-support-how__layout
{
    display: grid;

    grid-template-columns:
        minmax(260px, 0.8fr)
        minmax(0, 1.35fr);

    gap: 80px;

    max-width: 1040px;

    margin: 0 auto;
}


.vx-support-how__heading
.vx-section-heading__eyebrow
{
    margin-bottom: 18px;
}


.vx-support-how__heading h2
{
    margin: 0;

    color: #1f2d3d;

    font-size: clamp(2rem, 3vw, 2.7rem);
    font-weight: 500;
    line-height: 1.2;
}


.vx-support-how__content
{
    padding-left: 42px;

    border-left:
        1px solid rgba(210, 75, 56, 0.30);
}


.vx-support-how__content p
{
    margin: 0 0 22px;

    color: #555;

    font-size: 1.45rem;
    line-height: 1.85;
}


.vx-support-how__content p:last-child
{
    margin-bottom: 0;
}


/* =====================================================
   IMPACT
====================================================== */

.vx-support-impact
{
    padding: 92px 0;

    background: #1f2d3d;
}


.vx-support-impact__inner
{
    max-width: 820px;

    margin: 0 auto;

    text-align: center;
}


.vx-support-impact__inner
.vx-section-heading__eyebrow
{
    margin-bottom: 20px;

    color: #f0a08f;
}


.vx-support-impact__inner h2
{
    max-width: 680px;

    margin: 0 auto 26px;

    color: #fff;

    font-size: clamp(2rem, 3vw, 2.8rem);
    font-weight: 500;
    line-height: 1.25;
}


.vx-support-impact__inner p
{
    max-width: 760px;

    margin: 0 auto;

    color: rgba(255, 255, 255, 0.82);

    font-size: 1.45rem;
    line-height: 1.85;
}


/* =====================================================
   CALL TO ACTION
====================================================== */

.vx-support-cta
{
    padding: 78px 0;

    background: #f8f6f2;
}


.vx-support-cta__inner
{
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 50px;

    max-width: 1060px;

    margin: 0 auto;
}


.vx-support-cta__content
{
    max-width: 650px;
}


.vx-support-cta__content
.vx-section-heading__eyebrow
{
    margin-bottom: 16px;
}


.vx-support-cta__content h2
{
    margin: 0 0 16px;

    color: #1f2d3d;

    font-size: clamp(1.8rem, 3vw, 2.45rem);
    font-weight: 500;
    line-height: 1.25;
}


.vx-support-cta__content p
{
    margin: 0;

    color: #555;

    font-size: 1.45rem;
    line-height: 1.75;
}


/* =====================================================
   CTA BUTTONS
====================================================== */

.vx-support-cta__actions
{
    display: flex;

    flex-shrink: 0;

    gap: 12px;
}


.vx-support-button
{
    display: inline-flex;

    align-items: center;
    justify-content: center;

    min-height: 46px;

    padding: 0 22px;

    border:
        1px solid #d24b38;

    border-radius: 5px;

    font-size: 1.45rem;
    font-weight: 600;

    text-decoration: none;

    transition:
        background-color 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease;
}


.vx-support-button--primary
{
    background: #d24b38;

    color: #fff;
}


.vx-support-button--primary:hover,
.vx-support-button--primary:focus
{
    background: #b94031;

    border-color: #b94031;

    color: #fff;
}


.vx-support-button--outline
{
    background: transparent;

    color: #d24b38;
}


.vx-support-button--outline:hover,
.vx-support-button--outline:focus
{
    background: #d24b38;

    color: #fff;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 900px)
{
    .vx-support-how__layout
    {
        gap: 48px;
    }

    .vx-support-cta__inner
    {
        align-items: flex-start;

        flex-direction: column;
    }
}


@media (max-width: 767px)
{
    .vx-support-intro
    {
        padding: 72px 0 68px;
    }

    .vx-support-intro__statement
    {
        padding: 30px 20px;
    }


    .vx-support-areas
    {
        padding: 72px 0 80px;
    }

    .vx-support-areas__grid
    {
        grid-template-columns: 1fr;
    }

    .vx-support-area
    {
        padding: 32px 24px 34px;

        border-right: 0 !important;
    }

    .vx-support-area--wide
    {
        grid-column: auto;

        max-width: none;

        margin: 0;

        border-left: 0;
        border-right: 0;
    }


    .vx-support-how
    {
        padding: 76px 0;
    }

    .vx-support-how__layout
    {
        grid-template-columns: 1fr;

        gap: 34px;
    }

    .vx-support-how__content
    {
        padding:
            28px 0 0;

        border-left: 0;

        border-top:
            1px solid
            rgba(210, 75, 56, 0.30);
    }


    .vx-support-impact
    {
        padding: 72px 0;
    }


    .vx-support-cta
    {
        padding: 66px 0;
    }

    .vx-support-cta__actions
    {
        flex-wrap: wrap;
    }
}


@media (max-width: 480px)
{
    .vx-support-area
    {
        grid-template-columns: 38px 1fr;

        gap: 10px;

        padding-left: 14px;
        padding-right: 14px;
    }

    .vx-support-cta__actions
    {
        width: 100%;
    }

    .vx-support-button
    {
        flex: 1;

        padding-left: 14px;
        padding-right: 14px;
    }
}

/* =========================================================
   RESOURCES — REPORT ARCHIVE
   Shared by Activity Reports and Annual Reports
========================================================= */


/* ---------------------------------------------------------
   RESOURCE HERO
--------------------------------------------------------- */

.vx-resource-hero
{
    padding: 95px 0 85px;

    background: #fff;
}


.vx-resource-hero__inner
{
    max-width: 780px;
    margin: 0 auto;

    text-align: center;
}


.vx-resource-hero__inner h1
{
    margin: 20px 0 22px;

    color: #1f2d3d;

    font-size: 3rem !important;
    font-weight: 500;

    letter-spacing: -0.025em;
    line-height: 1.15;
}


.vx-resource-hero__inner p
{
    max-width: 680px;
    margin: 0 auto;

    color: #5c6064;

    font-size: 1.45rem !important;
    line-height: 1.8;
}


/* ---------------------------------------------------------
   ARCHIVE
--------------------------------------------------------- */

.vx-report-archive
{
    padding: 90px 0 115px;

    background: #f8f4ee;
}


.vx-report-archive__intro
{
    max-width: 700px;
    margin: 0 auto 58px;

    text-align: center;
}


.vx-report-archive__intro h2
{
    margin: 18px 0 15px;

    color: #1f2d3d;

    font-size: 2.3rem !important;
    font-weight: 500;

    letter-spacing: -0.02em;
    line-height: 1.2;
}


.vx-report-archive__intro p
{
    margin: 0;

    color: #5c6064;

    font-size: 1.45rem !important;
    line-height: 1.7;
}


/* ---------------------------------------------------------
   REPORT GRID
--------------------------------------------------------- */

.vx-report-grid
{
    display: grid;

    grid-template-columns: repeat(4, minmax(0, 1fr));

    gap: 24px;
}


/* ---------------------------------------------------------
   REPORT
--------------------------------------------------------- */

.vx-report-card
{
    min-width: 0;
}

.vx-report-card__box
{
    display: flex;
    flex-direction: column;

    min-height: 220px;

    padding: 28px 28px 26px;

    border: 1px solid #e8c8c1;
    border-top: 3px solid #d24b38;

    background: #fff;

    text-decoration: none;

    transition:
        transform 0.22s ease,
        box-shadow 0.22s ease,
        border-color 0.22s ease;
}


.vx-report-card__box:hover,
.vx-report-card__box:focus
{
    transform: translateY(-3px);

    border-color: #d24b38;

    box-shadow:
        0 10px 26px
        rgba(31, 45, 61, 0.08);

    text-decoration: none;
}


.vx-report-card__type
{
    display: block;

    margin-bottom: 34px;

    color: #d24b38;

    font-size: 1.4rem !important;
    font-weight: 700;

    letter-spacing: 0.1em;
    text-transform: uppercase;
}


.vx-report-card__box h3
{
    margin: 0 0 30px;

    color: #1f2d3d;

    font-size: 2rem !important;
    font-weight: 500;

    letter-spacing: -0.02em;
    line-height: 1.1;
}


.vx-report-card__link
{
    display: inline-flex;

    gap: 8px;
    align-items: center;

    margin-top: auto;

    color: #d24b38;

    font-size: 1.3rem !important;
    font-weight: 600;

    transition: gap 0.2s ease;
}


.vx-report-card__box:hover .vx-report-card__link
{
    gap: 12px;
}


/* TABLET */

@media (max-width: 991px)
{
    .vx-report-grid
    {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }
}


/* SMALL TABLET */

@media (max-width: 767px)
{
    .vx-report-grid
    {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}


/* MOBILE */

@media (max-width: 480px)
{
    .vx-report-grid
    {
        grid-template-columns: 1fr;
    }

    .vx-report-card__box
    {
        min-height: 190px;
    }
}

/* =========================================================
   RESOURCES — TRUST DOCUMENTS
========================================================= */

.vx-document-archive
{
    padding: 90px 0 110px;

    background: #f8f4ee;
}


.vx-document-archive__intro
{
    max-width: 700px;
    margin: 0 auto 58px;

    text-align: center;
}


.vx-document-archive__intro h2
{
    margin: 18px 0 15px;

    color: #1f2d3d;

    font-size: 2.3rem !important;
    font-weight: 500;

    letter-spacing: -0.02em;
    line-height: 1.2;
}


.vx-document-archive__intro p
{
    margin: 0;

    color: #5c6064;

    font-size: 1.45rem !important;
    line-height: 1.7;
}


/* ---------------------------------------------------------
   DOCUMENT LIST
--------------------------------------------------------- */

.vx-document-list
{
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    border-top: 1px solid #e8c8c1;
    border-left: 1px solid #e8c8c1;
}


/* ---------------------------------------------------------
   DOCUMENT
--------------------------------------------------------- */

.vx-document-item
{
    display: flex;
    flex-direction: column;

    min-height: 220px;

    padding: 30px 32px;

    border-right: 1px solid #e8c8c1;
    border-bottom: 1px solid #e8c8c1;

    background: rgba(255, 255, 255, 0.45);

    transition:
        background 0.2s ease;
}


.vx-document-item:hover
{
    background: #fff;
}


.vx-document-item__type
{
    display: block;

    margin-bottom: 24px;

    color: #d24b38;

    font-size: 1.35rem !important;
    font-weight: 700;

    letter-spacing: 0.1em;
    text-transform: uppercase;
}


.vx-document-item h3
{
    margin: 0 0 12px;

    color: #1f2d3d;

    font-size: 1.40rem !important;
    font-weight: 600;

    line-height: 1.35;
}


.vx-document-item p
{
    max-width: 470px;

    margin: 0;

    color: #5c6064;

    font-size: 1.35rem !important;
    line-height: 1.7;
}


/* ---------------------------------------------------------
   DOCUMENT LINK
--------------------------------------------------------- */

.vx-document-item__link
{
    display: inline-flex;

    gap: 8px;
    align-items: center;

    align-self: flex-start;

    margin-top: auto;
    padding-top: 28px;

    color: #d24b38;

    font-size: 1.25rem !important;
    font-weight: 600;

    text-decoration: none;

    transition: gap 0.2s ease;
}


.vx-document-item__link:hover,
.vx-document-item__link:focus
{
    gap: 12px;

    color: #b83d2d;

    text-decoration: none;
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px)
{
    .vx-document-archive
    {
        padding: 70px 0 85px;
    }


    .vx-document-archive__intro
    {
        margin-bottom: 42px;
    }


    .vx-document-list
    {
        grid-template-columns: 1fr;
    }


    .vx-document-item
    {
        min-height: 190px;

        padding: 28px 26px;
    }
}

/* =========================================================
   CONTACT US
========================================================= */


/* ---------------------------------------------------------
   HERO
--------------------------------------------------------- */

.vx-contact-hero
{
    padding: 95px 0 85px;
    background: #fff;
}

.vx-contact-hero__inner
{
    max-width: 780px;
    margin: 0 auto;
    text-align: center;
}

.vx-contact-hero h1
{
    margin: 20px 0 22px;

    color: #1f2d3d;

    font-size: 3rem !important;
    font-weight: 500;
    letter-spacing: -0.025em;
    line-height: 1.15;
}

.vx-contact-hero p
{
    max-width: 680px;
    margin: 0 auto;

    color: #5c6064;

    font-size: 1.48rem !important;
    line-height: 1.8;
}


/* ---------------------------------------------------------
   PRIMARY CONTACT
--------------------------------------------------------- */

.vx-contact-primary
{
    padding: 85px 0 90px;
    background: #f8f4ee;
}

.vx-contact-primary__grid
{
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 90px;
}

.vx-contact-primary__intro h2
{
    margin: 18px 0 20px;

    color: #1f2d3d;

    font-size: 2.4rem !important;
    font-weight: 500;
    line-height: 1.2;
}

.vx-contact-primary__intro p
{
    max-width: 430px;

    color: #5c6064;

    font-size: 1.48rem !important;
    line-height: 1.8;
}

.vx-contact-primary__details
{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    border-top: 1px solid #e8c8c1;
    border-left: 1px solid #e8c8c1;
}

.vx-contact-primary__block
{
    min-height: 175px;
    padding: 25px 28px;

    border-right: 1px solid #e8c8c1;
    border-bottom: 1px solid #e8c8c1;

    background: rgba(255,255,255,.45);
}

.vx-contact-label
{
    display: block;
    margin-bottom: 17px;

    color: #d24b38;

    font-size: 1.48rem !important;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.vx-contact-primary__block a,
.vx-contact-primary__block address,
.vx-contact-primary__block p
{
    display: block;

    margin: 0 0 7px;

    color: #1f2d3d;

    font-size: 1.4rem !important;
    font-style: normal;
    line-height: 1.7;
}

.vx-contact-primary__block a:hover
{
    color: #d24b38;
}


/* ---------------------------------------------------------
   COMMON MAP LINK
--------------------------------------------------------- */

.vx-contact-map-link
{
    display: inline-flex !important;
    align-items: center;
    gap: 8px;

    margin-top: 13px !important;

    color: #d24b38 !important;

    font-size: 1.4rem !important;
    font-weight: 600;

    text-decoration: none;
}

.vx-contact-map-link:hover
{
    gap: 12px;
    text-decoration: none;
}


/* ---------------------------------------------------------
   LOCATIONS
--------------------------------------------------------- */

.vx-contact-locations
{
    padding: 95px 0 110px;
    background: #fff;
}

.vx-contact-locations__intro
{
    max-width: 700px;
    margin: 0 auto 70px;

    text-align: center;
}

.vx-contact-locations__intro h2
{
    margin: 18px 0 15px;

    color: #1f2d3d;

    font-size: 2.4rem !important;
    font-weight: 500;
    line-height: 1.2;
}

.vx-contact-locations__intro p
{
    color: #5c6064;

    font-size: 1.4rem !important;
    line-height: 1.75;
}


/* ---------------------------------------------------------
   REGION
--------------------------------------------------------- */

.vx-contact-region
{
    margin-bottom: 75px;
}

.vx-contact-region:last-child
{
    margin-bottom: 0;
}

.vx-contact-region__heading
{
    display: flex;
    align-items: baseline;
    justify-content: space-between;

    margin-bottom: 24px;
    padding-bottom: 14px;

    border-bottom: 1px solid #e8c8c1;
}

.vx-contact-region__heading h3
{
    margin: 0;

    color: #1f2d3d;

    font-size: 1.65rem !important;
    font-weight: 500;
}

.vx-contact-region__heading span
{
    color: #8b8b8b;

    font-size: 1.4rem !important;
}


/* ---------------------------------------------------------
   CENTRE GRID
--------------------------------------------------------- */

.vx-contact-grid
{
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 22px;
}

.vx-contact-card
{
    display: flex;
    flex-direction: column;

    min-height: 335px;
    padding: 30px 32px;

    border: 1px solid #ead5cf;

    background: #fdfbf8;
}

.vx-contact-card__place
{
    display: block;

    margin-bottom: 14px;

    color: #d24b38;

    font-size: 1.4rem !important;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.vx-contact-card h4
{
    margin: 0 0 9px;

    color: #1f2d3d;

    font-size: 1.35rem !important;
    font-weight: 600;
    line-height: 1.35;
}

.vx-contact-card__partner
{
    min-height: 42px;
    margin: 0 0 22px;

    color: #7a6e69;

    font-size: 1.35rem !important;
    font-style: italic;
    line-height: 1.55;
}

.vx-contact-card address
{
    margin: 0;

    color: #5c6064;

    font-size: 1.35rem !important;
    font-style: normal;
    line-height: 1.7;
}

.vx-contact-card__footer
{
    margin-top: auto;
    padding-top: 26px;
}

.vx-contact-card__phones span
{
    display: block;

    color: #1f2d3d;

    font-size: 1.35rem !important;
    line-height: 1.65;
}

.vx-contact-card__footer a
{
    display: inline-flex;
    align-items: center;
    gap: 8px;

    margin-top: 13px;

    color: #d24b38;

    font-size: 1.25rem !important;
    font-weight: 600;

    text-decoration: none;

    transition: gap .2s ease;
}

.vx-contact-card__footer a:hover
{
    gap: 12px;
    text-decoration: none;
}


/* ---------------------------------------------------------
   ASSOCIATED CENTRE
--------------------------------------------------------- */

.vx-contact-associated
{
    padding: 80px 0;
    background: #f8f4ee;
}

.vx-contact-associated__grid,
.vx-contact-usa__grid
{
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 90px;

    align-items: start;
}

.vx-contact-associated h2,
.vx-contact-usa h2
{
    margin: 18px 0 15px;

    color: #1f2d3d;

    font-size: 2rem !important;
    font-weight: 500;
    line-height: 1.25;
}

.vx-contact-associated__relationship
{
    max-width: 470px;

    color: #5c6064;

    font-size: 1.48rem !important;
    line-height: 1.7;
}

.vx-contact-associated__details,
.vx-contact-usa__details
{
    padding-left: 32px;

    border-left: 3px solid #d24b38;
}

.vx-contact-associated__details address,
.vx-contact-associated__details p,
.vx-contact-usa__details address,
.vx-contact-usa__details p
{
    margin: 0 0 13px;

    color: #1f2d3d;

    font-size: 1.45rem !important;
    font-style: normal;
    line-height: 1.7;
}


/* ---------------------------------------------------------
   USA
--------------------------------------------------------- */

.vx-contact-usa
{
    padding: 80px 0 95px;
    background: #fff;
}

.vx-contact-usa__details a:not(.vx-contact-map-link)
{
    color: #1f2d3d;
}

.vx-contact-usa__details a:hover
{
    color: #d24b38;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 991px)
{
    .vx-contact-primary__grid
    {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .vx-contact-card
    {
        min-height: 350px;
    }
}


@media (max-width: 767px)
{
    .vx-contact-hero
    {
        padding: 70px 0 65px;
    }

    .vx-contact-hero h1
    {
        font-size: 2.4rem !important;
    }

    .vx-contact-primary,
    .vx-contact-locations
    {
        padding: 70px 0 80px;
    }

    .vx-contact-primary__details,
    .vx-contact-grid
    {
        grid-template-columns: 1fr;
    }

    .vx-contact-card
    {
        min-height: 0;
    }

    .vx-contact-card__partner
    {
        min-height: 0;
    }

    .vx-contact-associated__grid,
    .vx-contact-usa__grid
    {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .vx-contact-associated__details,
    .vx-contact-usa__details
    {
        padding-left: 22px;
    }
}


@media (max-width: 480px)
{
    .vx-contact-primary__details
    {
        grid-template-columns: 1fr;
    }

    .vx-contact-primary__block,
    .vx-contact-card
    {
        padding: 25px 24px;
    }
}

/* =========================================================
   CONTACT — ENQUIRY FORM
========================================================= */

.vx-contact-enquiry
{
    padding: 95px 0 105px;

    background: #fff;
}


.vx-contact-enquiry__grid
{
    display: grid;

    grid-template-columns:
        minmax(280px, 0.75fr)
        minmax(0, 1.25fr);

    gap: 90px;

    align-items: start;
}


/* ---------------------------------------------------------
   INTRO
--------------------------------------------------------- */

.vx-contact-enquiry__intro
{
    max-width: 430px;
}


.vx-contact-enquiry__intro h2
{
    margin: 18px 0 20px;

    color: #1f2d3d;

    font-size: 2.4rem !important;
    font-weight: 500;

    letter-spacing: -0.02em;
    line-height: 1.2;
}


.vx-contact-enquiry__intro p
{
    margin: 0 0 18px;

    color: #5c6064;

    font-size: 1.45rem !important;
    line-height: 1.8;
}


.vx-contact-enquiry__note
{
    margin-top: 30px !important;

    padding-top: 24px;

    border-top: 1px solid #e8c8c1;
}


.vx-contact-enquiry__note a
{
    color: #d24b38;

    font-weight: 600;
}


/* ---------------------------------------------------------
   FORM
--------------------------------------------------------- */

.vx-contact-enquiry__form-wrap
{
    max-width: 720px;
}


.vx-contact-form
{
    width: 100%;
}


.vx-contact-form__row
{
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 22px;
}


.vx-contact-form__field
{
    margin-bottom: 24px;
}


.vx-contact-form__field label
{
    display: block;

    margin: 0 0 9px;

    color: #1f2d3d;

    font-size: 1.4rem !important;
    font-weight: 600;
}


.vx-contact-form__field label > span:not(
    .vx-contact-form__optional
)
{
    color: #d24b38;
}


.vx-contact-form__optional
{
    margin-left: 6px;

    color: #8b8b8b;

    font-size: 1.2rem;
    font-weight: 400;
}


.vx-contact-form input,
.vx-contact-form select,
.vx-contact-form textarea
{
    display: block;

    width: 100%;

    border: 1px solid #dcd4cf;
    border-radius: 0;

    background: #fdfbf8;

    color: #1f2d3d;

    font-family: inherit;
    font-size: 1.4rem !important;

    outline: none;

    transition:
        border-color 0.2s ease,
        background 0.2s ease;
}


.vx-contact-form input,
.vx-contact-form select
{
    height: 50px;

    padding: 0 14px;
}


.vx-contact-form textarea
{
    min-height: 155px;

    padding: 14px;

    line-height: 1.6;

    resize: vertical;
}


.vx-contact-form input:focus,
.vx-contact-form select:focus,
.vx-contact-form textarea:focus
{
    border-color: #d24b38;

    background: #fff;
}


/* ---------------------------------------------------------
   SUBMIT
--------------------------------------------------------- */

.vx-contact-form__submit
{
    display: inline-flex;

    align-items: center;

    gap: 10px;

    padding: 13px 22px;

    border: 1px solid #d24b38;

    background: #d24b38;

    color: #fff;

    font-family: inherit;
    font-size: 1.35rem !important;
    font-weight: 600;

    cursor: pointer;

    transition:
        background 0.2s ease,
        color 0.2s ease,
        gap 0.2s ease;
}


.vx-contact-form__submit:hover,
.vx-contact-form__submit:focus
{
    gap: 14px;

    background: #fff;

    color: #d24b38;
}


/* ---------------------------------------------------------
   STATUS MESSAGES
--------------------------------------------------------- */

.vx-contact-message
{
    margin: 0 0 28px;

    padding: 20px 22px;

    border-left: 3px solid;

    font-size: 0.92rem;
    line-height: 1.65;
}


.vx-contact-message strong
{
    display: block;

    margin-bottom: 5px;

    color: #1f2d3d;
}


.vx-contact-message p
{
    margin: 0;
}


.vx-contact-message ul
{
    margin: 8px 0 0;
    padding-left: 20px;
}


.vx-contact-message--success
{
    border-color: #4f7b5d;

    background: #f3f8f4;

    color: #405c49;
}


.vx-contact-message--error
{
    border-color: #d24b38;

    background: #faf3f1;

    color: #69433d;
}


/* ---------------------------------------------------------
   HONEYPOT
--------------------------------------------------------- */

.vx-contact-form__honeypot
{
    position: absolute !important;

    left: -10000px !important;

    width: 1px !important;
    height: 1px !important;

    overflow: hidden !important;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 991px)
{
    .vx-contact-enquiry__grid
    {
        grid-template-columns: 1fr;

        gap: 45px;
    }


    .vx-contact-enquiry__intro
    {
        max-width: 650px;
    }


    .vx-contact-enquiry__form-wrap
    {
        max-width: none;
    }
}


@media (max-width: 767px)
{
    .vx-contact-enquiry
    {
        padding: 70px 0 80px;
    }


    .vx-contact-enquiry__intro h2
    {
        font-size: 2rem !important;
    }


    .vx-contact-form__row
    {
        grid-template-columns: 1fr;

        gap: 0;
    }
}

/* =====================================================
   DONATIONS
====================================================== */


/* =====================================================
   INTRO
====================================================== */

.vx-donate-intro
{
    padding: 90px 0 65px;
    background: #fff;
}


.vx-donate-intro__heading
{
    max-width: 820px;
    margin: 0 auto 40px;

    text-align: center;
}


.vx-donate-intro__heading
.vx-section-heading__eyebrow
{
    margin-bottom: 20px;
}


.vx-donate-intro__heading h1
{
    margin: 0 0 24px;

    color: #1f2d3d;

    font-size: clamp(2.5rem, 4vw, 3.6rem);
    font-weight: 500;
    line-height: 1.15;
}


.vx-donate-intro__heading p
{
    max-width: 720px;
    margin: 0 auto;

    color: #555;

    font-size: 1.5rem;
    line-height: 1.8;
}


.vx-donate-intro__note
{
    max-width: 900px;

    margin: 0 auto;
    padding: 34px 44px;

    border-top:
        1px solid rgba(210, 75, 56, 0.28);

    border-bottom:
        1px solid rgba(210, 75, 56, 0.28);

    text-align: center;
}


.vx-donate-intro__note p
{
    max-width: 760px;

    margin: 0 auto;

    color: #444;

    font-size: 1.5rem;
    line-height: 1.8;
}


/* =====================================================
   SECTION HEADING
====================================================== */

.vx-donate-section-heading
{
    max-width: 760px;

    margin: 0 auto 56px;

    text-align: center;
}


.vx-donate-section-heading
.vx-section-heading__eyebrow
{
    margin-bottom: 18px;
}


.vx-donate-section-heading h2
{
    margin: 0;

    color: #1f2d3d;

    font-size: clamp(2rem, 3vw, 2.8rem);
    font-weight: 500;
    line-height: 1.2;
}


/* =====================================================
   OPTIONS
====================================================== */

.vx-donate-options
{
    padding: 90px 0 104px;

    background: #f8f6f2;
}


.vx-donate-options__grid
{
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    max-width: 1080px;

    margin: 0 auto;

    border-top:
        1px solid rgba(210, 75, 56, 0.25);

    border-bottom:
        1px solid rgba(210, 75, 56, 0.25);
}


.vx-donate-option
{
    padding: 48px 52px 52px;
}


.vx-donate-option
+ .vx-donate-option
{
    border-left:
        1px solid rgba(210, 75, 56, 0.25);
}


.vx-donate-option__eyebrow
{
    display: block;

    margin-bottom: 18px;

    color: #d24b38;

    font-size: 1.45rem;
    font-weight: 600;

    letter-spacing: 0.08em;
    text-transform: uppercase;
}


.vx-donate-option > h3
{
    margin: 0 0 18px;

    color: #1f2d3d;

    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.35;
}


.vx-donate-option > p
{
    margin: 0 0 28px;

    color: #555;

    font-size: 1.35rem;
    line-height: 1.75;
}


/* =====================================================
   BUTTONS
====================================================== */

.vx-donate-cta
{
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 10px;

    min-height: 48px;

    padding: 0 22px;

    border: 1px solid #d24b38;
    border-radius: 5px;

    font-family: inherit;

    font-size: 1.4rem;
    font-weight: 600;

    cursor: pointer;

    text-decoration: none;

    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease;
}


.vx-donate-cta--primary
{
    background: #d24b38;

    color: #fff;
}


.vx-donate-cta--primary:hover,
.vx-donate-cta--primary:focus
{
    background: #b94031;

    border-color: #b94031;

    color: #fff;
}


.vx-donate-cta--outline
{
    background: transparent;

    color: #d24b38;
}


.vx-donate-cta--outline:hover,
.vx-donate-cta--outline:focus
{
    background: #d24b38;

    color: #fff;
}


/* =====================================================
   SECONDARY DETAILS
====================================================== */

.vx-donate-option__secondary,
.vx-donate-method
{
    margin-top: 36px;
    padding-top: 30px;

    border-top:
        1px solid rgba(31, 45, 61, 0.12);
}


.vx-donate-option__secondary h4,
.vx-donate-method h4
{
    margin: 0 0 12px;

    color: #1f2d3d;

    font-size: 1.35rem;
    font-weight: 600;
}


.vx-donate-option__secondary p,
.vx-donate-method p
{
    margin: 0 0 18px;

    color: #555;

    font-size: 1.35rem;
    line-height: 1.75;
}


.vx-donate-option__secondary a
{
    color: #d24b38;

    font-weight: 600;
}


.vx-donate-option__small
{
    color: #666 !important;

    font-size: 1.3rem !important;
}


.vx-donate-paypal
{
    margin: 0;
}


.vx-donate-option__footnote
{
    margin: 36px 0 0 !important;

    padding-top: 24px;

    border-top:
        1px solid rgba(31, 45, 61, 0.12);

    color: #777 !important;

    font-size: 1.2rem !important;
}


/* =====================================================
   HELP
====================================================== */

.vx-donate-help
{
    padding: 82px 0;

    background: #fff;
}


.vx-donate-help__inner
{
    display: grid;

    grid-template-columns:
        minmax(0, 1.4fr)
        minmax(240px, 0.6fr);

    gap: 70px;

    align-items: center;

    max-width: 1000px;

    margin: 0 auto;
}


.vx-donate-help__content
.vx-section-heading__eyebrow
{
    margin-bottom: 16px;
}


.vx-donate-help__content h2
{
    margin: 0 0 15px;

    color: #1f2d3d;

    font-size: 2rem;
    font-weight: 500;
}


.vx-donate-help__content p
{
    max-width: 620px;

    margin: 0;

    color: #555;

    font-size: 1.45rem;
    line-height: 1.75;
}


.vx-donate-help__contact
{
    padding-left: 36px;

    border-left:
        1px solid rgba(210, 75, 56, 0.30);
}


.vx-donate-help__contact span
{
    display: block;

    margin-bottom: 9px;

    color: #777;

    font-size: 1.45rem;
    font-weight: 600;

    letter-spacing: 0.06em;
    text-transform: uppercase;
}


.vx-donate-help__contact a
{
    color: #d24b38;

    font-size: 1.45rem;
    font-weight: 600;
}


/* =====================================================
   PRIVACY
====================================================== */

.vx-donate-privacy
{
    padding: 28px 0;

    background: #f8f6f2;

    text-align: center;
}


.vx-donate-privacy p
{
    margin: 0;

    color: #777;

    font-size: 1.25rem;
    line-height: 1.6;
}


.vx-donate-privacy a
{
    color: #d24b38;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 800px)
{
    .vx-donate-options__grid
    {
        grid-template-columns: 1fr;
    }

    .vx-donate-option
    + .vx-donate-option
    {
        border-left: 0;

        border-top:
            1px solid rgba(210, 75, 56, 0.25);
    }

    .vx-donate-help__inner
    {
        grid-template-columns: 1fr;

        gap: 34px;
    }

    .vx-donate-help__contact
    {
        padding:
            28px 0 0;

        border-left: 0;

        border-top:
            1px solid rgba(210, 75, 56, 0.30);
    }
}


@media (max-width: 600px)
{
    .vx-donate-intro
    {
        padding: 72px 0 68px;
    }

    .vx-donate-intro__note
    {
        padding: 30px 20px;
    }

    .vx-donate-options
    {
        padding: 72px 0 80px;
    }

    .vx-donate-option
    {
        padding: 36px 24px 40px;
    }

    .vx-donate-button
    {
        width: 100%;
    }
}

/* =====================================================
   STRIDES SUBSCRIPTION
====================================================== */

.vx-subscribe
{
    padding: 100px 0 110px;
    background: #fff;
}


.vx-subscribe__inner
{
    max-width: 760px;

    margin: 0 auto;

    text-align: center;
}


.vx-subscribe__inner
.vx-section-heading__eyebrow
{
    margin-bottom: 24px;
}


.vx-subscribe__icon
{
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 56px;
    height: 56px;

    margin-bottom: 24px;

    border:
        1px solid rgba(210, 75, 56, 0.35);

    border-radius: 50%;

    color: #d24b38;

    font-size: 1.15rem;
}


.vx-subscribe__icon--error
{
    color: #9d3528;
}


.vx-subscribe__inner h1
{
    margin: 0 0 22px;

    color: #1f2d3d;

    font-size: clamp(2.3rem, 4vw, 3.3rem);
    font-weight: 500;
    line-height: 1.2;
}


.vx-subscribe__inner > p
{
    max-width: 650px;

    margin: 0 auto 18px;

    color: #555;

    font-size: 1.45rem;
    line-height: 1.8;
}


.vx-subscribe__lead
{
    font-size: 1.45rem !important;
}


.vx-subscribe__lead strong
{
    color: #1f2d3d;
    font-weight: 600;
}


/* =====================================================
   ACTIONS
====================================================== */

.vx-subscribe__actions
{
    display: flex;

    justify-content: center;

    flex-wrap: wrap;

    gap: 12px;

    margin-top: 36px;
}


.vx-subscribe__button
{
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 10px;

    min-height: 46px;

    padding: 0 22px;

    border: 1px solid #d24b38;
    border-radius: 5px;

    font-size: 1.35rem;
    font-weight: 600;

    text-decoration: none;

    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease;
}


.vx-subscribe__button--primary
{
    background: #d24b38;

    color: #fff;
}


.vx-subscribe__button--primary:hover,
.vx-subscribe__button--primary:focus
{
    background: #b94031;

    border-color: #b94031;

    color: #fff;
}


.vx-subscribe__button--outline
{
    background: transparent;

    color: #d24b38;
}


.vx-subscribe__button--outline:hover,
.vx-subscribe__button--outline:focus
{
    background: #d24b38;

    color: #fff;
}


/* =====================================================
   DIRECT SUBSCRIPTION FORM
====================================================== */

.vx-subscribe__form
{
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        auto;

    gap: 10px;

    max-width: 560px;

    margin: 34px auto 0;
}


.vx-subscribe__form input
{
    min-width: 0;
    height: 48px;

    padding: 0 15px;

    border:
        1px solid rgba(31, 45, 61, 0.18);

    border-radius: 5px;

    background: #fff;

    color: #333;

    font-family: inherit;
    font-size: 1.45rem;

    outline: none;
}


.vx-subscribe__form input:focus
{
    border-color: #d24b38;

    box-shadow:
        0 0 0 3px
        rgba(210, 75, 56, 0.08);
}


.vx-subscribe__form button
{
    min-height: 48px;

    padding: 0 22px;

    border: 1px solid #d24b38;
    border-radius: 5px;

    background: #d24b38;

    color: #fff;

    font-family: inherit;
    font-size: 1.35rem;
    font-weight: 600;

    cursor: pointer;
}


.vx-subscribe__form button:hover,
.vx-subscribe__form button:focus
{
    background: #b94031;

    border-color: #b94031;
}


/* =====================================================
   RESPONSIVE
====================================================== */

@media (max-width: 600px)
{
    .vx-subscribe
    {
        padding: 72px 0 80px;
    }

    .vx-subscribe__form
    {
        grid-template-columns: 1fr;
    }

    .vx-subscribe__actions
    {
        flex-direction: column;

        max-width: 280px;

        margin-left: auto;
        margin-right: auto;
    }

    .vx-subscribe__button
    {
        width: 100%;
    }
}

/* ==========================================================================
   PROGRAMMES LANDING PAGE
   ========================================================================== */


/* --------------------------------------------------------------------------
   HERO
   -------------------------------------------------------------------------- */

.vx-programmes-hero
{
    padding: 110px 0 100px;

    background: #f6f2eb;
}


.vx-programmes-hero__inner
{
    max-width: 820px;
}


.vx-programmes-hero__inner
.vx-section-heading__eyebrow
{
    display: inline-block;
	margin-bottom: 22px;
}


.vx-programmes-hero__inner h1
{
    max-width: 760px;

    margin: 0 0 28px;

    color: #1f2d3d;

    font-size: clamp(2.8rem, 5vw, 4.6rem);
    font-weight: 500;
    line-height: 1.08;

    letter-spacing: -0.025em;
}


.vx-programmes-hero__inner p
{
    max-width: 720px;

    margin: 0;

    color: #555;

    font-size: 1.4rem;
    line-height: 1.85;
}


/* --------------------------------------------------------------------------
   PROGRAMME SPECTRUM
   -------------------------------------------------------------------------- */

.vx-programmes-spectrum
{
    padding: 100px 0 110px;

    background: #fff;
}


.vx-programmes-spectrum__heading
{
    max-width: 700px;

    margin-bottom: 52px;
}


.vx-programmes-spectrum__heading
.vx-section-heading__eyebrow
{
    display: inline-block;
    margin-bottom: 16px;
}


.vx-programmes-spectrum__heading h2
{
    margin: 0;

    color: #1f2d3d;

    font-size: clamp(2rem, 3.5vw, 3rem);
    font-weight: 500;
    line-height: 1.2;

    letter-spacing: -0.015em;
}


/* --------------------------------------------------------------------------
   GRID
   -------------------------------------------------------------------------- */

.vx-programmes-grid
{
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 28px;
}


/* --------------------------------------------------------------------------
   PROGRAMME CARD
   -------------------------------------------------------------------------- */

.vx-programme-card
{
    min-width: 0;

    overflow: hidden;

    border:
        1px solid rgba(31, 45, 61, 0.10);

    border-radius: 8px;

    background: #fff;

    box-shadow:
        0 4px 14px
        rgba(0, 0, 0, 0.045);

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}


.vx-programme-card:hover
{
    transform: translateY(-4px);

    box-shadow:
        0 12px 28px
        rgba(0, 0, 0, 0.09);
}


.vx-programme-card__link
{
    display: flex;

    flex-direction: column;

    height: 100%;

    color: inherit;

    text-decoration: none;
}


.vx-programme-card__link:hover,
.vx-programme-card__link:focus
{
    color: inherit;

    text-decoration: none;
}


/* --------------------------------------------------------------------------
   CARD IMAGE
   -------------------------------------------------------------------------- */

.vx-programme-card__image
{
    position: relative;

    aspect-ratio: 4 / 3;

    overflow: hidden;

    background: #eee;
}


.vx-programme-card__image img
{
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform 0.45s ease;
}


.vx-programme-card:hover
.vx-programme-card__image img
{
    transform: scale(1.035);
}


/* --------------------------------------------------------------------------
   CARD CONTENT
   -------------------------------------------------------------------------- */

.vx-programme-card__content
{
    display: flex;

    flex: 1;

    flex-direction: column;

    padding: 25px 24px 24px;
}


.vx-programme-card__content h3
{
    margin: 0 0 13px;

    color: #1f2d3d;

    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.35;
}


.vx-programme-card__content p
{
    margin: 0 0 24px;

    color: #666;

    font-size: 1.35rem;
    line-height: 1.7;
}


.vx-programme-card__cta
{
    display: inline-flex;

    align-items: center;

    gap: 8px;

    margin-top: auto;

    color: #d24b38;

    font-size: 1.3rem;
    font-weight: 600;

    letter-spacing: 0.01em;
}


.vx-programme-card__cta span
{
    transition:
        transform 0.2s ease;
}


.vx-programme-card:hover
.vx-programme-card__cta span
{
    transform: translateX(4px);
}


/* --------------------------------------------------------------------------
   RESPONSIVE
   -------------------------------------------------------------------------- */

@media (max-width: 1199px)
{
    .vx-programmes-grid
    {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}


@media (max-width: 767px)
{
    .vx-programmes-hero
    {
        padding: 75px 0 70px;
    }


    .vx-programmes-spectrum
    {
        padding: 75px 0 80px;
    }


    .vx-programmes-spectrum__heading
    {
        margin-bottom: 38px;
    }


    .vx-programmes-grid
    {
        grid-template-columns: 1fr;

        gap: 22px;
    }


    .vx-programme-card__content
    {
        padding: 22px 21px 22px;
    }
}

/* ==========================================================================
   PROGRAMMES — CONTINUUM
   ========================================================================== */

.vx-programmes-continuum
{
    padding: 105px 0;

    background: #f6f2eb;
}


.vx-programmes-continuum__inner
{
    max-width: 760px;

    margin: 0 auto;

    text-align: center;
}


.vx-programmes-continuum__inner
.vx-section-heading__eyebrow
{
    display: inline-block;

    margin-bottom: 22px;
}


.vx-programmes-continuum__inner h2
{
    margin: 0 0 24px;

    color: #1f2d3d;

    font-size: clamp(2rem, 3.5vw, 3rem);
    font-weight: 500;
    line-height: 1.2;

    letter-spacing: -0.015em;
}


.vx-programmes-continuum__inner p
{
    max-width: 690px;

    margin: 0 auto;

    color: #555;

    font-size: 1.45rem;
    line-height: 1.85;
}


/* ==========================================================================
   PROGRAMMES — HELP / CTA
   ========================================================================== */

.vx-programmes-help
{
    padding: 90px 0;

    background: #fff;
}


.vx-programmes-help__inner
{
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        auto;

    gap: 60px;

    align-items: center;

    padding: 52px 56px;

    border:
        1px solid rgba(210, 75, 56, 0.22);

    border-radius: 8px;
}


.vx-programmes-help__content
{
    max-width: 680px;
}


.vx-programmes-help__content
.vx-section-heading__eyebrow
{
    display: inline-block;

    margin-bottom: 18px;
}


.vx-programmes-help__content h2
{
    margin: 0 0 18px;

    color: #1f2d3d;

    font-size: clamp(1.8rem, 3vw, 2.5rem);
    font-weight: 500;
    line-height: 1.25;

    letter-spacing: -0.015em;
}


.vx-programmes-help__content p
{
    max-width: 620px;

    margin: 0;

    color: #555;

    font-size: 1.45rem;
    line-height: 1.8;
}


/* --------------------------------------------------------------------------
   CTA BUTTON
   -------------------------------------------------------------------------- */

.vx-programmes-help__button
{
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 12px;

    min-height: 48px;

    padding: 0 24px;

    border: 1px solid #d24b38;
    border-radius: 5px;

    background: #d24b38;

    color: #fff;

    font-size: 1.45rem;
    font-weight: 600;

    white-space: nowrap;

    text-decoration: none;

    transition:
        background-color 0.2s ease,
        border-color 0.2s ease;
}


.vx-programmes-help__button:hover,
.vx-programmes-help__button:focus
{
    background: #b94031;

    border-color: #b94031;

    color: #fff;

    text-decoration: none;
}


.vx-programmes-help__button span
{
    transition: transform 0.2s ease;
}


.vx-programmes-help__button:hover span
{
    transform: translateX(4px);
}


/* --------------------------------------------------------------------------
   RESPONSIVE
   -------------------------------------------------------------------------- */

@media (max-width: 767px)
{
    .vx-programmes-continuum
    {
        padding: 75px 0;
    }


    .vx-programmes-help
    {
        padding: 70px 0;
    }


    .vx-programmes-help__inner
    {
        grid-template-columns: 1fr;

        gap: 30px;

        padding: 36px 28px;
    }


    .vx-programmes-help__action
    {
        justify-self: start;
    }
}