/**
 * InspireX - Main stylesheet
 * All colors, spacing, and tokens live in :root. No direct values below.
 */

@import url("https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap");

/* -------------------------------------------------------------------------
   DESIGN TOKENS – single source of truth for colors, spacing, breakpoints
   ------------------------------------------------------------------------- */
:root {
    /* Colors */
    --color-primary: #ffffff;
    --color-background: #0B0B0B;
    --color-background-solid: #0B0B0B;
    --color-accent: #73F764;
    --color-accent-hover: #73F764;
    --color-border: #9ca3af;
    --color-text-muted: #fbfbfb;
    --color-nav-muted: #d1d5db;
    --color-transparent: transparent;

    /* Spacing */
    --space-page-x: 1.5rem;
    --space-page-x-md: 3rem;
    --space-nav-y: 1.5rem;
    --space-section-y: 3rem;
    --space-section-y-md: 4rem;
    --space-stack-xs: 0.25rem;
    --space-stack-sm: 0.5rem;
    --space-stack-md: 1rem;
    --space-stack-lg: 1.5rem;
    --space-stack-xl: 2.5rem;
    --gap-buttons: 0.5rem;
    --gap-buttons-md: 1.5rem;
    --gap-trusted: 4.5rem;
    --gap-trusted-md: 6rem;
    --gradient-band-height: 2rem;

    /* Typography */
    --font-sans: "Poppins", system-ui, -apple-system, sans-serif;
    --font-sans-regular: "Poppins", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    --line-height-body: 1.5;

    /* Logo / component sizing */
    --logo-inspirex-height: 1.75rem;
    --logo-inspirex-height-md: 2.25rem;
    --logo-trusted-height: 2.75rem;
    --logo-trusted-height-md: 3rem;

    /* Hero gradient */
    --gradient-overlay-start: 0%;
    --gradient-overlay-mid: 50%;
    --gradient-overlay-end: 100%;

    /* Border radius */
    --radius-button: 0.375rem;

    /* Hero */
    --hero-min-height: 100vh;
    --hero-content-offset: 6rem;
    --site-header-offset: 6.5rem;
    --icon-btn-size: 1.25rem;

    /* Projects section */
    --projects-section-padding-top: 2.5rem;
    --projects-section-padding-bottom: 5rem;
    --projects-section-padding-x: 8%;
    --projects-header-gap: 2.5rem;
    --projects-subtitle-size: 0.75rem;
    --projects-subtitle-spacing: 0.45rem;
    --projects-subtitle-margin-bottom: 0.25rem;
    --projects-title-size: 2.5rem;
    --projects-title-weight: 400;
    --projects-grid-gap: 0.5rem;
    --project-card-radius: 0.25rem;
    --project-card-overlay: rgba(0, 0, 0, 0.15);
    --projects-view-all-gap: 0.5rem;
    --projects-view-all-size: 0.875rem;
    --bp-projects-stack: 1000px;

    /* Projects carousel – always 3 on screen: left (half) + center (full) + right (half) */
    --carousel-slide-width: 50vw;
    --carousel-slide-height: 72vh;
    --carousel-gap: 2.5vw;
    --carousel-duration: 18s;

    /* Prev / page / Next pagination (news, resources, projects hub, impact featured) */
    --pagination-compact-gap: 0.55rem;
    --pagination-compact-font: 1rem;
    --pagination-compact-icon: 1.2rem;
    --pagination-compact-chevron-btn: 1.5rem;
    --pagination-compact-margin-top: 1.25rem;

    /* Leadership / Story section */
    --leadership-section-padding-y: 0;
    --leadership-section-padding-x: 4%;
    --leadership-quote-size: 5rem;
    --leadership-headline-size: 3.25rem;
    --leadership-headline-line: 1.2;
    --leadership-body-size: 1rem;
    --leadership-body-line: 1.6;
    --leadership-conviction-margin-bottom: 1.5rem;
    --leadership-card-bg: #0f0f0f;
    --leadership-card-radius: 0.5rem;
    --leadership-card-padding: 3rem;
    --leadership-card-gap: 2rem;
    --leadership-structure-subtitle-size: 0.75rem;
    --leadership-structure-title-size: 2.5rem;
    --leadership-structure-title-margin: 0.5rem;
    --leadership-structure-desc-margin: 1.5rem;
    --leadership-labs-gap: 2rem;
    --leadership-labs-margin-top: 4rem;
    --leadership-watermark-opacity: 0.03;
    --leadership-hero-image-max-width: 28rem;
    --leadership-hero-image-aspect: 3 / 4;

    /* Events section */
    --events-section-padding-y: 5rem;
    --events-section-padding-x: 8%;
    --events-title-size: 2.5rem;
    --events-title-italic-weight: 400;
    --events-cards-gap: 2rem;
    --event-card-bg: #151515;
    --event-card-border: 1px solid rgba(156, 163, 175, 0.3);
    --event-card-radius: 0.25rem;
    --event-card-padding: 3rem;
    --event-card-padding-x: 6rem;
    --event-date-num-size: 3rem;
    --event-date-month-size: 0.875rem;
    --event-meta-size: 0.875rem;
    --event-title-size: 1.5rem;
    --event-desc-size: 0.9375rem;
    --event-desc-max-width: 70ch;
    --event-meta-icon-color: var(--color-accent);
    --stats-gap: 2rem;
    --stats-num-size: 3.5rem;
    --stats-label-size: 0.75rem;
    --stats-label-color: var(--color-accent);
    --stats-divider-color: rgba(255, 255, 255, 0.1);

    /* CTA sections (Download + Real Projects) */
    --cta-section-padding-y: 4rem;
    --cta-section-padding-x: 4%;
    --cta-download-heading-size: 2.5rem;
    --cta-download-heading-max-width: 20ch;
    --cta-projects-heading-size: 4.25rem;
    --cta-btn-padding-x: 1.5rem;
    --cta-btn-padding-y: 0.875rem;
    --cta-btn-gap: 0.5rem;
    --cta-projects-buttons-gap: 1rem;
    --cta-section-border: 1px solid rgba(255, 255, 255, 0.08);

    /* Footer */
    --footer-bg: #000000;
    --footer-padding-y: 4rem;
    --footer-padding-x: 2%;
    --footer-bottom-padding-y: 1.5rem;
    --footer-col-gap: 4rem;
    --footer-logo-height: 2.25rem;
    --footer-desc-size: 0.9375rem;
    --footer-desc-line: 1.5;
    --footer-desc-max-width: 20rem;
    --footer-heading-size: 1rem;
    --footer-heading-weight: 600;
    --footer-heading-margin-bottom: 0.5rem;
    --footer-link-size: 0.9375rem;
    --footer-link-gap: 0.001rem;
    --footer-bottom-size: 0.8125rem;
    --footer-social-size: 1.5rem;
    --footer-bullet-color: var(--color-text-muted);
    --footer-glow-color: var(--color-accent);
    --footer-glow-size: 200px;
    --footer-region-glow-size: 80vmin;

    /* Breakpoints (use in media queries) */
    --bp-sm: 640px;
    --bp-md: 768px;
    --bp-lg: 1024px;
}

/* -------------------------------------------------------------------------
   Base
   ------------------------------------------------------------------------- */
* {
    box-sizing: border-box;
}

body {
    font-family: var(--font-sans);
    line-height: var(--line-height-body);
    margin: 0;
    background-color: var(--color-background);
    color: var(--color-primary);
}

/* Force consistent typography on native form controls across browsers. */
button,
input,
select,
textarea {
    font-family: inherit;
}

.inspirex-title-html {
    word-break: break-word;
}

/* -------------------------------------------------------------------------
   Color / utility classes (use these instead of inline or Tailwind colors)
   ------------------------------------------------------------------------- */
.text-primary { color: var(--color-primary); }
.text-accent { color: var(--color-accent); }
.text-muted { color: var(--color-text-muted); }
.text-nav-muted { color: var(--color-nav-muted); }

.bg-background { background-color: var(--color-background); }
.bg-background-solid { background-color: var(--color-background-solid); }
.bg-accent { background-color: var(--color-accent); }
.bg-transparent { background-color: var(--color-transparent); }

.border-default { border-color: var(--color-border); }

.hover\:text-primary:hover { color: var(--color-primary); }
.hover\:bg-primary:hover { background-color: var(--color-primary); color: var(--color-background-solid); }
.hover\:bg-accent:hover { background-color: var(--color-accent-hover); }

.text-on-accent { color: var(--color-background-solid); }

/* -------------------------------------------------------------------------
   Hero area
   ------------------------------------------------------------------------- */
.hero-background-wrap {
    position: relative;
    min-height: 100vh;
    background-image: url("../images/Background.png");
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
}

.hero-background-wrap--bg2 {
    background-image: url("../images/Background - 2.png");
    background-size: contain;
    background-position: center top;
    background-repeat: no-repeat;
}

.hero-image-gradient-overlay {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: none;
    pointer-events: none;
}

.hero-background-wrap--bg2 .hero-image-gradient-overlay {
    background: linear-gradient(
        to bottom,
        var(--color-transparent) var(--gradient-overlay-start),
        var(--color-transparent) var(--gradient-overlay-mid),
        var(--color-background-solid) var(--gradient-overlay-end)
    );
}

.hero-section {
    min-height: calc(var(--hero-min-height) - var(--site-header-offset));
    padding-bottom: 0;
    margin-bottom: 0;
}

.hero-to-black-gradient {
    width: 100%;
    height: var(--gradient-band-height);
    background: linear-gradient(to bottom, var(--color-transparent), var(--color-background));
    flex-shrink: 0;
}

.btn-hero i {
    font-size: var(--icon-btn-size);
}

/* -------------------------------------------------------------------------
   Nav
   ------------------------------------------------------------------------- */
.nav-transparent {
    background: var(--color-transparent);
}

.site-header {
    position: sticky;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1200;
    transform: translateY(0);
    transition: background-color 0.22s ease, backdrop-filter 0.22s ease;
}

.site-header.is-scrolled {
    background: rgba(11, 11, 11, 0.92);
    backdrop-filter: blur(4px);
}

.site-header.is-hidden {
    transform: none;
}

/* -------------------------------------------------------------------------
   Logos
   ------------------------------------------------------------------------- */
.inspirex-logo {
    height: var(--logo-inspirex-height);
    width: auto;
}

.trusted-logos-viewport {
    overflow: hidden;
    width: 100%;
}

.trusted-section-track {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: var(--gap-trusted);
    width: max-content;
    will-change: transform;
    opacity: 0.9;
}

.trusted-section-track .trusted-logo {
    flex-shrink: 0;
}

.trusted-logo {
    height: var(--logo-trusted-height);
    width: auto;
    object-fit: contain;
}

/* Monochrome SVG tinted via CMS (mask + background-color) */
.trusted-logo.trusted-logo--svg-mask {
    display: inline-block;
    vertical-align: middle;
    height: var(--logo-trusted-height);
    width: min(12rem, 42vw);
    max-width: 200px;
    flex-shrink: 0;
    object-fit: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

.trusted-section {
    position: relative;
    background-color: var(--color-background);
    overflow: hidden;
    padding-top: 0;
}

.trusted-section-box {
    position: absolute;
    top: 0;
    bottom: 0;
    width: min(25vw, 21rem);
    z-index: 1;
    pointer-events: none;
    border: none;
}

.trusted-section-box--left {
    left: 0;
    background: linear-gradient(to right, #0B0B0B 0%, #0B0B0B 70%, transparent 100%);
}

.trusted-section-box--right {
    right: 0;
    background: linear-gradient(to left, #0B0B0B 0%, #0B0B0B 70%, transparent 100%);
}

/* -------------------------------------------------------------------------
   Spacing utilities (optional – use for consistency)
   ------------------------------------------------------------------------- */
.section-padding-x {
    padding-left: var(--space-page-x);
    padding-right: var(--space-page-x);
}

.section-padding-y {
    padding-top: var(--space-section-y);
    padding-bottom: var(--space-section-y);
}

.trusted-section.section-padding-y {
    padding-top: 0;
}

.gap-trusted {
    gap: var(--gap-trusted);
}

/* Hero / CTA buttons */
.btn-hero {
    border-radius: var(--radius-button);
}

/* -------------------------------------------------------------------------
   Projects section
   ------------------------------------------------------------------------- */
.projects-section {
    padding-top: var(--projects-section-padding-top);
    padding-bottom: var(--projects-section-padding-bottom);
    padding-left: var(--projects-section-padding-x);
    padding-right: var(--projects-section-padding-x);
    background-color: var(--color-background);
    overflow-x: hidden;
}

.projects-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: var(--projects-header-gap);
}

.projects-header .subtitle {
    color: var(--color-accent);
    font-size: var(--projects-subtitle-size);
    letter-spacing: var(--projects-subtitle-spacing);
    margin-bottom: var(--projects-subtitle-margin-bottom);
}

.projects-header .title {
    font-size: var(--projects-title-size);
    font-weight: var(--projects-title-weight);
    color: var(--color-primary);
}

.projects-header .title span {
    font-style: italic;
    font-weight: 400;
}

.projects-header-titles {
    min-width: 0;
}

.projects-header-intro {
    margin: 0;
    max-width: min(36rem, 46vw);
    text-align: right;
    align-self: flex-end;
    font-size: 0.95rem;
    line-height: 1.55;
    font-weight: 500;
    color: var(--color-text-muted);
}

.projects-header-intro.inspirex-title-html span {
    color: inherit;
}

/* Carousel: full-width container, track moves so center slide is full, sides half visible */
.projects-carousel {
    width: 100vw;
    position: relative;
    left: 50%;
    margin-left: -50vw;
    overflow: hidden;
    margin-top: var(--projects-header-gap);
}

.projects-carousel-track {
    display: flex;
    gap: var(--carousel-gap);
    will-change: transform;
    transition: transform 0.6s ease-in-out;
}

.projects-carousel .project-card {
    flex: 0 0 var(--carousel-slide-width);
    width: var(--carousel-slide-width);
    height: var(--carousel-slide-height);
    min-height: 280px;
}

.projects-carousel .project-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.projects-carousel .project-card:hover img {
    transform: scale(1.05);
}

.project-card {
    position: relative;
    overflow: hidden;
    border-radius: var(--project-card-radius);
    cursor: pointer;
}

.project-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
}

.project-card:hover img {
    transform: scale(1.08);
}

.project-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--project-card-overlay);
    pointer-events: none;
}

@media (max-width: 1000px) {
    :root {
        --carousel-slide-width: 50vw;
    }

    .projects-carousel .project-card {
        flex: 0 0 50vw;
        width: 50vw;
        height: 50vh;
    }

    .projects-header {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-stack-md);
    }

    .projects-header-intro {
        max-width: none;
        width: 100%;
        text-align: right;
        align-self: flex-end;
    }
}

/* One slide at a time; active slide is full viewport width */
@media (max-width: 768px) {
    :root {
        --carousel-slide-width: 100vw;
        --carousel-gap: 1rem;
    }

    .projects-carousel .project-card {
        flex: 0 0 100vw;
        width: 100vw;
        height: 50vh;
        border-radius: 0;
    }
}

/* -------------------------------------------------------------------------
   Leadership / Story section (Final Balanced Adjustment)
   ------------------------------------------------------------------------- */
.leadership-section {
    background-color: var(--color-background);
    padding: var(--leadership-section-padding-y) var(--leadership-section-padding-x);
    color: var(--color-primary);
}

.leadership-hero {
    display: grid;
    grid-template-columns: 0.96fr auto 0.97fr;   /* Slightly more width to conviction */
    gap: 2.3rem;
    align-items: stretch;          /* Important for height matching */
    max-width: 1400px;
    margin: 0 auto 4rem;
}

/* Quote block */
.leadership-quote-block {
    position: relative;
    align-self: start;
}

/* Image wrapper - now dynamically matches full section height */
.leadership-hero-image-wrap {
    margin-right: 0;
    width: var(--leadership-hero-image-max-width);
    flex-shrink: 0;
    display: flex;
    align-items: stretch;           /* Allows full height stretch */
    justify-content: center;
    min-height: 500px;              /* Minimum height fallback */
}

/* Image - stretches to match the full grid row height */
.leadership-hero-image {
    width: 100%;
    height: 100%;                   /* Full height of the wrapper */
    object-fit: cover;
    object-position: center top;
    border-radius: var(--leadership-card-radius);
    display: block;
}

/* Conviction block */
.leadership-conviction-block {
    align-self: end;
}

/* ==================== Rest of styles (unchanged) ==================== */
.leadership-quote-icon {
    width: var(--leadership-quote-size);
    height: auto;
    display: block;
    margin-bottom: 0.5rem;
}

.leadership-quote-block .headline {
    font-size: var(--leadership-headline-size);
    font-weight: 400;
    line-height: var(--leadership-headline-line);
    color: var(--color-primary);
    font-style: italic;
}

.leadership-quote-block .headline .accent {
    color: var(--color-accent);
    font-weight: 400;
}

.leadership-conviction-block h2 {
    font-size: var(--leadership-headline-size);
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: var(--leadership-conviction-margin-bottom);
}

.leadership-conviction-block h2 .accent {
    color: var(--color-accent);
}

.leadership-conviction-block p,
.leadership-conviction-block .inspirex-cms-rich {
    font-size: var(--leadership-body-size);
    line-height: var(--leadership-body-line);
    color: var(--color-primary);
    text-align: justify;
    margin-bottom: 1.25rem;
}

/* Inline HTML from CMS rich-text (colors, alignment, lists) */
.inspirex-cms-rich {
    max-width: 100%;
}

.inspirex-cms-rich a {
    color: var(--color-accent);
    text-decoration: underline;
}

.inspirex-cms-rich a:hover {
    opacity: 0.9;
}

.inspirex-cms-rich ul,
.inspirex-cms-rich ol {
    margin: 0.5rem 0;
    padding-left: 1.25rem;
    text-align: start;
}

.inspirex-cms-rich blockquote {
    margin: 0.5rem 0;
    padding-left: 0.75rem;
    border-left: 3px solid rgba(255, 255, 255, 0.2);
}

.leadership-conviction-block .link-accent {
    color: var(--color-accent);
    text-decoration: none;
    font-size: 1rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.leadership-conviction-block .link-accent:hover {
    opacity: 0.85;
}

.leadership-structure {
    text-align: center;
    margin-top: 10rem !important;
    margin-bottom: var(--leadership-labs-margin-top);
}

/* Home page: bring "Our Work" closer to leadership content above */
.home-leadership-structure {
    margin-top: 5rem !important;
}

.leadership-structure .subtitle {
    font-size: var(--leadership-structure-subtitle-size);
    letter-spacing: 0.2em;
    color: var(--color-accent);
    margin-bottom: var(--leadership-structure-title-margin);
}

.leadership-structure .title {
    font-size: var(--leadership-structure-title-size);
    font-weight: 600;
    color: var(--color-primary);
}

.leadership-structure .title .accent {
    color: var(--color-accent);
}

.leadership-structure .title .title-italic {
    font-style: italic;
    font-weight: 400;
}

.leadership-structure .desc {
    font-size: var(--leadership-body-size);
    line-height: var(--leadership-body-line);
    color: var(--color-text-muted);
    max-width: 640px;
    margin: var(--leadership-structure-desc-margin) auto 0;
}

.leadership-labs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--leadership-labs-gap);
    max-width: 1400px;
    margin: 0 auto;
    width: 100%;
}

.lab-card {
    background-color: var(--leadership-card-bg);
    border-radius: var(--leadership-card-radius);
    padding: var(--leadership-card-padding);
    position: relative;
    overflow: hidden;
}

.lab-card-studio::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("../images/icons/Pallete.png");
    background-size: 30% auto;
    background-position: right bottom;
    background-repeat: no-repeat;
    opacity: var(--leadership-watermark-opacity);
    pointer-events: none;
}

.lab-card-future::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("../images/icons/Flower.png");
    background-size: 30% auto;
    background-position: right bottom;
    background-repeat: no-repeat;
    opacity: var(--leadership-watermark-opacity);
    pointer-events: none;
}

.lab-card .icon {
    margin-bottom: 4.5rem;
}

.lab-card .icon img {
    width: 3.25rem;
    height: auto;
    display: block;
}

.lab-card h3 {
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: 0.25rem;
}

.lab-card p,
.lab-card .inspirex-cms-rich {
    font-size: var(--leadership-body-size);
    line-height: var(--leadership-body-line);
    color: var(--color-primary);
    text-align: justify;
    margin-bottom: 1.5rem;
}

.lab-card p strong,
.lab-card .inspirex-cms-rich strong {
    font-weight: 600;
}

.lab-card .lab-card-actions {
    margin-top: 2rem;
}

/* About page lab cards still use .btn-explore */
.lab-card .btn-explore {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--color-primary);
    background: transparent;
    border: 1px solid var(--color-border);
    padding: 0.6rem 1.25rem;
    border-radius: var(--radius-button);
    font-size: 0.9rem;
    cursor: pointer;
    transition: opacity 0.2s;
}

.lab-card .btn-explore:hover {
    opacity: 0.9;
}

/* -------------------------------------------------------------------------
   Upcoming Events + Statistics section
   ------------------------------------------------------------------------- */
.events-section {
    background-color: var(--color-background);
    padding: var(--events-section-padding-y) var(--events-section-padding-x);
    color: var(--color-primary);
}

.events-section .section-title {
    text-align: center;
    font-size: var(--events-title-size);
    font-weight: var(--events-title-italic-weight);
    color: var(--color-primary);
    margin-bottom: 3rem;
}

.events-section .section-title .title-italic {
    font-style: italic;
    font-weight: var(--events-title-italic-weight);
}

.events-list {
    display: flex;
    flex-direction: column;
    max-width: 1100px;
    margin: 0 auto 4rem;
    border: var(--event-card-border);
    border-radius: var(--event-card-radius);
    background-color: var(--color-transparent);
    overflow: hidden;
}

.event-card {
    display: flex;
    align-items: center;
    gap: 2rem;
    padding: var(--event-card-padding) var(--event-card-padding-x);
    background-color: var(--color-transparent);
    border: none;
    border-bottom: var(--event-card-border);
    border-radius: 0;
}

.event-card:last-child {
    border-bottom: none;
}

.event-card .event-date {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
}

.event-card .event-date .day {
    font-size: var(--event-date-num-size);
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1;
}

.event-card .event-date .month {
    font-size: var(--event-date-month-size);
    color: var(--color-text-muted);
    margin-top: 0.25rem;
}

.event-card .event-body {
    flex: 1;
    min-width: 0;
}

.event-card .event-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    font-size: var(--event-meta-size);
    color: var(--color-text-muted);
    margin-bottom: 0.75rem;
}

.event-card .event-meta span {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.event-card .event-meta i {
    color: var(--event-meta-icon-color);
    font-size: 1rem;
}

.event-card .event-title {
    font-size: var(--event-title-size);
    font-weight: 500;
    color: var(--color-primary);
    margin-bottom: 0.5rem;
}

.event-card .event-desc {
    font-size: var(--event-desc-size);
    line-height: 1.5;
    color: var(--color-text-muted);
    max-width: var(--event-desc-max-width);
}

.event-card .event-actions {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.event-card .btn-register,
.lab-card .lab-card-actions .btn-register {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--color-primary);
    background: transparent;
    border: 2px solid rgba(156, 163, 175, 0.3);
    padding: 0.75rem 1.5rem;
    border-radius: var(--radius-button);
    font-size: 1rem;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
}

.event-card .btn-register:hover,
.lab-card .lab-card-actions .btn-register:hover {
    opacity: 0.9;
}

/* Statistics */
.stats-section {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: var(--stats-gap);
    max-width: 1000px;
    margin: 0 auto;
}

.stats-block {
    flex: 1;
    min-width: 120px;
    text-align: center;
    padding: 0 1.5rem;
    position: relative;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 0.35rem 0.65rem;
}

.stats-block:not(:last-child)::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 90%;
    background-color: var(--stats-divider-color);
}

.stats-block .num {
    font-size: var(--stats-num-size);
    font-weight: 400;
    color: var(--color-primary);
    display: inline;
    line-height: 1.2;
}

.stats-block .label {
    font-size: var(--stats-label-size);
    font-weight: 400;
    letter-spacing: 0.1em;
    color: var(--stats-label-color);
    text-transform: uppercase;
    margin-top: 0;
    display: inline;
    max-width: 12rem;
    text-align: center;
}

@media (max-width: 768px) {
    .events-section {
        text-align: center;
    }

    .events-list {
        margin-left: auto;
        margin-right: auto;
    }

    .event-card {
        flex-direction: column;
        align-items: center;
        gap: 1rem;
        text-align: center;
    }

    .event-card .event-date {
        align-items: center;
    }

    .event-card .event-body {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100%;
    }

    .event-card .event-meta {
        justify-content: center;
    }

    .event-card .event-title,
    .event-card .event-desc {
        text-align: center;
    }

    .event-card .event-desc {
        margin-left: auto;
        margin-right: auto;
    }

    .event-card .event-actions {
        align-self: center;
    }

    .stats-block:not(:last-child)::after {
        display: none;
    }

    .stats-section {
        gap: 2rem;
    }
}

@media (max-width: 1024px) {
    .leadership-hero {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .home-leadership-structure {
        margin-top: 4rem !important;
    }

    .leadership-hero-image-wrap {
        width: 100%;
        height: 480px;
        margin-right: 0;
    }

    .leadership-hero-image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center top;
    }

    .leadership-quote-block {
        order: 1;
    }

    .leadership-hero-image-wrap {
        order: 2;
    }

    .leadership-conviction-block {
        order: 3;
        text-align: left;
    }

    .leadership-labs {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .leadership-hero-image-wrap {
        margin-right: 0;
        width: 100%;
        height: 360px;
    }

    .leadership-hero-image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center top;
        display: block;
    }
}

/* -------------------------------------------------------------------------
   CTA section + Footer (Design With Intention)
   ------------------------------------------------------------------------- */
.cta-direction-section {
    background: transparent;
    padding: var(--cta-section-padding-y) var(--cta-section-padding-x);
    text-align: center;
}

.cta-direction-heading {
    font-size: clamp(2.35rem, 4.5vw, 5.5rem);
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-primary);
    margin: 0 0 1rem;
}

.cta-direction-heading em {
    color: var(--color-accent);
    font-style: italic;
}

.cta-direction-desc {
    font-size: 1rem;
    line-height: 1.6;
    color: var(--color-primary);
    margin: 0 auto 2rem;
    max-width: 64ch;
}

.cta-direction-buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--cta-projects-buttons-gap);
}

.cta-direction-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--cta-btn-gap);
    padding: var(--cta-btn-padding-y) var(--cta-btn-padding-x);
    font-family: var(--font-sans);
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    border-radius: var(--radius-button);
    cursor: pointer;
}

.cta-direction-btn--outline {
    color: var(--color-primary);
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.5);
}

.cta-direction-btn--filled {
    color: var(--color-background);
    background: var(--color-accent);
    border: none;
}

a.cta-direction-btn,
a.cta-projects-btn,
a.cta-download-btn {
    text-decoration: none;
    box-sizing: border-box;
}

/* Home page footer: Download + Real Projects (two CTAs) */
.cta-download-section {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    padding: var(--cta-section-padding-y) var(--cta-section-padding-x);
    background: transparent;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.cta-download-heading {
    font-size: var(--cta-download-heading-size);
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-primary);
    margin: 0;
    max-width: var(--cta-download-heading-max-width);
}

.cta-download-heading .cta-download-accent {
    color: var(--color-accent);
}

.cta-download-heading em {
    font-style: italic;
    font-weight: 400;
    color: var(--color-primary);
}

.cta-download-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--cta-btn-gap);
    padding: var(--cta-btn-padding-y) var(--cta-btn-padding-x);
    font-family: var(--font-sans-regular);
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--color-primary);
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: var(--radius-button);
    cursor: pointer;
}

.cta-projects-section {
    padding: var(--cta-section-padding-y) var(--cta-section-padding-x);
    text-align: center;
    background: transparent;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.cta-projects-heading {
    font-size: 5.25rem;
    font-weight: 650;
    line-height: 1.2;
    color: var(--color-primary);
    margin: 0 0 1rem;
}

.cta-projects-heading .cta-projects-accent {
    color: var(--color-accent);
    font-family: var(--font-sans-regular);
    font-weight: 400;
    font-style: italic;
}

.cta-projects-desc {
    font-size: 1rem;
    line-height: 1.6;
    color: var(--color-primary);
    margin: 0 auto 2rem;
    max-width: 52ch;
}

.cta-projects-buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: var(--cta-projects-buttons-gap);
}

.cta-projects-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--cta-btn-gap);
    width: fit-content;
    padding: var(--cta-btn-padding-y) var(--cta-btn-padding-x);
    font-family: var(--font-sans-regular);
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    border-radius: var(--radius-button);
    cursor: pointer;
}

.cta-projects-btn--outline {
    color: var(--color-primary);
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.5);
}

.cta-projects-btn--filled {
    color: var(--color-background);
    background: var(--color-accent);
    border: none;
}

.footer-region {
    position: relative;
    overflow: hidden;
    background: var(--footer-bg);
}

.footer-region::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: var(--footer-region-glow-size);
    height: var(--footer-region-glow-size);
    background: radial-gradient(circle at 100% 0%, var(--footer-glow-color) 0%, transparent 60%);
    opacity: 0.2;
    pointer-events: none;
}

.site-footer {
    background: var(--footer-bg);
    padding: var(--footer-padding-y) var(--footer-padding-x);
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.9fr 1fr 1fr 1fr;
    gap: var(--footer-col-gap);
    align-items: end;
    max-width: 1200px;
    margin: 0 auto;
}

.footer-logo-wrap {
    display: inline-block;
    margin-bottom: 1rem;
}

.footer-logo-img {
    display: block;
    height: var(--footer-logo-height);
    width: auto;
}

.footer-brand .footer-desc {
    font-size: var(--footer-desc-size);
    line-height: var(--footer-desc-line);
    color: var(--color-text-muted);
    max-width: var(--footer-desc-max-width);
    margin: 0;
}

.footer-col h4 {
    font-size: 1.15rem;
    font-weight: var(--footer-heading-weight);
    color: var(--color-primary);
    margin: none;
    padding-left: 0.75rem;
}

.footer-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-col ul li {
    font-size: var(--footer-link-size);
    color: var(--color-text-muted);
    margin-bottom: var(--footer-link-gap);
}

.footer-col ul li::before {
    content: "•";
    color: var(--footer-bullet-color);
    margin-right: 0.5rem;
}

.footer-col ul li a {
    color: var(--color-text-muted);
    text-decoration: none;
}

.footer-col ul li a:hover {
    color: var(--color-primary);
}

.footer-col-with-social {
    display: flex;
    gap: var(--footer-col-gap);
    align-items: flex-end;
}

.footer-social {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.footer-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--footer-social-size);
    height: var(--footer-social-size);
    color: var(--color-primary);
    border: none;
    border-radius: 0.25rem;
    font-size: 1rem;
}

.footer-bottom {
    max-width: 1200px;
    margin: 0 auto;
    padding-top: var(--footer-bottom-padding-y);
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

.footer-copyright {
    font-size: var(--footer-bottom-size);
    color: var(--color-text-muted);
    margin: 0;
}

.footer-legal {
    display: flex;
    gap: 4.5rem;
}

.footer-legal a {
    font-size: var(--footer-bottom-size);
    color: var(--color-text-muted);
    text-decoration: none;
}

.footer-legal a:hover {
    color: var(--color-primary);
}

@media (max-width: 900px) {
    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 600px) {
    .cta-direction-buttons {
        flex-direction: column;
    }

    .cta-download-section {
        flex-direction: column;
        text-align: center;
    }

    .cta-download-heading {
        max-width: none;
    }

    .cta-projects-buttons {
        flex-direction: column;
    }

    .footer-grid {
        grid-template-columns: 1fr;
    }

    .footer-col,
    .footer-col-with-social {
        text-align: left;
        align-items: flex-start;
    }

    .footer-col-with-social {
        flex-direction: column;
    }

    .footer-social {
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
    }
}

/* -------------------------------------------------------------------------
   Media queries – breakpoints and responsive tokens
   ------------------------------------------------------------------------- */
@media (min-width: 768px) {
    :root {
        --space-page-x: var(--space-page-x-md);
        --space-section-y: var(--space-section-y-md);
        --gap-trusted: var(--gap-trusted-md);
        --logo-inspirex-height: var(--logo-inspirex-height-md);
        --logo-trusted-height: var(--logo-trusted-height-md);
    }
}