:root {
    --wlu-red: #c8342f;
    --wlu-red-deep: #8e1e1a;
    --wlu-gold: #f4cf51;
    --wlu-gold-soft: #fff2ba;
    --wlu-black: #090909;
    --wlu-ink: #151515;
    --wlu-surface: #f5f1e8;
    --wlu-white: #ffffff;
    --wlu-text: #36332e;
    --wlu-muted: #4e4a45;
    --wlu-border: rgba(17, 17, 17, 0.12);
    --wlu-shadow: 0 24px 80px rgba(14, 14, 14, 0.18);
    --wlu-shadow-soft: 0 8px 24px rgba(14, 14, 14, 0.08), 0 20px 52px rgba(14, 14, 14, 0.10);
    --wlu-radius-sm: 18px;
    --wlu-radius: 28px;
    --wlu-radius-lg: 42px;
    --wlu-container: 1320px;
    --wlu-header-top: 42px;
    --wlu-header-main: 88px;
    --wlu-header-total: calc(var(--wlu-header-top) + var(--wlu-header-main));
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    /* Clamp any horizontal overflow so the layout viewport matches the visual
       viewport on mobile. Without this, off-screen overflow shifts touch
       coordinates and form inputs only respond when tapped near their right
       edge. `hidden` on <html> is supported on every iOS version (unlike
       `clip`, which is iOS 16+) and does not break sticky/fixed descendants. */
    overflow-x: hidden;
}

body.wlu-body {
    margin: 0;
    /* clip keeps position:sticky working; ignored on very old browsers, where
       the <html> rule above already does the clamping. */
    overflow-x: clip;
    width: 100%;
    max-width: 100%;
    background:
        radial-gradient(circle at top left, rgba(244, 207, 81, 0.08), transparent 28%),
        linear-gradient(180deg, #faf7f0 0%, #f2ede3 100%);
    color: var(--wlu-ink);
    font-family: "Manrope", sans-serif;
    font-size: 16px;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

body.wlu-body * {
    box-sizing: border-box;
}

body.wlu-body img {
    display: block;
    max-width: 100%;
}

body.wlu-body a {
    color: inherit;
    text-decoration: none;
}

body.wlu-body button,
body.wlu-body input,
body.wlu-body select,
body.wlu-body textarea {
    font: inherit;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    -webkit-user-select: text;
    user-select: text;
}

body.wlu-body h1,
body.wlu-body h2,
body.wlu-body h3,
body.wlu-body h4,
body.wlu-body h5,
body.wlu-body h6 {
    color: var(--wlu-black);
    font-family: "Sora", sans-serif;
    letter-spacing: -0.03em;
    line-height: 1.16;
    font-weight: 700;
    margin-top: 0;
}

body.wlu-body p {
    color: var(--wlu-text);
    line-height: 1.82;
}

body.wlu-body ul,
body.wlu-body ol {
    margin: 0;
}

body.wlu-body ul {
    padding: 0;
}

body.wlu-body li {
    list-style: none;
}

body.wlu-body .container {
    width: min(100% - 32px, var(--wlu-container));
    max-width: var(--wlu-container);
}

.wlu-main {
    min-height: 100vh;
    overflow: clip;
}

body.wlu-homepage .wlu-main {
    padding-top: 0;
}

body.wlu-body:not(.wlu-homepage) .wlu-main {
    padding-top: calc(var(--wlu-header-total) + 16px);
}

body.wlu-menu-open {
    overflow: hidden;
}

.wlu-section {
    position: relative;
    padding: clamp(80px, 8vw, 124px) 0;
}

.wlu-section--muted {
    background:
        radial-gradient(circle at top right, rgba(200, 52, 47, 0.06), transparent 32%),
        linear-gradient(180deg, #faf7f0 0%, #f2ede3 100%);
}

.wlu-section--dark {
    background:
        radial-gradient(circle at top right, rgba(244, 207, 81, 0.18), transparent 18%),
        linear-gradient(135deg, #090909 0%, #151515 55%, #1a1a1a 100%);
    color: var(--wlu-white);
}

.wlu-section--dark h1,
.wlu-section--dark h2,
.wlu-section--dark h3,
.wlu-section--dark h4,
.wlu-section--dark h5,
.wlu-section--dark h6,
.wlu-section--dark .wlu-section-title,
.wlu-section--dark .wlu-card__title,
.wlu-section--dark .wlu-hero-title,
.wlu-section--dark .wlu-footer__headline,
.wlu-section--dark .wlu-page-hero__title {
    color: var(--wlu-white);
}

.wlu-section--dark p,
.wlu-section--dark .wlu-story-meta,
.wlu-section--dark .wlu-page-hero__text {
    color: rgba(255, 255, 255, 0.82);
}

.wlu-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 18px;
    border-radius: 999px;
    background: rgba(200, 52, 47, 0.10);
    border: 1px solid rgba(200, 52, 47, 0.16);
    color: var(--wlu-red-deep);
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.wlu-section-title {
    margin: 16px 0;
    font-size: clamp(2.2rem, 5vw, 4rem);
    line-height: 1.06;
    letter-spacing: -0.04em;
    font-weight: 800;
}

.wlu-section-copy {
    max-width: 680px;
    font-size: 1.02rem;
}

.wlu-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 48px;
}

.wlu-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.wlu-btn,
.wlu-btn--ghost,
.wlu-btn--soft {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 54px;
    padding: 0 24px;
    border-radius: 999px;
    border: 1px solid transparent;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    transition: transform 0.28s ease, box-shadow 0.28s ease, background-color 0.28s ease, color 0.28s ease,
        border-color 0.28s ease;
    cursor: pointer;
}

.wlu-btn {
    background: var(--wlu-red);
    color: var(--wlu-white) !important;
    box-shadow: 0 8px 20px rgba(200, 52, 47, 0.28), 0 18px 40px rgba(200, 52, 47, 0.18);
}

.wlu-btn:hover,
.wlu-btn:focus {
    background: var(--wlu-red-deep);
    color: var(--wlu-white) !important;
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(200, 52, 47, 0.34), 0 22px 52px rgba(200, 52, 47, 0.22);
}

.wlu-btn--ghost {
    border-color: rgba(17, 17, 17, 0.26);
    background: transparent;
    color: var(--wlu-black);
}

.wlu-btn--ghost:hover,
.wlu-btn--ghost:focus {
    color: var(--wlu-black);
    background: rgba(17, 17, 17, 0.05);
    border-color: rgba(17, 17, 17, 0.44);
    transform: translateY(-2px);
}

/* Ghost button on dark backgrounds */
.wlu-section--dark .wlu-btn--ghost,
.wlu-home-hero .wlu-btn--ghost,
.wlu-page-hero .wlu-btn--ghost,
.wlu-impact-band .wlu-btn--ghost,
.wlu-auth-aside .wlu-btn--ghost {
    border-color: rgba(255, 255, 255, 0.30);
    background: rgba(255, 255, 255, 0.10);
    color: var(--wlu-white);
    backdrop-filter: blur(18px);
}

.wlu-section--dark .wlu-btn--ghost:hover,
.wlu-home-hero .wlu-btn--ghost:hover,
.wlu-page-hero .wlu-btn--ghost:hover,
.wlu-impact-band .wlu-btn--ghost:hover,
.wlu-auth-aside .wlu-btn--ghost:hover {
    color: var(--wlu-white);
    background: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.46);
    transform: translateY(-2px);
}

.wlu-btn--soft {
    border-color: rgba(17, 17, 17, 0.08);
    background: rgba(255, 255, 255, 0.92);
    color: var(--wlu-black);
    box-shadow: var(--wlu-shadow-soft);
}

.wlu-btn--soft:hover,
.wlu-btn--soft:focus {
    color: var(--wlu-black);
    transform: translateY(-2px);
}

.wlu-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--wlu-red);
    font-weight: 800;
}

.wlu-link:hover,
.wlu-link:focus {
    color: var(--wlu-red-deep);
}

.wlu-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(244, 207, 81, 0.16);
    color: var(--wlu-red);
    font-size: 0.8rem;
    font-weight: 800;
}

.wlu-divider {
    height: 1px;
    margin: 30px 0;
    background: linear-gradient(90deg, rgba(200, 52, 47, 0), rgba(200, 52, 47, 0.18), rgba(200, 52, 47, 0));
}

.wlu-alert {
    padding: 18px 22px;
    border-radius: 20px;
    background: rgba(244, 207, 81, 0.15);
    color: var(--wlu-black);
    border: 1px solid rgba(244, 207, 81, 0.36);
    border-left: 4px solid var(--wlu-gold);
}

.wlu-alert--success {
    background: rgba(59, 130, 93, 0.10);
    border-color: rgba(59, 130, 93, 0.22);
    border-left-color: #3b8261;
}

.wlu-alert--danger {
    background: rgba(200, 52, 47, 0.08);
    border-color: rgba(200, 52, 47, 0.22);
    border-left-color: var(--wlu-red);
}

.wlu-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.wlu-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 0 18px;
    border-radius: 999px;
    background: rgba(17, 17, 17, 0.07);
    border: 1px solid rgba(17, 17, 17, 0.10);
    color: var(--wlu-ink);
    font-size: 0.86rem;
    font-weight: 700;
    transition: background-color 0.22s ease, border-color 0.22s ease;
    cursor: pointer;
    touch-action: manipulation;
}

.wlu-chip:hover {
    background: rgba(17, 17, 17, 0.11);
    border-color: rgba(17, 17, 17, 0.18);
}

.wlu-card {
    height: 100%;
    padding: 28px;
    border: 1px solid rgba(17, 17, 17, 0.11);
    border-radius: var(--wlu-radius);
    background: #ffffff;
    box-shadow: 0 2px 8px rgba(15, 15, 15, 0.06), 0 16px 48px rgba(15, 15, 15, 0.09);
    backdrop-filter: blur(14px);
    transition: transform 0.32s ease, box-shadow 0.32s ease, border-color 0.32s ease;
}

.wlu-card:hover {
    transform: translateY(-6px);
    border-color: rgba(200, 52, 47, 0.18);
    box-shadow: 0 4px 14px rgba(15, 15, 15, 0.08), 0 24px 64px rgba(15, 15, 15, 0.14);
}

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

.wlu-card-grid--programmes {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.wlu-card-grid--programmes > .wlu-card:nth-child(-n + 2) {
    grid-column: span 3;
}

.wlu-card-grid--programmes > .wlu-card:nth-child(n + 3) {
    grid-column: span 2;
}

@media (max-width: 767px) {
    .wlu-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .wlu-card-grid--programmes {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .wlu-card-grid--programmes > .wlu-card:nth-child(-n + 2),
    .wlu-card-grid--programmes > .wlu-card:nth-child(n + 3) {
        grid-column: span 1;
    }
}

@media (max-width: 479px) {
    .wlu-card-grid {
        grid-template-columns: 1fr;
    }

    .wlu-card-grid--programmes {
        grid-template-columns: 1fr;
    }
}

.wlu-card__media {
    position: relative;
    height: 240px;
    margin: -28px -28px 22px;
    border-radius: 28px 28px 24px 24px;
    overflow: hidden;
}

.wlu-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wlu-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(9, 9, 9, 0) 0%, rgba(9, 9, 9, 0.18) 100%);
}

.wlu-card__icon,
.wlu-icon-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(200, 52, 47, 0.14), rgba(244, 207, 81, 0.32));
    border: 1px solid rgba(200, 52, 47, 0.12);
    color: var(--wlu-red-deep);
    font-size: 20px;
}

.wlu-card__kicker {
    color: var(--wlu-red-deep);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.wlu-card__title {
    margin: 16px 0 12px;
    font-size: 1.3rem;
    line-height: 1.24;
    letter-spacing: -0.025em;
    font-weight: 700;
}

.wlu-resource-list {
    display: grid;
    gap: 18px;
}

.wlu-resource-item {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    padding: 20px 22px;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid rgba(17, 17, 17, 0.11);
    box-shadow: 0 2px 8px rgba(15, 15, 15, 0.05), 0 10px 32px rgba(15, 15, 15, 0.07);
    transition: border-color 0.24s ease, box-shadow 0.24s ease, transform 0.24s ease;
}

.wlu-resource-item:hover {
    border-color: rgba(200, 52, 47, 0.18);
    box-shadow: 0 4px 14px rgba(15, 15, 15, 0.08), 0 14px 42px rgba(15, 15, 15, 0.10);
    transform: translateY(-2px);
}

.wlu-resource-item__meta {
    color: var(--wlu-muted);
    font-size: 0.84rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.wlu-story-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-bottom: 16px;
    color: var(--wlu-muted);
    font-size: 0.86rem;
    font-weight: 700;
}

.wlu-feature-list {
    display: grid;
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.wlu-feature-list li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.wlu-feature-list i {
    color: var(--wlu-red);
    margin-top: 5px;
}

.wlu-rich-copy {
    display: grid;
    gap: 20px;
}

.wlu-rich-copy h3 {
    margin: 10px 0 2px;
    font-size: 1.3rem;
    line-height: 1.24;
    letter-spacing: -0.025em;
}

.wlu-rich-copy p {
    color: var(--wlu-text);
}

.wlu-rich-copy ul {
    display: grid;
    gap: 12px;
    padding-left: 0;
    margin: 0;
    list-style: none;
}

.wlu-rich-copy li {
    display: flex;
    gap: 12px;
}

.wlu-rich-copy li i {
    color: var(--wlu-red);
    margin-top: 6px;
}

.wlu-check-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 28px;
}

.wlu-check-card {
    padding: 22px;
    border-radius: 24px;
    background: #ffffff;
    border: 1px solid rgba(17, 17, 17, 0.11);
    box-shadow: 0 2px 8px rgba(15, 15, 15, 0.05), 0 10px 30px rgba(15, 15, 15, 0.07);
}

.wlu-check-card h4 {
    margin: 14px 0 10px;
    font-size: 1.1rem;
}

.wlu-header {
    position: fixed;
    inset: 0 0 auto;
    z-index: 1000;
    padding: 14px 0 0;
    pointer-events: none;
    isolation: isolate;
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    will-change: transform;
}

.wlu-header__wrap {
    pointer-events: auto;
    transform: translateZ(0);
}

.wlu-topbar,
.wlu-navbar {
    width: min(calc(100vw - 24px), 1360px);
    margin: 0 auto;
}

.wlu-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: var(--wlu-header-top);
    padding: 0 24px;
    border-radius: 22px 22px 0 0;
    background: linear-gradient(90deg, rgba(244, 207, 81, 0.98), rgba(255, 219, 104, 0.98));
    color: var(--wlu-black);
    font-size: 13px;
    font-weight: 800;
}

.wlu-topbar__links,
.wlu-topbar__info {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
}

.wlu-topbar__links i,
.wlu-topbar__info i {
    color: var(--wlu-red);
}

.wlu-navbar {
    display: flex;
    align-items: center;
    gap: 28px;
    min-height: var(--wlu-header-main);
    padding: 0 24px;
    border-radius: 0 0 28px 28px;
    background: rgba(255, 255, 255, 0.97);
    border: 1px solid rgba(17, 17, 17, 0.12);
    border-top: 0;
    box-shadow: 0 4px 16px rgba(17, 17, 17, 0.06), 0 18px 52px rgba(17, 17, 17, 0.12);
    backdrop-filter: blur(26px);
    -webkit-backdrop-filter: blur(26px);
    transition: background-color 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

body.wlu-header-scrolled .wlu-navbar {
    box-shadow: 0 6px 20px rgba(17, 17, 17, 0.10), 0 22px 58px rgba(17, 17, 17, 0.16);
}

.wlu-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 210px;
}

.wlu-brand--header {
    flex-shrink: 0;
    gap: 0;
    min-width: auto;
}

.wlu-brand__mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 68px;
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.08);
    overflow: hidden;
}

.wlu-brand--header .wlu-brand__mark {
    width: 88px;
    height: 88px;
    border-radius: 26px;
}

.wlu-brand__mark img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 6px;
}

.wlu-brand--header .wlu-brand__mark img {
    padding: 4px;
}

.wlu-brand__text {
    display: grid;
    gap: 2px;
}

.wlu-brand__name {
    color: var(--wlu-black);
    font-family: "Sora", sans-serif;
    font-size: 0.95rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.wlu-brand__tag {
    color: rgba(17, 17, 17, 0.66);
    font-size: 0.76rem;
    font-weight: 500;
}

.wlu-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex: 1;
}

.wlu-nav__menu,
.wlu-nav__actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.wlu-nav__actions {
    margin-left: auto;
}

.wlu-nav__item--utility {
    display: flex;
    align-items: center;
}

.wlu-nav__actions .wlu-nav__item--utility:first-child {
    margin-right: 10px;
}

.wlu-nav__item {
    position: relative;
}

.wlu-nav__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 46px;
    padding: 0 14px;
    border-radius: 999px;
    color: var(--wlu-black);
    font-size: 0.88rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    transition: color 0.28s ease, background-color 0.28s ease;
}

.wlu-nav__link span {
    white-space: nowrap;
}

.wlu-nav__item:hover > .wlu-nav__link,
.wlu-nav__link.is-active,
.wlu-nav__item.is-open > .wlu-nav__link {
    color: var(--wlu-black);
    background: linear-gradient(135deg, rgba(244, 207, 81, 0.98), rgba(255, 219, 104, 0.92));
    box-shadow: 0 2px 8px rgba(244, 207, 81, 0.28);
}

.wlu-nav__item--cta .wlu-nav__link {
    background: var(--wlu-red);
    color: var(--wlu-white);
}

.wlu-nav__item--cta .wlu-nav__link:hover,
.wlu-nav__item--cta .wlu-nav__link.is-active {
    background: var(--wlu-red-deep);
    color: var(--wlu-white);
}

.wlu-nav__item--has-mega::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 20px;
}

.wlu-mega-menu {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    width: fit-content;
    min-width: 0;
    max-width: min(calc(100vw - 48px), 920px);
    padding: 28px;
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.99);
    border: 1px solid rgba(17, 17, 17, 0.12);
    box-shadow: 0 4px 16px rgba(17, 17, 17, 0.08), 0 24px 72px rgba(17, 17, 17, 0.18);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(14px);
    transition: opacity 0.24s ease, transform 0.24s ease, visibility 0.24s ease;
    backdrop-filter: blur(26px);
    -webkit-backdrop-filter: blur(26px);
    z-index: 10;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transform: translateY(14px) translateZ(0);
    contain: paint;
}

.wlu-nav__item:hover .wlu-mega-menu,
.wlu-nav__item:focus-within .wlu-mega-menu,
.wlu-nav__item.is-open .wlu-mega-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) translateZ(0);
}

.wlu-mega-menu__grid {
    display: grid;
    grid-template-columns: repeat(var(--wlu-mega-columns, 1), minmax(220px, 280px));
    gap: 20px;
}

.wlu-mega-menu__column {
    padding: 20px;
    border-radius: 22px;
    background: rgba(252, 247, 239, 0.98);
    border: 1px solid rgba(17, 17, 17, 0.04);
}

.wlu-mega-menu__title {
    margin: 0 0 12px;
    font-size: 1rem;
}

.wlu-mega-menu__list {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.wlu-mega-menu__list a {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: var(--wlu-ink);
    font-weight: 700;
}

.wlu-mega-menu__list a.is-active {
    color: var(--wlu-red);
}

.wlu-mega-menu__list a.is-active span:last-child {
    transform: translateX(3px);
}

.wlu-nav__utility {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 999px;
    border: 1px solid rgba(17, 17, 17, 0.08);
    background: rgba(17, 17, 17, 0.04);
    color: var(--wlu-ink);
    transition: transform 0.24s ease, border-color 0.24s ease, background-color 0.24s ease, color 0.24s ease;
}

.wlu-nav__utility:hover {
    transform: translateY(-2px);
}

/* ── Keyboard-key login button (circle) ──────────────────────────── */

.wlu-key-btn {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    text-decoration: none;
    cursor: pointer;
    user-select: none;
    flex-shrink: 0;

    /* Default: black keycap */
    background: linear-gradient(180deg, #2e2e30 0%, #18181a 100%);
    border: 1px solid rgba(255,255,255,0.09);
    border-bottom-color: rgba(0,0,0,0.5);

    /* 3-D raised effect — hard bottom wall + soft drop shadow */
    box-shadow:
        0 4px 0 0 #090909,                  /* side wall */
        0 6px 12px rgba(0,0,0,0.40),        /* drop shadow */
        inset 0 1px 0 rgba(255,255,255,0.12); /* top highlight */

    transition:
        transform        0.08s ease,
        box-shadow       0.08s ease,
        background       0.18s ease,
        border-color     0.18s ease;
}

/* Icon — WLU gold by default */
.wlu-key-btn i {
    font-size: 1rem;
    color: var(--wlu-gold);
    line-height: 1;
    transition: color 0.18s ease, transform 0.08s ease;
}

/* "Login" micro-label beneath the icon */
.wlu-key-btn span {
    font-family: var(--wlu-font-body);
    font-size: 0.48rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.70);
    line-height: 1;
    transition: color 0.18s ease;
}

/* ── Hover: rises slightly, turns gold ── */
.wlu-key-btn:hover {
    background: linear-gradient(180deg, var(--wlu-gold) 0%, #d09a10 100%);
    border-color: rgba(0,0,0,0.08);
    border-bottom-color: rgba(0,0,0,0.25);
    box-shadow:
        0 5px 0 0 #9e7a0a,                  /* gold side wall */
        0 8px 18px rgba(244,207,81,0.32),   /* gold glow */
        inset 0 1px 0 rgba(255,255,255,0.45);
    transform: translateY(-2px);             /* lifts before press */
}

.wlu-key-btn:hover i {
    color: #1a1a1c;   /* icon goes dark on gold bg */
}

.wlu-key-btn:hover span {
    color: rgba(26,26,28,0.75);
}

/* ── Active / click: sinks down like a real key ── */
.wlu-key-btn:active {
    transform: translateY(3px);
    background: linear-gradient(180deg, #bf9410 0%, var(--wlu-gold) 100%);
    box-shadow:
        0 1px 0 0 #9e7a0a,
        0 2px 6px rgba(244,207,81,0.18),
        inset 0 2px 5px rgba(0,0,0,0.22);
}

.wlu-key-btn:active i {
    color: #1a1a1c;
    transform: translateY(1px);
}

/* ── Scrolled header: stays the same size (circle must stay round) ── */
.wlu-header-scrolled .wlu-key-btn {
    width: 44px;
    height: 44px;
}

/* ── Very small screens: hide the micro-label ── */
@media (max-width: 400px) {
    .wlu-key-btn span {
        display: none;
    }
}

.wlu-nav__menu-button {
    display: none;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border: 0;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(200, 52, 47, 0.16), rgba(244, 207, 81, 0.32));
    color: var(--wlu-black);
    font-size: 1.15rem;
}

.wlu-overlay,
.wlu-mobile-panel {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.28s ease, visibility 0.28s ease;
}

.wlu-overlay {
    position: fixed;
    inset: 0;
    z-index: 998;
    background: rgba(6, 6, 6, 0.52);
    backdrop-filter: blur(8px);
}

.wlu-mobile-panel {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 999;
    width: min(92vw, 380px);
    padding: 26px 18px 120px;
    overflow-y: auto;
    background: linear-gradient(180deg, #101010 0%, #151515 100%);
    transform: translateX(-100%);
    pointer-events: none;
    transition: transform 0.3s ease, opacity 0.28s ease, visibility 0.28s ease;
}

body.wlu-menu-open .wlu-mobile-panel,
body.wlu-menu-open .wlu-overlay {
    opacity: 1;
    visibility: visible;
}

body.wlu-menu-open .wlu-mobile-panel {
    transform: translateX(0);
    pointer-events: auto;
}

body.wlu-menu-open .wlu-overlay {
    pointer-events: auto;
}

.wlu-mobile-panel__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 22px;
}

.wlu-mobile-panel__close {
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.08);
    color: var(--wlu-white);
}

.wlu-mobile-nav {
    display: grid;
    gap: 12px;
}

.wlu-mobile-group {
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.04);
    overflow: hidden;
}

.wlu-mobile-group__summary,
.wlu-mobile-group__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 62px;
    padding: 0 18px;
    color: var(--wlu-white);
    font-size: 0.94rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.wlu-mobile-group__summary {
    cursor: pointer;
    list-style: none;
}

.wlu-mobile-group__summary::-webkit-details-marker {
    display: none;
}

.wlu-mobile-group[open] .wlu-mobile-group__summary i:last-child {
    transform: rotate(180deg);
}

.wlu-mobile-group__content {
    display: grid;
    gap: 14px;
    padding: 0 18px 18px;
}

.wlu-mobile-group__block {
    padding: 14px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.04);
}

.wlu-mobile-group__title {
    display: block;
    margin-bottom: 10px;
    color: var(--wlu-gold);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.wlu-mobile-group__list {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.wlu-mobile-group__list a {
    color: rgba(255, 255, 255, 0.84);
    font-weight: 700;
}

.wlu-mobile-panel__footer {
    margin-top: 22px;
    padding: 20px;
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(200, 52, 47, 0.18), rgba(244, 207, 81, 0.12));
    color: rgba(255, 255, 255, 0.82);
}

.wlu-mobile-cta {
    display: none;
    position: fixed;
    inset: auto 0 0;
    z-index: 997;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    background: linear-gradient(180deg, rgba(245, 241, 232, 0), rgba(245, 241, 232, 0.98) 30%);
}

.wlu-mobile-cta__bar {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 12px;
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(17, 17, 17, 0.13);
    box-shadow: 0 4px 16px rgba(17, 17, 17, 0.08), 0 18px 48px rgba(17, 17, 17, 0.16);
    backdrop-filter: blur(22px);
}

.wlu-home-hero {
    position: relative;
    min-height: min(100vh, 980px);
    padding: clamp(148px, 20vw, 230px) 0 94px;
    overflow: hidden;
    background: #09090b;
    color: var(--wlu-white);
}

.wlu-home-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(92deg, rgba(5, 5, 7, 0.96) 0%, rgba(7, 7, 9, 0.9) 34%, rgba(8, 8, 10, 0.72) 56%, rgba(7, 8, 10, 0.88) 100%),
        radial-gradient(circle at top right, rgba(244, 207, 81, 0.12), transparent 24%),
        radial-gradient(circle at bottom left, rgba(200, 52, 47, 0.2), transparent 24%);
    z-index: 0;
}

.wlu-home-hero__bg {
    position: absolute;
    inset: 0;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    transform: scale(1.04);
    filter: brightness(0.34) saturate(0.72) contrast(1.14);
}

.wlu-home-hero__inner {
    position: relative;
    z-index: 1;
}

.wlu-home-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(330px, 0.9fr);
    gap: 36px;
    align-items: end;
}

.wlu-home-hero__content {
    position: relative;
    z-index: 1;
    max-width: 720px;
    padding: 0;
    border-radius: 0;
    background: none;
    border: 0;
    box-shadow: none;
    backdrop-filter: none;
}

body.wlu-homepage .wlu-home-hero__content[data-reveal],
body.wlu-homepage .wlu-home-hero__content[data-reveal].is-visible {
    opacity: 1;
    transform: none;
}

.wlu-eyebrow--hero {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.96);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.wlu-eyebrow--hero i {
    color: var(--wlu-gold);
}

.wlu-hero-title {
    max-width: 620px;
    margin: 20px 0 18px;
    color: var(--wlu-white);
    font-size: clamp(3rem, 6vw, 5.5rem);
    line-height: 0.94;
    text-wrap: balance;
    text-shadow: 0 22px 54px rgba(0, 0, 0, 0.46);
}

body.wlu-homepage .wlu-hero-title {
    color: var(--wlu-white);
}

.wlu-home-hero__copy {
    max-width: 640px;
    color: #f4efe7 !important;
    opacity: 1;
    font-size: 1.08rem;
    font-weight: 600;
    text-shadow: 0 8px 22px rgba(0, 0, 0, 0.18);
}

.hero__quote {
    max-width: 640px;
    color: #F2D059 !important;
    opacity: 1;
    font-size: 1.08rem;
    font-weight: 600;
    text-shadow: 0 8px 22px rgba(0, 0, 0, 0.18);
}

.wlu-home-hero .wlu-actions {
    margin-top: 28px;
}

.wlu-home-hero .wlu-btn {
    box-shadow: 0 10px 28px rgba(200, 52, 47, 0.46), 0 20px 54px rgba(200, 52, 47, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

.wlu-home-hero__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 32px;
}

.wlu-stat-card {
    position: relative;
    display: grid;
    align-content: start;
    gap: 8px;
    min-height: 168px;
    padding: 20px 22px;
    overflow: hidden;
    border-radius: 24px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: linear-gradient(180deg, rgba(18, 21, 24, 0.84), rgba(11, 13, 16, 0.74));
    backdrop-filter: blur(18px);
    box-shadow: 0 22px 48px rgba(0, 0, 0, 0.26);
}

.wlu-stat-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, rgba(244, 207, 81, 0.9), rgba(200, 52, 47, 0.64));
}

.wlu-stat-card strong {
    display: block;
    color: var(--wlu-white);
    font-family: "Sora", sans-serif;
    font-size: clamp(1.35rem, 2.5vw, 1.85rem);
    line-height: 1.08;
    letter-spacing: -0.03em;
    overflow-wrap: anywhere;
    word-break: break-word;
    text-wrap: balance;
}

.wlu-stat-card span {
    display: block;
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.86rem;
    font-weight: 700;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.wlu-hero-panel {
    position: relative;
    overflow: hidden;
    padding: 32px;
    border-radius: 34px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: linear-gradient(150deg, rgba(8, 10, 14, 0.94), rgba(32, 22, 17, 0.92));
    box-shadow: 0 32px 82px rgba(0, 0, 0, 0.34);
    backdrop-filter: blur(24px);
}

.wlu-hero-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at top right, rgba(244, 207, 81, 0.12), transparent 26%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.03), transparent 34%);
    pointer-events: none;
}

.wlu-hero-panel__headline {
    margin: 16px 0 14px;
    color: var(--wlu-white);
    font-size: 1.95rem;
    line-height: 1.14;
    text-transform: uppercase;
}

.wlu-hero-panel p,
.wlu-hero-panel .wlu-link,
.wlu-hero-panel .wlu-feature-list span,
.wlu-page-hero__aside .wlu-feature-list span {
    color: rgba(255, 255, 255, 0.92);
}

body.wlu-homepage .wlu-hero-panel__headline,
body.wlu-homepage .wlu-hero-panel p,
body.wlu-homepage .wlu-hero-panel .wlu-feature-list span,
body.wlu-homepage .wlu-hero-panel .wlu-link {
    color: var(--wlu-white);
}

body.wlu-homepage .wlu-hero-panel__headline {
    color: var(--wlu-red);
}

.wlu-hero-panel .wlu-link {
    color: var(--wlu-white);
}

.wlu-hero-panel .wlu-link i {
    color: var(--wlu-gold);
}

.wlu-hero-panel .wlu-badge {
    background: rgba(244, 207, 81, 0.12);
    color: var(--wlu-gold-soft);
    border: 1px solid rgba(244, 207, 81, 0.16);
    /* Breathing room between the "Why WLU" badge and the headline below */
    margin-bottom: 16px;
}

.wlu-hero-panel .wlu-badge i {
    color: #ff7b61;
}

.wlu-hero-panel .wlu-feature-list i {
    color: #ff7b61;
}

.wlu-hero-panel .wlu-divider {
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.04));
}

.wlu-trust-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: -38px;
    position: relative;
    z-index: 2;
}

.wlu-trust-item {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 24px;
    border-radius: 28px;
    background: #ffffff;
    border: 1px solid rgba(17, 17, 17, 0.12);
    box-shadow: 0 2px 8px rgba(15, 15, 15, 0.06), 0 18px 52px rgba(15, 15, 15, 0.11);
    transition: transform 0.28s ease, box-shadow 0.28s ease;
}

.wlu-trust-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 4px 14px rgba(15, 15, 15, 0.08), 0 24px 60px rgba(15, 15, 15, 0.14);
}

.wlu-trust-item strong {
    display: block;
    margin-bottom: 4px;
    font-size: 1rem;
}

/* CKEditor outputs <p> tags — strip extra margin when inside inline slots */
.cms-item-body p:last-child { margin-bottom: 0; }
.cms-item-body p:first-child { margin-top: 0; }

.wlu-split {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 32px;
    align-items: center;
}

.wlu-media-stack {
    position: relative;
    min-height: 620px;
}

.wlu-media-stack__primary,
.wlu-media-stack__secondary,
.wlu-media-stack__accent {
    position: absolute;
    overflow: hidden;
    border-radius: 32px;
    box-shadow: var(--wlu-shadow);
}

.wlu-media-stack__primary,
.wlu-media-stack__secondary {
    background: #ddd;
}

.wlu-media-stack__primary img,
.wlu-media-stack__secondary img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wlu-media-stack__primary {
    inset: 0 15% 12% 0;
}

.wlu-media-stack__secondary {
    inset: 42% 0 0 32%;
    border: 8px solid rgba(255, 255, 255, 0.9);
}

.wlu-media-stack__accent {
    inset: auto 16% 4% auto;
    width: 150px;
    height: 150px;
    padding: 26px;
    background: linear-gradient(135deg, var(--wlu-red), var(--wlu-red-deep));
    color: var(--wlu-white);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 8px;
    text-align: left;
}

.wlu-media-stack__accent-label,
.wlu-media-stack__accent-subtitle {
    display: block;
    line-height: 1.2;
}

.wlu-media-stack__accent-label {
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.wlu-media-stack__accent strong {
    font-family: "Sora", sans-serif;
    font-size: 1.9rem;
    line-height: 1;
}

.wlu-media-stack__accent-subtitle {
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.25;
}

.wlu-impact-band {
    padding: 34px;
    border-radius: 36px;
    background:
        radial-gradient(circle at top right, rgba(255, 255, 255, 0.08), transparent 18%),
        linear-gradient(135deg, rgba(184, 55, 44, 0.98), rgba(135, 28, 25, 0.98));
    color: var(--wlu-white);
    box-shadow: 0 28px 60px rgba(145, 31, 27, 0.26);
}

.wlu-impact-band h2,
.wlu-impact-band h3,
.wlu-impact-band p,
.wlu-impact-band strong,
.wlu-impact-band span {
    color: var(--wlu-white);
}

.wlu-impact-band__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(260px, 0.95fr);
    gap: 28px;
    align-items: center;
}

.wlu-equation {
    display: grid;
    gap: 12px;
    margin-top: 18px;
}

.wlu-equation__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.wlu-equation__item strong {
    font-family: "Sora", sans-serif;
}

.wlu-story-feature {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 28px;
    padding: 20px;
    border-radius: 34px;
    background: #ffffff;
    border: 1px solid rgba(17, 17, 17, 0.12);
    box-shadow: 0 4px 16px rgba(15, 15, 15, 0.07), 0 20px 60px rgba(15, 15, 15, 0.11);
}

.wlu-story-feature__media {
    min-height: 360px;
    border-radius: 28px;
    overflow: hidden;
}

.wlu-story-feature__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wlu-story-feature__body {
    padding: 20px 16px 20px 8px;
}

/* ═══════════════════════════════════════════════════════════════════
   COMMUNITY VOICES — premium testimonial carousel
   ═══════════════════════════════════════════════════════════════════ */

/* Section overrides */
.wlu-voices-section {
    position: relative;
    overflow: hidden;
    padding: 100px 0 80px;
    background:
        radial-gradient(ellipse 70% 55% at 80% 50%, rgba(193,52,47,0.07) 0%, transparent 70%),
        linear-gradient(160deg, #0d0d10 0%, #111114 55%, #0a0a0d 100%);
}

/* Decorative giant quote mark behind the track */
.wlu-voices-section::before {
    content: "\201C";
    position: absolute;
    top: -40px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--wlu-font-heading);
    font-size: 32rem;
    font-weight: 900;
    line-height: 1;
    color: rgba(255,255,255,0.018);
    pointer-events: none;
    user-select: none;
    z-index: 0;
}

/* ── Layout shell ── */
.wlu-voices-layout {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 56px;
    align-items: center;
    position: relative;
    z-index: 1;
}

/* ── Left panel ── */
.wlu-voices-panel {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.wlu-voices-panel .wlu-section-title {
    font-size: clamp(1.8rem, 2.8vw, 2.6rem);
    line-height: 1.12;
    margin-bottom: 16px;
}

.wlu-voices-panel__copy {
    font-size: 0.9rem;
    color: #C9342F !important; 
    line-height: 1.7;
    margin-bottom: 36px;
}

/* Auto-play progress bar */
.wlu-voices-progress {
    width: 100%;
    height: 2px;
    background: rgba(255,255,255,0.10);
    border-radius: 2px;
    margin-bottom: 28px;
    overflow: hidden;
}

.wlu-voices-progress__fill {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, var(--wlu-gold), var(--wlu-red));
    border-radius: 2px;
    transition: width linear;  /* duration set by JS */
}

/* Arrow controls */
.wlu-voices-controls {
    display: flex;
    align-items: center;
    gap: 12px;
}

.wlu-voices-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    border: 1.5px solid rgba(255,255,255,0.14);
    background: rgba(255,255,255,0.05);
    color: rgba(255,255,255,0.75);
    font-size: 0.95rem;
    cursor: pointer;
    transition: all 0.22s ease;
}

.wlu-voices-arrow:hover {
    background: var(--wlu-gold);
    border-color: var(--wlu-gold);
    color: #111;
    transform: scale(1.08);
    box-shadow: 0 4px 18px rgba(244,207,81,0.28);
}

.wlu-voices-arrow:disabled {
    opacity: 0.25;
    pointer-events: none;
}

.wlu-voices-count {
    font-family: var(--wlu-font-heading);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: rgba(255,255,255,0.32);
    margin-left: 4px;
}

.wlu-voices-count em {
    font-style: normal;
    color: rgba(255,255,255,0.80);
}

/* ── Right: carousel viewport ── */
.wlu-voices-viewport {
    overflow: hidden;
    position: relative;
}

/* Fade edge on the right */
.wlu-voices-viewport::after {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 80px;
    background: linear-gradient(to right, transparent, #111114);
    pointer-events: none;
    z-index: 2;
}

.wlu-voices-track {
    display: flex;
    gap: 20px;
    transition: transform 0.60s cubic-bezier(0.42, 0, 0.18, 1);
    will-change: transform;
}

/* ── Individual testimonial card ── */
.wlu-tcard {
    flex: 0 0 calc(33.333% - 14px);
    min-width: 0;
    display: flex;
    flex-direction: column;
    padding: 32px 28px 26px;
    border-radius: 24px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 8px 32px rgba(0,0,0,0.28);
    transition: background 0.35s ease, border-color 0.35s ease,
                transform 0.35s ease, box-shadow 0.35s ease;
    position: relative;
    overflow: hidden;
}

/* Gold left accent stripe on featured card */
.wlu-tcard.is-featured {
    background: rgba(255,255,255,0.085);
    border-color: rgba(244,207,81,0.22);
    box-shadow: 0 16px 48px rgba(0,0,0,0.38), 0 0 0 1px rgba(244,207,81,0.10);
    transform: translateY(-4px);
}

.wlu-tcard.is-featured::before {
    content: "";
    position: absolute;
    left: 0;
    top: 20%;
    height: 60%;
    width: 3px;
    background: linear-gradient(to bottom, transparent, var(--wlu-gold), transparent);
    border-radius: 0 2px 2px 0;
}

/* Big decorative quote mark */
.wlu-tcard__quote-mark {
    font-family: Georgia, serif;
    font-size: 4.5rem;
    line-height: 0.7;
    color: var(--wlu-gold);
    opacity: 0.55;
    margin-bottom: 12px;
    display: block;
    user-select: none;
}

.wlu-tcard.is-featured .wlu-tcard__quote-mark {
    opacity: 0.85;
}

/* Star rating */
.wlu-tcard__stars {
    display: flex;
    gap: 3px;
    margin-bottom: 14px;
}

.wlu-tcard__stars i {
    font-size: 0.72rem;
    color: var(--wlu-gold);
}

/* Quote body */
.wlu-tcard__body {
    font-size: 0.88rem;
    line-height: 1.75;
    color: rgba(255,255,255,0.70);
    flex: 1;
    margin-bottom: 24px;
    font-style: italic;
}

.wlu-tcard.is-featured .wlu-tcard__body {
    color: rgba(255,255,255,0.90);
}

/* Divider */
.wlu-tcard__divider {
    height: 1px;
    background: rgba(255,255,255,0.08);
    margin-bottom: 20px;
}

/* Author footer */
.wlu-tcard__author {
    display: flex;
    align-items: center;
    gap: 14px;
}

.wlu-tcard__avatar {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    flex-shrink: 0;
    object-fit: cover;
    border: 2px solid rgba(255,255,255,0.10);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--wlu-font-heading);
    font-size: 0.88rem;
    font-weight: 800;
    color: #111;
    overflow: hidden;
}

.wlu-tcard.is-featured .wlu-tcard__avatar {
    border-color: rgba(244,207,81,0.40);
    box-shadow: 0 0 0 3px rgba(244,207,81,0.10);
}

.wlu-tcard__name {
    font-family: var(--wlu-font-heading);
    font-size: 0.9rem;
    font-weight: 700;
    color: #fff;
    display: block;
    line-height: 1.2;
}

.wlu-tcard__role {
    font-size: 0.74rem;
    color: rgba(255,255,255,0.40);
    display: block;
    margin-top: 2px;
    letter-spacing: 0.03em;
}

/* ── Dots ── */
.wlu-voices-dots {
    display: flex;
    gap: 6px;
    margin-top: 32px;
}

.wlu-voices-dot {
    height: 3px;
    width: 20px;
    border-radius: 2px;
    background: rgba(255,255,255,0.15);
    border: none;
    padding: 0;
    cursor: pointer;
    transition: background 0.25s ease, width 0.25s ease;
}

.wlu-voices-dot.is-active {
    width: 40px;
    background: var(--wlu-gold);
}

/* ── Responsive ── */
@media (max-width: 1100px) {
    .wlu-voices-layout {
        grid-template-columns: 260px 1fr;
        gap: 36px;
    }
    .wlu-tcard {
        flex-basis: calc(50% - 10px);
    }
}

@media (max-width: 860px) {
    .wlu-voices-layout {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .wlu-voices-panel {
        max-width: 560px;
    }
    .wlu-tcard {
        flex-basis: calc(50% - 10px);
    }
    .wlu-voices-viewport::after {
        width: 48px;
    }
}

@media (max-width: 580px) {
    .wlu-voices-section {
        padding: 72px 0 60px;
    }
    .wlu-tcard {
        flex-basis: calc(85% - 10px);
    }
}

/* ── Legacy avatar styles (kept for backward compat) ── */

.wlu-avatar,
.wlu-avatar--mono {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(244, 207, 81, 0.95), rgba(255, 219, 104, 0.72));
    color: var(--wlu-black);
    font-family: "Sora", sans-serif;
    font-size: 1rem;
    font-weight: 800;
    overflow: hidden;
}

.wlu-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ── Page Hero ── */
.wlu-page-hero {
    position: relative;
    /* Pull section up behind the fixed header so no gap shows */
    margin-top: calc(-1 * (var(--wlu-header-total) + 16px));
    padding-top: calc(var(--wlu-header-total) + 16px + clamp(72px, 10vw, 116px));
    padding-bottom: clamp(72px, 10vw, 116px);
    background:
        radial-gradient(ellipse 80% 60% at 90% -10%, rgba(244, 207, 81, 0.18) 0%, transparent 55%),
        radial-gradient(ellipse 60% 50% at -5% 110%, rgba(200, 52, 47, 0.30) 0%, transparent 50%),
        linear-gradient(160deg, #060608 0%, #0d0e11 50%, #111013 100%);
    overflow: hidden;
}

/* ── Photo-background hero variant ──────────────────────────────────────── */
.wlu-page-hero--photo {
    /* Override the solid gradient — the image + overlays replace it */
    background: #060608;
}

/* The actual photo layer — sits behind all overlays */
.wlu-page-hero__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center 40%;
    background-repeat: no-repeat;
    z-index: 0;
    /* Slight desaturation to keep it editorial rather than holiday-brochure */
    filter: saturate(0.85) brightness(0.92);
    /* Subtle ken-burns drift on load */
    animation: wlu-hero-drift 18s ease-in-out infinite alternate;
    will-change: transform;
}

@keyframes wlu-hero-drift {
    from { transform: scale(1.00) translate(0, 0); }
    to   { transform: scale(1.06) translate(-1%, 1%); }
}

/* Layered overlay: left-heavy dark gradient + warm brand tint */
.wlu-page-hero__bg-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        /* Heavy dark wash across the entire frame — keeps both columns legible */
        linear-gradient(180deg,
            rgba(4,4,6,0.62)  0%,
            rgba(4,4,6,0.52) 60%,
            rgba(4,4,6,0.72) 100%),
        /* Strong left-side blackout so the text column pops */
        linear-gradient(100deg,
            rgba(4,4,6,0.82)  0%,
            rgba(4,4,6,0.55) 45%,
            rgba(4,4,6,0.15) 100%),
        /* WLU red warmth bleeding in from bottom-left */
        radial-gradient(ellipse 55% 50% at -5% 110%,
            rgba(200, 52, 47, 0.30) 0%,
            transparent 55%),
        /* Gold glow from top-right — matches other page heroes */
        radial-gradient(ellipse 70% 55% at 95% -5%,
            rgba(244, 207, 81, 0.14) 0%,
            transparent 55%);
}

/* Ensure all interior elements stack above both image + overlay */
.wlu-page-hero--photo .wlu-page-hero__texture,
.wlu-page-hero--photo .wlu-page-hero__grid {
    position: relative;
    z-index: 2;
}

/* On photo heroes the aside card gets a subtle frosted-glass feel */
.wlu-page-hero--photo .wlu-page-hero__aside {
    background: rgba(13, 14, 17, 0.72);
    backdrop-filter: blur(14px) saturate(1.3);
    -webkit-backdrop-filter: blur(14px) saturate(1.3);
    border: 1px solid rgba(255, 255, 255, 0.09);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255,255,255,0.05);
}

/* ── "Clear" photo hero variant (hospital) ──────────────────────────────
   Shows the background image more sharply and with a stronger zoom, while
   keeping a left-side wash so the top heading/text stays fully legible. */
.wlu-page-hero--clear .wlu-page-hero__bg {
    /* Remove desaturation/dimming so the render reads clearly */
    filter: none;
    /* More pronounced, slower ken-burns zoom */
    animation: wlu-hero-zoom 26s ease-in-out infinite alternate;
}

@keyframes wlu-hero-zoom {
    from { transform: scale(1.08) translate(0, 0); }
    to   { transform: scale(1.22) translate(-1.5%, 1%); }
}

.wlu-page-hero--clear .wlu-page-hero__bg-overlay {
    background:
        /* Lighter full-frame wash — keeps depth without hiding the image */
        linear-gradient(180deg,
            rgba(4,4,6,0.28)  0%,
            rgba(4,4,6,0.22) 55%,
            rgba(4,4,6,0.45) 100%),
        /* Keep a strong left blackout only where the heading/text sit */
        linear-gradient(100deg,
            rgba(4,4,6,0.80)  0%,
            rgba(4,4,6,0.42) 42%,
            rgba(4,4,6,0.00) 72%),
        /* WLU red warmth from bottom-left */
        radial-gradient(ellipse 55% 50% at -5% 110%,
            rgba(200, 52, 47, 0.22) 0%,
            transparent 55%),
        /* Gold glow from top-right */
        radial-gradient(ellipse 70% 55% at 95% -5%,
            rgba(244, 207, 81, 0.12) 0%,
            transparent 55%);
}

/* ── "Zoomed-out clear" photo hero (satellite city) ─────────────────────
   Sharper, un-dimmed background held at its least-cropped (zoomed-out) state
   so more of the render is visible. The strong left-side wash is kept so the
   heading, eyebrow and intro text on top stay fully legible. */
.wlu-page-hero--sc-clear .wlu-page-hero__bg {
    /* Natural, crisp colour — drop the desaturate/brightness dimming */
    filter: contrast(1.04) saturate(1.02);
    /* Balanced framing, and hold the un-zoomed cover state (no ken-burns
       zoom-in) so the image reads as zoomed out and shows more of the scene */
    background-position: center center;
    animation: none;
    transform: scale(1);
}

.wlu-page-hero--sc-clear .wlu-page-hero__bg-overlay {
    background:
        /* Much lighter full-frame wash so the image reads clearly */
        linear-gradient(180deg,
            rgba(4,4,6,0.24)  0%,
            rgba(4,4,6,0.18) 55%,
            rgba(4,4,6,0.42) 100%),
        /* Keep the strong left blackout so the top heading/text stays legible */
        linear-gradient(100deg,
            rgba(4,4,6,0.82)  0%,
            rgba(4,4,6,0.50) 42%,
            rgba(4,4,6,0.06) 100%),
        /* WLU red warmth bleeding in from bottom-left */
        radial-gradient(ellipse 55% 50% at -5% 110%,
            rgba(200, 52, 47, 0.24) 0%,
            transparent 55%),
        /* Gold glow from top-right */
        radial-gradient(ellipse 70% 55% at 95% -5%,
            rgba(244, 207, 81, 0.12) 0%,
            transparent 55%);
}

/* Gold top-edge accent line */
.wlu-page-hero::after {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, var(--wlu-gold) 0%, rgba(244, 207, 81, 0.0) 70%);
    z-index: 2;
}

/* Decorative crimson orb — bottom-left */
.wlu-page-hero::before {
    content: "";
    position: absolute;
    inset: auto auto -80px -80px;
    width: 340px;
    height: 340px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(200, 52, 47, 0.38) 0%, transparent 70%);
    pointer-events: none;
}

/* Subtle dot-grid texture */
.wlu-page-hero__texture {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(255,255,255,0.045) 1px, transparent 1px);
    background-size: 28px 28px;
    pointer-events: none;
    z-index: 0;
}

.wlu-page-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
}

.wlu-page-hero__grid.has-aside {
    grid-template-columns: minmax(0, 1.15fr) minmax(310px, 0.85fr);
    align-items: center;
}

/* Breadcrumbs */
.wlu-page-hero__crumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 20px;
    color: rgba(255, 255, 255, 0.55) !important;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.wlu-page-hero__crumbs a {
    color: rgba(255, 255, 255, 0.82) !important;
    transition: color 0.2s;
}

.wlu-page-hero__crumbs a:hover {
    color: var(--wlu-gold) !important;
}

.wlu-page-hero__crumbs i {
    color: rgba(255, 255, 255, 0.38);
    font-size: 0.7rem;
}

/* Eyebrow badge on dark hero */
.wlu-page-hero .wlu-eyebrow {
    background: rgba(244, 207, 81, 0.14);
    color: var(--wlu-gold);
    border: 1px solid rgba(244, 207, 81, 0.28);
}

/* Main title — !important overrides global body h1 colour rule */
.wlu-page-hero__title {
    margin: 16px 0 18px;
    color: #ffffff !important;
    font-size: clamp(2.6rem, 5.2vw, 5rem);
    line-height: 1.0;
    letter-spacing: -0.045em;
    font-weight: 800;
    text-shadow: 0 4px 32px rgba(0, 0, 0, 0.45);
}

.wlu-page-hero__text {
    max-width: 600px;
    color: rgba(255, 255, 255, 0.82) !important;
    font-size: 1.07rem;
    line-height: 1.76;
}

/* Stat pills */
.wlu-page-hero__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.wlu-page-hero__stat {
    min-width: 150px;
    padding: 16px 22px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.14);
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.07);
    backdrop-filter: blur(16px);
    transition: background 0.2s, border-color 0.2s;
}

.wlu-page-hero__stat:hover {
    background: rgba(255, 255, 255, 0.11);
    border-color: rgba(244, 207, 81, 0.32);
}

.wlu-page-hero__stat strong {
    display: block;
    color: var(--wlu-gold) !important;
    font-family: "Sora", sans-serif;
    font-size: 1.45rem;
    font-weight: 800;
    letter-spacing: -0.03em;
}

.wlu-page-hero__stat span {
    display: block;
    margin-top: 4px;
    color: rgba(255, 255, 255, 0.72) !important;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Aside card — premium dark glass */
.wlu-page-hero__aside {
    padding: 34px 30px;
    border-radius: 28px;
    background: linear-gradient(145deg, rgba(20, 21, 26, 0.92), rgba(14, 14, 18, 0.96));
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-top: 2px solid var(--wlu-gold);
    box-shadow:
        0 2px 0 0 rgba(244, 207, 81, 0.6),
        0 32px 80px rgba(0, 0, 0, 0.55),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(28px);
}

/* Badge inside aside */
.wlu-page-hero__aside .wlu-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 12px;
    border-radius: 50px;
    background: rgba(244, 207, 81, 0.14);
    color: var(--wlu-gold);
    border: 1px solid rgba(244, 207, 81, 0.28);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 4px;
}

/* Contact hero: extra breathing room between the "Quick contact" badge
   and the address heading below it */
.wlu-page-hero--contact .wlu-page-hero__aside .wlu-badge {
    margin-bottom: 18px;
}

/* Aside heading — !important overrides global body h3 colour */
.wlu-page-hero__aside h3 {
    color: #ffffff !important;
    margin: 14px 0 12px;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.22;
    letter-spacing: -0.03em;
}

/* Stacked aside title — each sentence on its own line with breathing room */
.wlu-page-hero__aside-title--stacked {
    display: flex;
    flex-direction: column;
    gap: 0.5em;
}

.wlu-page-hero__aside-line {
    display: block;
}

.wlu-page-hero__aside p {
    color: rgba(255, 255, 255, 0.80) !important;
    font-size: 0.97rem;
    line-height: 1.72;
}

/* Feature list inside aside */
.wlu-page-hero__aside .wlu-feature-list {
    margin-top: 18px;
    display: grid;
    gap: 10px;
}

.wlu-page-hero__aside .wlu-feature-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.wlu-page-hero__aside .wlu-feature-list i {
    flex-shrink: 0;
    margin-top: 3px;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(244, 207, 81, 0.18);
    color: var(--wlu-gold);
    font-size: 0.72rem;
}

.wlu-page-hero__aside .wlu-feature-list span {
    color: rgba(255, 255, 255, 0.84) !important;
    font-size: 0.92rem;
    line-height: 1.55;
}

/* ═══════════════════════════════════════════════════════
   MISSION · VISION · VALUES — bespoke section
   ═══════════════════════════════════════════════════════ */
.wlu-mvv {
    padding: clamp(72px, 10vw, 120px) 0;
    background:
        radial-gradient(ellipse 70% 50% at 100% 5%, rgba(200, 52, 47, 0.13) 0%, transparent 55%),
        radial-gradient(ellipse 50% 40% at 0% 100%, rgba(244, 207, 81, 0.07) 0%, transparent 50%),
        linear-gradient(175deg, #090a0d 0%, #0f1013 100%);
    overflow: hidden;
}

.wlu-mvv__header {
    max-width: 640px;
    margin-bottom: 56px;
}

.wlu-mvv__header .wlu-section-title {
    color: #ffffff !important;
    margin-top: 14px;
}

.wlu-mvv__header .wlu-eyebrow {
    background: rgba(244, 207, 81, 0.12);
    color: var(--wlu-gold);
    border: 1px solid rgba(244, 207, 81, 0.26);
}

/* Three-column panel strip, flush with hairline dividers */
.wlu-mvv__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 24px;
    overflow: hidden;
}

.wlu-mvv__card {
    position: relative;
    padding: 48px 38px 44px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.025);
    transition: background 0.3s ease;
}

/* Divider between cards */
.wlu-mvv__card + .wlu-mvv__card {
    border-left: 1px solid rgba(255, 255, 255, 0.08);
}

/* Gold-to-crimson reveal bar on hover */
.wlu-mvv__card::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 3px;
    background: linear-gradient(90deg, var(--wlu-gold), var(--wlu-red));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.wlu-mvv__card:hover {
    background: rgba(255, 255, 255, 0.05);
}

.wlu-mvv__card:hover::after {
    transform: scaleX(1);
}

/* Watermark index number */
.wlu-mvv__index {
    position: absolute;
    top: -16px;
    right: 16px;
    font-family: "Sora", sans-serif;
    font-size: 8rem;
    font-weight: 900;
    color: rgba(255, 255, 255, 0.035);
    line-height: 1;
    pointer-events: none;
    user-select: none;
    letter-spacing: -0.06em;
}

/* Icon tile */
.wlu-mvv__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border-radius: 16px;
    background: rgba(244, 207, 81, 0.11);
    border: 1px solid rgba(244, 207, 81, 0.22);
    color: var(--wlu-gold);
    font-size: 1.4rem;
    margin-bottom: 26px;
    transition: background 0.25s, border-color 0.25s, transform 0.25s;
}

.wlu-mvv__card:hover .wlu-mvv__icon {
    background: rgba(244, 207, 81, 0.2);
    border-color: rgba(244, 207, 81, 0.42);
    transform: scale(1.06);
}

/* Card heading */
.wlu-mvv__title {
    color: #ffffff !important;
    font-size: 1.35rem;
    font-weight: 800;
    margin: 0 0 14px;
    letter-spacing: -0.03em;
}

/* Card body */
.wlu-mvv__copy {
    color: rgba(255, 255, 255, 0.68) !important;
    font-size: 0.96rem;
    line-height: 1.8;
    margin: 0;
}

/* ─── Responsive ───────────────────────────────────────── */
@media (max-width: 767px) {
    .wlu-mvv__grid {
        grid-template-columns: 1fr;
    }

    .wlu-mvv__card + .wlu-mvv__card {
        border-left: none;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
    }

    .wlu-mvv__card {
        padding: 34px 26px 32px;
    }
}

/* ────────────────────────────────────────────────────────── */

.wlu-timeline {
    display: grid;
    gap: 16px;
}

.wlu-timeline__item {
    position: relative;
    padding: 24px 24px 24px 74px;
    border-radius: 28px;
    background: #ffffff;
    border: 1px solid rgba(17, 17, 17, 0.11);
    box-shadow: 0 2px 8px rgba(15, 15, 15, 0.05), 0 10px 32px rgba(15, 15, 15, 0.07);
}

.wlu-timeline__item::before {
    content: attr(data-step);
    position: absolute;
    left: 22px;
    top: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--wlu-gold), #ffd95f);
    color: var(--wlu-black);
    font-size: 0.86rem;
    font-weight: 800;
}

.wlu-profile-card {
    padding: 28px;
    border-radius: 30px;
    background: #ffffff;
    border: 1px solid rgba(17, 17, 17, 0.11);
    box-shadow: 0 2px 8px rgba(15, 15, 15, 0.06), 0 16px 48px rgba(15, 15, 15, 0.09);
}

.wlu-profile-card__meta {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 20px;
}

.wlu-profile-card__name {
    margin: 0;
    font-size: 1.2rem;
}

.wlu-profile-card__role {
    color: var(--wlu-red);
    font-size: 0.84rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.wlu-accordion {
    display: grid;
    gap: 14px;
}

.wlu-accordion details {
    border: 1px solid rgba(17, 17, 17, 0.11);
    border-radius: 24px;
    background: #ffffff;
    box-shadow: 0 2px 8px rgba(15, 15, 15, 0.05), 0 10px 32px rgba(15, 15, 15, 0.07);
    transition: border-color 0.24s ease;
}

.wlu-accordion details[open] {
    border-color: rgba(200, 52, 47, 0.22);
}

.wlu-accordion summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 22px 24px;
    cursor: pointer;
    list-style: none;
    font-family: "Sora", sans-serif;
    font-size: 1rem;
    font-weight: 700;
}

.wlu-accordion summary::-webkit-details-marker {
    display: none;
}

.wlu-accordion__body {
    padding: 0 24px 24px;
}

.wlu-contact-grid,
.wlu-auth-shell {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 28px;
}

.wlu-contact-card,
.wlu-auth-panel {
    padding: 32px;
    border-radius: 30px;
    background: #ffffff;
    border: 1px solid rgba(17, 17, 17, 0.11);
    box-shadow: 0 2px 8px rgba(15, 15, 15, 0.06), 0 16px 52px rgba(15, 15, 15, 0.10);
    position: relative;
    z-index: 2;
    isolation: isolate;
    touch-action: manipulation;
}

.wlu-auth-aside {
    padding: 34px;
    border-radius: 34px;
    background:
        radial-gradient(circle at top right, rgba(244, 207, 81, 0.14), transparent 28%),
        linear-gradient(135deg, #090909 0%, #151515 100%);
    color: var(--wlu-white);
}

.wlu-auth-aside h2,
.wlu-auth-aside h3 {
    color: var(--wlu-white);
}

.wlu-auth-aside p,
.wlu-auth-aside li,
.wlu-auth-aside .wlu-help-text {
    color: rgba(255, 255, 255, 0.76);
}

.wlu-contact-list {
    display: grid;
    gap: 18px;
    margin-top: 20px;
}

.wlu-contact-list a {
    color: var(--wlu-red);
    font-weight: 800;
}

.wlu-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    position: relative;
    z-index: 2;
}

.wlu-form-field {
    display: grid;
    gap: 8px;
}

.wlu-form-field--full {
    grid-column: 1 / -1;
}

.wlu-form-field label {
    color: var(--wlu-black);
    font-size: 0.88rem;
    font-weight: 800;
}

.wlu-form-field input:not([type="radio"]):not([type="checkbox"]),
.wlu-form-field select,
.wlu-form-field textarea {
    width: 100%;
    min-height: 58px;
    padding: 0 18px;
    border: 1.5px solid rgba(17, 17, 17, 0.18);
    border-radius: 18px;
    background: #ffffff;
    color: var(--wlu-black);
    transition: border-color 0.24s ease, box-shadow 0.24s ease;
    position: relative;
    z-index: 1;
    touch-action: manipulation;
}

.wlu-form-field textarea {
    min-height: 160px;
    padding-top: 18px;
    resize: vertical;
}

.wlu-form-field input:not([type="radio"]):not([type="checkbox"]):focus,
.wlu-form-field select:focus,
.wlu-form-field textarea:focus {
    border-color: var(--wlu-red);
    box-shadow: 0 0 0 4px rgba(200, 52, 47, 0.12);
    outline: none;
}

.wlu-checkbox {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    color: var(--wlu-muted);
    font-size: 0.95rem;
}

.wlu-checkbox input {
    margin-top: 6px;
}

.wlu-summary-card {
    padding: 20px 22px;
    border-radius: 22px;
    background: rgba(244, 207, 81, 0.18);
    border: 1px solid rgba(244, 207, 81, 0.28);
}

.wlu-help-text {
    font-size: 0.82rem;
    color: var(--wlu-muted);
}

.wlu-map,
.wlu-embed {
    min-height: 420px;
    border-radius: 34px;
    overflow: hidden;
    box-shadow: var(--wlu-shadow);
}

.wlu-map iframe,
.wlu-embed iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.wlu-gallery-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 16px;
}

.wlu-gallery-tile {
    position: relative;
    min-height: 220px;
    border-radius: 28px;
    overflow: hidden;
    box-shadow: var(--wlu-shadow-soft);
}

.wlu-gallery-tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wlu-gallery-tile--wide {
    grid-column: span 7;
}

.wlu-gallery-tile--tall {
    grid-column: span 5;
    min-height: 460px;
}

.wlu-gallery-tile--half {
    grid-column: span 6;
}

.wlu-gallery-tile__overlay {
    position: absolute;
    inset: auto 0 0;
    padding: 20px;
    background: linear-gradient(180deg, rgba(9, 9, 9, 0) 0%, rgba(9, 9, 9, 0.72) 100%);
    color: var(--wlu-white);
}

.wlu-gallery-tile__overlay h4 {
    color: var(--wlu-white);
    margin: 0 0 6px;
}

.wlu-pagination .pagination {
    justify-content: center;
    gap: 10px;
}

.wlu-pagination .page-link {
    min-width: 46px;
    min-height: 46px;
    border: 0;
    border-radius: 999px;
    color: var(--wlu-black);
    font-weight: 800;
    box-shadow: var(--wlu-shadow-soft);
}

.wlu-pagination .active > .page-link,
.wlu-pagination .page-link:hover {
    background: var(--wlu-red);
    color: var(--wlu-white);
}

/* ═══════════════════════════════════════════════════════════════════
   FOOTER — premium redesign
   ═══════════════════════════════════════════════════════════════════ */

.wlu-footer {
    position: relative;
    margin-top: 0;
    padding: 0 0 120px;
}

/* Gold–red gradient accent bar sitting above the panel */
.wlu-footer__accent-bar {
    height: 3px;
    background: linear-gradient(90deg,
        var(--wlu-red) 0%,
        var(--wlu-gold) 40%,
        var(--wlu-gold) 60%,
        var(--wlu-red) 100%);
}

.wlu-footer__panel {
    width: min(calc(100vw - 24px), 1400px);
    margin: 0 auto;
    padding: 64px 48px 36px;
    border-radius: 0 0 40px 40px;
    background:
        radial-gradient(ellipse 60% 50% at 100% 0%, rgba(244,207,81,0.10) 0%, transparent 60%),
        radial-gradient(ellipse 50% 60% at 0% 100%, rgba(193,52,47,0.12) 0%, transparent 55%),
        linear-gradient(160deg, #0e0e10 0%, #141313 50%, #111010 100%);
    color: rgba(255,255,255,0.72);
}

/* ── TOP: hero headline + newsletter ── */
.wlu-footer__top {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 48px;
    align-items: start;
    padding-bottom: 52px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    margin-bottom: 48px;
}

/* Project column */
.wlu-footer__project {
    padding-top: 4px;
}

.wlu-footer__project-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.10);
    font-family: var(--wlu-font-body);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.65);
    margin-bottom: 24px;
}

.wlu-footer__project-title {
    font-family: var(--wlu-font-heading) !important;
    font-size: clamp(2rem, 3.4vw, 3.2rem) !important;
    font-weight: 800 !important;
    line-height: 1.08 !important;
    letter-spacing: -0.04em;
    color: #ffffff !important;
    margin: 0 0 20px !important;
}

.wlu-footer__headline-accent {
    font-style: normal;
    color: var(--wlu-gold) !important;
}

.wlu-footer__project-copy {
    font-size: 0.95rem !important;
    line-height: 1.72 !important;
    color: rgba(255,255,255,0.58) !important;
    max-width: 480px;
    margin-bottom: 32px !important;
}

.wlu-footer__project-actions {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}

.wlu-footer__text-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.88rem;
    font-weight: 700;
    color: rgba(255,255,255,0.60);
    text-decoration: none;
    transition: color 0.2s ease, gap 0.2s ease;
}

.wlu-footer__text-link:hover {
    color: var(--wlu-gold);
    gap: 12px;
}

/* Newsletter card */
.wlu-footer__newsletter {
    width: 100%;
    max-width: none;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.10);
    border-radius: 28px;
    overflow: hidden;
    box-shadow:
        0 0 0 1px rgba(244,207,81,0.06),
        0 24px 48px rgba(0,0,0,0.28),
        inset 0 1px 0 rgba(255,255,255,0.06);
    transition: border-color 0.3s ease;
}

.wlu-footer__newsletter:focus-within {
    border-color: rgba(244,207,81,0.28);
    box-shadow:
        0 0 0 1px rgba(244,207,81,0.14),
        0 24px 48px rgba(0,0,0,0.32),
        inset 0 1px 0 rgba(255,255,255,0.08);
}

.wlu-footer__newsletter-inner {
    padding: 32px;
}

.wlu-footer__newsletter-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    border-radius: 999px;
    background: rgba(244,207,81,0.12);
    border: 1px solid rgba(244,207,81,0.20);
    font-size: 0.70rem;
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--wlu-gold);
    margin-bottom: 16px;
}

.wlu-footer__newsletter-title {
    font-family: var(--wlu-font-heading) !important;
    font-size: 1.4rem !important;
    font-weight: 800 !important;
    color: #ffffff !important;
    margin: 0 0 10px !important;
    letter-spacing: -0.02em;
}

.wlu-footer__newsletter-copy {
    font-size: 0.83rem !important;
    line-height: 1.65 !important;
    color: rgba(255,255,255,0.50) !important;
    margin-bottom: 22px !important;
}

.wlu-footer__newsletter-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
}

.wlu-footer__newsletter-field {
    position: relative;
    display: flex;
    align-items: center;
}

.wlu-footer__newsletter-field i {
    position: absolute;
    left: 16px;
    color: rgba(255,255,255,0.36);
    font-size: 0.9rem;
    pointer-events: none;
}

.wlu-footer__newsletter-field input {
    width: 100%;
    height: 52px;
    padding: 0 18px 0 42px;
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,0.12);
    background: rgba(255,255,255,0.07);
    color: #fff;
    font-size: 0.9rem;
    font-family: var(--wlu-font-body);
    outline: none;
    transition: border-color 0.2s ease, background 0.2s ease;
}

.wlu-footer__newsletter-field input:focus {
    border-color: rgba(244,207,81,0.40);
    background: rgba(255,255,255,0.10);
}

.wlu-footer__newsletter-field input::placeholder {
    color: rgba(255,255,255,0.36);
}

.wlu-footer__newsletter-note {
    display: flex !important;
    align-items: center;
    gap: 6px;
    font-size: 0.72rem !important;
    color: rgba(255,255,255,0.30) !important;
    margin: 12px 0 0 !important;
}

/* ── Newsletter AJAX feedback ── */
.wlu-footer__newsletter-feedback {
    min-height: 0;
    margin: 0;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: .01em;
    transition: opacity .25s ease, max-height .3s ease;
    opacity: 0;
    max-height: 0;
    overflow: hidden;
}
.wlu-footer__newsletter-feedback.is-visible {
    opacity: 1;
    max-height: 60px;
    margin-top: 10px;
}
.wlu-footer__newsletter-feedback.is-success {
    color: #6ee7b7; /* emerald-300 — legible on dark footer */
}
.wlu-footer__newsletter-feedback.is-error {
    color: #fca5a5; /* red-300 — legible on dark footer */
}
#wlu-nl-btn[data-loading] {
    opacity: .7;
    cursor: not-allowed;
    pointer-events: none;
}
/* Visually-hidden label helper (sr-only equivalent without Tailwind) */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

/* ── LINKS GRID ── */
.wlu-footer__links {
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr 1fr;
    gap: 32px;
    padding-bottom: 40px;
    border-bottom: 1px solid rgba(255,255,255,0.07);
    margin-bottom: 0;
}

/* Brand column */
.wlu-footer__brand-logo {
    display: inline-block;
    margin-bottom: 18px;
}

.wlu-footer__brand-logo img {
    height: 64px;
    width: auto;
    border-radius: 16px;
}

.wlu-footer__brand-copy {
    font-size: 0.83rem !important;
    line-height: 1.7 !important;
    color: rgba(255,255,255,0.46) !important;
    margin-bottom: 20px !important;
    max-width: 260px;
}

.wlu-footer__contact-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 22px;
}

.wlu-footer__contact-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.80rem;
    color: rgba(255,255,255,0.46);
    text-decoration: none;
    line-height: 1.5;
    transition: color 0.2s ease;
}

.wlu-footer__contact-item i {
    font-size: 0.85rem;
    color: var(--wlu-gold);
    flex-shrink: 0;
    margin-top: 2px;
    opacity: 0.80;
}

a.wlu-footer__contact-item:hover {
    color: rgba(255,255,255,0.80);
}

/* Column headings */
.wlu-footer__col-title {
    font-family: var(--wlu-font-heading) !important;
    font-size: 0.78rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.90) !important;
    margin: 0 0 20px !important;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    position: relative;
}

/* Gold underline accent on col title */
.wlu-footer__col-title::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 28px;
    height: 1px;
    background: var(--wlu-gold);
}

.wlu-footer__column ul {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.wlu-footer__column ul li a {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 8px 0;
    font-size: 0.85rem;
    font-weight: 500;
    color: rgba(255,255,255,0.52);
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,0.04);
    transition: color 0.2s ease, gap 0.2s ease, padding-left 0.2s ease;
}

.wlu-footer__column ul li:last-child a {
    border-bottom: none;
}

.wlu-footer__column ul li a i {
    font-size: 0.62rem;
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity 0.2s ease, transform 0.2s ease;
    flex-shrink: 0;
    margin-right: 0;
    width: 0;
    overflow: hidden;
    transition: all 0.22s ease;
}

.wlu-footer__column ul li a:hover {
    color: rgba(255,255,255,0.92);
    padding-left: 6px;
}

.wlu-footer__column ul li a:hover i {
    opacity: 1;
    transform: translateX(0);
    width: 14px;
    margin-right: 4px;
}

/* ── SOCIAL ICONS ── */
.wlu-socials {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.wlu-socials a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.08);
    color: rgba(255,255,255,0.55);
    font-size: 0.85rem;
    text-decoration: none;
    transition: background 0.22s ease, color 0.22s ease,
                border-color 0.22s ease, transform 0.22s ease;
}

.wlu-socials a:hover {
    background: var(--wlu-gold);
    border-color: var(--wlu-gold);
    color: #111;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(244,207,81,0.26);
}

/* ── BOTTOM BAR ── */
.wlu-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-top: 28px;
    flex-wrap: wrap;
}

.wlu-footer__copyright {
    font-size: 0.78rem;
    color: rgba(255,255,255,0.30);
    flex-shrink: 0;
}

.wlu-footer__bottom-tagline {
    font-size: 0.78rem;
    color: rgba(255,255,255,0.28);
    display: flex;
    align-items: center;
    gap: 6px;
}

.wlu-footer__bottom-links {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

.wlu-footer__bottom-links a {
    font-size: 0.78rem;
    color: rgba(255,255,255,0.32);
    text-decoration: none;
    transition: color 0.2s ease;
}

.wlu-footer__bottom-links a:hover {
    color: var(--wlu-gold);
}

/* ── Footer responsive ── */
@media (max-width: 1100px) {
    .wlu-footer__panel {
        padding: 48px 32px 28px;
    }
    .wlu-footer__top {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .wlu-footer__links {
        grid-template-columns: 1.4fr 1fr 1fr 1fr;
    }
}

@media (max-width: 860px) {
    .wlu-footer__top {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .wlu-footer__links {
        grid-template-columns: 1fr 1fr;
        gap: 28px 24px;
    }
    .wlu-footer__column--brand {
        grid-column: span 2;
    }
    .wlu-footer__project-copy {
        max-width: none;
    }
    .wlu-footer__bottom-tagline {
        display: none;
    }
}

@media (max-width: 520px) {
    .wlu-footer__panel {
        padding: 40px 20px 24px;
        border-radius: 0;
    }
    .wlu-footer__links {
        grid-template-columns: 1fr;
    }
    .wlu-footer__column--brand {
        grid-column: span 1;
    }
    .wlu-footer__project-actions {
        gap: 12px;
    }
    .wlu-footer__bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
}

/* ── HERO SLIDER ────────────────────────────────────────────── */

.wlu-home-hero::before {
    display: none; /* replaced by .wlu-hero-overlay div */
}

.wlu-hero-slider {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.wlu-hero-slide {
    position: absolute;
    inset: 0;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    filter: brightness(0.72) saturate(0.88) contrast(1.06);
    opacity: 0;
    transform: scale(1.06);
    transition: opacity 1.8s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: opacity, transform;
}

.wlu-hero-slide.is-active {
    opacity: 1;
    animation: wlu-kenburns 10s ease-out forwards;
}

@keyframes wlu-kenburns {
    from { transform: scale(1.06); }
    to   { transform: scale(1.00); }
}

.wlu-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(105deg,
            rgba(5, 5, 7, 0.78) 0%,
            rgba(7, 7, 9, 0.64) 32%,
            rgba(8, 8, 10, 0.28) 60%,
            rgba(7, 8, 10, 0.36) 100%),
        radial-gradient(circle at top right,  rgba(244, 207, 81, 0.07), transparent 30%),
        radial-gradient(circle at bottom left, rgba(200, 52, 47, 0.12), transparent 30%);
}

.wlu-home-hero__inner {
    position: relative;
    z-index: 2;
}

/* Slide indicators */
.wlu-hero-indicators {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 40px;
}

.wlu-hero-dot {
    flex-shrink: 0;
    width: 32px;
    height: 4px;
    border: 0;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.24);
    cursor: pointer;
    padding: 0;
    transition: background-color 0.32s ease, width 0.38s cubic-bezier(0.4, 0, 0.2, 1);
}

.wlu-hero-dot.is-active {
    width: 64px;
    background: var(--wlu-gold);
}

.wlu-hero-dot:hover:not(.is-active) {
    background: rgba(255, 255, 255, 0.44);
}

.wlu-hero-slide-label {
    margin-left: 6px;
    color: rgba(255, 255, 255, 0.66);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    transition: opacity 0.4s ease;
}

/* Hero title accent word */
.wlu-hero-title__accent {
    font-style: normal;
    color: var(--wlu-gold);
}

/* Hero pull-quote */
.wlu-hero-quote {
    margin: 22px 0 0;
    padding: 14px 20px;
    border: 0;
    border-left: 3px solid var(--wlu-gold);
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.98rem;
    font-style: italic;
    line-height: 1.76;
}

.wlu-hero-quote cite {
    display: block;
    margin-top: 10px;
    color: var(--wlu-gold);
    font-style: normal;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.06em;
}

/* ── EYEBROW VARIANTS ────────────────────────────────────────── */

.wlu-eyebrow--light {
    background: rgba(255, 255, 255, 0.11);
    border-color: rgba(255, 255, 255, 0.18);
    color: rgba(255, 255, 255, 0.96);
}

/* ── PROGRAMME CARDS (numbered) ─────────────────────────────── */

.wlu-card--programme {
    position: relative;
    overflow: hidden;
}

.wlu-card--programme::before {
    content: attr(data-num);
    position: absolute;
    top: 12px;
    right: 16px;
    font-family: "Sora", sans-serif;
    font-size: 4rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.04em;
    color: rgba(17, 17, 17, 0.055);
    pointer-events: none;
    user-select: none;
}

/* ── IMPACT BAND TYPOGRAPHY ─────────────────────────────────── */

.wlu-impact-band__title {
    margin: 14px 0 12px;
    color: var(--wlu-white);
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    line-height: 1.16;
    letter-spacing: -0.03em;
    font-weight: 800;
}

.wlu-impact-band__copy {
    color: rgba(255, 255, 255, 0.78);
    font-size: 1rem;
    line-height: 1.82;
    max-width: 520px;
}

.wlu-equation__item--total {
    background: rgba(244, 207, 81, 0.18);
    border-color: rgba(244, 207, 81, 0.32);
}

.wlu-equation__item--total strong {
    color: var(--wlu-gold);
}

/* ── REVEAL ANIMATION ───────────────────────────────────────── */

[data-reveal] {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

[data-reveal].is-visible {
    opacity: 1;
    /* Use `none` (not translateY(0)): a lingering transform makes the element a
       containing block and can offset touch targets for inputs inside it on
       mobile Safari. Removing it keeps form fields tappable across their width. */
    transform: none;
}

@media (max-width: 1399px) {
    .wlu-topbar,
    .wlu-navbar,
    .wlu-footer__panel {
        width: min(calc(100vw - 24px), 1240px);
    }

    .wlu-nav__menu {
        gap: 4px;
    }

    .wlu-nav__link {
        padding: 0 11px;
        font-size: 0.81rem;
    }
}

/* ═══════════════════════════════════════════════════════════════════
   CONTRIBUTIONS CAROUSEL
   ═══════════════════════════════════════════════════════════════════ */

/* Section wrapper */
.wlu-contributions {
    padding: 96px 0;
    background: #f9f8f6;
    overflow: hidden;
}

.wlu-contributions__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 52px;
    flex-wrap: wrap;
}

.wlu-contributions__title {
    font-family: var(--wlu-font-heading);
    font-size: clamp(1.55rem, 2.8vw, 2.1rem);
    font-weight: 800;
    letter-spacing: -0.035em;
    line-height: 1.15;
    color: var(--wlu-dark);
    margin: 0;
}

.wlu-contributions__title em {
    font-style: normal;
    color: var(--wlu-red);
}

.wlu-contributions__sub {
    font-size: 0.9rem;
    color: var(--wlu-muted);
    margin: 6px 0 0;
    font-weight: 450;
}

/* Arrows */
.wlu-contributions__arrows {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}

.wlu-contributions__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #fff;
    border: 1.5px solid var(--wlu-border);
    color: var(--wlu-dark);
    font-size: 1rem;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease,
                color 0.2s ease, transform 0.2s ease,
                box-shadow 0.2s ease;
    box-shadow: 0 2px 8px rgba(17,17,17,0.06);
}

.wlu-contributions__arrow:hover {
    background: var(--wlu-red);
    border-color: var(--wlu-red);
    color: #fff;
    transform: scale(1.06);
    box-shadow: 0 4px 16px rgba(193,52,47,0.28);
}

.wlu-contributions__arrow:disabled {
    opacity: 0.32;
    pointer-events: none;
}

/* Track / viewport */
.wlu-contributions__viewport {
    overflow: hidden;
    border-radius: 4px;
}

.wlu-contributions__track {
    display: flex;
    gap: 24px;
    transition: transform 0.48s cubic-bezier(0.42, 0, 0.18, 1);
    will-change: transform;
}

/* Individual card */
.wlu-ccard {
    flex: 0 0 calc(25% - 18px);   /* 4-up with gap */
    min-width: 0;
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid rgba(17,17,17,0.08);
    box-shadow: 0 2px 12px rgba(17,17,17,0.06), 0 0 0 0 rgba(193,52,47,0);
    transition: transform 0.28s ease, box-shadow 0.28s ease;
    position: relative;
}

.wlu-ccard:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(17,17,17,0.11), 0 0 0 1.5px rgba(193,52,47,0.12);
}

/* Image container */
.wlu-ccard__media {
    position: relative;
    height: 200px;
    overflow: hidden;
}

.wlu-ccard__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s cubic-bezier(0.42, 0, 0.18, 1);
}

.wlu-ccard:hover .wlu-ccard__img {
    transform: scale(1.06);
}

/* Hover overlay */
.wlu-ccard__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        160deg,
        rgba(var(--wlu-red-rgb, 193,52,47), 0.88) 0%,
        rgba(130, 22, 18, 0.92) 100%
    );
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
    padding: 20px;
}

.wlu-ccard:hover .wlu-ccard__overlay {
    opacity: 1;
}

.wlu-ccard__overlay-label {
    font-family: var(--wlu-font-heading);
    font-size: 1.05rem;
    font-weight: 700;
    color: #fff;
    text-align: center;
    letter-spacing: 0.01em;
    line-height: 1.3;
}

.wlu-ccard__overlay-label span {
    display: block;
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.72);
    margin-top: 6px;
}

/* Card body */
.wlu-ccard__body {
    padding: 22px 22px 0;
}

.wlu-ccard__month {
    font-family: var(--wlu-font-heading);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--wlu-red);
    margin-bottom: 6px;
    display: block;
}

.wlu-ccard__title {
    font-family: var(--wlu-font-heading);
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--wlu-dark);
    margin: 0 0 10px;
    line-height: 1.25;
}

.wlu-ccard__copy {
    font-size: 0.82rem;
    color: var(--wlu-muted);
    line-height: 1.6;
    margin-bottom: 12px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.wlu-ccard__quote {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--wlu-dark);
    line-height: 1.45;
    border-left: 2.5px solid var(--wlu-red);
    padding-left: 10px;
    margin: 0 0 18px;
    font-style: normal;
}

/* Footer */
.wlu-ccard__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 22px 18px;
    border-top: 1px solid rgba(17,17,17,0.07);
    margin-top: auto;
    gap: 8px;
}

.wlu-ccard__raised-label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--wlu-red);
}

.wlu-ccard__amount {
    font-family: var(--wlu-font-heading);
    font-size: 1.0rem;
    font-weight: 800;
    color: var(--wlu-dark);
    letter-spacing: -0.02em;
}

/* Bottom accent line */
.wlu-ccard::after {
    content: "";
    display: block;
    height: 3px;
    background: linear-gradient(90deg, var(--wlu-red), var(--wlu-gold));
    border-radius: 0 0 20px 20px;
    opacity: 0;
    transition: opacity 0.28s ease;
}

.wlu-ccard:hover::after {
    opacity: 1;
}

/* Dots indicator */
.wlu-contributions__dots {
    display: flex;
    justify-content: center;
    gap: 7px;
    margin-top: 36px;
}

.wlu-contributions__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(17,17,17,0.15);
    border: none;
    cursor: pointer;
    padding: 0;
    transition: background 0.2s ease, transform 0.2s ease, width 0.2s ease;
    border-radius: 4px;
}

.wlu-contributions__dot.is-active {
    width: 24px;
    background: var(--wlu-red);
    transform: none;
}

/* ── Responsive ────────────────────────────────────────────────────── */
@media (max-width: 1100px) {
    .wlu-ccard {
        flex: 0 0 calc(33.333% - 16px);
    }
}

@media (max-width: 767px) {
    .wlu-contributions {
        padding: 72px 0;
    }

    .wlu-ccard {
        flex: 0 0 calc(50% - 12px);
    }

    .wlu-contributions__head {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }
}

@media (max-width: 479px) {
    .wlu-ccard {
        flex: 0 0 calc(100% - 0px);
    }

    .wlu-contributions__track {
        gap: 16px;
    }
}

/* ═══════════════════════════════════════════════════════════════════
   MAP MODAL
   ═══════════════════════════════════════════════════════════════════ */

/* Topbar trigger button — inherits topbar link styling */
.wlu-topbar__map-trigger {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font: inherit;
    color: inherit;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    text-decoration: none;
    transition: color 0.2s ease;
}

.wlu-topbar__map-trigger:hover {
    color: var(--wlu-red);
}

/* Modal overlay */
.wlu-map-modal {
    position: fixed;
    inset: 0;
    z-index: 9800;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.wlu-map-modal[hidden] {
    display: none;
}

.wlu-map-modal.is-open {
    display: flex;
    animation: wlu-map-in 0.28s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.wlu-map-modal.is-closing {
    animation: wlu-map-out 0.22s ease forwards;
}

@keyframes wlu-map-in  { from { opacity: 0; } to { opacity: 1; } }
@keyframes wlu-map-out { from { opacity: 1; } to { opacity: 0; } }

/* Blurred backdrop */
.wlu-map-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(6, 6, 8, 0.80);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    cursor: pointer;
}

/* Modal box */
.wlu-map-modal__box {
    position: relative;
    z-index: 1;
    width: min(860px, 100%);
    border-radius: 24px;
    overflow: hidden;
    background: #fff;
    box-shadow:
        0 40px 100px rgba(0,0,0,0.55),
        0 0 0 1px rgba(255,255,255,0.06);
    animation: wlu-map-box-in 0.32s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.wlu-map-modal.is-closing .wlu-map-modal__box {
    animation: wlu-map-box-out 0.22s ease forwards;
}

@keyframes wlu-map-box-in  { from { transform: scale(0.95) translateY(16px); opacity: 0; } to { transform: scale(1) translateY(0); opacity: 1; } }
@keyframes wlu-map-box-out { from { transform: scale(1) translateY(0); opacity: 1; } to { transform: scale(0.97) translateY(8px); opacity: 0; } }

/* Header bar */
.wlu-map-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    background: #fff;
    border-bottom: 1px solid rgba(17,17,17,0.08);
    flex-wrap: wrap;
}

.wlu-map-modal__address {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.wlu-map-modal__address i {
    font-size: 1.1rem;
    color: var(--wlu-red);
    margin-top: 2px;
    flex-shrink: 0;
}

.wlu-map-modal__address strong {
    display: block;
    font-family: var(--wlu-font-heading);
    font-size: 0.92rem;
    font-weight: 800;
    color: var(--wlu-dark);
    line-height: 1.2;
}

.wlu-map-modal__address span {
    font-size: 0.78rem;
    color: var(--wlu-muted);
    line-height: 1.4;
}

.wlu-map-modal__actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.wlu-map-modal__directions {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 18px;
    border-radius: 999px;
    background: var(--wlu-red);
    color: #ffffff !important;
    font-size: 0.78rem;
    font-weight: 700;
    text-decoration: none;
    transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    white-space: nowrap;
}

.wlu-map-modal__directions i {
    color: #ffffff !important;
    font-size: 0.82rem;
}

.wlu-map-modal__directions:hover {
    background: var(--wlu-red-deep);
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(193,52,47,0.35);
    color: #ffffff !important;
}

.wlu-map-modal__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1.5px solid rgba(17,17,17,0.12);
    background: rgba(17,17,17,0.04);
    color: var(--wlu-dark);
    font-size: 1rem;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.2s ease;
    flex-shrink: 0;
}

.wlu-map-modal__close:hover {
    background: rgba(17,17,17,0.09);
    transform: scale(1.08);
}

/* 16:9 iframe container */
.wlu-map-modal__frame-wrap {
    position: relative;
    padding-bottom: 52%;
    height: 0;
    overflow: hidden;
}

.wlu-map-modal__iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: none;
    display: block;
}

.wlu-map-modal__osm-credit {
    padding: 8px 16px;
    background: #f5f5f5;
    border-top: 1px solid rgba(17,17,17,0.07);
    text-align: right;
}

.wlu-map-modal__osm-credit a {
    font-size: 0.72rem;
    color: var(--wlu-muted);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: color 0.2s ease;
}

.wlu-map-modal__osm-credit a:hover {
    color: var(--wlu-red);
}

/* Responsive */
@media (max-width: 600px) {
    .wlu-map-modal {
        padding: 12px;
        align-items: flex-end;
    }
    .wlu-map-modal__box {
        width: 100%;
        border-radius: 20px 20px 16px 16px;
    }
    .wlu-map-modal__frame-wrap {
        padding-bottom: 65%;
    }
}

/* ═══════════════════════════════════════════════════════════════════
   YOUTUBE LIGHTBOX
   ═══════════════════════════════════════════════════════════════════ */

.wlu-video-trigger {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font: inherit;
}

.wlu-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9900;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.wlu-lightbox[hidden] {
    display: none;
}

/* Animated entry state */
.wlu-lightbox.is-open {
    display: flex;
    animation: wlu-lightbox-in 0.28s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.wlu-lightbox.is-closing {
    animation: wlu-lightbox-out 0.22s ease forwards;
}

@keyframes wlu-lightbox-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes wlu-lightbox-out {
    from { opacity: 1; }
    to   { opacity: 0; }
}

.wlu-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(4, 4, 6, 0.88);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    cursor: pointer;
}

.wlu-lightbox__stage {
    position: relative;
    z-index: 1;
    width: min(900px, 100%);
    animation: wlu-lightbox-stage-in 0.32s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.wlu-lightbox.is-closing .wlu-lightbox__stage {
    animation: wlu-lightbox-stage-out 0.22s ease forwards;
}

@keyframes wlu-lightbox-stage-in {
    from { transform: scale(0.94) translateY(12px); opacity: 0; }
    to   { transform: scale(1)    translateY(0);    opacity: 1; }
}

@keyframes wlu-lightbox-stage-out {
    from { transform: scale(1)    translateY(0);    opacity: 1; }
    to   { transform: scale(0.96) translateY(8px);  opacity: 0; }
}

.wlu-lightbox__close {
    position: absolute;
    top: -48px;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.22);
    color: #fff;
    font-size: 1.1rem;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.2s ease;
}

.wlu-lightbox__close:hover {
    background: rgba(255,255,255,0.22);
    transform: scale(1.08);
}

/* 16:9 responsive frame */
.wlu-lightbox__frame-wrap {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    border-radius: 16px;
    overflow: hidden;
    box-shadow:
        0 32px 80px rgba(0,0,0,0.72),
        0 0 0 1px rgba(255,255,255,0.06);
}

.wlu-lightbox__iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: none;
}

/* ═══════════════════════════════════════════════════════════════════
   STATS BAND  –  premium impact numbers row
   ═══════════════════════════════════════════════════════════════════ */

.wlu-stats-band {
    position: relative;
    background:
        linear-gradient(135deg,
            var(--wlu-red-deep) 0%,
            #b02820 40%,
            #c8312a 72%,
            #9a1f19 100%);
    overflow: hidden;
    padding: 0;
    border-top: 1px solid rgba(255,255,255,0.08);
    border-bottom: 1px solid rgba(0,0,0,0.18);
}

/* Subtle noise / diagonal hatching overlay */
.wlu-stats-band::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        repeating-linear-gradient(
            -52deg,
            transparent 0px,
            transparent 22px,
            rgba(255,255,255,0.022) 22px,
            rgba(255,255,255,0.022) 23px
        );
    pointer-events: none;
    z-index: 0;
}

/* Gold accent top-edge rule */
.wlu-stats-band::after {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 160px;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--wlu-gold), transparent);
    pointer-events: none;
    z-index: 1;
}

.wlu-stats-band > .container {
    position: relative;
    z-index: 2;
}

.wlu-stats-band__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.wlu-stats-band__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 48px 32px;
    position: relative;
    gap: 0;
}

/* Vertical dividers between items */
.wlu-stats-band__item + .wlu-stats-band__item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 24%;
    height: 52%;
    width: 1px;
    background: linear-gradient(
        to bottom,
        transparent,
        rgba(255,255,255,0.20) 30%,
        rgba(255,255,255,0.20) 70%,
        transparent
    );
}

/* Icon circle */
.wlu-stats-band__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: rgba(255,255,255,0.10);
    border: 1.5px solid rgba(255,255,255,0.22);
    box-shadow:
        0 0 0 6px rgba(244,207,81,0.07),
        inset 0 1px 0 rgba(255,255,255,0.14);
    margin-bottom: 20px;
    color: var(--wlu-gold);
    font-size: 1.35rem;
    flex-shrink: 0;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.wlu-stats-band__item:hover .wlu-stats-band__icon {
    transform: translateY(-2px);
    box-shadow:
        0 0 0 8px rgba(244,207,81,0.11),
        inset 0 1px 0 rgba(255,255,255,0.18);
}

/* Main number / value */
.wlu-stats-band__value {
    font-family: var(--wlu-font-heading);
    font-size: clamp(2.2rem, 3.6vw, 3.4rem);
    font-weight: 800;
    line-height: 1;
    color: #ffffff;
    letter-spacing: -0.03em;
    display: block;
    margin-bottom: 6px;
}

/* Superscript unit (M, B) rendered via a <sup> in the HTML */
.wlu-stats-band__value sup {
    font-size: 0.52em;
    font-weight: 700;
    vertical-align: super;
    letter-spacing: 0;
    color: var(--wlu-gold);
    opacity: 0.92;
}

/* Descriptor word under the number */
.wlu-stats-band__unit {
    display: block;
    font-family: var(--wlu-font-heading);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--wlu-gold);
    opacity: 0.88;
    margin-bottom: 8px;
}

/* Label line */
.wlu-stats-band__label {
    font-family: var(--wlu-font-body);
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.65);
    line-height: 1.4;
    max-width: 140px;
}

/* ── Responsive ────────────────────────────────────────────────────── */

@media (max-width: 1199px) {
    .wlu-stats-band__item {
        padding: 40px 20px;
    }
    .wlu-stats-band__value {
        font-size: clamp(1.9rem, 3vw, 2.8rem);
    }
}

@media (max-width: 767px) {
    .wlu-stats-band__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .wlu-stats-band__item + .wlu-stats-band__item::before {
        display: none;
    }

    /* Re-add dividers only on right column in 2-col layout */
    .wlu-stats-band__item:nth-child(2n)::before {
        display: block;
    }

    /* Horizontal divider between rows */
    .wlu-stats-band__item:nth-child(3),
    .wlu-stats-band__item:nth-child(4) {
        border-top: 1px solid rgba(255,255,255,0.10);
    }

    .wlu-stats-band__item {
        padding: 36px 18px;
    }
}

@media (max-width: 479px) {
    .wlu-stats-band__grid {
        grid-template-columns: 1fr;
    }
    .wlu-stats-band__item:nth-child(n)::before {
        display: none;
    }
    .wlu-stats-band__item {
        border-top: 1px solid rgba(255,255,255,0.08);
        padding: 32px 20px;
    }
    .wlu-stats-band__item:first-child {
        border-top: none;
    }
}

/* ═══════════════════════════════════════════════════════════════════ */

@media (max-width: 1199px) {
    :root {
        --wlu-header-top: 0px;
        --wlu-header-main: 78px;
        --wlu-header-total: 78px;
    }

    .wlu-topbar {
        display: none;
    }

    .wlu-navbar {
        border-radius: 24px;
        min-height: 78px;
    }

    .wlu-nav__menu {
        display: none;
    }

    .wlu-mega-menu {
        display: none !important;
    }

    .wlu-nav {
        justify-content: flex-end;
    }

    .wlu-nav__menu-button {
        display: inline-flex;
    }

    .wlu-home-hero__grid,
    .wlu-page-hero__grid.has-aside,
    .wlu-split,
    .wlu-contact-grid,
    .wlu-auth-shell,
    .wlu-story-feature,
    .wlu-impact-band__grid,
    .wlu-footer__top,
    .wlu-footer__links {
        grid-template-columns: 1fr;
    }

    .wlu-trust-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

    .wlu-gallery-tile--wide,
    .wlu-gallery-tile--tall,
    .wlu-gallery-tile--half {
        grid-column: span 1;
        min-height: 280px;
    }

    .wlu-home-hero__content {
        max-width: none;
    }
}

@media (min-width: 1200px) {
    .wlu-overlay,
    .wlu-mobile-panel,
    .wlu-mobile-cta {
        display: none !important;
    }
}

@media (max-width: 991px) {
    .wlu-section-head {
        flex-direction: column;
        align-items: flex-start;
    }

    .wlu-check-grid,
    .wlu-home-hero__stats,
    .wlu-form-grid {
        grid-template-columns: 1fr;
    }

    .wlu-trust-strip {
        grid-template-columns: 1fr;
        margin-top: -26px;
    }

    .wlu-brand {
        min-width: auto;
    }

    .wlu-brand__mark {
        width: 58px;
        height: 58px;
    }

    .wlu-brand--header .wlu-brand__mark {
        width: 70px;
        height: 70px;
        border-radius: 22px;
    }

    .wlu-brand__text {
        display: none;
    }

    .wlu-mobile-cta {
        display: block;
    }

    .wlu-footer {
        padding-bottom: 140px;
    }
}

@media (max-width: 767px) {
    .wlu-section {
        padding: 72px 0;
    }

    .wlu-navbar,
    .wlu-footer__panel {
        width: min(calc(100vw - 16px), 100vw);
    }

    .wlu-navbar {
        gap: 16px;
        padding: 0 16px;
    }

    .wlu-brand--header .wlu-brand__mark {
        width: 64px;
        height: 64px;
        border-radius: 20px;
    }

    .wlu-home-hero {
        padding-top: 128px;
        padding-bottom: 86px;
    }

    .wlu-hero-slide {
        background-size: contain;
        background-position: center top;
        background-color: #111318;
        transform: none;
        animation: none !important;
    }

    .wlu-hero-slide.is-active {
        animation: none;
    }

    .wlu-hero-title {
        font-size: clamp(2.6rem, 13vw, 4rem);
        line-height: 0.96;
    }

    .wlu-home-hero__copy {
        font-size: 1rem;
    }

    .wlu-card,
    .wlu-hero-panel,
    .wlu-contact-card,
    .wlu-auth-panel,
    .wlu-auth-aside,
    .wlu-page-hero__aside,
    .wlu-impact-band,
    .wlu-story-feature,
    .wlu-profile-card {
        padding: 22px;
        border-radius: 26px;
    }

    .wlu-card__media {
        height: 220px;
        margin: -22px -22px 18px;
        border-radius: 26px 26px 20px 20px;
    }

    .wlu-media-stack {
        min-height: 420px;
    }

    .wlu-media-stack__primary {
        inset: 0 8% 18% 0;
    }

    .wlu-media-stack__secondary {
        inset: 48% 0 0 26%;
    }

    .wlu-media-stack__accent {
        width: 126px;
        height: 126px;
        padding: 18px;
        inset: auto 10% 0 auto;
    }

    .wlu-media-stack__accent-label {
        font-size: 0.72rem;
    }

    .wlu-media-stack__accent strong {
        font-size: 1.55rem;
    }

    .wlu-media-stack__accent-subtitle {
        font-size: 0.72rem;
        line-height: 1.18;
    }

    .wlu-page-hero__stats,
    .wlu-footer__links {
        grid-template-columns: 1fr;
    }

    .wlu-footer__newsletter-form {
        flex-direction: column;
    }

    .wlu-media-stack__accent {
        width: 118px;
        height: auto;
        min-height: 118px;
        padding: 14px;
        inset: auto 8% 2% auto;
        border-radius: 24px;
        gap: 6px;
    }

    .wlu-media-stack__accent-label {
        font-size: 0.66rem;
        letter-spacing: 0.04em;
    }

    .wlu-media-stack__accent strong {
        font-size: 1.34rem;
    }

    .wlu-media-stack__accent-subtitle {
        font-size: 0.64rem;
        line-height: 1.15;
    }

    .wlu-hero-indicators {
        margin-top: 28px;
    }

    .wlu-hero-dot.is-active {
        width: 48px;
    }

    .wlu-hero-slide-label {
        display: none;
    }
}

@media (max-width: 575px) {
    .wlu-actions .wlu-btn,
    .wlu-actions .wlu-btn--ghost,
    .wlu-actions .wlu-btn--soft,
    .wlu-mobile-cta__bar {
        width: 100%;
    }

    .wlu-mobile-cta__bar {
        grid-template-columns: 1fr;
    }

    .wlu-page-hero__stats {
        display: grid;
    }

    .wlu-footer__bottom {
        flex-direction: column;
        align-items: flex-start;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   IICARE VALUES STRIP  (About page)
   ═══════════════════════════════════════════════════════════════════ */
.wlu-iicare {
    padding: clamp(64px, 9vw, 108px) 0;
    background:
        radial-gradient(ellipse 70% 60% at 90% 110%, rgba(200, 52, 47, 0.18) 0%, transparent 55%),
        radial-gradient(ellipse 50% 40% at 0% 0%,   rgba(200, 52, 47, 0.10) 0%, transparent 50%),
        linear-gradient(170deg, #1a0505 0%, #0e0608 100%);
    overflow: hidden;
}

.wlu-iicare__header {
    text-align: center;
    max-width: 560px;
    margin: 0 auto 52px;
}

.wlu-iicare__header .wlu-section-title {
    color: #ffffff !important;
    margin-top: 12px;
}

.wlu-iicare__header .wlu-eyebrow {
    background: rgba(200, 52, 47, 0.14);
    color: #ff7b78;
    border: 1px solid rgba(200, 52, 47, 0.32);
}

.wlu-iicare__strip {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    border: 1px solid rgba(200, 52, 47, 0.2);
    border-radius: 20px;
    overflow: hidden;
}

.wlu-iicare__value {
    padding: 38px 24px 34px;
    text-align: center;
    border-right: 1px solid rgba(200, 52, 47, 0.2);
    transition: background 0.3s;
    position: relative;
}

.wlu-iicare__value:last-child {
    border-right: none;
}

.wlu-iicare__value:hover {
    background: rgba(200, 52, 47, 0.08);
}

.wlu-iicare__letter {
    display: block;
    font-family: "Sora", sans-serif;
    font-size: clamp(2.4rem, 4vw, 3.6rem);
    font-weight: 900;
    color: var(--wlu-red);
    line-height: 1;
    margin-bottom: 16px;
    letter-spacing: -0.04em;
    text-shadow: 0 0 40px rgba(200, 52, 47, 0.5);
}

.wlu-iicare__name {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    color: rgba(255,255,255,0.82) !important;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    line-height: 1.3;
}

@media (max-width: 991px) {
    .wlu-iicare__strip {
        grid-template-columns: repeat(3, 1fr);
    }
    .wlu-iicare__value {
        border-bottom: 1px solid rgba(200, 52, 47, 0.2);
    }
    .wlu-iicare__value:nth-child(3) {
        border-right: none;
    }
    .wlu-iicare__value:last-child,
    .wlu-iicare__value:nth-last-child(2),
    .wlu-iicare__value:nth-last-child(3) {
        border-bottom: none;
    }
}

@media (max-width: 575px) {
    .wlu-iicare__strip {
        grid-template-columns: repeat(2, 1fr);
    }
    .wlu-iicare__value:nth-child(even) {
        border-right: none;
    }
    .wlu-iicare__value:nth-child(odd) {
        border-right: 1px solid rgba(200, 52, 47, 0.2);
    }
    .wlu-iicare__value:nth-last-child(1),
    .wlu-iicare__value:nth-last-child(2) {
        border-bottom: none;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   MEMBERSHIP GROWTH TRACK  (About page)
   ═══════════════════════════════════════════════════════════════════ */
.wlu-growth {
    padding: clamp(64px, 8vw, 100px) 0;
    background: #f8f5ef;
}

.wlu-growth__header {
    margin-bottom: 52px;
}

.wlu-growth__track {
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0;
    padding-bottom: 28px;
}

/* Connecting line */
.wlu-growth__track::before {
    content: "";
    position: absolute;
    bottom: 28px;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--wlu-red), var(--wlu-gold));
    z-index: 0;
}

.wlu-growth__point {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    flex: 1;
}

.wlu-growth__number {
    font-family: "Sora", sans-serif;
    font-size: clamp(1.3rem, 2.2vw, 1.8rem);
    font-weight: 800;
    color: var(--wlu-dark) !important;
    letter-spacing: -0.04em;
    line-height: 1;
}

.wlu-growth__dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--wlu-red);
    border: 3px solid #ffffff;
    box-shadow: 0 0 0 3px var(--wlu-red);
    transition: transform 0.2s;
}

.wlu-growth__point:first-child .wlu-growth__dot {
    background: var(--wlu-muted);
    box-shadow: 0 0 0 3px var(--wlu-muted);
}

.wlu-growth__point:last-child .wlu-growth__dot {
    background: var(--wlu-gold);
    box-shadow: 0 0 0 3px var(--wlu-gold);
    width: 22px;
    height: 22px;
    border-width: 3px;
}

.wlu-growth__date {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--wlu-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    text-align: center;
}

.wlu-growth__note {
    margin-top: 28px;
    font-size: 0.9rem;
    color: var(--wlu-muted);
    display: flex;
    align-items: center;
    gap: 8px;
}

@media (max-width: 575px) {
    .wlu-growth__track {
        flex-direction: column;
        align-items: stretch;
        padding-bottom: 0;
        gap: 0;
    }
    .wlu-growth__track::before {
        display: none;
    }
    .wlu-growth__point {
        flex-direction: row;
        justify-content: space-between;
        padding: 16px 0;
        border-bottom: 1px solid var(--wlu-border);
    }
    .wlu-growth__point:last-child {
        border-bottom: none;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   VISION BEARER FEATURE  (Leadership page) — white/light background
   ═══════════════════════════════════════════════════════════════════ */
.wlu-vision-feature {
    padding: clamp(72px, 10vw, 120px) 0;
    background: #ffffff;
    /* Left gold border stripe for distinction */
    border-left: 4px solid var(--wlu-gold);
    overflow: hidden;
    position: relative;
}

/* Faint crimson wash in top-right corner — visible but subtle */
.wlu-vision-feature::after {
    content: "";
    position: absolute;
    inset: 0 0 auto auto;
    width: 460px;
    height: 460px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(200, 52, 47, 0.055) 0%, transparent 70%);
    pointer-events: none;
}

.wlu-vision-feature__grid {
    display: grid;
    grid-template-columns: 400px 1fr;
    gap: 72px;
    align-items: center;
    position: relative;
    z-index: 1;
}

.wlu-vision-feature__photo-wrap {
    position: relative;
}

.wlu-vision-feature__photo {
    width: 100%;
    aspect-ratio: 4/5;
    border-radius: 28px;
    overflow: hidden;
    /* Prominent shadow to lift the photo off the white page */
    border: 1px solid rgba(17,17,17,0.09);
    box-shadow:
        0 2px 0 0 var(--wlu-gold),
        0 24px 60px rgba(0,0,0,0.13),
        0 4px 16px rgba(0,0,0,0.08);
}

.wlu-vision-feature__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
}

/* Gold name badge anchored below the photo */
.wlu-vision-feature__badge {
    position: absolute;
    bottom: -16px;
    left: 20px;
    right: 20px;
    padding: 14px 18px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--wlu-gold), #f5d660);
    box-shadow: 0 6px 24px rgba(244,207,81,0.35);
    display: flex;
    align-items: center;
    gap: 11px;
}

.wlu-vision-feature__badge-icon {
    font-size: 1.3rem;
    color: rgba(0,0,0,0.55);
    flex-shrink: 0;
}

.wlu-vision-feature__badge-text {
    line-height: 1.25;
}

.wlu-vision-feature__badge-text strong {
    display: block;
    font-family: "Sora", sans-serif;
    font-size: 0.9rem;
    font-weight: 800;
    color: rgba(0,0,0,0.82) !important;
}

.wlu-vision-feature__badge-text span {
    font-size: 0.74rem;
    font-weight: 600;
    color: rgba(0,0,0,0.52) !important;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Content side */
.wlu-vision-feature__content {
    padding-bottom: 16px;
}

.wlu-vision-feature__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 13px;
    border-radius: 50px;
    background: rgba(200, 52, 47, 0.07);
    color: var(--wlu-red);
    border: 1px solid rgba(200, 52, 47, 0.18);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 20px;
}

.wlu-vision-feature__name {
    color: var(--wlu-dark) !important;
    font-size: clamp(2.2rem, 4vw, 3.4rem);
    font-weight: 800;
    letter-spacing: -0.045em;
    line-height: 1.04;
    margin: 0 0 6px;
}

.wlu-vision-feature__title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--wlu-red);
    text-transform: uppercase;
    letter-spacing: 0.07em;
    margin-bottom: 28px;
}

/* Pull quote — the visual centrepiece on the light bg */
.wlu-vision-feature__quote {
    position: relative;
    padding: 22px 24px 22px 28px;
    border-left: 3px solid var(--wlu-gold);
    margin-bottom: 26px;
    background: #faf7ee;
    border-radius: 0 14px 14px 0;
    border: 1px solid rgba(244, 207, 81, 0.28);
    border-left: 3px solid var(--wlu-gold);
}

.wlu-vision-feature__quote p {
    color: var(--wlu-dark) !important;
    font-size: 1.07rem;
    font-style: italic;
    line-height: 1.72;
    margin: 0;
    font-weight: 500;
}

.wlu-vision-feature__bio {
    color: var(--wlu-text) !important;
    font-size: 0.97rem;
    line-height: 1.84;
    margin-bottom: 16px;
}

/* Credential chips — light style */
.wlu-vision-feature__creds {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 24px;
}

.wlu-vision-feature__cred {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 13px;
    border-radius: 50px;
    background: #ffffff;
    border: 1px solid rgba(17,17,17,0.12);
    font-size: 0.79rem;
    font-weight: 600;
    color: var(--wlu-text) !important;
    box-shadow: 0 1px 4px rgba(0,0,0,0.05);
}

.wlu-vision-feature__cred i {
    color: var(--wlu-red);
    font-size: 0.72rem;
}

@media (max-width: 1099px) {
    .wlu-vision-feature__grid {
        grid-template-columns: 320px 1fr;
        gap: 52px;
    }
}

@media (max-width: 767px) {
    .wlu-vision-feature {
        border-left: none;
        border-top: 4px solid var(--wlu-gold);
    }
    .wlu-vision-feature__grid {
        grid-template-columns: 1fr;
        gap: 60px;
    }
    .wlu-vision-feature__photo {
        aspect-ratio: 3/2;
        max-width: 400px;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   BOARD MEMBER CARDS  (Leadership page)
   ═══════════════════════════════════════════════════════════════════ */
.wlu-board-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.wlu-board-grid--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 860px;
    margin: 0 auto 24px;
}

.wlu-board-grid--three {
    max-width: 100%;
}

/* Portrait card — photo bleeds to top edge, no padding on card itself */
.wlu-board-card {
    display: flex;
    flex-direction: column;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid rgba(17,17,17,0.09);
    box-shadow: 0 2px 8px rgba(0,0,0,0.04), 0 12px 40px rgba(0,0,0,0.07);
    transition: box-shadow 0.3s, transform 0.3s, border-color 0.3s;
    overflow: hidden;
}

.wlu-board-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.07), 0 28px 64px rgba(0,0,0,0.11);
    transform: translateY(-4px);
    border-color: rgba(200,52,47,0.22);
}

/* Full-width portrait photo — aspect ratio keeps it proportional per column width */
.wlu-board-card__photo {
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: #ede9e0;
    flex-shrink: 0;
}

.wlu-board-card__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 15%;
    display: block;
    transition: transform 0.5s cubic-bezier(.4,0,.2,1);
}

.wlu-board-card:hover .wlu-board-card__photo img {
    transform: scale(1.04);
}

/* Text body */
.wlu-board-card__body {
    padding: 20px 22px 24px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.wlu-board-card__role {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--wlu-red);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    display: block;
    margin-bottom: 5px;
}

.wlu-board-card__name {
    font-size: 1rem;
    font-weight: 800;
    color: var(--wlu-dark) !important;
    margin: 0 0 6px;
    line-height: 1.25;
    letter-spacing: -0.02em;
}

.wlu-board-card__org {
    font-size: 0.76rem;
    color: var(--wlu-muted);
    font-style: italic;
    display: block;
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(17,17,17,0.08);
}

.wlu-board-card__bio {
    font-size: 0.86rem;
    line-height: 1.75;
    color: var(--wlu-text);
    margin: 0;
    flex: 1;
}

/* Chairperson — centered solo on last row, one-column width */
.wlu-board-card--chairperson {
    grid-column: 1 / -1;
    justify-self: center;
    width: calc((100% - 48px) / 3);
}

.wlu-board-card--chairperson .wlu-board-card__name {
    font-size: 1.08rem;
}

@media (max-width: 991px) {
    .wlu-board-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .wlu-board-grid--two,
    .wlu-board-grid--three {
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
    }
    .wlu-board-card--chairperson {
        width: calc(50% - 12px);
    }
}

@media (max-width: 575px) {
    .wlu-board-grid {
        grid-template-columns: 1fr;
    }
    .wlu-board-grid--two {
        grid-template-columns: 1fr;
    }
    .wlu-board-card--chairperson {
        width: 100%;
        justify-self: stretch;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   EXECUTIVE COMMITTEE PLACEHOLDER  (Leadership page)
   ═══════════════════════════════════════════════════════════════════ */
.wlu-exec-coming {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 56px 32px;
    border-radius: 24px;
    border: 2px dashed rgba(200, 52, 47, 0.28);
    background: rgba(200, 52, 47, 0.03);
    text-align: center;
    max-width: 600px;
    margin: 0 auto;
}

.wlu-exec-coming__icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: rgba(200, 52, 47, 0.1);
    border: 1px solid rgba(200, 52, 47, 0.22);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--wlu-red);
    font-size: 1.3rem;
}

.wlu-exec-coming p {
    max-width: 460px;
    color: var(--wlu-muted);
    font-size: 0.95rem;
    line-height: 1.72;
    margin: 0;
}



/* ═══════════════════════════════════════════════════════════════════
   10K PROJECT — FIVE PILLARS
   ═══════════════════════════════════════════════════════════════════ */
.wlu-pillars-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 14px;
}

.wlu-pillar-card {
    padding: 28px 20px 26px;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid rgba(17,17,17,0.09);
    box-shadow: 0 2px 8px rgba(0,0,0,0.04), 0 10px 32px rgba(0,0,0,0.06);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;
    position: relative;
    overflow: hidden;
}

.wlu-pillar-card::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 3px;
    background: linear-gradient(90deg, var(--wlu-red), var(--wlu-gold));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.wlu-pillar-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 4px 16px rgba(0,0,0,0.07), 0 24px 56px rgba(0,0,0,0.11);
    border-color: rgba(200,52,47,0.18);
}

.wlu-pillar-card:hover::after {
    transform: scaleX(1);
}

.wlu-pillar-card__num {
    font-family: "Sora", sans-serif;
    font-size: 0.72rem;
    font-weight: 800;
    color: var(--wlu-red);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.wlu-pillar-card__icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: rgba(200, 52, 47, 0.08);
    border: 1px solid rgba(200, 52, 47, 0.16);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--wlu-red);
    font-size: 1.25rem;
    margin-bottom: 18px;
    transition: background 0.2s, border-color 0.2s;
}

.wlu-pillar-card:hover .wlu-pillar-card__icon {
    background: rgba(200, 52, 47, 0.14);
    border-color: rgba(200, 52, 47, 0.28);
}

.wlu-pillar-card__title {
    font-size: 0.97rem;
    font-weight: 800;
    color: var(--wlu-dark) !important;
    margin: 0 0 10px;
    letter-spacing: -0.02em;
    line-height: 1.25;
}

.wlu-pillar-card__copy {
    font-size: 0.85rem;
    color: var(--wlu-muted);
    line-height: 1.68;
    margin: 0;
}

@media (max-width: 991px) {
    .wlu-pillars-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 575px) {
    .wlu-pillars-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .wlu-pillar-card:last-child {
        grid-column: 1 / -1;
        max-width: 50%;
        margin: 0 auto;
        width: 100%;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   10K PROJECT — PAYMENT STEP CARDS
   ═══════════════════════════════════════════════════════════════════ */
.wlu-payment-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

.wlu-payment-grid--three {
    grid-template-columns: repeat(3, 1fr);
}

.wlu-payment-card {
    border-radius: 24px;
    overflow: hidden;
    border: 1px solid rgba(17,17,17,0.10);
    box-shadow: 0 2px 8px rgba(0,0,0,0.05), 0 16px 48px rgba(0,0,0,0.08);
}

.wlu-payment-card__header {
    padding: 22px 24px;
    display: flex;
    align-items: center;
    gap: 14px;
}

.wlu-payment-card--mtn .wlu-payment-card__header {
    background: #ffcb00;
}

.wlu-payment-card--airtel .wlu-payment-card__header {
    background: #e20101;
}

.wlu-payment-card--online .wlu-payment-card__header {
    background: linear-gradient(135deg, #f4cf51 0%, #fff2ba 100%);
}

.wlu-payment-card__network-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(0,0,0,0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    flex-shrink: 0;
}

.wlu-payment-card--mtn .wlu-payment-card__network-icon {
    color: rgba(0,0,0,0.65);
}

.wlu-payment-card--airtel .wlu-payment-card__network-icon {
    color: rgba(255,255,255,0.9);
}

.wlu-payment-card--online .wlu-payment-card__network-icon {
    color: rgba(17,17,17,0.7);
}

.wlu-payment-card__network-name {
    font-family: "Sora", sans-serif;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.wlu-payment-card--mtn .wlu-payment-card__network-name {
    color: rgba(0,0,0,0.78);
}

.wlu-payment-card--airtel .wlu-payment-card__network-name {
    color: #ffffff;
}

.wlu-payment-card--online .wlu-payment-card__network-name {
    color: rgba(17,17,17,0.84);
}

.wlu-payment-card__dial {
    margin-left: auto;
    font-family: "Sora", sans-serif;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    padding: 6px 14px;
    border-radius: 50px;
}

.wlu-payment-card--mtn .wlu-payment-card__dial {
    background: rgba(0,0,0,0.12);
    color: rgba(0,0,0,0.78);
}

.wlu-payment-card--airtel .wlu-payment-card__dial {
    background: rgba(255,255,255,0.18);
    color: #ffffff;
}

.wlu-payment-card--online .wlu-payment-card__dial {
    background: rgba(17,17,17,0.08);
    color: rgba(17,17,17,0.78);
}

.wlu-payment-card__body {
    padding: 24px;
    background: #ffffff;
}

.wlu-payment-step {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(17,17,17,0.07);
}

.wlu-payment-step:last-of-type {
    border-bottom: none;
}

.wlu-payment-step__num {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--wlu-red);
    color: #ffffff;
    font-size: 0.73rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
}

.wlu-payment-card--mtn .wlu-payment-step__num {
    background: #d4a800;
}

.wlu-payment-card--online .wlu-payment-step__num {
    background: #c8342f;
}

.wlu-payment-step__text {
    font-size: 0.9rem;
    color: var(--wlu-text);
    line-height: 1.6;
    margin: 0;
    padding-top: 3px;
}

.wlu-payment-step__text strong {
    color: var(--wlu-dark);
    font-weight: 700;
}

.wlu-payment-card__amounts {
    margin-top: 18px;
    padding: 14px 16px;
    border-radius: 14px;
    background: #faf7ef;
    border: 1px solid rgba(244,207,81,0.3);
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

.wlu-payment-card__amount {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.wlu-payment-card__amount strong {
    font-family: "Sora", sans-serif;
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--wlu-dark) !important;
    letter-spacing: -0.02em;
}

.wlu-payment-card__amount span {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--wlu-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.wlu-payment-card__action {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 18px;
    min-height: 48px;
    padding: 0 20px;
    border-radius: 999px;
    background: #c8342f;
    color: #ffffff;
    font-size: 0.88rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    box-shadow: 0 14px 30px rgba(200,52,47,0.2);
    transition: transform 0.22s ease, box-shadow 0.22s ease, background-color 0.22s ease;
}

.wlu-payment-card__action:hover {
    transform: translateY(-2px);
    background: #a52622;
    color: #ffffff;
    box-shadow: 0 18px 36px rgba(200,52,47,0.24);
}

@media (max-width: 767px) {
    .wlu-payment-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1100px) {
    .wlu-payment-grid--three {
        grid-template-columns: 1fr;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   10K PROJECT — HOUSING OPTIONS GRID
   ═══════════════════════════════════════════════════════════════════ */
.wlu-housing-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    margin-top: 24px;
}

.wlu-housing-option {
    padding: 20px 22px;
    border-radius: 16px;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.12);
    display: flex;
    align-items: flex-start;
    gap: 13px;
    transition: background 0.25s;
}

.wlu-housing-option:hover {
    background: rgba(255,255,255,0.1);
}

.wlu-housing-option__icon {
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: rgba(244, 207, 81, 0.15);
    border: 1px solid rgba(244,207,81,0.24);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--wlu-gold);
    font-size: 1rem;
    margin-top: 2px;
}

.wlu-housing-option__title {
    font-size: 0.93rem;
    font-weight: 800;
    color: #ffffff !important;
    margin: 0 0 4px;
    line-height: 1.25;
}

.wlu-housing-option__sub {
    font-size: 0.81rem;
    color: rgba(255,255,255,0.62) !important;
    font-weight: 500;
}

@media (max-width: 480px) {
    .wlu-housing-grid {
        grid-template-columns: 1fr;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   10K PROJECT — MEMBERSHIP FEE BREAKDOWN
   ═══════════════════════════════════════════════════════════════════ */
.wlu-fee-box {
    border-radius: 24px;
    overflow: hidden;
    border: 2px solid var(--wlu-red);
    box-shadow: 0 8px 32px rgba(200,52,47,0.12);
}

.wlu-fee-box__header {
    padding: 22px 26px;
    background: linear-gradient(135deg, var(--wlu-red), var(--wlu-red-deep));
    display: flex;
    align-items: center;
    gap: 12px;
}

.wlu-fee-box__header h3 {
    color: #ffffff !important;
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
}

.wlu-fee-box__header i {
    color: rgba(255,255,255,0.75);
    font-size: 1.1rem;
}

.wlu-fee-box__body {
    background: #ffffff;
    padding: 0;
}

.wlu-fee-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 26px;
    border-bottom: 1px solid rgba(17,17,17,0.08);
    gap: 12px;
}

.wlu-fee-line:last-child {
    border-bottom: none;
}

.wlu-fee-line--total {
    background: #faf7ef;
}

.wlu-fee-line__label {
    font-size: 0.9rem;
    color: var(--wlu-text);
    font-weight: 500;
}

.wlu-fee-line__label small {
    display: block;
    font-size: 0.78rem;
    color: var(--wlu-muted);
    margin-top: 2px;
    font-weight: 400;
}

.wlu-fee-line__amount {
    font-family: "Sora", sans-serif;
    font-size: 1rem;
    font-weight: 800;
    color: var(--wlu-dark) !important;
    letter-spacing: -0.02em;
    white-space: nowrap;
}

.wlu-fee-line--total .wlu-fee-line__amount {
    color: var(--wlu-red) !important;
    font-size: 1.1rem;
}



/* ═══════════════════════════════════════════════════════════════════
   HOSPITAL PROJECT — FLAGSHIP PREMIUM SECTION
   ═══════════════════════════════════════════════════════════════════ */

/* ── Section shell ──────────────────────────────────────────────── */
.wlu-hospital-section {
    position: relative;
    padding: clamp(88px, 12vw, 148px) 0 clamp(80px, 10vw, 128px);
    background:
        radial-gradient(ellipse 90% 55% at 50% -5%, rgba(200, 52, 47, 0.28) 0%, transparent 55%),
        radial-gradient(ellipse 60% 45% at 0%  90%, rgba(200, 52, 47, 0.14) 0%, transparent 50%),
        radial-gradient(ellipse 40% 35% at 100% 80%, rgba(244, 207, 81, 0.07) 0%, transparent 50%),
        linear-gradient(170deg, #050507 0%, #0a0b0e 55%, #0c0a0d 100%);
    overflow: hidden;
}

/* Gold hairline at very top */
.wlu-hospital-section::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, transparent 0%, var(--wlu-gold) 30%, var(--wlu-gold) 70%, transparent 100%);
    z-index: 2;
}

/* Dot-grid texture */
.wlu-hospital-section__texture {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size: 30px 30px;
    pointer-events: none;
    z-index: 0;
}

/* ── Centered section header ────────────────────────────────────── */
.wlu-hospital__header {
    position: relative;
    z-index: 1;
    text-align: center;
    max-width: 780px;
    margin: 0 auto clamp(56px, 8vw, 88px);
}

.wlu-hospital__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 16px;
    border-radius: 50px;
    background: rgba(200, 52, 47, 0.18);
    border: 1px solid rgba(200, 52, 47, 0.36);
    color: #e87a75;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 22px;
}

.wlu-hospital__badge i {
    color: var(--wlu-red);
}

.wlu-hospital__title {
    color: #ffffff !important;
    font-size: clamp(2.8rem, 6vw, 5.2rem);
    font-weight: 800;
    letter-spacing: -0.045em;
    line-height: 1.0;
    margin: 0 0 22px;
}

.wlu-hospital__lead {
    color: rgba(255,255,255,0.70) !important;
    font-size: 1.07rem;
    line-height: 1.80;
    max-width: 640px;
    margin: 0 auto;
}

/* ── Main body grid: narrative + vision card ─────────────────────── */
.wlu-hospital__body {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
    margin-bottom: clamp(56px, 8vw, 88px);
}

/* Narrative left */
.wlu-hospital__narrative {
    padding-top: 4px;
}

.wlu-hospital__narrative p {
    color: rgba(255,255,255,0.75) !important;
    font-size: 1rem;
    line-height: 1.84;
    margin-bottom: 18px;
}

.wlu-hospital__narrative p:last-child {
    margin-bottom: 0;
}

/* Vision quote card — right */
.wlu-hospital__vision-card {
    position: relative;
    padding: 36px 34px 32px;
    border-radius: 28px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.10);
    border-top: 2px solid rgba(200,52,47,0.55);
    box-shadow:
        0 2px 0 0 rgba(200,52,47,0.4),
        0 32px 80px rgba(0,0,0,0.45),
        inset 0 1px 0 rgba(255,255,255,0.05);
    overflow: hidden;
}

/* Giant decorative quote mark */
.wlu-hospital__vision-card::before {
    content: "\201C";
    position: absolute;
    top: -28px;
    left: 18px;
    font-family: "Sora", Georgia, serif;
    font-size: 14rem;
    font-weight: 900;
    color: rgba(200, 52, 47, 0.12);
    line-height: 1;
    pointer-events: none;
    z-index: 0;
}

.wlu-hospital__vision-card > * {
    position: relative;
    z-index: 1;
}

.wlu-hospital__vision-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 4px 12px;
    border-radius: 50px;
    background: rgba(244, 207, 81, 0.12);
    border: 1px solid rgba(244, 207, 81, 0.24);
    color: var(--wlu-gold);
    font-size: 0.73rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 18px;
}

.wlu-hospital__vision-quote {
    color: #ffffff !important;
    font-family: "Sora", sans-serif;
    font-size: clamp(1.25rem, 2.4vw, 1.65rem);
    font-style: italic;
    font-weight: 700;
    line-height: 1.32;
    margin: 0 0 16px;
    letter-spacing: -0.02em;
}

.wlu-hospital__vision-sub {
    color: rgba(255,255,255,0.62) !important;
    font-size: 0.92rem;
    line-height: 1.70;
    margin: 0 0 26px;
}

/* Equation items inside vision card */
.wlu-hospital__stats {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 10px;
    margin-top: 24px;
}

.wlu-hospital__stat {
    padding: 14px 12px;
    border-radius: 14px;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.10);
    text-align: center;
    transition: background 0.2s;
}

.wlu-hospital__stat:hover {
    background: rgba(255,255,255,0.10);
}

.wlu-hospital__stat-value {
    display: block;
    font-family: "Sora", sans-serif;
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--wlu-gold) !important;
    letter-spacing: -0.03em;
    margin-bottom: 4px;
}

.wlu-hospital__stat-label {
    display: block;
    font-size: 0.71rem;
    font-weight: 600;
    color: rgba(255,255,255,0.55) !important;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    line-height: 1.3;
}

/* ── Deliverables heading ─────────────────────────────────────────── */
.wlu-hospital__delivers {
    position: relative;
    z-index: 1;
}

.wlu-hospital__delivers-heading {
    color: #ffffff !important;
    font-size: clamp(1.1rem, 2vw, 1.3rem);
    font-weight: 700;
    margin: 0 0 6px;
    letter-spacing: -0.02em;
}

.wlu-hospital__delivers-sub {
    color: rgba(255,255,255,0.52) !important;
    font-size: 0.88rem;
    margin: 0 0 32px;
}

/* ── Deliver cards grid ───────────────────────────────────────────── */
.wlu-delivers-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 14px;
}

.wlu-deliver-card {
    padding: 26px 22px 24px;
    border-radius: 20px;
    background: rgba(255,255,255,0.035);
    border: 1px solid rgba(255,255,255,0.08);
    display: flex;
    flex-direction: column;
    gap: 13px;
    transition: background 0.3s, border-color 0.3s, transform 0.3s, box-shadow 0.3s;
    cursor: default;
}

.wlu-deliver-card:hover {
    background: rgba(255,255,255,0.07);
    border-color: rgba(200, 52, 47, 0.35);
    transform: translateY(-4px);
    box-shadow: 0 16px 48px rgba(0,0,0,0.28);
}

/* Gold reveal bar at bottom on hover */
.wlu-deliver-card {
    position: relative;
    overflow: hidden;
}

.wlu-deliver-card::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 2px;
    background: linear-gradient(90deg, var(--wlu-red), var(--wlu-gold));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.wlu-deliver-card:hover::after {
    transform: scaleX(1);
}

.wlu-deliver-card__icon {
    width: 50px;
    height: 50px;
    border-radius: 14px;
    background: rgba(200, 52, 47, 0.16);
    border: 1px solid rgba(200, 52, 47, 0.28);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #e87a75;
    font-size: 1.25rem;
    flex-shrink: 0;
    transition: background 0.25s, border-color 0.25s;
}

.wlu-deliver-card:hover .wlu-deliver-card__icon {
    background: rgba(200, 52, 47, 0.26);
    border-color: rgba(200, 52, 47, 0.48);
}

.wlu-deliver-card__title {
    color: #ffffff !important;
    font-size: 0.93rem;
    font-weight: 800;
    margin: 0;
    letter-spacing: -0.02em;
    line-height: 1.3;
}

.wlu-deliver-card__copy {
    color: rgba(255,255,255,0.58) !important;
    font-size: 0.83rem;
    line-height: 1.65;
    margin: 0;
    flex: 1;
}

/* ── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 1099px) {
    .wlu-hospital__body {
        gap: 36px;
    }
    .wlu-delivers-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 767px) {
    .wlu-hospital__body {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .wlu-hospital__vision-card::before {
        font-size: 8rem;
    }
    .wlu-hospital__stats {
        grid-template-columns: repeat(3, 1fr);
    }
    .wlu-delivers-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 479px) {
    .wlu-delivers-grid {
        grid-template-columns: 1fr;
    }
    .wlu-hospital__stats {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}

/* Vision card body text */
.wlu-hospital__vision-body {
    color: rgba(255,255,255,0.68) !important;
    font-size: 0.94rem;
    line-height: 1.72;
    margin: 0;
}

/* "What it delivers" subheading row */
.wlu-hospital__delivers-head {
    position: relative;
    z-index: 1;
    text-align: center;
    margin-bottom: 28px;
}

/* Delivers grid z-index */
.wlu-delivers-grid {
    position: relative;
    z-index: 1;
}

/* ── Why This Matters — premium editorial layout ─────────────────── */
.wlu-why-grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 24px;
    align-items: stretch;
}

/* Left: large editorial "problem" panel */
.wlu-why-problem {
    position: relative;
    padding: 48px 44px 44px;
    border-radius: 28px;
    background: #faf7ee;
    border: 1px solid rgba(200, 52, 47, 0.10);
    box-shadow: 0 2px 8px rgba(15,15,15,0.04), 0 12px 40px rgba(15,15,15,0.06);
    display: flex;
    flex-direction: column;
    gap: 22px;
    overflow: hidden;
}

/* Crimson accent line at top edge */
.wlu-why-problem::before {
    content: "";
    position: absolute;
    top: 0; left: 44px; right: 44px;
    height: 3px;
    background: linear-gradient(90deg, var(--wlu-red), transparent 80%);
    border-radius: 0 0 4px 4px;
}

/* Subtle large watermark plane icon */
.wlu-why-problem::after {
    content: "";
    position: absolute;
    bottom: -20px;
    right: -10px;
    width: 180px;
    height: 180px;
    background: radial-gradient(circle, rgba(200,52,47,0.07) 0%, transparent 70%);
    pointer-events: none;
}

.wlu-why-problem__label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 14px;
    border-radius: 50px;
    background: rgba(200, 52, 47, 0.08);
    border: 1px solid rgba(200, 52, 47, 0.18);
    color: var(--wlu-red-deep);
    font-size: 0.73rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    width: fit-content;
}

.wlu-why-problem__title {
    color: var(--wlu-black) !important;
    font-size: clamp(1.45rem, 2.4vw, 2.05rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.17;
    margin: 0;
}

.wlu-why-problem__body {
    color: var(--wlu-text) !important;
    font-size: 1rem;
    line-height: 1.80;
    margin: 0;
    flex: 1;
}

/* Stat callout at bottom of problem card */
.wlu-why-problem__callout {
    margin-top: auto;
    padding: 20px 24px;
    border-radius: 18px;
    background: rgba(200, 52, 47, 0.06);
    border: 1px solid rgba(200, 52, 47, 0.14);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.wlu-why-problem__callout-value {
    display: block;
    font-family: "Sora", sans-serif;
    font-size: 1.95rem;
    font-weight: 800;
    color: var(--wlu-red-deep) !important;
    letter-spacing: -0.04em;
    line-height: 1;
}

.wlu-why-problem__callout-label {
    display: block;
    font-size: 0.82rem;
    color: var(--wlu-muted) !important;
    line-height: 1.55;
}

/* Right column: two stacked items */
.wlu-why-solutions {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.wlu-why-item {
    flex: 1;
    position: relative;
    padding: 36px 36px 32px;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid rgba(17, 17, 17, 0.09);
    box-shadow: 0 2px 8px rgba(15,15,15,0.05), 0 12px 32px rgba(15,15,15,0.07);
    display: flex;
    flex-direction: column;
    gap: 14px;
    overflow: hidden;
    transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s;
}

.wlu-why-item:hover {
    border-color: rgba(200, 52, 47, 0.16);
    box-shadow: 0 4px 14px rgba(15,15,15,0.07), 0 20px 52px rgba(15,15,15,0.10);
    transform: translateY(-3px);
}

/* Gold reveal bar on hover */
.wlu-why-item::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 2px;
    background: linear-gradient(90deg, var(--wlu-gold), transparent 80%);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.wlu-why-item:hover::after {
    transform: scaleX(1);
}

/* Number + tag row */
.wlu-why-item__top {
    display: flex;
    align-items: center;
    gap: 12px;
}

.wlu-why-item__num {
    font-family: "Sora", sans-serif;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.10em;
    color: var(--wlu-gold) !important;
}

.wlu-why-item__tag {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--wlu-muted) !important;
    padding-left: 12px;
    border-left: 1px solid rgba(17,17,17,0.14);
}

.wlu-why-item__title {
    color: var(--wlu-black) !important;
    font-size: clamp(1.05rem, 1.6vw, 1.2rem);
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.22;
    margin: 0;
}

.wlu-why-item__body {
    color: var(--wlu-text) !important;
    font-size: 0.94rem;
    line-height: 1.78;
    margin: 0;
}

/* Responsive */
@media (max-width: 899px) {
    .wlu-why-grid {
        grid-template-columns: 1fr;
    }
    .wlu-why-problem {
        padding: 36px 32px;
    }
    .wlu-why-item {
        padding: 28px 28px 24px;
    }
}

@media (max-width: 479px) {
    .wlu-why-problem {
        padding: 28px 24px;
    }
    .wlu-why-item {
        padding: 24px 22px 20px;
    }
}



/* ═══════════════════════════════════════════════════════════════════
   LOGIN PAGE — Full premium redesign
   ═════════════════════════════════════════════════════════════════ */

/* ── Outer wrap: cancel wlu-main padding, fill viewport ─────────── */
.wlu-login-wrap {
    display: flex;
    min-height: 100vh;
    margin-top: calc(-1 * (var(--wlu-header-total) + 16px));
}

/* ── LEFT BRAND PANEL ────────────────────────────────────────────── */
.wlu-login-brand {
    position: relative;
    width: 44%;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    background:
        radial-gradient(ellipse 80% 50% at 50% 0%,   rgba(200, 52, 47, 0.30) 0%, transparent 55%),
        radial-gradient(ellipse 50% 40% at 0%  100%, rgba(200, 52, 47, 0.14) 0%, transparent 50%),
        radial-gradient(ellipse 40% 30% at 100% 60%, rgba(244, 207, 81, 0.06) 0%, transparent 50%),
        linear-gradient(160deg, #050507 0%, #0a0b0e 60%, #0c0a0d 100%);
    overflow: hidden;
}

/* dot-grid texture */
.wlu-login-brand__texture {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(255,255,255,0.025) 1px, transparent 1px);
    background-size: 28px 28px;
    pointer-events: none;
}

.wlu-login-brand__inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    padding: 52px 52px 48px;
    gap: 40px;
}

/* Logo */
.wlu-login-brand__logo-link {
    display: inline-block;
    width: fit-content;
}

.wlu-login-brand__logo {
    height: 44px;
    width: auto;
    display: block;
    filter: brightness(1.08);
}

/* Main content block */
.wlu-login-brand__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 18px;
    justify-content: center;
}

.wlu-login-brand__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 13px;
    border-radius: 50px;
    background: rgba(200, 52, 47, 0.18);
    border: 1px solid rgba(200, 52, 47, 0.32);
    color: #e87a75;
    font-size: 0.73rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    width: fit-content;
}

.wlu-login-brand__title {
    color: #ffffff !important;
    font-size: clamp(1.65rem, 2.8vw, 2.4rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.16;
    margin: 0;
}

.wlu-login-brand__text {
    color: rgba(255,255,255,0.65) !important;
    font-size: 0.97rem;
    line-height: 1.80;
    margin: 0;
    max-width: 380px;
}

/* Stats bar at bottom */
.wlu-login-brand__stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    padding-top: 24px;
    border-top: 1px solid rgba(255,255,255,0.08);
}

.wlu-login-brand__stat {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.wlu-login-brand__stat-value {
    display: block;
    font-family: "Sora", sans-serif;
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--wlu-gold) !important;
    letter-spacing: -0.03em;
    line-height: 1;
}

.wlu-login-brand__stat-label {
    display: block;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: rgba(255,255,255,0.45) !important;
}

/* ── RIGHT FORM PANEL ────────────────────────────────────────────── */
.wlu-login-form-panel {
    flex: 1;
    background: #faf7ee;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px 32px;
    overflow-y: auto;
    position: relative;
    z-index: 2;
    isolation: isolate;
    touch-action: manipulation;
}

.wlu-login-form-inner {
    width: 100%;
    max-width: 440px;
    display: flex;
    flex-direction: column;
    gap: 0;
    position: relative;
    z-index: 3;
}

/* Form heading */
.wlu-login-form-head {
    margin-bottom: 32px;
}

.wlu-login-form-title {
    color: var(--wlu-black) !important;
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    font-weight: 800;
    letter-spacing: -0.035em;
    line-height: 1.15;
    margin: 0 0 8px;
}

.wlu-login-form-sub {
    color: var(--wlu-muted) !important;
    font-size: 0.93rem;
    line-height: 1.60;
    margin: 0;
}

/* ── Alert messages ──────────────────────────────────────────────── */
.wlu-login-alert {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 13px 16px;
    border-radius: 14px;
    font-size: 0.88rem;
    line-height: 1.5;
    margin-bottom: 22px;
}

.wlu-login-alert i {
    flex-shrink: 0;
    font-size: 1rem;
    margin-top: 1px;
}

.wlu-login-alert--error {
    background: rgba(200, 52, 47, 0.08);
    border: 1px solid rgba(200, 52, 47, 0.20);
    color: #b83030 !important;
}

.wlu-login-alert--info {
    background: rgba(59, 130, 246, 0.07);
    border: 1px solid rgba(59, 130, 246, 0.18);
    color: #2563eb !important;
}

.wlu-login-alert--success {
    background: rgba(34, 197, 94, 0.07);
    border: 1px solid rgba(34, 197, 94, 0.18);
    color: #16a34a !important;
}

/* ── Form fields ─────────────────────────────────────────────────── */
.wlu-login-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
    margin-bottom: 20px;
}

.wlu-login-label {
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--wlu-dark) !important;
    letter-spacing: 0.01em;
    cursor: pointer;
}

.wlu-login-label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.wlu-login-forgot-link {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--wlu-red-deep) !important;
    text-decoration: none;
    transition: opacity 0.2s;
}

.wlu-login-forgot-link:hover {
    opacity: 0.75;
    text-decoration: underline;
    color: var(--wlu-red-deep) !important;
}

/* Input wrap with icon */
.wlu-login-input-wrap {
    position: relative;
    display: flex;
    align-items: center;
    background: #ffffff;
    border: 1.5px solid rgba(17,17,17,0.14);
    border-radius: 14px;
    transition: border-color 0.2s, box-shadow 0.2s;
    overflow: hidden;
    touch-action: manipulation;
}

.wlu-login-input-wrap.is-focused {
    border-color: var(--wlu-red);
    box-shadow: 0 0 0 4px rgba(200, 52, 47, 0.10);
}

.wlu-login-field.has-error .wlu-login-input-wrap {
    border-color: rgba(200, 52, 47, 0.50);
    box-shadow: 0 0 0 3px rgba(200, 52, 47, 0.08);
}

/* Leading icon */
.wlu-login-input-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    flex-shrink: 0;
    color: var(--wlu-muted);
    font-size: 0.95rem;
    pointer-events: none;
    transition: color 0.2s;
}

.wlu-login-input-wrap.is-focused .wlu-login-input-icon {
    color: var(--wlu-red);
}

/* Input itself */
.wlu-login-input {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    padding: 14px 14px 14px 0;
    font-size: 0.94rem;
    color: var(--wlu-black);
    font-family: "Manrope", sans-serif;
    line-height: 1.4;
    width: 100%;
    position: relative;
    z-index: 2;
    touch-action: manipulation;
    pointer-events: auto;
    cursor: text;
}

.wlu-login-input::placeholder {
    color: rgba(17,17,17,0.30);
}

/* Eye toggle button */
.wlu-login-eye {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 100%;
    flex-shrink: 0;
    border: none;
    background: transparent;
    color: var(--wlu-muted);
    cursor: pointer;
    font-size: 0.95rem;
    padding: 0;
    transition: color 0.2s;
    touch-action: manipulation;
}

.wlu-login-eye:hover {
    color: var(--wlu-dark);
}

/* Error message */
.wlu-login-error {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.80rem;
    font-weight: 600;
    color: #b83030 !important;
}

/* ── Remember me checkbox ────────────────────────────────────────── */
.wlu-login-remember {
    margin-bottom: 24px;
}

.wlu-login-check {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    user-select: none;
}

.wlu-login-check input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.wlu-login-check__box {
    width: 18px;
    height: 18px;
    border-radius: 6px;
    border: 1.5px solid rgba(17,17,17,0.22);
    background: #ffffff;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.2s, background 0.2s;
    position: relative;
}

.wlu-login-check input:checked ~ .wlu-login-check__box {
    background: var(--wlu-red);
    border-color: var(--wlu-red);
}

.wlu-login-check input:checked ~ .wlu-login-check__box::after {
    content: "";
    width: 9px;
    height: 5px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg) translateY(-1px);
    display: block;
}

.wlu-login-check__label {
    font-size: 0.86rem;
    font-weight: 600;
    color: var(--wlu-dark) !important;
}

/* ── Submit button ───────────────────────────────────────────────── */
.wlu-login-btn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 15px 28px;
    border-radius: 14px;
    border: none;
    background: var(--wlu-red);
    color: #ffffff;
    font-size: 0.97rem;
    font-weight: 800;
    font-family: "Manrope", sans-serif;
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: background 0.25s, transform 0.2s, box-shadow 0.25s, opacity 0.2s;
    box-shadow: 0 4px 18px rgba(200, 52, 47, 0.30), 0 1px 4px rgba(200, 52, 47, 0.20);
    position: relative;
    overflow: hidden;
    margin-bottom: 24px;
}

.wlu-login-btn::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255,255,255,0.12) 0%, transparent 60%);
    pointer-events: none;
}

.wlu-login-btn:hover:not(:disabled) {
    background: var(--wlu-red-deep);
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(200, 52, 47, 0.36), 0 2px 6px rgba(200, 52, 47, 0.22);
}

.wlu-login-btn:active:not(:disabled) {
    transform: translateY(0);
}

.wlu-login-btn:disabled {
    cursor: not-allowed;
}

.wlu-login-btn__arrow {
    margin-left: auto;
    opacity: 0.70;
    transition: transform 0.2s;
}

.wlu-login-btn:hover:not(:disabled) .wlu-login-btn__arrow {
    transform: translateX(3px);
}

.wlu-login-btn__spinner {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* ── Footer links ────────────────────────────────────────────────── */
.wlu-login-register {
    text-align: center;
    font-size: 0.88rem;
    color: var(--wlu-muted) !important;
    margin-bottom: 16px;
}

.wlu-login-register a {
    font-weight: 700;
    color: var(--wlu-red-deep) !important;
    text-decoration: none;
    transition: opacity 0.2s;
}

.wlu-login-register a:hover {
    opacity: 0.75;
    text-decoration: underline;
}

.wlu-login-back {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-size: 0.83rem;
    font-weight: 600;
    color: var(--wlu-muted) !important;
    text-decoration: none;
    transition: color 0.2s;
}

.wlu-login-back:hover {
    color: var(--wlu-dark) !important;
}

.wlu-login-back i {
    font-size: 0.78rem;
    transition: transform 0.2s;
}

.wlu-login-back:hover i {
    transform: translateX(-3px);
}

/* ── Forgot password modal — reskin to WLU system ───────────────── */
#changePasswordModal .modal-content {
    border-radius: 24px !important;
    border: 1px solid rgba(17,17,17,0.08) !important;
    box-shadow: 0 24px 72px rgba(0,0,0,0.14) !important;
    overflow: hidden;
}

#changePasswordModal .modal-header {
    background: var(--wlu-red) !important;
    border-radius: 0 !important;
    padding: 18px 24px !important;
    border-bottom: none !important;
}

#changePasswordModal .modal-title {
    font-size: 1rem !important;
    font-weight: 800 !important;
    letter-spacing: -0.01em;
}

#changePasswordModal .modal-body {
    padding: 28px 24px !important;
}

#changePasswordModal .modal-footer {
    padding: 0 24px 20px !important;
    border: none !important;
}

#changePasswordModal .list-group {
    gap: 10px;
    display: flex;
    flex-direction: column;
}

#changePasswordModal .list-group-item {
    border-radius: 16px !important;
    border: 1px solid rgba(17,17,17,0.08) !important;
    padding: 16px !important;
    transition: border-color 0.2s, background 0.2s;
}

#changePasswordModal .list-group-item:hover {
    background: rgba(200, 52, 47, 0.04) !important;
    border-color: rgba(200, 52, 47, 0.16) !important;
}

/* ── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 991px) {
    .wlu-login-wrap {
        flex-direction: column;
        min-height: auto;
        margin-top: 0;
        padding-top: calc(var(--wlu-header-total) + 16px);
    }
    .wlu-login-brand {
        display: none;
    }
    .wlu-login-brand__inner {
        padding: 40px 28px 36px;
        gap: 28px;
    }
    .wlu-login-brand__content {
        gap: 12px;
    }
    .wlu-login-brand__text {
        max-width: 100%;
        font-size: 0.93rem;
    }
    .wlu-login-form-panel {
        width: 100%;
        padding: 48px 24px 60px;
        z-index: 4;
        overflow: visible;
    }

    .wlu-login-form-inner,
    .wlu-login-field,
    .wlu-login-input-wrap {
        position: relative;
        z-index: 4;
    }
}

@media (max-width: 599px) {
    .wlu-login-brand__inner {
        padding: 32px 20px 28px;
    }
    .wlu-login-brand__stats {
        gap: 6px;
    }
    .wlu-login-brand__stat-value {
        font-size: 1rem;
    }
    .wlu-login-form-panel {
        padding: 36px 20px 48px;
    }
    .wlu-login-form-title {
        font-size: 1.5rem !important;
    }
    .wlu-login-form-inner {
        max-width: 100%;
    }

    .wlu-login-input,
    .wlu-login-eye {
        min-height: 48px;
    }
}

@media (max-width: 991px) {
    .wlu-auth-shell {
        grid-template-columns: 1fr;
    }

    .wlu-auth-aside {
        display: none;
    }

    .wlu-auth-panel {
        width: 100%;
        z-index: 4;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   SIGNUP PAGE — Premium "Why Join?" aside + Tab panel
   ═════════════════════════════════════════════════════════════════ */

/* ── Aside: complete contrast overhaul ──────────────────────────── */

/* Replace old generic eyebrow with a proper branded pill */
.wlu-auth-aside__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 14px;
    border-radius: 50px;
    background: rgba(200, 52, 47, 0.22);
    border: 1px solid rgba(200, 52, 47, 0.38);
    color: #e87a75 !important;
    font-size: 0.73rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    width: fit-content;
    margin-bottom: 20px;
}

.wlu-auth-aside__title {
    color: #ffffff !important;
    font-size: clamp(1.25rem, 2vw, 1.65rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.18;
    margin: 0 0 14px;
}

.wlu-auth-aside__intro {
    color: rgba(255,255,255,0.68) !important;
    font-size: 0.94rem;
    line-height: 1.76;
    margin: 0 0 28px;
}

/* Benefit list — replaces wlu-feature-list in this context */
.wlu-auth-benefit-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 28px;
}

.wlu-auth-benefit {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 16px;
    border-radius: 16px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.08);
    transition: background 0.25s, border-color 0.25s;
}

.wlu-auth-benefit:hover {
    background: rgba(255,255,255,0.08);
    border-color: rgba(200,52,47,0.25);
}

.wlu-auth-benefit__icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: rgba(200, 52, 47, 0.18);
    border: 1px solid rgba(200, 52, 47, 0.30);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #e87a75 !important;
    font-size: 1rem;
    flex-shrink: 0;
}

.wlu-auth-benefit__body {
    flex: 1;
}

.wlu-auth-benefit__body strong {
    display: block;
    font-size: 0.88rem;
    font-weight: 800;
    color: #ffffff !important;
    margin-bottom: 3px;
    letter-spacing: -0.01em;
}

.wlu-auth-benefit__body p {
    font-size: 0.82rem;
    color: rgba(255,255,255,0.60) !important;
    line-height: 1.55;
    margin: 0;
}

/* Divider */
.wlu-auth-aside__divider {
    height: 1px;
    background: rgba(255,255,255,0.10);
    margin: 4px 0 22px;
}

/* Summary card — clearly readable on dark bg */
.wlu-auth-summary {
    padding: 20px 20px;
    border-radius: 18px;
    background: rgba(244, 207, 81, 0.08);
    border: 1px solid rgba(244, 207, 81, 0.20);
}

.wlu-auth-summary__label {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--wlu-gold) !important;
    margin-bottom: 10px;
}

.wlu-auth-summary__amount {
    font-family: "Sora", sans-serif;
    font-size: 1.6rem;
    font-weight: 800;
    color: #ffffff !important;
    letter-spacing: -0.04em;
    line-height: 1;
    margin-bottom: 8px;
}

.wlu-auth-summary__note {
    font-size: 0.78rem;
    color: rgba(255,255,255,0.48) !important;
    line-height: 1.45;
    margin: 0;
}

/* ── Tab switcher ────────────────────────────────────────────────── */
.wlu-signup-tabs {
    display: flex;
    gap: 6px;
    padding: 5px;
    background: rgba(17,17,17,0.06);
    border-radius: 16px;
    margin-bottom: 28px;
}

.wlu-signup-tab {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 16px;
    border-radius: 12px;
    border: none;
    background: transparent;
    color: var(--wlu-muted);
    font-size: 0.86rem;
    font-weight: 700;
    font-family: "Manrope", sans-serif;
    cursor: pointer;
    transition: background 0.22s, color 0.22s, box-shadow 0.22s;
    white-space: nowrap;
}

.wlu-signup-tab i {
    font-size: 0.90rem;
    flex-shrink: 0;
}

.wlu-signup-tab:hover:not(.is-active) {
    background: rgba(17,17,17,0.05);
    color: var(--wlu-dark);
}

.wlu-signup-tab.is-active {
    background: #ffffff;
    color: var(--wlu-black);
    box-shadow: 0 2px 8px rgba(15,15,15,0.10), 0 1px 3px rgba(15,15,15,0.06);
}

.wlu-signup-tab.is-active i {
    color: var(--wlu-red);
}

/* ── Tab pane ────────────────────────────────────────────────────── */
.wlu-signup-tab-pane__head {
    margin-bottom: 24px;
}

.wlu-signup-tab-pane__head h2 {
    font-size: clamp(1.2rem, 2vw, 1.5rem);
    font-weight: 800;
    letter-spacing: -0.025em;
    margin: 0 0 8px;
}

.wlu-signup-tab-pane__head p {
    font-size: 0.93rem;
    color: var(--wlu-muted) !important;
    margin: 0;
    line-height: 1.62;
}

/* Payment cards inside the tab pane fit the panel width */
#tab-pay-direct .wlu-payment-grid {
    grid-template-columns: 1fr 1fr;
    margin-bottom: 20px;
}

/* Notice bar below payment cards */
.wlu-signup-pay-notice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 14px 16px;
    border-radius: 14px;
    background: rgba(59, 130, 246, 0.06);
    border: 1px solid rgba(59, 130, 246, 0.15);
    font-size: 0.85rem;
    color: var(--wlu-dark) !important;
    line-height: 1.55;
}

.wlu-signup-pay-notice i {
    color: #2563eb;
    font-size: 0.95rem;
    flex-shrink: 0;
    margin-top: 1px;
}

.wlu-signup-pay-notice a {
    font-weight: 700;
    color: #2563eb !important;
    text-decoration: none;
}

.wlu-signup-pay-notice a:hover {
    text-decoration: underline;
}

/* Responsive: stack payment cards at narrow panel widths */
@media (max-width: 1199px) {
    #tab-pay-direct .wlu-payment-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 899px) {
    .wlu-signup-tabs {
        flex-direction: column;
    }
    .wlu-signup-tab {
        justify-content: flex-start;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   SIGNUP PAGE — Premium form + Fee breakdown aside
   ═════════════════════════════════════════════════════════════════ */

/* ── Fee breakdown box (inside dark aside) ───────────────────────── */
.wlu-auth-fee-box {
    border-radius: 20px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.09);
    overflow: hidden;
}

.wlu-auth-fee-box__header {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 14px 18px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55) !important;
}

.wlu-auth-fee-box__header i {
    color: var(--wlu-gold) !important;
    font-size: 0.90rem;
}

.wlu-auth-fee-box__body {
    padding: 4px 0;
}

.wlu-auth-fee-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 18px;
    border-bottom: 1px solid rgba(255,255,255,0.05);
}

.wlu-auth-fee-line:last-child {
    border-bottom: none;
}

.wlu-auth-fee-line__label {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 0.83rem;
    color: rgba(255,255,255,0.72) !important;
    font-weight: 600;
    line-height: 1.3;
}

.wlu-auth-fee-line__label small {
    font-size: 0.73rem;
    color: rgba(255,255,255,0.40) !important;
    font-weight: 500;
}

.wlu-auth-fee-line__label strong {
    color: #ffffff !important;
    font-weight: 800;
}

.wlu-auth-fee-line__amount {
    font-family: "Sora", sans-serif;
    font-size: 0.88rem;
    font-weight: 800;
    color: rgba(255,255,255,0.75) !important;
    white-space: nowrap;
    flex-shrink: 0;
}

/* Total row */
.wlu-auth-fee-line--total {
    background: rgba(244, 207, 81, 0.07);
    border-top: 1px solid rgba(244, 207, 81, 0.18);
    border-bottom: 1px solid rgba(244, 207, 81, 0.18);
}

.wlu-auth-fee-line--total .wlu-auth-fee-line__amount {
    color: var(--wlu-gold) !important;
    font-size: 1rem;
}

/* Dynamic row */
.wlu-auth-fee-line--dynamic {
    background: rgba(200, 52, 47, 0.07);
}

.wlu-auth-fee-line--dynamic .wlu-auth-fee-line__amount {
    color: #e87a75 !important;
    font-size: 0.95rem;
}

/* ── Form section headers ─────────────────────────────────────────── */
.wlu-form-section {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 0 6px;
    border-top: 1px solid rgba(17,17,17,0.08);
    margin-top: 6px;
}

.wlu-form-section:first-of-type {
    border-top: none;
    margin-top: 0;
    padding-top: 0;
}

.wlu-form-section__num {
    font-family: "Sora", sans-serif;
    font-size: 0.70rem;
    font-weight: 800;
    letter-spacing: 0.10em;
    color: var(--wlu-gold) !important;
}

.wlu-form-section__title {
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--wlu-muted) !important;
}

/* Optional label badge */
.wlu-form-optional {
    font-weight: 500;
    font-size: 0.72rem;
    color: var(--wlu-muted) !important;
    letter-spacing: 0;
    text-transform: none;
    margin-left: 4px;
}

/* Standard label (for non-<label> elements wrapping chips) */
.wlu-form-label-std {
    display: block;
    color: var(--wlu-black);
    font-size: 0.88rem;
    font-weight: 800;
    margin-bottom: 2px;
}

/* Refined inputs — crisper, more premium */
.wlu-form-field input:not([type="radio"]):not([type="checkbox"]),
.wlu-form-field select,
.wlu-form-field textarea {
    font-family: "Manrope", sans-serif;
    font-size: 0.90rem;
    background: #faf7ee;
    border: 1.5px solid rgba(17,17,17,0.13);
    color: var(--wlu-black);
    letter-spacing: 0;
}

.wlu-form-field input::placeholder,
.wlu-form-field textarea::placeholder {
    color: rgba(17,17,17,0.28);
}

.wlu-form-field select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23999' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    padding-right: 40px;
}

/* Tighter help text */
.wlu-form-field .wlu-help-text {
    font-size: 0.78rem;
    margin-top: -4px;
}

/* ── Terms checkbox links ─────────────────────────────────────────── */
.wlu-checkbox a {
    color: var(--wlu-red-deep) !important;
    font-weight: 700;
    text-decoration: none;
}

.wlu-checkbox a:hover {
    text-decoration: underline;
}

/* ── Submit button — crimson like the login page ─────────────────── */
.wlu-form-submit-btn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 28px;
    border-radius: 16px;
    border: none;
    background: var(--wlu-red);
    color: #ffffff;
    font-size: 0.97rem;
    font-weight: 800;
    font-family: "Manrope", sans-serif;
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: background 0.25s, transform 0.2s, box-shadow 0.25s, opacity 0.2s;
    box-shadow: 0 4px 18px rgba(200,52,47,0.30), 0 1px 4px rgba(200,52,47,0.18);
    position: relative;
    overflow: hidden;
}

.wlu-form-submit-btn::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255,255,255,0.10) 0%, transparent 60%);
    pointer-events: none;
}

.wlu-form-submit-btn:hover:not(:disabled) {
    background: var(--wlu-red-deep);
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(200,52,47,0.34), 0 2px 6px rgba(200,52,47,0.20);
}

.wlu-form-submit-btn:active:not(:disabled) {
    transform: translateY(0);
}

.wlu-form-submit-btn:disabled {
    opacity: 0.75;
    cursor: not-allowed;
}

.wlu-form-submit-btn__arrow {
    margin-left: auto;
    opacity: 0.70;
    transition: transform 0.2s;
    flex-shrink: 0;
}

.wlu-form-submit-btn:hover:not(:disabled) .wlu-form-submit-btn__arrow {
    transform: translateX(3px);
}


/* ============================================================
   CONTACT PAGE — Quick Channels Dark Section
   ============================================================ */

.wlu-contact-dark {
    background: #1a0709;
    position: relative;
    overflow: hidden;
    padding: 72px 0 80px;
}

.wlu-contact-dark__texture {
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle, rgba(200,52,47,0.18) 1px, transparent 1px),
        radial-gradient(circle at 80% 20%, rgba(200,52,47,0.10) 0%, transparent 55%),
        radial-gradient(circle at 10% 80%, rgba(244,207,81,0.06) 0%, transparent 45%);
    background-size: 28px 28px, 100% 100%, 100% 100%;
    pointer-events: none;
}

.wlu-contact-dark__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

/* -- Dark cards ------------------------------------------- */
.wlu-contact-dark-card {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.09);
    border-radius: var(--wlu-radius-sm);
    padding: 36px 32px 32px;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    position: relative;
    overflow: hidden;
    transition: transform 0.3s, background 0.3s, box-shadow 0.3s;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.wlu-contact-dark-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--wlu-red), transparent 70%);
    opacity: 0.7;
    transition: opacity 0.3s;
}

.wlu-contact-dark-card:hover {
    transform: translateY(-4px);
    background: rgba(255,255,255,0.07);
    box-shadow: 0 12px 48px rgba(200,52,47,0.18), 0 4px 16px rgba(0,0,0,0.22);
}

.wlu-contact-dark-card:hover::before {
    opacity: 1;
}

.wlu-contact-dark-card__icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: rgba(200,52,47,0.15);
    border: 1px solid rgba(200,52,47,0.28);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    color: #e87b77 !important;
    flex-shrink: 0;
    transition: background 0.3s;
}

.wlu-contact-dark-card:hover .wlu-contact-dark-card__icon {
    background: rgba(200,52,47,0.25);
}

.wlu-contact-dark-card__title {
    font-family: "Sora", sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    color: #ffffff !important;
    margin: 0;
    line-height: 1.3;
}

.wlu-contact-dark-card__desc {
    font-size: 0.93rem;
    color: rgba(255,255,255,0.62) !important;
    line-height: 1.7;
    margin: 0;
    flex: 1;
}

.wlu-contact-dark-card__links {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 4px;
}

.wlu-contact-dark-card__links a {
    color: #e87b77 !important;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    transition: color 0.2s;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.wlu-contact-dark-card__links a::after {
    content: '→';
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity 0.2s, transform 0.2s;
    font-weight: 400;
}

.wlu-contact-dark-card__links a:hover {
    color: var(--wlu-gold) !important;
}

.wlu-contact-dark-card__links a:hover::after {
    opacity: 1;
    transform: translateX(0);
}


/* ============================================================
   CONTACT PAGE — Form + Response Channels Grid
   ============================================================ */

.wlu-contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: start;
}

/* -- Form header ------------------------------------------ */
.wlu-contact-form-head {
    margin-bottom: 32px;
}

.wlu-contact-form-title {
    font-family: "Sora", sans-serif;
    font-size: clamp(1.6rem, 2.4vw, 2.1rem);
    font-weight: 800;
    color: var(--wlu-black) !important;
    margin: 8px 0 10px;
    line-height: 1.2;
}

.wlu-contact-form-sub {
    font-size: 0.97rem;
    color: var(--wlu-muted) !important;
    line-height: 1.7;
    margin: 0;
}

/* -- Form layout ------------------------------------------ */
.wlu-contact-form {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.wlu-contact-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.wlu-contact-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.wlu-contact-field--full {
    grid-column: 1 / -1;
}

.wlu-contact-field label {
    font-size: 0.87rem;
    font-weight: 700;
    color: var(--wlu-ink) !important;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

/* -- Input wrapper ---------------------------------------- */
.wlu-contact-input-wrap {
    position: relative;
    display: flex;
    align-items: stretch;
    border: 1.5px solid var(--wlu-border);
    border-radius: 12px;
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
    overflow: hidden;
}

/* Error state */
.wlu-contact-input-wrap.is-invalid {
    border-color: #e53e3e;
    box-shadow: 0 0 0 3px rgba(229, 62, 62, 0.12);
}

.wlu-contact-field-error {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    font-size: 0.8rem;
    font-weight: 600;
    color: #e53e3e;
}

.wlu-contact-field-error i {
    font-size: 0.75rem;
    flex-shrink: 0;
}

/* Success state */
.wlu-contact-input-wrap.is-valid {
    border-color: #38a169;
}

/* Form-level success banner */
.wlu-contact-success-banner {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    background: linear-gradient(135deg, #f0fdf4, #dcfce7);
    border: 1.5px solid #86efac;
    border-radius: 14px;
    padding: 20px 22px;
    margin-bottom: 24px;
}

.wlu-contact-success-banner i {
    font-size: 1.4rem;
    color: #16a34a;
    flex-shrink: 0;
    margin-top: 2px;
}

.wlu-contact-success-banner p {
    margin: 0;
    font-size: 0.92rem;
    color: #15803d;
    font-weight: 600;
}

.wlu-contact-success-banner span {
    display: block;
    font-weight: 400;
    font-size: 0.85rem;
    color: #166534;
    margin-top: 3px;
}

.wlu-contact-input-wrap.is-focused {
    border-color: var(--wlu-red);
    box-shadow: 0 0 0 3px rgba(200,52,47,0.10);
}

.wlu-contact-input-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    flex-shrink: 0;
    color: var(--wlu-muted);
    font-size: 1rem;
    border-right: 1.5px solid rgba(17,17,17,0.08);
    background: rgba(17,17,17,0.025);
    transition: color 0.2s, background 0.2s;
    pointer-events: none;
}

.wlu-contact-input-wrap.is-focused .wlu-contact-input-icon {
    color: var(--wlu-red);
    background: rgba(200,52,47,0.05);
    border-right-color: rgba(200,52,47,0.15);
}

.wlu-contact-input-wrap input,
.wlu-contact-input-wrap textarea {
    flex: 1;
    border: none;
    background: transparent;
    padding: 12px 14px;
    font-family: "Manrope", sans-serif;
    font-size: 0.95rem;
    color: var(--wlu-ink);
    outline: none;
    min-width: 0;
    position: relative;
    z-index: 1;
}

.wlu-contact-input-wrap textarea {
    resize: vertical;
    min-height: 130px;
    line-height: 1.65;
}

.wlu-contact-input-wrap input::placeholder,
.wlu-contact-input-wrap textarea::placeholder {
    color: rgba(17,17,17,0.35);
}


/* ============================================================
   CONTACT PAGE — Response Channels (right column)
   ============================================================ */

.wlu-response-channels {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.wlu-response-channels__title {
    font-family: "Sora", sans-serif;
    font-size: clamp(1.5rem, 2.2vw, 1.95rem);
    font-weight: 800;
    color: var(--wlu-black) !important;
    margin: 8px 0 12px;
    line-height: 1.2;
}

.wlu-response-channels__intro {
    font-size: 0.93rem;
    color: var(--wlu-muted) !important;
    line-height: 1.7;
    margin: 0 0 24px;
}

.wlu-response-list {
    display: flex;
    flex-direction: column;
    border: 1.5px solid var(--wlu-border);
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
    margin-bottom: 18px;
}

.wlu-response-item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 20px 22px;
    border-bottom: 1.5px solid var(--wlu-border);
    transition: background 0.2s;
}

.wlu-response-item:last-child {
    border-bottom: none;
}

.wlu-response-item:hover {
    background: rgba(200,52,47,0.03);
}

.wlu-response-item__icon {
    width: 42px;
    height: 42px;
    border-radius: 11px;
    background: rgba(200,52,47,0.08);
    border: 1px solid rgba(200,52,47,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    color: var(--wlu-red) !important;
    flex-shrink: 0;
    margin-top: 2px;
}

.wlu-response-item__body {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.wlu-response-item__tag {
    font-size: 0.74rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--wlu-red) !important;
}

.wlu-response-item__label {
    font-size: 0.96rem;
    font-weight: 800;
    color: var(--wlu-ink) !important;
    display: block;
}

.wlu-response-item__text {
    font-size: 0.875rem;
    color: var(--wlu-muted) !important;
    line-height: 1.6;
    margin: 0;
}

.wlu-response-item__action {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--wlu-red) !important;
    text-decoration: none;
    margin-top: 4px;
    transition: gap 0.2s;
}

.wlu-response-item__action:hover {
    gap: 8px;
}

.wlu-response-item__hours {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.83rem;
    color: var(--wlu-muted) !important;
    margin-top: 5px;
    font-weight: 600;
}

.wlu-response-item__hours i {
    color: var(--wlu-red) !important;
}

.wlu-response-item__socials {
    display: flex;
    gap: 10px;
    margin-top: 8px;
}

.wlu-response-item__socials a {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: rgba(17,17,17,0.06);
    border: 1px solid rgba(17,17,17,0.09);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    color: var(--wlu-muted) !important;
    text-decoration: none;
    transition: background 0.2s, color 0.2s, border-color 0.2s, transform 0.2s;
}

.wlu-response-item__socials a:hover {
    background: var(--wlu-red);
    border-color: var(--wlu-red);
    color: #fff !important;
    transform: translateY(-2px);
}

.wlu-response-badge {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 18px;
    background: rgba(200,52,47,0.06);
    border: 1px solid rgba(200,52,47,0.18);
    border-radius: 12px;
    font-size: 0.875rem;
    color: var(--wlu-ink) !important;
    margin-top: 4px;
}

.wlu-response-badge i {
    color: var(--wlu-red) !important;
    font-size: 1.1rem;
    flex-shrink: 0;
}

.wlu-response-badge strong {
    color: var(--wlu-red) !important;
}


/* ============================================================
   CONTACT PAGE — Map Section
   ============================================================ */

.wlu-map-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 40px;
    flex-wrap: wrap;
}

.wlu-map-section-head__actions {
    display: flex;
    gap: 14px;
    flex-shrink: 0;
    flex-wrap: wrap;
}

.wlu-map-feature {
    display: grid;
    grid-template-columns: 340px 1fr;
    border-radius: var(--wlu-radius-sm);
    overflow: hidden;
    box-shadow: var(--wlu-shadow-soft);
    border: 1.5px solid var(--wlu-border);
    min-height: 460px;
}

.wlu-map-feature__info {
    background: var(--wlu-ink);
    padding: 36px 32px;
    display: flex;
    flex-direction: column;
    gap: 28px;
    position: relative;
    overflow: hidden;
}

.wlu-map-feature__info::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--wlu-red), var(--wlu-gold), var(--wlu-red));
    background-size: 200% 100%;
    animation: wlu-map-bar-shine 4s linear infinite;
}

@keyframes wlu-map-bar-shine {
    0%   { background-position: 0% 0; }
    100% { background-position: 200% 0; }
}

.wlu-map-info-block {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.wlu-map-info-block__label {
    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: rgba(255,255,255,0.45) !important;
    display: flex;
    align-items: center;
    gap: 6px;
}

.wlu-map-info-block__label i {
    color: var(--wlu-red) !important;
    font-size: 0.85rem;
}

.wlu-map-info-block__value {
    font-size: 0.92rem;
    color: rgba(255,255,255,0.85) !important;
    line-height: 1.65;
    margin: 0;
}

.wlu-map-info-block__value a {
    color: #e87b77 !important;
    text-decoration: none;
    transition: color 0.2s;
}

.wlu-map-info-block__value a:hover {
    color: var(--wlu-gold) !important;
}

.wlu-map-info-block__value small {
    font-size: 0.82em;
    color: rgba(255,255,255,0.45) !important;
    display: block;
    margin-top: 2px;
}

.wlu-map-directions-btn {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 12px 22px;
    background: var(--wlu-red);
    color: #fff !important;
    border-radius: 12px;
    font-size: 0.9rem;
    font-weight: 700;
    text-decoration: none;
    letter-spacing: 0.01em;
    transition: background 0.25s, transform 0.2s, box-shadow 0.25s;
    box-shadow: 0 4px 18px rgba(200,52,47,0.32);
    margin-top: auto;
    align-self: flex-start;
}

.wlu-map-directions-btn:hover {
    background: var(--wlu-red-deep);
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(200,52,47,0.38);
}

/* -- Map embed -------------------------------------------- */
.wlu-map-feature__embed {
    position: relative;
    min-height: 460px;
    overflow: hidden;
}

.wlu-map-feature__embed iframe {
    width: 100%;
    height: 100%;
    border: none;
    display: block;
    position: absolute;
    inset: 0;
}

.wlu-map-feature__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(200,52,47,0.10);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    cursor: pointer;
    z-index: 10;
    transition: opacity 0.4s;
}

.wlu-map-feature__overlay span {
    background: var(--wlu-ink);
    color: #fff !important;
    padding: 12px 24px;
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    display: flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.30);
    pointer-events: none;
    transition: transform 0.2s;
}

.wlu-map-feature__overlay:hover span {
    transform: scale(1.04);
}


/* ============================================================
   CONTACT PAGE — Responsive
   ============================================================ */

@media (max-width: 1024px) {
    .wlu-contact-dark__grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .wlu-contact-dark-card {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 12px 20px;
        align-items: flex-start;
    }

    .wlu-contact-dark-card__icon {
        margin-top: 2px;
    }

    .wlu-contact-dark-card__title,
    .wlu-contact-dark-card__desc,
    .wlu-contact-dark-card__links {
        flex-basis: 100%;
    }

    .wlu-contact-grid {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .wlu-map-feature {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .wlu-map-feature__info {
        padding: 28px 24px;
    }

    .wlu-map-directions-btn {
        margin-top: 0;
    }

    .wlu-map-feature__embed {
        min-height: 380px;
    }

    .wlu-map-section-head {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 768px) {
    .wlu-contact-dark {
        padding: 52px 0 60px;
    }

    .wlu-contact-dark__grid {
        grid-template-columns: 1fr;
    }

    .wlu-contact-dark-card {
        padding: 24px 20px;
        flex-direction: column;
        align-items: flex-start;
    }

    .wlu-contact-row {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .wlu-response-item {
        padding: 16px 16px;
    }

    .wlu-map-feature__embed {
        min-height: 300px;
    }

    .wlu-map-section-head__actions {
        width: 100%;
    }

    .wlu-map-section-head__actions .wlu-btn,
    .wlu-map-section-head__actions .wlu-btn--ghost {
        flex: 1;
        text-align: center;
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .wlu-contact-dark-card__links a::after {
        display: none;
    }

    .wlu-response-item__socials a {
        width: 36px;
        height: 36px;
    }
}


/* ============================================================
   CONTACT PAGE — Form ↔ Channel height parity + premium textarea
   ============================================================ */

/* Stretch both columns to equal height */
.wlu-contact-grid {
    align-items: stretch !important;
}

/* Form panel: flex column so .wlu-contact-form can grow */
.wlu-contact-form-panel {
    display: flex !important;
    flex-direction: column !important;
}

/* Form itself grows to fill the panel */
.wlu-contact-form-panel .wlu-contact-form {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}

/* The message field expands to absorb remaining space */
.wlu-contact-field--grow {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}

.wlu-contact-field--grow .wlu-contact-textarea-wrap {
    flex: 1 !important;
    align-items: stretch !important;
}

/* Also stretch the response channels panel */
.wlu-response-channels {
    display: flex !important;
    flex-direction: column !important;
}

/* Push the badge to the bottom so it pins at the foot of the panel */
.wlu-response-channels .wlu-response-badge {
    margin-top: auto !important;
}

/* -- Premium textarea ------------------------------------ */
.wlu-contact-textarea-wrap {
    border-radius: 16px !important;
    background: #fff !important;
    border: 1.5px solid var(--wlu-border) !important;
    overflow: hidden !important;
    position: relative !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    align-items: flex-start !important;
}

.wlu-contact-textarea-wrap::after {
    content: '';
    position: absolute;
    bottom: 12px;
    right: 14px;
    width: 14px;
    height: 14px;
    border-right: 2px solid rgba(17,17,17,0.18);
    border-bottom: 2px solid rgba(17,17,17,0.18);
    border-radius: 0 0 4px 0;
    pointer-events: none;
    transition: border-color 0.2s;
}

.wlu-contact-textarea-wrap.is-focused::after {
    border-color: rgba(200,52,47,0.35);
}

.wlu-contact-textarea-icon {
    align-self: flex-start !important;
    padding-top: 14px !important;
    height: auto !important;
}

.wlu-contact-textarea-wrap textarea {
    resize: none !important;
    min-height: 0 !important;
    height: 100% !important;
    width: 100% !important;
    padding: 14px 36px 16px 14px !important;
    font-size: 0.95rem !important;
    line-height: 1.75 !important;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    font-family: "Manrope", sans-serif !important;
    color: var(--wlu-ink) !important;
    flex: 1 !important;
}

.wlu-contact-textarea-wrap textarea::placeholder {
    color: rgba(17,17,17,0.32) !important;
    font-style: italic !important;
}

/* Character count hint (aesthetic only) */
.wlu-contact-textarea-wrap::before {
    content: 'Your message';
    position: absolute;
    top: 0;
    left: 46px;
    right: 0;
    height: 1px;
    pointer-events: none;
    display: none;
}

.wlu-auth-panel input,
.wlu-auth-panel select,
.wlu-auth-panel textarea,
.wlu-contact-form input,
.wlu-contact-form select,
.wlu-contact-form textarea {
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    pointer-events: auto;
    position: relative;
    z-index: 2;
    cursor: text;
}

/* ── Hide mobile CTA bar on form pages ─────────────────────────────
   The fixed bottom bar (z-index 997) covers inputs that scroll into
   the bottom of the viewport, making them untappable. Hide it on
   register / login / contact where the form IS the CTA.
   ──────────────────────────────────────────────────────────────── */
body.wlu-page--form .wlu-mobile-cta {
    display: none !important;
}

/* ── iOS auto-zoom fix ──────────────────────────────────────────────
   iOS Safari zooms the viewport when a focused input has font-size
   below 16px, making inputs feel broken / read-only on mobile.
   Force a minimum of 1rem (16px) for all form inputs on mobile.
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 991px) {
    .wlu-form-field input:not([type="radio"]):not([type="checkbox"]),
    .wlu-form-field select,
    .wlu-form-field textarea,
    .wlu-login-input,
    .wlu-contact-input-wrap input,
    .wlu-contact-input-wrap textarea {
        font-size: 1rem;
    }

    .wlu-contact-input-wrap input,
    .wlu-contact-input-wrap textarea {
        touch-action: manipulation;
    }
}

.wlu-auth-panel input:focus,
.wlu-auth-panel select:focus,
.wlu-auth-panel textarea:focus,
.wlu-contact-form input:focus,
.wlu-contact-form select:focus,
.wlu-contact-form textarea:focus {
    position: relative;
    z-index: 2;
}

#signup {
    scroll-margin-top: calc(var(--wlu-header-total) + 24px);
}


/* ============================================================
   NAV — "Join Us Now" — 3D + looping animated border
   ============================================================ */

.wlu-nav__item--cta {
    position: relative;
}

/* Animated conic-gradient border ring */
.wlu-nav__item--cta::before {
    content: '';
    position: absolute;
    inset: -3px;
    border-radius: 999px;
    background: conic-gradient(
        from var(--cta-angle, 0deg),
        var(--wlu-gold) 0%,
        var(--wlu-red) 25%,
        #fff 40%,
        var(--wlu-red) 55%,
        var(--wlu-gold) 75%,
        var(--wlu-red) 90%,
        var(--wlu-gold) 100%
    );
    animation: wlu-cta-spin 2.8s linear infinite;
    z-index: 0;
    opacity: 0.85;
}

/* Solid fill inside the border ring */
.wlu-nav__item--cta::after {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: 999px;
    background: var(--wlu-red);
    z-index: 1;
}

@property --cta-angle {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}

@keyframes wlu-cta-spin {
    to { --cta-angle: 360deg; }
}

/* The link itself sits on top of the pseudo-elements */
.wlu-nav__item--cta .wlu-nav__link {
    position: relative;
    z-index: 2;
    background: var(--wlu-red) !important;
    color: var(--wlu-white) !important;
    /* 3D effect: layered shadow + subtle top highlight */
    box-shadow:
        0 1px 0 rgba(255,255,255,0.18) inset,
        0 -2px 0 rgba(0,0,0,0.25) inset,
        0 4px 0 #7a1e1a,
        0 6px 12px rgba(142,30,26,0.45),
        0 2px 4px rgba(0,0,0,0.18) !important;
    transform: translateY(-1px);
    transition:
        background 0.2s,
        transform 0.12s,
        box-shadow 0.12s !important;
    text-shadow: 0 1px 2px rgba(0,0,0,0.25);
}

.wlu-nav__item--cta .wlu-nav__link:hover {
    background: var(--wlu-red-deep) !important;
    color: var(--wlu-white) !important;
    box-shadow:
        0 1px 0 rgba(255,255,255,0.15) inset,
        0 -2px 0 rgba(0,0,0,0.25) inset,
        0 2px 0 #5a1410,
        0 4px 10px rgba(142,30,26,0.50),
        0 1px 3px rgba(0,0,0,0.18) !important;
    transform: translateY(1px) !important;
}

.wlu-nav__item--cta .wlu-nav__link:active {
    transform: translateY(2px) !important;
    box-shadow:
        0 1px 0 rgba(255,255,255,0.10) inset,
        0 -1px 0 rgba(0,0,0,0.20) inset,
        0 0 0 transparent,
        0 2px 6px rgba(142,30,26,0.30) !important;
}


/* ============================================================
   FOOTER — "Join With Love Uganda" — 3D + looping animated border
   (mirrors .wlu-nav__item--cta treatment)
   ============================================================ */

.wlu-footer-cta-wrap {
    position: relative;
    display: inline-flex;
    border-radius: 999px;
    isolation: isolate;
}

/* Spinning conic-gradient ring */
.wlu-footer-cta-wrap::before {
    content: '';
    position: absolute;
    inset: -3px;
    border-radius: 999px;
    background: conic-gradient(
        from var(--footer-cta-angle, 0deg),
        var(--wlu-gold) 0%,
        var(--wlu-red) 25%,
        #fff 40%,
        var(--wlu-red) 55%,
        var(--wlu-gold) 75%,
        var(--wlu-red) 90%,
        var(--wlu-gold) 100%
    );
    animation: wlu-footer-cta-spin 2.8s linear infinite;
    z-index: 0;
    opacity: 0.85;
}

/* Solid mask so only the ring is visible */
.wlu-footer-cta-wrap::after {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: 999px;
    background: var(--wlu-red);
    z-index: 1;
}

@property --footer-cta-angle {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}

@keyframes wlu-footer-cta-spin {
    to { --footer-cta-angle: 360deg; }
}

/* Button itself floats above the pseudo-elements */
.wlu-btn--footer-3d {
    position: relative;
    z-index: 2;
    background: var(--wlu-red) !important;
    color: var(--wlu-white) !important;
    box-shadow:
        0 1px 0 rgba(255,255,255,0.18) inset,
        0 -2px 0 rgba(0,0,0,0.25) inset,
        0 4px 0 #7a1e1a,
        0 6px 12px rgba(142,30,26,0.45),
        0 2px 4px rgba(0,0,0,0.18) !important;
    transform: translateY(-1px) !important;
    text-shadow: 0 1px 2px rgba(0,0,0,0.25);
    transition:
        background 0.2s,
        transform 0.12s,
        box-shadow 0.12s !important;
}

.wlu-btn--footer-3d:hover,
.wlu-btn--footer-3d:focus {
    background: var(--wlu-red-deep) !important;
    color: var(--wlu-white) !important;
    box-shadow:
        0 1px 0 rgba(255,255,255,0.15) inset,
        0 -2px 0 rgba(0,0,0,0.25) inset,
        0 2px 0 #5a1410,
        0 4px 10px rgba(142,30,26,0.50),
        0 1px 3px rgba(0,0,0,0.18) !important;
    transform: translateY(1px) !important;
}

.wlu-btn--footer-3d:active {
    transform: translateY(2px) !important;
    box-shadow:
        0 1px 0 rgba(255,255,255,0.10) inset,
        0 -1px 0 rgba(0,0,0,0.20) inset,
        0 0 0 transparent,
        0 2px 6px rgba(142,30,26,0.30) !important;
}


/* ============================================================
   AUTH PAGES — Brand panel extras (steps + tips)
   ============================================================ */

.wlu-login-brand__steps {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-top: 8px;
}

.wlu-login-brand__steps-label {
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: rgba(255,255,255,0.38) !important;
    margin: 0 0 4px;
}

.wlu-login-brand__step {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    opacity: 0.48;
    transition: opacity 0.2s;
}

.wlu-login-brand__step--active {
    opacity: 1;
}

.wlu-login-brand__step-num {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 1.5px solid rgba(255,255,255,0.30);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    font-weight: 800;
    color: rgba(255,255,255,0.60) !important;
    flex-shrink: 0;
    background: rgba(255,255,255,0.06);
}

.wlu-login-brand__step--active .wlu-login-brand__step-num {
    border-color: var(--wlu-gold);
    background: rgba(244,207,81,0.15);
    color: var(--wlu-gold) !important;
}

.wlu-login-brand__step-text {
    font-size: 0.88rem;
    color: rgba(255,255,255,0.72) !important;
    line-height: 1.55;
    padding-top: 4px;
}

.wlu-login-brand__step--active .wlu-login-brand__step-text {
    color: rgba(255,255,255,0.95) !important;
    font-weight: 600;
}

/* -- Password tips ---------------------------------------- */
.wlu-login-brand__tips {
    margin-top: 8px;
}

.wlu-login-brand__tip-list {
    list-style: none;
    padding: 0;
    margin: 8px 0 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.wlu-login-brand__tip-list li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.875rem;
    color: rgba(255,255,255,0.72) !important;
    line-height: 1.4;
}

.wlu-login-brand__tip-list li i {
    color: var(--wlu-gold) !important;
    font-size: 0.9rem;
    flex-shrink: 0;
}


/* ============================================================
   AUTH PAGES — Divider + Alt button
   ============================================================ */

.wlu-login-divider {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 22px 0;
    color: var(--wlu-muted);
    font-size: 0.82rem;
}

.wlu-login-divider::before,
.wlu-login-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--wlu-border);
}

.wlu-login-divider span {
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.wlu-login-alt-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    padding: 13px 20px;
    border: 1.5px solid var(--wlu-border);
    border-radius: 12px;
    background: transparent;
    color: var(--wlu-ink) !important;
    font-size: 0.9rem;
    font-weight: 700;
    text-decoration: none;
    transition: background 0.2s, border-color 0.2s, transform 0.2s;
    margin-bottom: 20px;
}

.wlu-login-alt-btn i {
    color: var(--wlu-red) !important;
    font-size: 1rem;
}

.wlu-login-alt-btn:hover {
    background: rgba(17,17,17,0.04);
    border-color: rgba(17,17,17,0.22);
    transform: translateY(-1px);
}


/* ============================================================
   AUTH PAGES — Password strength meter
   ============================================================ */

.wlu-pwd-strength {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 6px;
    min-height: 18px;
}

.wlu-pwd-strength__bar {
    flex: 1;
    height: 4px;
    border-radius: 4px;
    background: rgba(17,17,17,0.10);
    overflow: hidden;
}

.wlu-pwd-strength__fill {
    height: 100%;
    border-radius: 4px;
    transition: width 0.35s ease, background 0.35s ease;
}

.wlu-pwd-strength__label {
    font-size: 0.78rem;
    font-weight: 700;
    flex-shrink: 0;
    transition: color 0.35s;
}

.wlu-pwd-match {
    margin-top: 6px;
    min-height: 18px;
    font-size: 0.82rem;
    font-weight: 600;
}

.wlu-pwd-match--ok {
    color: #16a34a !important;
    display: flex;
    align-items: center;
    gap: 5px;
}

.wlu-pwd-match--err {
    color: #dc2626 !important;
    display: flex;
    align-items: center;
    gap: 5px;
}


/* ============================================================
   PHONE PAGE — Country picker + phone input
   ============================================================ */

.wlu-phone-field {
    display: flex;
    align-items: stretch;
    border: 1.5px solid var(--wlu-border);
    border-radius: 12px;
    background: #fff;
    overflow: visible;
    position: relative;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.wlu-phone-field.is-focused {
    border-color: var(--wlu-red);
    box-shadow: 0 0 0 3px rgba(200,52,47,0.10);
}

/* Country trigger button */
.wlu-phone-trigger {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 14px 0 14px;
    background: rgba(17,17,17,0.03);
    border: none;
    border-right: 1.5px solid rgba(17,17,17,0.10);
    border-radius: 10px 0 0 10px;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.2s;
    flex-shrink: 0;
    min-height: 52px;
    font-family: "Manrope", sans-serif;
}

.wlu-phone-trigger:hover {
    background: rgba(17,17,17,0.06);
}

.wlu-phone-flag {
    font-size: 1.3rem;
    line-height: 1;
}

.wlu-phone-code {
    font-size: 0.9rem;
    font-weight: 800;
    color: var(--wlu-ink) !important;
    letter-spacing: 0.01em;
}

.wlu-phone-chevron {
    font-size: 0.7rem;
    color: var(--wlu-muted) !important;
    transition: transform 0.22s;
    margin-left: 2px;
}

.wlu-phone-chevron.is-open {
    transform: rotate(180deg);
}

/* Local number input */
.wlu-phone-number-input {
    flex: 1;
    border: none;
    background: transparent;
    padding: 0 16px;
    font-family: "Manrope", sans-serif;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--wlu-ink) !important;
    letter-spacing: 0.04em;
    outline: none;
    min-width: 0;
}

.wlu-phone-number-input::placeholder {
    color: rgba(17,17,17,0.30) !important;
    font-weight: 400;
    letter-spacing: 0;
}

/* Dropdown panel */
.wlu-phone-dropdown {
    /* position: fixed so it escapes any overflow:auto ancestor */
    position: fixed;
    /* top / left / width injected by JS via getBoundingClientRect() */
    background: #fff;
    border: 1.5px solid var(--wlu-border);
    border-radius: 14px;
    box-shadow: 0 16px 56px rgba(14,14,14,0.16), 0 4px 16px rgba(14,14,14,0.08);
    z-index: 9999;
    overflow: hidden;
    animation: wlu-dd-in 0.18s ease;
}

@keyframes wlu-dd-in {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Search */
.wlu-phone-search-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px 10px;
    border-bottom: 1px solid var(--wlu-border);
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
}

.wlu-phone-search-wrap i {
    color: var(--wlu-muted) !important;
    font-size: 0.9rem;
    flex-shrink: 0;
}

.wlu-phone-search {
    flex: 1;
    border: none;
    outline: none;
    font-family: "Manrope", sans-serif;
    font-size: 0.9rem;
    color: var(--wlu-ink) !important;
    background: transparent;
}

.wlu-phone-search::placeholder {
    color: rgba(17,17,17,0.35) !important;
}

/* Country list */
.wlu-phone-list {
    list-style: none;
    margin: 0;
    padding: 6px 0;
    max-height: 280px;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.wlu-phone-list::-webkit-scrollbar { width: 4px; }
.wlu-phone-list::-webkit-scrollbar-track { background: transparent; }
.wlu-phone-list::-webkit-scrollbar-thumb { background: rgba(17,17,17,0.12); border-radius: 4px; }

.wlu-phone-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 16px;
    cursor: pointer;
    transition: background 0.12s;
    outline: none;
}

.wlu-phone-item:hover,
.wlu-phone-item:focus {
    background: rgba(200,52,47,0.06);
}

.wlu-phone-item.is-selected {
    background: rgba(200,52,47,0.08);
}

.wlu-phone-item__flag {
    font-size: 1.2rem;
    line-height: 1;
    flex-shrink: 0;
}

.wlu-phone-item__name {
    flex: 1;
    font-size: 0.88rem;
    color: var(--wlu-ink) !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wlu-phone-item.is-selected .wlu-phone-item__name {
    font-weight: 700;
    color: var(--wlu-red) !important;
}

.wlu-phone-item__code {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--wlu-muted) !important;
    flex-shrink: 0;
}

.wlu-phone-item.is-selected .wlu-phone-item__code {
    color: var(--wlu-red) !important;
}

.wlu-phone-item--empty {
    cursor: default;
    color: var(--wlu-muted) !important;
    font-size: 0.88rem;
    justify-content: center;
    font-style: italic;
}

.wlu-phone-item--empty:hover {
    background: transparent;
}

/* Live number preview pill */
.wlu-phone-preview {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding: 9px 14px;
    background: rgba(200,52,47,0.06);
    border: 1px solid rgba(200,52,47,0.16);
    border-radius: 10px;
    font-size: 0.85rem;
    color: var(--wlu-ink) !important;
    animation: wlu-dd-in 0.2s ease;
}

.wlu-phone-preview i {
    color: var(--wlu-red) !important;
    font-size: 0.95rem;
}

.wlu-phone-preview strong {
    color: var(--wlu-red) !important;
    font-weight: 800;
    letter-spacing: 0.04em;
}


/* ============================================================
   AUTH PAGES — Responsive
   ============================================================ */

@media (max-width: 768px) {
    .wlu-login-brand__steps,
    .wlu-login-brand__tips {
        display: none;
    }

    .wlu-phone-dropdown {
        border-radius: 10px;
    }

    .wlu-phone-list {
        max-height: 220px;
    }
}


/* ============================================================
   MOBILE MENU — Full premium redesign
   ============================================================ */

/* ── Panel background ──────────────────────────────────────── */
.wlu-mobile-panel {
    background:
        radial-gradient(ellipse 70% 40% at 10% 5%,  rgba(200,52,47,0.14) 0%, transparent 55%),
        radial-gradient(ellipse 50% 30% at 90% 90%, rgba(244,207,81,0.06) 0%, transparent 50%),
        linear-gradient(160deg, #0a0a0c 0%, #111113 60%, #0d0c0f 100%) !important;
    border-right: 1px solid rgba(255,255,255,0.06);
    box-shadow: 4px 0 48px rgba(0,0,0,0.55);
}

/* ── Panel top – logo row ──────────────────────────────────── */
.wlu-mobile-panel__top {
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(255,255,255,0.07);
    margin-bottom: 20px !important;
}

.wlu-mobile-panel__top .wlu-brand__name {
    color: #ffffff !important;
    font-weight: 800;
    font-size: 0.95rem;
}

.wlu-mobile-panel__top .wlu-brand__tag {
    color: rgba(255,255,255,0.45) !important;
    font-size: 0.72rem;
}

/* ── Close button ──────────────────────────────────────────── */
.wlu-mobile-panel__close {
    width: 44px !important;
    height: 44px !important;
    border-radius: 14px !important;
    background: rgba(255,255,255,0.07) !important;
    border: 1px solid rgba(255,255,255,0.10) !important;
    color: rgba(255,255,255,0.80) !important;
    font-size: 1.05rem;
    transition: background 0.2s, color 0.2s, transform 0.15s;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.wlu-mobile-panel__close:hover {
    background: rgba(200,52,47,0.20) !important;
    border-color: rgba(200,52,47,0.35) !important;
    color: #ffffff !important;
    transform: rotate(90deg);
}

/* ── Nav grid spacing ──────────────────────────────────────── */
.wlu-mobile-nav {
    gap: 8px !important;
}

/* ── Group / link items ─────────────────────────────────────── */
.wlu-mobile-group {
    border: 1px solid rgba(255,255,255,0.07) !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,0.04) !important;
    transition: background 0.2s, border-color 0.2s;
}

.wlu-mobile-group:hover {
    background: rgba(255,255,255,0.07) !important;
    border-color: rgba(255,255,255,0.12) !important;
}

.wlu-mobile-group.is-active {
    background: rgba(244,207,81,0.08) !important;
    border-color: rgba(244,207,81,0.22) !important;
}

/* ── CRITICAL FIX: high-specificity colour rule for <a> links ── */
.wlu-mobile-panel .wlu-mobile-group__summary,
.wlu-mobile-panel .wlu-mobile-group__link {
    color: rgba(255,255,255,0.92) !important;
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* Chevron / arrow icons inherit the link colour */
.wlu-mobile-panel .wlu-mobile-group__summary i,
.wlu-mobile-panel .wlu-mobile-group__link i {
    color: rgba(255,255,255,0.45) !important;
    font-size: 0.8rem;
    transition: color 0.2s, transform 0.2s;
}

/* Hover brightens icon */
.wlu-mobile-panel .wlu-mobile-group:hover .wlu-mobile-group__link i,
.wlu-mobile-panel .wlu-mobile-group:hover .wlu-mobile-group__summary i {
    color: rgba(255,255,255,0.75) !important;
}

/* ── Active link — WLU gold ────────────────────────────────── */
.wlu-mobile-panel .wlu-mobile-group__summary.is-active,
.wlu-mobile-panel .wlu-mobile-group__link.is-active {
    color: var(--wlu-gold) !important;
}

.wlu-mobile-panel .wlu-mobile-group.is-active .wlu-mobile-group__summary i,
.wlu-mobile-panel .wlu-mobile-group.is-active .wlu-mobile-group__link i,
.wlu-mobile-panel .wlu-mobile-group__summary.is-active i,
.wlu-mobile-panel .wlu-mobile-group__link.is-active i {
    color: rgba(244,207,81,0.65) !important;
}

/* Active left accent bar */
.wlu-mobile-panel .wlu-mobile-group__link.is-active {
    position: relative;
}

.wlu-mobile-panel .wlu-mobile-group__link.is-active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 20%;
    bottom: 20%;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--wlu-gold);
}

/* ── Expanded details chevron rotation ─────────────────────── */
.wlu-mobile-group[open] > .wlu-mobile-group__summary i:last-child {
    transform: rotate(180deg);
    color: var(--wlu-gold) !important;
}

/* Expanded group highlight ─────────────────────────────────── */
.wlu-mobile-group[open] {
    background: rgba(255,255,255,0.06) !important;
    border-color: rgba(255,255,255,0.12) !important;
}

/* ── Sub-content block ─────────────────────────────────────── */
.wlu-mobile-group__content {
    border-top: 1px solid rgba(255,255,255,0.07);
    padding-top: 4px !important;
}

.wlu-mobile-group__block {
    background: rgba(255,255,255,0.03) !important;
    border: 1px solid rgba(255,255,255,0.06) !important;
    border-radius: 14px !important;
}

.wlu-mobile-group__title {
    color: var(--wlu-gold) !important;
    font-size: 0.7rem !important;
    letter-spacing: 0.14em !important;
}

/* Sub-links */
.wlu-mobile-panel .wlu-mobile-group__list a {
    color: rgba(255,255,255,0.78) !important;
    font-size: 0.875rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 5px 0;
    transition: color 0.15s, padding-left 0.15s;
}

.wlu-mobile-panel .wlu-mobile-group__list a::after {
    content: '→';
    opacity: 0;
    font-size: 0.8rem;
    transition: opacity 0.15s, transform 0.15s;
    transform: translateX(-4px);
}

.wlu-mobile-panel .wlu-mobile-group__list a:hover {
    color: #ffffff !important;
    padding-left: 4px;
}

.wlu-mobile-panel .wlu-mobile-group__list a.is-active {
    color: var(--wlu-red) !important;
    padding-left: 4px;
}

.wlu-mobile-panel .wlu-mobile-group__list a.is-active::after {
    opacity: 0.75;
    transform: translateX(0);
    color: var(--wlu-red) !important;
}

.wlu-mobile-panel .wlu-mobile-group__list a:hover::after {
    opacity: 0.6;
    transform: translateX(0);
}

/* ── CTA link (JOIN US NOW) ─────────────────────────────────── */
.wlu-mobile-cta-link {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    min-height: 62px !important;
    padding: 0 20px !important;
    border-radius: 18px !important;
    background: linear-gradient(135deg, var(--wlu-red), var(--wlu-red-deep)) !important;
    border: 1px solid rgba(200,52,47,0.50) !important;
    color: #ffffff !important;
    font-size: 0.9rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    box-shadow: 0 4px 18px rgba(200,52,47,0.28), inset 0 1px 0 rgba(255,255,255,0.12) !important;
    transition: background 0.2s, transform 0.15s, box-shadow 0.2s !important;
    text-decoration: none !important;
}

.wlu-mobile-cta-link i {
    color: rgba(255,255,255,0.75) !important;
    font-size: 0.85rem;
    transition: transform 0.2s;
}

.wlu-mobile-cta-link:hover {
    background: linear-gradient(135deg, #d43e39, var(--wlu-red-deep)) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 6px 24px rgba(200,52,47,0.38), inset 0 1px 0 rgba(255,255,255,0.14) !important;
}

.wlu-mobile-cta-link:hover i {
    transform: translateX(3px);
}

/* ── Panel footer ───────────────────────────────────────────── */
.wlu-mobile-panel__footer {
    margin-top: 20px !important;
    padding: 22px 20px !important;
    border-radius: 20px !important;
    background:
        linear-gradient(135deg, rgba(200,52,47,0.14), rgba(244,207,81,0.08)) !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
}

.wlu-mobile-panel__footer-tag {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--wlu-gold) !important;
    margin: 0 0 8px;
}

.wlu-mobile-panel__footer-copy {
    font-size: 0.83rem;
    line-height: 1.6;
    color: rgba(255,255,255,0.62) !important;
    margin: 0 0 18px;
}

.wlu-mobile-panel__footer-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.wlu-mobile-panel__footer-actions .wlu-btn {
    width: 100%;
    justify-content: center;
    min-height: 48px !important;
    font-size: 0.875rem !important;
}

.wlu-mobile-panel__footer-ghost {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    border: 1px solid rgba(255,255,255,0.16);
    border-radius: 12px;
    color: rgba(255,255,255,0.75) !important;
    font-size: 0.875rem;
    font-weight: 700;
    text-decoration: none;
    transition: background 0.2s, border-color 0.2s;
}

.wlu-mobile-panel__footer-ghost:hover {
    background: rgba(255,255,255,0.07);
    border-color: rgba(255,255,255,0.26);
    color: #ffffff !important;
}

/* ── Hamburger menu button ──────────────────────────────────── */
.wlu-nav__menu-button {
    position: relative;
    width: 54px !important;
    height: 54px !important;
    border-radius: 16px !important;
    background: linear-gradient(160deg, #1e1e22 0%, #111113 100%) !important;
    border: 1px solid rgba(255,255,255,0.10) !important;
    border-bottom-color: rgba(0,0,0,0.40) !important;
    color: var(--wlu-gold) !important;
    font-size: 1.1rem !important;
    box-shadow:
        0 4px 0 #050507,
        0 6px 16px rgba(0,0,0,0.38),
        inset 0 1px 0 rgba(255,255,255,0.10) !important;
    transition: transform 0.1s ease, box-shadow 0.1s ease, background 0.2s !important;
    cursor: pointer;
}

.wlu-nav__menu-button:hover {
    background: linear-gradient(160deg, #2a2a30 0%, #18181c 100%) !important;
    transform: translateY(-2px) !important;
    box-shadow:
        0 6px 0 #050507,
        0 10px 24px rgba(0,0,0,0.44),
        inset 0 1px 0 rgba(255,255,255,0.14) !important;
}

.wlu-nav__menu-button:active {
    transform: translateY(3px) !important;
    box-shadow:
        0 1px 0 #050507,
        0 2px 8px rgba(0,0,0,0.28),
        inset 0 2px 5px rgba(0,0,0,0.30) !important;
}


/* ═══════════════════════════════════════════════════════
   BACK TO TOP BUTTON
═══════════════════════════════════════════════════════ */
.wlu-back-to-top {
    position: fixed;
    bottom: 36px;
    right: 36px;
    z-index: 990;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: var(--wlu-red);
    color: #fff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    box-shadow:
        0 4px 16px rgba(193,28,37,0.40),
        0 2px 6px rgba(0,0,0,0.18),
        inset 0 1px 0 rgba(255,255,255,0.15);
    opacity: 0;
    transform: translateY(20px) scale(0.75);
    pointer-events: none;
    transition: opacity 0.3s cubic-bezier(.4,0,.2,1),
                transform 0.3s cubic-bezier(.4,0,.2,1),
                background 0.2s,
                box-shadow 0.2s;
}

.wlu-back-to-top.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

.wlu-back-to-top:hover {
    background: var(--wlu-red-deep);
    box-shadow:
        0 8px 28px rgba(193,28,37,0.50),
        0 3px 10px rgba(0,0,0,0.22),
        inset 0 1px 0 rgba(255,255,255,0.15);
    transform: translateY(-3px) scale(1.06);
}

.wlu-back-to-top:active {
    transform: translateY(0) scale(0.96);
    box-shadow:
        0 2px 8px rgba(193,28,37,0.30),
        0 1px 4px rgba(0,0,0,0.15),
        inset 0 2px 4px rgba(0,0,0,0.20);
}

@media (max-width: 575.98px) {
    .wlu-back-to-top {
        bottom: 22px;
        right: 18px;
        width: 44px;
        height: 44px;
        font-size: 1rem;
    }
}

/* ═══════════════════════════════════════════════════════
   LEGAL PAGES — SIDEBAR ANCHOR NAV
═══════════════════════════════════════════════════════ */
.wlu-legal-nav__list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.wlu-legal-nav__list li {
    border-bottom: 1px solid var(--wlu-border);
}

.wlu-legal-nav__list li:last-child {
    border-bottom: none;
}

.wlu-legal-nav__link {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 4px;
    font-size: 0.875rem;
    color: var(--wlu-muted);
    text-decoration: none;
    border-left: 2px solid transparent;
    padding-left: 10px;
    margin-left: -10px;
    transition: color 0.2s, border-color 0.2s, padding-left 0.2s;
}

.wlu-legal-nav__link i {
    font-size: 0.7rem;
    opacity: 0.5;
    flex-shrink: 0;
    transition: opacity 0.2s, transform 0.2s;
}

.wlu-legal-nav__link:hover {
    color: var(--wlu-red);
    border-left-color: var(--wlu-red);
    padding-left: 14px;
}

.wlu-legal-nav__link:hover i {
    opacity: 1;
    transform: translateX(2px);
}

.wlu-legal-nav__link.is-active {
    color: var(--wlu-red);
    border-left-color: var(--wlu-red);
    font-weight: 600;
}

.wlu-legal-nav__link.is-active i {
    opacity: 1;
}

/* ═══════════════════════════════════════════════════════
   LEGAL PAGES — fix height:100% stretching on stacked cards
   wlu-card normally uses height:100% for single-card columns;
   on terms/privacy the left column has 10+ stacked cards so
   we override to auto so each card sizes to its own content.
═══════════════════════════════════════════════════════ */
[id^="terms-"].wlu-card,
[id^="privacy-"].wlu-card {
    height: auto;
}

/* ═══════════════════════════════════════════════════════
   LEGAL PAGES — sidebar column fixes
═══════════════════════════════════════════════════════ */

/* All cards in the sidebar column must size to content, not stretch */
.wlu-legal-sidebar .wlu-card {
    height: auto;
}

/* Sticky nav — floats with scroll, clears the fixed header */
.wlu-legal-nav {
    position: sticky;
    top: calc(var(--wlu-header-total) + 20px);
}

/* Suppress the hover lift on the sticky card — transform on a sticky
   element causes layout jitter in some browsers */
.wlu-legal-nav:hover {
    transform: none;
}


/* ═══════════════════════════════════════════════════════════════════
   WHATSAPP SUPPORT WIDGET
   ═══════════════════════════════════════════════════════════════════ */

.wlu-wa-widget {
    position: fixed;
    bottom: 36px;
    left: 36px;
    z-index: 980;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    /* The collapsed panel stays in layout (opacity:0), so this container spans
       ~320x430px. Without this, the container swallows taps over that whole
       area — covering form fields on the left and making inputs feel dead.
       Let taps pass through; only the button and open panel stay interactive. */
    pointer-events: none;
}

/* Re-enable interaction on the actual controls */
.wlu-wa-fab {
    pointer-events: auto;
}

/* ── Floating action button ── */
.wlu-wa-fab {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #25D366;
    color: #fff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 16px rgba(37,211,102,0.45), 0 2px 6px rgba(0,0,0,0.18);
    transition: transform 0.28s cubic-bezier(.4,0,.2,1), box-shadow 0.28s;
    position: relative;
    order: 2;
}

.wlu-wa-fab:hover {
    transform: scale(1.1);
    box-shadow: 0 6px 24px rgba(37,211,102,0.55), 0 3px 10px rgba(0,0,0,0.2);
}

.wlu-wa-fab__icon {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.2s, transform 0.2s;
}

.wlu-wa-fab__icon--close {
    opacity: 0;
    transform: rotate(-90deg) scale(0.6);
    font-size: 1.3rem;
}

.wlu-wa-fab.is-active .wlu-wa-fab__icon--open {
    opacity: 0;
    transform: rotate(90deg) scale(0.6);
}
.wlu-wa-fab.is-active .wlu-wa-fab__icon--close {
    opacity: 1;
    transform: rotate(0deg) scale(1);
}

/* Online agents count badge */
.wlu-wa-fab__badge {
    position: absolute;
    top: -4px;
    right: -4px;
    background: var(--wlu-red);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    min-width: 18px;
    height: 18px;
    border-radius: 9px;
    padding: 0 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #fff;
    line-height: 1;
    transition: transform 0.2s;
}

.wlu-wa-fab.is-active .wlu-wa-fab__badge {
    transform: scale(0);
}

/* ── Panel ── */
.wlu-wa-panel {
    order: 1;
    width: 320px;
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 8px 40px rgba(0,0,0,0.16), 0 2px 10px rgba(0,0,0,0.08);
    margin-bottom: 12px;
    overflow: hidden;
    transform: translateY(12px) scale(0.96);
    transform-origin: bottom left;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s cubic-bezier(.4,0,.2,1),
                transform 0.25s cubic-bezier(.4,0,.2,1);
}

.wlu-wa-panel.is-open {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

/* Panel header */
.wlu-wa-panel__header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    background: #075E54;
    color: #fff;
}

.wlu-wa-panel__header-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255,255,255,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.wlu-wa-panel__title {
    display: block;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.2;
}

.wlu-wa-panel__subtitle {
    display: block;
    font-size: 0.75rem;
    opacity: 0.8;
}

.wlu-wa-panel__close {
    margin-left: auto;
    background: transparent;
    border: none;
    color: rgba(255,255,255,0.7);
    cursor: pointer;
    font-size: 1.1rem;
    padding: 4px;
    line-height: 1;
    transition: color 0.15s;
    flex-shrink: 0;
}
.wlu-wa-panel__close:hover { color: #fff; }

/* Agent list */
.wlu-wa-panel__agents {
    padding: 10px 0;
}

.wlu-wa-agent {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 18px;
    text-decoration: none;
    transition: background 0.15s;
}
.wlu-wa-agent:hover {
    background: #f5f5f5;
}

.wlu-wa-agent__avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, #075E54, #128C7E);
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
}

.wlu-wa-agent__status {
    position: absolute;
    bottom: 1px;
    right: 1px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    border: 2px solid #fff;
}
.wlu-wa-agent__status.is-online  { background: #25D366; }
.wlu-wa-agent__status.is-away    { background: #FFC107; }

.wlu-wa-agent__info {
    flex: 1;
    min-width: 0;
}

.wlu-wa-agent__name {
    display: block;
    font-size: 0.88rem;
    font-weight: 700;
    color: #111;
    line-height: 1.3;
}

.wlu-wa-agent__role {
    display: block;
    font-size: 0.75rem;
    color: #777;
}

.wlu-wa-agent__cta {
    color: #25D366;
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

/* Footer note */
.wlu-wa-panel__footer {
    font-size: 0.72rem;
    color: #aaa;
    text-align: center;
    padding: 10px 18px 14px;
    border-top: 1px solid #f0f0f0;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

/* On tablet/mobile — clear the "Join Now & Contact" sticky bar (≈96px tall) */
@media (max-width: 991px) {
    .wlu-wa-widget {
        bottom: calc(110px + env(safe-area-inset-bottom));
        left: 16px;
    }
    .wlu-wa-panel {
        width: min(320px, calc(100vw - 32px));
    }
}

/* On small phones — buttons stack so the bar is taller (≈156px) */
@media (max-width: 575px) {
    .wlu-wa-widget {
        bottom: calc(172px + env(safe-area-inset-bottom));
    }
}


/* ═══════════════════════════════════════════════════════════════════
   BLOG — LOAD MORE BUTTON
   ═══════════════════════════════════════════════════════════════════ */

.wlu-load-more-wrap {
    display: flex;
    justify-content: center;
    margin-top: 48px;
}

.wlu-load-more-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 36px;
    border-radius: 50px;
    border: 2px solid var(--wlu-red);
    background: transparent;
    color: var(--wlu-red);
    font-family: "Manrope", sans-serif;
    font-size: 0.92rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.25s, color 0.25s, transform 0.25s, box-shadow 0.25s;
    position: relative;
}

.wlu-load-more-btn:hover {
    background: var(--wlu-red);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 24px rgba(200,52,47,0.28);
}

.wlu-load-more-btn__loading {
    display: none;
}

.wlu-load-more-btn.is-loading .wlu-load-more-btn__label {
    display: none;
}

.wlu-load-more-btn.is-loading .wlu-load-more-btn__loading {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.wlu-load-more-btn.is-loading {
    opacity: 0.7;
    cursor: wait;
    pointer-events: none;
}


/* ═══════════════════════════════════════════════════════════════════
   BLOG SIDEBAR — JOIN CTA + SOCIALS
   ═══════════════════════════════════════════════════════════════════ */

/* Join CTA card */
.wlu-sidebar-cta {
    background: linear-gradient(145deg, var(--wlu-red-deep, #8e1e1a) 0%, var(--wlu-red) 100%) !important;
    border-color: transparent !important;
    padding: 0 !important;
    overflow: hidden;
}

.wlu-sidebar-cta__inner {
    padding: 28px 26px 26px;
}

.wlu-sidebar-cta .wlu-eyebrow {
    background: rgba(255,255,255,0.15);
    color: rgba(255,255,255,0.9);
    border-color: rgba(255,255,255,0.2);
    display: inline-flex;
}

/* Social links */
.wlu-sidebar-socials {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.wlu-sidebar-social {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 12px;
    border-radius: 10px;
    text-decoration: none;
    color: var(--wlu-dark);
    font-size: 0.88rem;
    font-weight: 600;
    transition: background 0.18s, color 0.18s;
}

.wlu-sidebar-social:hover {
    background: rgba(200, 52, 47, 0.07);
    color: var(--wlu-red);
}

.wlu-sidebar-social__icon {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: rgba(17,17,17,0.05);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
    transition: background 0.18s;
}

.wlu-sidebar-social:hover .wlu-sidebar-social__icon {
    background: rgba(200, 52, 47, 0.1);
}


/* ── Blog sidebar — prevent Bootstrap flex height stretch breaking card stack */
.wlu-blog-sidebar .wlu-card {
    height: auto;
}


/* ═══════════════════════════════════════════════════════════════════
   BLOG DETAIL PAGE
   ═══════════════════════════════════════════════════════════════════ */

/* ── Article hero: smaller title (article titles are longer than page titles) ── */
.wlu-article-hero .wlu-page-hero__title {
    font-size: clamp(1.55rem, 2.8vw, 2.4rem);
    line-height: 1.18;
    margin: 14px 0 14px;
}

/* ── Two-column article hero split ── */
.wlu-article-hero .wlu-article-hero__split {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: 56px;
    align-items: center;
}

/* Meta row inside hero (date / author / comments / read time) */
.wlu-article-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin-top: 24px;
    font-size: 0.84rem;
    color: rgba(255, 255, 255, 0.65);
}

.wlu-article-hero__meta i {
    margin-right: 5px;
    color: var(--wlu-gold);
}

/* Right column: featured image */
.wlu-article-hero__img-wrap {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    box-shadow:
        0 4px 20px rgba(0, 0, 0, 0.40),
        0 24px 64px rgba(0, 0, 0, 0.50);
    /* Subtle tilt for editorial feel */
    transform: rotate(1.5deg);
    transition: transform 0.4s ease;
}

.wlu-article-hero__img-wrap:hover {
    transform: rotate(0deg) scale(1.01);
}

.wlu-article-hero__img-wrap img {
    display: block;
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    object-position: center;
}

/* Gold border accent on image */
.wlu-article-hero__img-wrap::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 20px;
    border: 2px solid rgba(244, 207, 81, 0.30);
    pointer-events: none;
}

/* ── Article section spacing ── */
.wlu-section--article {
    padding-top: 52px;
}

/* ── Article body ── */
.wlu-article-body {
    background: #fff;
    border-radius: 22px;
    border: 1px solid rgba(17,17,17,0.08);
    box-shadow: 0 2px 8px rgba(0,0,0,0.04), 0 12px 40px rgba(0,0,0,0.06);
    overflow: hidden;
    margin-bottom: 28px;
}

.wlu-article-body .wlu-rich-copy {
    padding: 36px 40px 28px;
}

/* ── Article footer (tags + share) ── */
.wlu-article-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
    padding: 18px 40px 22px;
    border-top: 1px solid rgba(17,17,17,0.08);
}

.wlu-article-footer__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.wlu-article-share {
    display: flex;
    align-items: center;
    gap: 8px;
}

.wlu-article-share__label {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--wlu-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-right: 2px;
}

.wlu-article-share__btn {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(17,17,17,0.06);
    color: var(--wlu-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    text-decoration: none;
    transition: background 0.2s, color 0.2s, transform 0.2s;
}


/* ═══════════════════════════════════════════════════════════════════
   WLU HOSPITAL PAGE
   ═══════════════════════════════════════════════════════════════════ */

.wlu-hospital-page {
    --wlu-hospital-ink: #16110d;
    --wlu-hospital-sand: #f6efe6;
    --wlu-hospital-cream: #fffaf4;
    --wlu-hospital-forest: #193a31;
    --wlu-hospital-bronze: #8a5a34;
}

.wlu-hospital-page .wlu-page-hero__text,
.wlu-hospital-page .wlu-page-hero__aside p,
.wlu-hospital-page .wlu-page-hero__aside .wlu-feature-list span {
    max-width: 64ch;
}

.wlu-section-heading {
    max-width: 760px;
    margin-bottom: clamp(26px, 4vw, 38px);
}

.wlu-hospital-story {
    background:
        radial-gradient(circle at top left, rgba(244, 207, 81, 0.16), transparent 28%),
        linear-gradient(180deg, var(--wlu-hospital-cream) 0%, #fff 100%);
}

.wlu-hospital-story__grid,
.wlu-hospital-design__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
    gap: clamp(28px, 4vw, 44px);
    align-items: start;
}

.wlu-hospital-story__aside {
    position: sticky;
    top: 110px;
    padding: clamp(24px, 3vw, 30px);
    border-radius: 26px;
    background: linear-gradient(160deg, #16110d 0%, #241a14 100%);
    color: rgba(255, 255, 255, 0.8);
    box-shadow: 0 24px 60px rgba(22, 17, 13, 0.18);
}

.wlu-hospital-story__aside .wlu-badge {
    margin-bottom: 16px;
}

.wlu-hospital-story__aside h3 {
    color: #fff;
    font-family: "Sora", sans-serif;
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    line-height: 1.25;
    margin-bottom: 16px;
}

.wlu-hospital-story__aside ul {
    display: grid;
    gap: 10px;
    padding: 0;
    margin: 0 0 18px;
    list-style: none;
}

.wlu-hospital-story__aside li {
    position: relative;
    padding-left: 20px;
    font-size: 0.96rem;
    line-height: 1.7;
}

.wlu-hospital-story__aside li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.72em;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--wlu-gold);
}

.wlu-hospital-story__focus {
    margin-top: 28px;
    padding: 22px 24px;
    border-radius: 22px;
    border: 1px solid rgba(25, 58, 49, 0.12);
    background: rgba(25, 58, 49, 0.04);
}

.wlu-hospital-story__focus-label {
    display: block;
    margin-bottom: 12px;
    color: var(--wlu-hospital-forest);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.wlu-hospital-story__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.wlu-hospital-story__pills span {
    padding: 10px 14px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid rgba(25, 58, 49, 0.12);
    color: var(--wlu-hospital-ink);
    font-size: 0.88rem;
    font-weight: 700;
}

.wlu-hospital-promise {
    background:
        linear-gradient(180deg, #fff 0%, var(--wlu-hospital-sand) 100%);
}

.wlu-hospital-film {
    background:
        radial-gradient(circle at top left, rgba(244, 207, 81, 0.12), transparent 26%),
        radial-gradient(circle at bottom right, rgba(200, 52, 47, 0.12), transparent 28%),
        linear-gradient(180deg, #15100d 0%, #0f0b09 100%);
}

.wlu-hospital-film__shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 520px);
    gap: clamp(28px, 4vw, 44px);
    align-items: center;
    padding: clamp(28px, 4vw, 40px);
    border-radius: 32px;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)),
        linear-gradient(180deg, #8C1E1B 0%, #8C1E1B 100%);
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.34);
}

.wlu-hospital-film__title {
    margin: 16px 0 16px;
    color: #fff;
    font-family: "Sora", sans-serif;
    font-size: clamp(1.85rem, 3vw, 2.8rem);
    line-height: 1.08;
}

.wlu-hospital-film__copy {
    max-width: 60ch;
    margin: 0 0 22px;
    color: #ffffff !important;
    font-size: 1rem;
    line-height: 1.85;
}

.wlu-hospital-film__points {
    display: grid;
    gap: 14px;
    margin-bottom: 26px;
}

.wlu-hospital-film__point {
    display: grid;
    grid-template-columns: 54px 1fr;
    gap: 14px;
    align-items: start;
    padding: 16px 18px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.06);
}

.wlu-hospital-film__point-icon {
    width: 54px;
    height: 54px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, rgba(244, 207, 81, 0.2), rgba(200, 52, 47, 0.16));
    color: var(--wlu-gold);
    font-size: 1.2rem;
}

.wlu-hospital-film__point strong {
    display: block;
    margin-bottom: 6px;
    color: #fff;
    font-size: 0.98rem;
    line-height: 1.3;
}

.wlu-hospital-film__point p {
    margin: 0;
    color: #111111 !important;
    font-size: 0.92rem;
    line-height: 1.7;
}

.wlu-hospital-film__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.wlu-hospital-film__actions .wlu-btn {
    padding: 16px 24px;
    background: var(--wlu-gold);
    color: #111111 !important;
    border-color: var(--wlu-gold);
    box-shadow: 0 14px 30px rgba(244, 207, 81, 0.28);
}

.wlu-hospital-film__actions .wlu-btn span,
.wlu-hospital-film__actions .wlu-btn i {
    color: #111111 !important;
}

.wlu-hospital-film__actions .wlu-btn:hover {
    background: #f0c542;
    color: #111111 !important;
    border-color: #f0c542;
}

.wlu-hospital-film__actions .wlu-btn:hover span,
.wlu-hospital-film__actions .wlu-btn:hover i {
    color: #111111 !important;
}

.wlu-hospital-film__actions .wlu-btn--ghost {
    border-color: rgba(255, 255, 255, 0.22);
    color: #fff;
}

.wlu-hospital-film__actions .wlu-btn--ghost:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}

.wlu-hospital-film__thumb {
    position: relative;
    width: 100%;
    padding: 0;
    border: none;
    cursor: pointer;
    overflow: hidden;
    border-radius: 28px;
    background: #090909;
    box-shadow: 0 26px 64px rgba(0, 0, 0, 0.36);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.wlu-hospital-film__thumb:hover {
    transform: translateY(-6px);
    box-shadow: 0 34px 82px rgba(0, 0, 0, 0.42);
}

.wlu-hospital-film__thumb img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
}

.wlu-hospital-film__overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(10, 8, 7, 0.08) 0%, rgba(10, 8, 7, 0.58) 100%),
        radial-gradient(circle at center, rgba(244, 207, 81, 0.14), transparent 36%);
}

.wlu-hospital-film__play {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 86px;
    height: 86px;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, var(--wlu-red), #98231d);
    color: #fff;
    font-size: 1.35rem;
    box-shadow:
        0 0 0 14px rgba(255, 255, 255, 0.08),
        0 18px 36px rgba(152, 35, 29, 0.36);
    transition: transform 0.28s ease, box-shadow 0.28s ease;
}

.wlu-hospital-film__thumb:hover .wlu-hospital-film__play {
    transform: translate(-50%, -50%) scale(1.08);
    box-shadow:
        0 0 0 18px rgba(255, 255, 255, 0.08),
        0 22px 44px rgba(152, 35, 29, 0.42);
}

.wlu-hospital-film__play i {
    margin-left: 4px;
}

.wlu-hospital-film__meta {
    position: absolute;
    left: 20px;
    right: 20px;
    bottom: 18px;
    z-index: 1;
    display: grid;
    gap: 5px;
    text-align: left;
}

.wlu-hospital-film__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(14, 11, 9, 0.74);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: var(--wlu-gold);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.wlu-hospital-film__meta strong {
    color: #fff;
    font-family: "Sora", sans-serif;
    font-size: 1.05rem;
    line-height: 1.3;
}

.wlu-hospital-film__meta small {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.84rem;
}

.wlu-hospital-promise__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.wlu-hospital-promise-card {
    height: 100%;
    padding: 24px;
    border-radius: 24px;
    border: 1px solid rgba(22, 17, 13, 0.08);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 10px 32px rgba(22, 17, 13, 0.06);
    transition: transform 0.28s ease, box-shadow 0.28s ease;
}

.wlu-hospital-promise-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 44px rgba(22, 17, 13, 0.11);
}

.wlu-hospital-promise-card__icon {
    width: 54px;
    height: 54px;
    border-radius: 18px;
    margin-bottom: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, rgba(200, 52, 47, 0.12), rgba(244, 207, 81, 0.22));
    color: var(--wlu-red);
    font-size: 1.3rem;
}

.wlu-hospital-promise-card h3 {
    margin-bottom: 10px;
    color: var(--wlu-hospital-ink);
    font-family: "Sora", sans-serif;
    font-size: 1.08rem;
    line-height: 1.35;
}

.wlu-hospital-promise-card p {
    margin: 0;
    color: var(--wlu-muted);
    font-size: 0.95rem;
    line-height: 1.75;
}

.wlu-hospital-renders {
    background: linear-gradient(180deg, #181312 0%, #0f0c0b 100%);
}

.wlu-hospital-renders .wlu-section-title,
.wlu-hospital-renders .wlu-section-copy {
    color: #fff !important;
}

.wlu-hospital-renders .wlu-section-copy {
    color: rgba(255, 255, 255, 0.72) !important;
}

.wlu-hospital-renders__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.wlu-hospital-render-card {
    overflow: hidden;
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.28);
}

.wlu-hospital-render-card__media img,
.wlu-hospital-design__visual img,
.wlu-hospital-gallery__item img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wlu-hospital-render-card__media {
    aspect-ratio: 16 / 10;
}

.wlu-hospital-render-card__body {
    padding: 22px 22px 24px;
}

.wlu-hospital-render-card__eyebrow {
    display: inline-block;
    margin-bottom: 10px;
    color: var(--wlu-gold);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.wlu-hospital-render-card__body h3 {
    margin-bottom: 10px;
    color: #fff;
    font-family: "Sora", sans-serif;
    font-size: 1.12rem;
    line-height: 1.35;
}

.wlu-hospital-render-card__body p {
    margin: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.94rem;
    line-height: 1.72;
}

.wlu-hospital-design {
    background:
        radial-gradient(circle at top right, rgba(25, 58, 49, 0.08), transparent 28%),
        linear-gradient(180deg, var(--wlu-hospital-sand) 0%, #fff 100%);
}

.wlu-hospital-design__list {
    display: grid;
    gap: 14px;
    margin: 24px 0 18px;
    padding: 0;
    list-style: none;
}

.wlu-hospital-design__list li {
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: 12px;
    align-items: start;
    color: var(--wlu-hospital-ink);
    font-size: 0.96rem;
    line-height: 1.75;
}

.wlu-hospital-design__list i {
    color: var(--wlu-red);
    margin-top: 5px;
}

.wlu-hospital-design__note {
    margin: 0;
    color: var(--wlu-muted);
    font-size: 0.86rem;
}

.wlu-hospital-design__visuals {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.wlu-hospital-design__visual {
    overflow: hidden;
    min-height: 220px;
    border-radius: 24px;
    box-shadow: 0 18px 48px rgba(22, 17, 13, 0.12);
}

.wlu-hospital-design__visual--large {
    grid-column: 1 / -1;
    min-height: 340px;
}

.wlu-hospital-gallery {
    background: #fff;
}

.wlu-hospital-gallery__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.wlu-hospital-gallery__item {
    position: relative;
    overflow: hidden;
    min-height: 260px;
    border-radius: 24px;
    background: #111;
    box-shadow: 0 12px 34px rgba(22, 17, 13, 0.10);
}

.wlu-hospital-gallery__item:nth-child(6n + 1),
.wlu-hospital-gallery__item:nth-child(6n + 4) {
    grid-column: span 2;
}

.wlu-hospital-gallery__item:nth-child(5n + 2) {
    min-height: 340px;
}

.wlu-hospital-gallery__item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 45%, rgba(0, 0, 0, 0.78) 100%);
    pointer-events: none;
}

.wlu-hospital-gallery__item figcaption {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    z-index: 1;
    display: grid;
    gap: 4px;
}

.wlu-hospital-gallery__item span {
    color: rgba(244, 207, 81, 0.92);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.wlu-hospital-gallery__item strong {
    color: #fff;
    font-size: 0.98rem;
    line-height: 1.35;
}

.wlu-hospital-cta {
    background: linear-gradient(180deg, #0f0c0b 0%, #191311 100%);
}

.wlu-hospital-cta__card {
    padding: clamp(28px, 5vw, 48px);
    border-radius: 28px;
    background:
        radial-gradient(circle at top right, rgba(244, 207, 81, 0.22), transparent 28%),
        linear-gradient(145deg, rgba(200, 52, 47, 0.96), rgba(120, 19, 16, 0.98));
    box-shadow: 0 26px 64px rgba(17, 17, 17, 0.26);
}

.wlu-hospital-cta__card h2 {
    margin: 14px 0 14px;
    color: #fff;
    font-family: "Sora", sans-serif;
    font-size: clamp(1.7rem, 3vw, 2.6rem);
    line-height: 1.12;
}

.wlu-hospital-cta__card p {
    max-width: 66ch;
    margin-bottom: 22px;
    color: rgba(255, 255, 255, 0.86);
    font-size: 1rem;
    line-height: 1.8;
}

.wlu-hospital-cta__card .wlu-btn--ghost {
    border-color: rgba(255, 255, 255, 0.28);
    color: #fff;
}

.wlu-hospital-cta__card .wlu-btn--ghost:hover {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}

@media (max-width: 1199px) {
    .wlu-hospital-promise__grid,
    .wlu-hospital-gallery__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    .wlu-hospital-story__grid,
    .wlu-hospital-film__shell,
    .wlu-hospital-design__grid,
    .wlu-hospital-renders__grid,
    .wlu-hospital-promise__grid,
    .wlu-hospital-gallery__grid {
        grid-template-columns: 1fr;
    }

    .wlu-hospital-story__aside {
        position: static;
        top: auto;
    }

    .wlu-hospital-design__visuals,
    .wlu-hospital-gallery__item:nth-child(6n + 1),
    .wlu-hospital-gallery__item:nth-child(6n + 4) {
        grid-column: auto;
    }
}

@media (max-width: 767px) {
    .wlu-hospital-film__shell,
    .wlu-hospital-render-card__body,
    .wlu-hospital-promise-card,
    .wlu-hospital-story__aside {
        padding: 20px;
    }

    .wlu-hospital-film__point {
        grid-template-columns: 1fr;
    }

    .wlu-hospital-film__play {
        width: 72px;
        height: 72px;
        font-size: 1.15rem;
    }

    .wlu-hospital-film__meta {
        left: 16px;
        right: 16px;
        bottom: 14px;
    }

    .wlu-hospital-design__visual--large,
    .wlu-hospital-gallery__item,
    .wlu-hospital-gallery__item:nth-child(5n + 2) {
        min-height: 240px;
    }

    .wlu-hospital-gallery__item figcaption {
        left: 14px;
        right: 14px;
        bottom: 14px;
    }
}

.wlu-article-share__btn:hover {
    background: var(--wlu-red);
    color: #fff;
    transform: translateY(-2px);
}

/* ── Author card ── */
.wlu-author-card {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    background: #fff;
    border: 1px solid rgba(17,17,17,0.08);
    border-radius: 18px;
    padding: 24px 26px;
    margin-bottom: 28px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}

.wlu-author-card__avatar {
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--wlu-red-deep, #8e1e1a), var(--wlu-red));
    color: #fff;
    font-size: 1.3rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.wlu-author-card__info {
    flex: 1;
    min-width: 0;
}

.wlu-author-card__label {
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--wlu-muted);
    margin-bottom: 3px;
}

.wlu-author-card__name {
    display: block;
    font-size: 1rem;
    font-weight: 800;
    color: var(--wlu-dark);
    margin-bottom: 6px;
}

.wlu-author-card__bio {
    font-size: 0.86rem;
    color: var(--wlu-text);
    line-height: 1.65;
    margin: 0;
}

/* ── Related articles ── */
.wlu-related {
    margin-bottom: 36px;
}

.wlu-related__title {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--wlu-dark);
    margin: 0 0 18px;
    display: flex;
    align-items: center;
    gap: 9px;
}

.wlu-related__title i {
    color: var(--wlu-red);
}

.wlu-related__grid {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.wlu-related-card {
    display: flex;
    gap: 14px;
    align-items: center;
    background: #fff;
    border: 1px solid rgba(17,17,17,0.08);
    border-radius: 14px;
    padding: 14px;
    text-decoration: none;
    transition: box-shadow 0.22s, transform 0.22s, border-color 0.22s;
}

.wlu-related-card:hover {
    box-shadow: 0 4px 20px rgba(0,0,0,0.09);
    transform: translateY(-2px);
    border-color: rgba(200,52,47,0.2);
}

.wlu-related-card__image {
    width: 80px;
    height: 70px;
    border-radius: 10px;
    overflow: hidden;
    flex-shrink: 0;
    background: #ede9e0;
}

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

.wlu-related-card__body {
    flex: 1;
    min-width: 0;
}

.wlu-related-card__kicker {
    display: block;
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--wlu-red);
    margin-bottom: 4px;
}

.wlu-related-card__title {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--wlu-dark);
    line-height: 1.35;
    margin: 0 0 5px;
}

.wlu-related-card__date {
    font-size: 0.74rem;
    color: var(--wlu-muted);
}

/* ── Comments ── */
.wlu-comments {
    margin-bottom: 32px;
}

.wlu-comments__title {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--wlu-dark);
    margin: 0 0 20px;
    display: flex;
    align-items: center;
    gap: 9px;
}
.wlu-comments__title i { color: var(--wlu-red); }

.wlu-comment {
    display: flex;
    gap: 14px;
    padding: 18px 0;
    border-bottom: 1px solid rgba(17,17,17,0.07);
}

.wlu-comment:last-child { border-bottom: none; }

.wlu-comment__avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, #475569, #334155);
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.wlu-comment__body { flex: 1; min-width: 0; }

.wlu-comment__header {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 6px;
    flex-wrap: wrap;
}

.wlu-comment__author {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--wlu-dark);
}

.wlu-comment__date {
    font-size: 0.75rem;
    color: var(--wlu-muted);
}

.wlu-comment__text {
    font-size: 0.9rem;
    line-height: 1.72;
    color: var(--wlu-text);
    margin: 0;
}

.wlu-comment-empty {
    text-align: center;
    padding: 36px 20px;
    color: var(--wlu-muted);
    font-size: 0.9rem;
}

.wlu-comment-empty i {
    font-size: 2rem;
    display: block;
    margin-bottom: 10px;
    color: var(--wlu-red);
    opacity: 0.4;
}

/* ── Comment form ── */
.wlu-comment-form {
    background: #fff;
    border: 1px solid rgba(17,17,17,0.08);
    border-radius: 18px;
    padding: 28px 30px 30px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}

.wlu-comment-form__title {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--wlu-dark);
    margin: 0 0 22px;
}

/* ── Sidebar back link ── */
.wlu-article-nav-back {
    margin-bottom: 18px;
}

/* ── Responsive ── */
@media (max-width: 1024px) {
    .wlu-article-hero .wlu-article-hero__split {
        grid-template-columns: 1fr 340px;
        gap: 36px;
    }
}

@media (max-width: 767px) {
    .wlu-article-hero .wlu-article-hero__split {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    /* Image moves above text on mobile */
    .wlu-article-hero__img-wrap {
        order: -1;
        transform: none;
        border-radius: 14px;
    }
    .wlu-article-hero__img-wrap:hover {
        transform: none;
    }
    .wlu-article-hero__meta { margin-top: 16px; gap: 12px; font-size: 0.8rem; }
    .wlu-article-body .wlu-rich-copy { padding: 24px 22px 18px; }
    .wlu-article-footer { padding: 16px 22px 18px; }
    .wlu-article-footer { flex-direction: column; align-items: flex-start; }
}


/* ════════════════════════════════════════════════════════════════════════════
   SATELLITE CITY PAGE
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Vision grid (2×2 feature cards) ─────────────────────────────────────── */
.wlu-sc-vision-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.wlu-sc-vision-card {
    background: #fff;
    border: 1px solid var(--wlu-border);
    border-radius: var(--wlu-radius-sm);
    padding: 28px 24px;
    box-shadow: var(--wlu-shadow-soft);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.wlu-sc-vision-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(14,14,14,0.13);
}

.wlu-sc-vision-card i {
    font-size: 1.7rem;
    color: var(--wlu-red);
    margin-bottom: 14px;
    display: block;
}

.wlu-sc-vision-card h4 {
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin: 0 0 8px;
    color: var(--wlu-ink);
}

.wlu-sc-vision-card p {
    font-size: 0.84rem;
    line-height: 1.6;
    color: var(--wlu-muted);
    margin: 0;
}

/* ── Plot size feature band ───────────────────────────────────────────────── */
.wlu-sc-plotsize-band {
    position: relative;
    background: var(--wlu-red-deep);
    padding: 80px 0;
    overflow: hidden;
}

.wlu-sc-plotsize-band__texture {
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at 10% 50%, rgba(244,207,81,0.18) 0%, transparent 45%),
        radial-gradient(circle at 90% 30%, rgba(255,255,255,0.06) 0%, transparent 40%);
    pointer-events: none;
}

.wlu-sc-plotsize-inner {
    display: flex;
    align-items: center;
    gap: 60px;
}

.wlu-sc-plotsize-number {
    font-family: "Sora", sans-serif;
    font-size: clamp(3.2rem, 7vw, 6.5rem);
    font-weight: 900;
    color: var(--wlu-gold);
    line-height: 1;
    white-space: nowrap;
    letter-spacing: -0.04em;
    flex-shrink: 0;
}

.wlu-sc-plotsize-number span {
    color: rgba(255,255,255,0.45);
    font-weight: 300;
    margin: 0 4px;
}

.wlu-sc-plotsize-number em {
    font-style: normal;
    font-size: 0.45em;
    color: rgba(255,255,255,0.55);
    font-weight: 400;
    letter-spacing: 0;
    vertical-align: middle;
}

.wlu-sc-plotsize-copy {
    color: rgba(255,255,255,0.85);
}

.wlu-sc-plotsize-copy h3 {
    color: #fff;
    font-size: clamp(1.2rem, 2.2vw, 1.7rem);
    font-weight: 800;
    margin: 0 0 12px;
    letter-spacing: -0.03em;
}

.wlu-sc-plotsize-copy p {
    font-size: 0.96rem;
    line-height: 1.7;
    margin: 0;
    color: rgba(255,255,255,0.72);
}

/* ── Tier section head ────────────────────────────────────────────────────── */
.wlu-sc-tier-head {
    margin-bottom: 52px;
    max-width: 680px;
}

.wlu-sc-steps-head {
    margin-bottom: 52px;
    max-width: 680px;
}

/* ── Options grid ─────────────────────────────────────────────────────────── */
.wlu-sc-options-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 28px;
}

/* Premium tier uses slightly larger min card width */
.wlu-sc-options-grid--premium {
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
}

/* ── Option card ──────────────────────────────────────────────────────────── */
.wlu-sc-option-card {
    background: #fff;
    border-radius: var(--wlu-radius-sm);
    border: 1px solid var(--wlu-border);
    box-shadow: var(--wlu-shadow-soft);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.wlu-sc-option-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 52px rgba(14,14,14,0.16);
}

/* Premium variant — gold accent border on top */
.wlu-sc-option-card--premium {
    border-top: 3px solid var(--wlu-gold);
}

/* Card header — number / swatch / floors strip */
.wlu-sc-option-card__header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 20px 12px;
    border-bottom: 1px solid var(--wlu-border);
}

.wlu-sc-option-card__number {
    font-family: "Sora", sans-serif;
    font-size: 1.5rem;
    font-weight: 900;
    color: var(--wlu-ink);
    letter-spacing: -0.04em;
    line-height: 1;
}

.wlu-sc-option-card__swatch {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    flex-shrink: 0;
    box-shadow: 0 0 0 2px rgba(0,0,0,0.10);
}

.wlu-sc-option-card__floors {
    margin-left: auto;
    font-size: 0.78rem;
    color: var(--wlu-muted);
    display: flex;
    align-items: center;
    gap: 5px;
    font-weight: 600;
}

/* Card image */
.wlu-sc-option-card__img {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.wlu-sc-option-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}

.wlu-sc-option-card:hover .wlu-sc-option-card__img img {
    transform: scale(1.04);
}

/* Colour badge overlay on image */
.wlu-sc-option-card__badge {
    position: absolute;
    bottom: 12px;
    left: 12px;
    padding: 4px 12px;
    border-radius: 40px;
    font-size: 0.72rem;
    font-weight: 800;
    color: #fff;
    text-shadow: 0 1px 3px rgba(0,0,0,0.35);
    letter-spacing: 0.02em;
}

/* Card body */
.wlu-sc-option-card__body {
    padding: 22px 20px 24px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* Specs row */
.wlu-sc-option-card__specs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
}

.wlu-sc-option-card__specs span {
    font-size: 0.78rem;
    color: var(--wlu-muted);
    display: flex;
    align-items: center;
    gap: 5px;
    font-weight: 600;
}

.wlu-sc-option-card__specs i {
    color: var(--wlu-red);
    font-size: 0.82rem;
}

/* Description */
.wlu-sc-option-card__desc {
    font-size: 0.87rem;
    line-height: 1.65;
    color: var(--wlu-text);
    margin: 0;
}

/* Feature highlights list */
.wlu-sc-option-card__features {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.wlu-sc-option-card__features li {
    font-size: 0.80rem;
    color: var(--wlu-muted);
    display: flex;
    align-items: flex-start;
    gap: 8px;
    line-height: 1.45;
}

.wlu-sc-option-card__features li i {
    color: var(--wlu-gold);
    margin-top: 2px;
    flex-shrink: 0;
    font-size: 0.75rem;
}

/* Price block */
.wlu-sc-option-card__price {
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid var(--wlu-border);
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.wlu-sc-option-card__price-label {
    font-size: 0.72rem;
    color: var(--wlu-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 700;
}

.wlu-sc-option-card__price-value {
    font-family: "Sora", sans-serif;
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--wlu-red);
    letter-spacing: -0.02em;
}

/* ── Colour legend (master plan section) ─────────────────────────────────── */
.wlu-sc-legend {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 24px;
    margin-top: 28px;
}

.wlu-sc-legend__item {
    display: flex;
    align-items: center;
    gap: 10px;
}

.wlu-sc-legend__dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    flex-shrink: 0;
    box-shadow: 0 0 0 2px rgba(255,255,255,0.18);
}

.wlu-sc-legend__name {
    font-size: 0.80rem;
    color: rgba(255,255,255,0.72);
    font-weight: 600;
    line-height: 1.3;
}

/* ── Master plan image ────────────────────────────────────────────────────── */
.wlu-sc-masterplan-wrap {
    position: relative;
    border-radius: var(--wlu-radius-sm);
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0,0,0,0.45), 0 32px 72px rgba(0,0,0,0.50);
}

.wlu-sc-masterplan-img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.wlu-sc-masterplan-caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 14px 20px;
    background: linear-gradient(0deg, rgba(0,0,0,0.65) 0%, transparent 100%);
    color: rgba(255,255,255,0.80);
    font-size: 0.78rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* ── How to secure — steps ────────────────────────────────────────────────── */
.wlu-sc-steps {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 28px;
    position: relative;
}

/* Connecting line between steps on wider screens */
@media (min-width: 768px) {
    .wlu-sc-steps {
        grid-template-columns: repeat(4, 1fr);
    }
}

.wlu-sc-step {
    position: relative;
    padding: 32px 24px 28px;
    background: #fff;
    border-radius: var(--wlu-radius-sm);
    border: 1px solid var(--wlu-border);
    box-shadow: var(--wlu-shadow-soft);
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.wlu-sc-step__num {
    font-family: "Sora", sans-serif;
    font-size: 2.8rem;
    font-weight: 900;
    color: var(--wlu-gold);
    letter-spacing: -0.05em;
    line-height: 1;
    opacity: 0.80;
}

.wlu-sc-step__body h3 {
    font-size: 1.0rem;
    font-weight: 800;
    margin: 0 0 10px;
    color: var(--wlu-ink);
    letter-spacing: -0.02em;
}

.wlu-sc-step__body p {
    font-size: 0.87rem;
    line-height: 1.68;
    color: var(--wlu-muted);
    margin: 0;
}

/* ════════════════════════════════════════════════════════════════════════════
   SATELLITE CITY — RESPONSIVE
   ════════════════════════════════════════════════════════════════════════════ */

@media (max-width: 1024px) {
    .wlu-sc-plotsize-inner {
        gap: 40px;
    }
    .wlu-sc-options-grid,
    .wlu-sc-options-grid--premium {
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    }
}

@media (max-width: 767px) {
    /* Vision grid stacks on mobile */
    .wlu-sc-vision-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    /* Plot size band stacks */
    .wlu-sc-plotsize-inner {
        flex-direction: column;
        gap: 24px;
        text-align: center;
    }

    .wlu-sc-plotsize-band {
        padding: 56px 0;
    }

    /* Options grid single column */
    .wlu-sc-options-grid,
    .wlu-sc-options-grid--premium {
        grid-template-columns: 1fr;
    }

    /* Legend single column */
    .wlu-sc-legend {
        grid-template-columns: 1fr 1fr;
        gap: 8px 16px;
    }

    /* Steps single column */
    .wlu-sc-steps {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .wlu-sc-masterplan-img {
        aspect-ratio: 4 / 3;
    }
}

/* ============================================================
   SATELLITE CITY — ADDITIONAL CLASSES (blade rewrite additions)
   ============================================================ */

/* --- Three-column plot sizes row (inside .wlu-sc-plotsize-band) --- */
.wlu-sc-plotsizes-row {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    max-width: 960px;
    margin: 0 auto;
    padding: 80px 40px;
}

.wlu-sc-plotsize-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 20px 32px;
}

.wlu-sc-plotsize-divider {
    width: 1px;
    background: rgba(255, 255, 255, 0.2);
    align-self: stretch;
    margin: 16px 0;
    flex-shrink: 0;
}

.wlu-sc-plotsize-meta {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 16px;
}

.wlu-sc-plotsize-meta strong {
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.wlu-sc-plotsize-meta span {
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.5;
}

/* --- Executive tier section --- */
.wlu-sc-executive-section {
    background: #0d0d0d;
    padding: 80px 0;
    position: relative;
}

.wlu-sc-executive-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--wlu-gold), #c8a84b, var(--wlu-gold));
}

.wlu-sc-executive-intro {
    text-align: center;
    max-width: 680px;
    margin: 0 auto 56px;
}

.wlu-sc-executive-intro p {
    color: rgba(255, 255, 255, 0.7);
    font-size: 1.05rem;
    line-height: 1.7;
    margin-top: 12px;
}

/* Executive grid — wider cards, max 2 columns */
.wlu-sc-options-grid--executive {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
    gap: 36px;
}

/* ── Executive card variant — full dark-background override ──────────────── */
.wlu-sc-option-card--executive {
    background: #191919;
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-top: 3px solid var(--wlu-gold);
    color: #fff;
    box-shadow: 0 8px 32px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.05);
}

/* Card header */
.wlu-sc-option-card--executive .wlu-sc-option-card__number {
    color: var(--wlu-gold);
}

.wlu-sc-option-card--executive .wlu-sc-option-card__floors {
    color: rgba(255, 255, 255, 0.65);
}

.wlu-sc-option-card--executive .wlu-sc-option-card__floors i {
    color: var(--wlu-gold);
}

/* Specs row — icon + text */
.wlu-sc-option-card--executive .wlu-sc-option-card__specs span {
    color: rgba(255, 255, 255, 0.80);
}

.wlu-sc-option-card--executive .wlu-sc-option-card__specs i {
    color: var(--wlu-gold);
}

/* Description */
.wlu-sc-option-card--executive .wlu-sc-option-card__desc {
    color: rgba(255, 255, 255, 0.82);
}

/* Feature highlights list */
.wlu-sc-option-card--executive .wlu-sc-option-card__features li {
    color: rgba(255, 255, 255, 0.75);
}

.wlu-sc-option-card--executive .wlu-sc-option-card__features li i {
    color: var(--wlu-gold);
}

/* Price block */
.wlu-sc-option-card--executive .wlu-sc-option-card__price {
    border-top-color: rgba(255, 255, 255, 0.10);
}

.wlu-sc-option-card--executive .wlu-sc-option-card__price-label {
    color: rgba(255, 255, 255, 0.50);
}

.wlu-sc-option-card--executive .wlu-sc-option-card__price-value {
    color: var(--wlu-gold);
}

/* Legacy meta/area overrides (kept for safety) */
.wlu-sc-option-card--executive .wlu-sc-option-card__area {
    color: rgba(255, 255, 255, 0.6);
}

.wlu-sc-option-card--executive .wlu-sc-option-card__meta {
    color: rgba(255, 255, 255, 0.55);
    border-top-color: rgba(255, 255, 255, 0.10);
}

.wlu-sc-option-card--executive .wlu-sc-option-card__meta span {
    color: rgba(255, 255, 255, 0.55);
}

/* Executive badge dark variant */
.wlu-sc-option-card__badge--dark {
    background: var(--wlu-red);
    color: #fff;
    border: none;
    font-weight: 700;
    letter-spacing: .03em;
}

/* Executive plot colour code: filled white circle */
.wlu-sc-option-card__swatch--outline,
.wlu-sc-option-card--executive .wlu-sc-option-card__swatch--outline {
    background: #fff !important;
    border: 2px solid #fff !important;
    position: relative;
    box-shadow: 0 0 0 2px rgba(0,0,0,0.22), 0 0 18px rgba(255,255,255,0.22) !important;
}

.wlu-sc-option-card__swatch--outline::before,
.wlu-sc-option-card__swatch--outline::after,
.wlu-sc-option-card--executive .wlu-sc-option-card__swatch--outline::before,
.wlu-sc-option-card--executive .wlu-sc-option-card__swatch--outline::after {
    content: none !important;
}

/* Room dimensions text line */
.wlu-sc-option-card__rooms {
    font-size: 0.78rem;
    color: var(--wlu-text-muted, #888);
    line-height: 1.55;
    margin: 0 0 12px;
    padding: 0 20px;
    font-style: italic;
}

.wlu-sc-option-card--executive .wlu-sc-option-card__rooms {
    color: rgba(255, 255, 255, 0.45);
}

/* Executive tier amenities list */
.wlu-sc-executive-amenities {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0 20px 20px;
    list-style: none;
    margin: 0;
}

.wlu-sc-executive-amenities li {
    font-size: 0.78rem;
    background: rgba(200, 168, 75, 0.12);
    color: var(--wlu-gold);
    border: 1px solid rgba(200, 168, 75, 0.25);
    border-radius: 2px;
    padding: 3px 10px;
    letter-spacing: .02em;
}

/* ============================================================
   SATELLITE CITY — ADDITIONAL RESPONSIVE (blade additions)
   ============================================================ */
@media (max-width: 1024px) {
    .wlu-sc-plotsizes-row {
        padding: 60px 24px;
    }

    .wlu-sc-options-grid--executive {
        grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    }
}

@media (max-width: 767px) {
    .wlu-sc-plotsizes-row {
        flex-direction: column;
        align-items: center;
        padding: 48px 20px;
        gap: 0;
    }

    .wlu-sc-plotsize-item {
        padding: 24px 20px;
    }

    .wlu-sc-plotsize-divider {
        width: 80px;
        height: 1px;
        margin: 0 auto;
        align-self: auto;
    }

    .wlu-sc-options-grid--executive {
        grid-template-columns: 1fr;
    }

    .wlu-sc-executive-section {
        padding: 56px 0;
    }
}

/* ============================================================
   SATELLITE CITY — OPTION CARD LIGHTBOX TRIGGER
   ============================================================ */

/* Make the button-wrapped image match the div version exactly */
.wlu-sc-option-card__img--lightbox {
    display: block;
    width: 100%;
    padding: 0;
    border: none;
    background: none;
    cursor: zoom-in;
    position: relative;
    overflow: hidden;
}

/* Hover lift hint */
.wlu-sc-option-card__img--lightbox:hover img {
    transform: scale(1.04);
}

.wlu-sc-option-card__img--lightbox img {
    display: block;
    width: 100%;
    height: 220px;
    object-fit: cover;
    transition: transform 0.45s ease;
}

/* "View 3 design images" bottom label */
.wlu-sc-option-card__lightbox-hint {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(0, 0, 0, 0.68);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 8px 14px;
    display: flex;
    align-items: center;
    gap: 7px;
    transform: translateY(100%);
    transition: transform 0.28s ease;
}

.wlu-sc-option-card__img--lightbox:hover .wlu-sc-option-card__lightbox-hint,
.wlu-sc-option-card__img--lightbox:focus-visible .wlu-sc-option-card__lightbox-hint {
    transform: translateY(0);
}

/* ============================================================
   LIGHTBOX
   ============================================================ */
.wlu-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.wlu-lightbox[hidden] { display: none; }

.wlu-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(4, 4, 6, 0.92);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    cursor: zoom-out;
}

.wlu-lightbox__shell {
    position: relative;
    z-index: 1;
    width: min(92vw, 980px);
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: var(--wlu-radius-sm, 8px);
    box-shadow: 0 32px 80px rgba(0,0,0,0.7);
    background: #0d0e11;
    outline: none;
}

/* Slide strip */
.wlu-lightbox__track {
    display: flex;
    transition: transform 0.38s cubic-bezier(0.4, 0, 0.2, 1);
    width: 100%;
}

.wlu-lightbox__slide {
    flex: 0 0 100%;
    width: 100%;
}

.wlu-lightbox__slide img {
    display: block;
    width: 100%;
    max-height: 68vh;
    object-fit: contain;
    background: #111;
}

.wlu-lightbox__caption {
    padding: 12px 20px 10px;
    font-size: 0.82rem;
    color: rgba(255, 255, 255, 0.55);
    text-align: center;
    letter-spacing: .02em;
    margin: 0;
    border-top: 1px solid rgba(255,255,255,0.07);
}

/* Close */
.wlu-lightbox__close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,0.18);
    background: rgba(13,14,17,0.85);
    color: #fff;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s;
}

.wlu-lightbox__close:hover {
    background: var(--wlu-red-deep, #b71c1c);
    border-color: var(--wlu-red-deep, #b71c1c);
}

/* Prev / Next arrows */
.wlu-lightbox__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,0.2);
    background: rgba(13,14,17,0.75);
    color: #fff;
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s, transform 0.2s;
}

.wlu-lightbox__arrow--prev { left: 12px; }
.wlu-lightbox__arrow--next { right: 12px; }

.wlu-lightbox__arrow:hover {
    background: var(--wlu-gold, #f4cf51);
    border-color: var(--wlu-gold, #f4cf51);
    color: #111;
    transform: translateY(-50%) scale(1.08);
}

/* Dot navigation */
.wlu-lightbox__dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    padding: 14px 0;
}

.wlu-lightbox__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    background: rgba(255,255,255,0.25);
    cursor: pointer;
    transition: background 0.2s, transform 0.2s;
    padding: 0;
}

.wlu-lightbox__dot.is-active {
    background: var(--wlu-gold, #f4cf51);
    transform: scale(1.35);
}

@media (max-width: 767px) {
    .wlu-lightbox__shell { width: 96vw; }
    .wlu-lightbox__arrow { display: none; }
    .wlu-lightbox__slide img { max-height: 55vh; }
}

/* ============================================================
   BENEFITS PAGE
   ============================================================ */

/* ── Effective date notice band ────────────────────────────── */
.wlu-bf-notice {
    background: #fff;
    border-bottom: 1px solid var(--wlu-border);
    padding: 18px 0;
}

.wlu-bf-notice__inner {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.wlu-bf-notice__pill {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--wlu-red);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 6px 14px;
    border-radius: 100px;
    white-space: nowrap;
}

.wlu-bf-notice p {
    font-size: 0.875rem;
    color: var(--wlu-muted);
    margin: 0;
    line-height: 1.5;
}

/* ── Feature sections ───────────────────────────────────────── */
.wlu-bf-feature {
    padding: clamp(80px, 10vw, 120px) 0;
    position: relative;
    overflow: hidden;
}

.wlu-bf-feature--dark {
    background:
        radial-gradient(ellipse 65% 55% at 95% 5%,  rgba(244,207,81,0.13) 0%, transparent 55%),
        radial-gradient(ellipse 55% 50% at -5% 95%, rgba(244,207,81,0.06) 0%, transparent 55%),
        radial-gradient(ellipse 80% 60% at 50% 100%, rgba(180,30,30,0.28) 0%, transparent 60%),
        linear-gradient(155deg, #1c0808 0%, #220e0e 45%, #1e0a0c 100%);
}

.wlu-bf-feature--light {
    background: var(--wlu-cream, #faf9f7);
}

.wlu-bf-feature__inner {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: clamp(48px, 6vw, 88px);
    align-items: center;
}

.wlu-bf-feature--flip .wlu-bf-feature__inner {
    direction: rtl;
}

.wlu-bf-feature--flip .wlu-bf-feature__inner > * {
    direction: ltr;
}

/* Copy column */
.wlu-bf-feature__title {
    font-family: 'Sora', sans-serif;
    font-size: clamp(1.75rem, 3.5vw, 2.6rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: #fff;
    margin: 16px 0 20px;
}

.wlu-bf-feature__title--dark {
    color: var(--wlu-text);
}

.wlu-bf-feature__lead {
    font-size: 1.05rem;
    line-height: 1.72;
    color: rgba(255, 255, 255, 0.93);
    margin-bottom: 28px;
}

.wlu-bf-feature__lead--dark {
    color: var(--wlu-text);
    opacity: 0.85;
}

/* ── Force full legibility on dark-background feature sections ── */
.wlu-bf-feature--dark .wlu-bf-feature__title {
    color: #ffffff !important;
    text-shadow: 0 1px 8px rgba(0,0,0,0.45);
}
.wlu-bf-feature--dark .wlu-bf-feature__lead {
    color: rgba(255, 255, 255, 0.95) !important;
}
.wlu-bf-feature--dark .wlu-bf-feature__points li {
    color: #ffffff !important;
}
.wlu-bf-feature--dark .wlu-bf-feature__points li i {
    color: var(--wlu-gold) !important;
}
.wlu-bf-feature--dark .wlu-eyebrow {
    color: rgba(255, 255, 255, 0.85) !important;
    border-color: rgba(255,255,255,0.15) !important;
    background: rgba(255,255,255,0.07) !important;
}

/* Feature bullet list */
.wlu-bf-feature__points {
    list-style: none;
    padding: 0;
    margin: 0 0 32px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.wlu-bf-feature__points li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 0.92rem;
    color: #fff;
    line-height: 1.55;
}

.wlu-bf-feature__points li i {
    color: var(--wlu-gold);
    font-size: 0.75rem;
    margin-top: 4px;
    flex-shrink: 0;
}

.wlu-bf-feature__points--dark li {
    color: var(--wlu-text);
}

.wlu-bf-feature__points--dark li i {
    color: var(--wlu-red);
}

/* Visual column */
.wlu-bf-feature__visual {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 28px;
}

.wlu-bf-feature__visual--light {
    /* no override needed — same layout */
}

/* Large icon ring */
.wlu-bf-feature__icon-ring {
    width: clamp(160px, 20vw, 240px);
    height: clamp(160px, 20vw, 240px);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: clamp(4rem, 8vw, 7rem);
    position: relative;
}

.wlu-bf-feature__icon-ring--red {
    background: rgba(200, 52, 47, 0.15);
    border: 2px solid rgba(200, 52, 47, 0.30);
    color: var(--wlu-red);
    box-shadow: 0 0 60px rgba(200, 52, 47, 0.18);
}

.wlu-bf-feature__icon-ring--crimson {
    background: rgba(139, 28, 26, 0.10);
    border: 2px solid rgba(139, 28, 26, 0.25);
    color: var(--wlu-red-deep);
    box-shadow: 0 0 60px rgba(139, 28, 26, 0.12);
}

.wlu-bf-feature__icon-ring--gold {
    background: rgba(244, 207, 81, 0.12);
    border: 2px solid rgba(244, 207, 81, 0.30);
    color: var(--wlu-gold);
    box-shadow: 0 0 60px rgba(244, 207, 81, 0.15);
}

/* Floating stat pill beneath icon */
.wlu-bf-feature__stat-pill {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--wlu-radius-sm, 8px);
    padding: 20px 24px;
    text-align: center;
    max-width: 280px;
    backdrop-filter: blur(8px);
}

.wlu-bf-feature__stat-pill strong {
    display: block;
    font-family: 'Sora', sans-serif;
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--wlu-gold);
    line-height: 1.1;
    margin-bottom: 6px;
}

.wlu-bf-feature__stat-pill span {
    font-size: 0.82rem;
    color: rgba(255, 255, 255, 0.60);
    line-height: 1.45;
}

.wlu-bf-feature__stat-pill--dark {
    background: #fff;
    border-color: var(--wlu-border);
    box-shadow: 0 4px 24px rgba(0,0,0,0.08);
}

.wlu-bf-feature__stat-pill--dark strong {
    color: var(--wlu-red);
}

.wlu-bf-feature__stat-pill--dark span {
    color: var(--wlu-muted);
}

/* Image wrap (for satellite city photo) */
.wlu-bf-feature__img-wrap {
    position: relative;
    border-radius: var(--wlu-radius-sm, 8px);
    overflow: hidden;
    box-shadow: 0 24px 64px rgba(0,0,0,0.45);
    width: 100%;
}

.wlu-bf-feature__img-wrap img {
    display: block;
    width: 100%;
    height: 340px;
    object-fit: cover;
    filter: brightness(0.92);
    transition: transform 0.5s ease;
}

.wlu-bf-feature__img-wrap:hover img {
    transform: scale(1.03);
}

.wlu-bf-feature__img-badge {
    position: absolute;
    bottom: 16px;
    left: 16px;
    background: rgba(13,14,17,0.82);
    backdrop-filter: blur(8px);
    color: #fff;
    font-size: 0.80rem;
    font-weight: 600;
    padding: 8px 14px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    gap: 8px;
    letter-spacing: .02em;
    border: 1px solid rgba(255,255,255,0.10);
}

.wlu-bf-feature__img-badge i {
    color: var(--wlu-gold);
}

/* ── Gold CTA button variant ────────────────────────────────── */
.wlu-btn--gold {
    background: var(--wlu-gold);
    color: #111 !important;
    border-color: var(--wlu-gold);
}

.wlu-btn--gold:hover {
    background: #e0b830;
    border-color: #e0b830;
    color: #111 !important;
}

/* ── Additional benefits 3-column grid ─────────────────────── */
.wlu-bf-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin-top: 56px;
}

.wlu-bf-card {
    background: #fff;
    border: 1px solid var(--wlu-border);
    border-radius: var(--wlu-radius-sm, 8px);
    padding: 32px 28px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    transition: box-shadow 0.25s ease, transform 0.25s ease;
    position: relative;
    overflow: hidden;
}

.wlu-bf-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--wlu-red), var(--wlu-gold));
    opacity: 0;
    transition: opacity 0.25s ease;
}

.wlu-bf-card:hover {
    box-shadow: 0 12px 40px rgba(0,0,0,0.10);
    transform: translateY(-4px);
}

.wlu-bf-card:hover::before {
    opacity: 1;
}

.wlu-bf-card__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.wlu-bf-card__icon {
    width: 52px;
    height: 52px;
    border-radius: 12px;
    background: rgba(200, 52, 47, 0.08);
    border: 1px solid rgba(200, 52, 47, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    color: var(--wlu-red);
    flex-shrink: 0;
    transition: background 0.25s, color 0.25s;
}

.wlu-bf-card:hover .wlu-bf-card__icon {
    background: var(--wlu-red);
    color: #fff;
    border-color: var(--wlu-red);
}

.wlu-bf-card__tag {
    font-size: 0.70rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--wlu-gold);
    background: #000000;
    border: 1px solid rgba(200, 168, 20, 0.30);
    padding: 4px 10px;
    border-radius: 100px;
    white-space: nowrap;
    align-self: flex-start;
    margin-top: 4px;
}

.wlu-bf-card__title {
    font-family: 'Sora', sans-serif;
    font-size: 1.08rem;
    font-weight: 700;
    color: var(--wlu-text);
    margin: 0;
    line-height: 1.3;
}

.wlu-bf-card__body {
    font-size: 0.875rem;
    color: var(--wlu-muted);
    line-height: 1.68;
    margin: 0;
    flex: 1;
}

/* ── Vision / quote section ─────────────────────────────────── */
.wlu-bf-vision {
    padding: clamp(80px, 10vw, 120px) 0;
    background:
        radial-gradient(ellipse 70% 60% at 50% 0%, rgba(200,52,47,0.12) 0%, transparent 60%),
        linear-gradient(160deg, #060608 0%, #0d0e11 60%, #111013 100%);
}

.wlu-bf-vision__inner {
    max-width: 760px;
    margin: 0 auto;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.wlu-bf-vision__icon {
    font-size: 1.6rem;
    color: var(--wlu-red);
    opacity: 0.85;
}

.wlu-bf-vision__quote {
    font-family: 'Sora', sans-serif;
    font-size: clamp(1.15rem, 2.5vw, 1.55rem);
    font-weight: 600;
    line-height: 1.55;
    color: #fff;
    font-style: italic;
    margin: 0;
    padding: 0;
    border: none;
}

.wlu-bf-vision__cite {
    font-size: 0.82rem;
    color: var(--wlu-gold);
    letter-spacing: .05em;
    text-transform: uppercase;
    font-style: normal;
    font-weight: 700;
}

.wlu-bf-vision__body {
    font-size: 1rem;
    color: #F3EEE4 !important;
    line-height: 1.70;
    margin: 0;
    max-width: 600px;
}
.wlu-bf-vision__body strong {
    color: #F3EEE4 !important;
}

/* ── RESPONSIVE ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
    .wlu-bf-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 767px) {
    .wlu-bf-feature__inner {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .wlu-bf-feature--flip .wlu-bf-feature__inner {
        direction: ltr;
    }

    .wlu-bf-feature__visual {
        order: -1;
    }

    .wlu-bf-feature__img-wrap img {
        height: 220px;
    }

    .wlu-bf-grid {
        grid-template-columns: 1fr;
    }

    .wlu-bf-notice__inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .wlu-bf-feature__icon-ring {
        width: 120px;
        height: 120px;
        font-size: 3rem;
    }
}

/* ══════════════════════════════════════════════════════════════
   404 PAGE — colour overrides
   ══════════════════════════════════════════════════════════════ */
.wlu-404-page .wlu-main {
    padding-top: var(--wlu-header-total, 96px) !important;
    background: #0e0e10;
}
.wlu-404__title {
    color: #f4cf51 !important;
}
.wlu-404__text {
    color: #ffffff !important;
}
.wlu-404__cta-eyebrow {
    color: #ffffff !important;
}
.wlu-404__cta-eyebrow i {
    color: #ffffff !important;
}
.wlu-404__cta-title {
    color: #f4cf51 !important;
}
.wlu-404__cta-text {
    color: #ffffff !important;
}

/* ══════════════════════════════════════════════════════════════
   PEARLIFE PAGE
   ══════════════════════════════════════════════════════════════ */

/* ── Introduction ─────────────────────────────────────────── */
.wlu-pl-intro {
    padding: clamp(72px, 9vw, 110px) 0;
    background: var(--wlu-cream, #faf9f7);
}
.wlu-pl-intro__inner {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: clamp(48px, 6vw, 88px);
    align-items: center;
}
.wlu-pl-intro__copy .wlu-eyebrow { margin-bottom: 12px; }
.wlu-pl-intro__title {
    font-family: 'Sora', sans-serif;
    font-size: clamp(1.7rem, 3.2vw, 2.4rem);
    font-weight: 800;
    color: var(--wlu-text, #36332e);
    line-height: 1.18;
    margin: 12px 0 20px;
}
.wlu-pl-intro__copy p {
    font-size: 1rem;
    color: var(--wlu-muted, #4e4a45);
    line-height: 1.72;
    margin-bottom: 16px;
}
.wlu-pl-intro__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 28px;
}
.wlu-pl-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: var(--wlu-red, #c8342f);
    background: rgba(200,52,47,0.07);
    border: 1px solid rgba(200,52,47,0.18);
    padding: 6px 14px;
    border-radius: 100px;
}
.wlu-pl-intro__visual {
    display: flex;
    justify-content: center;
}
.wlu-pl-intro__shield {
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: radial-gradient(circle at 40% 35%, rgba(200,52,47,0.15) 0%, transparent 65%),
                linear-gradient(135deg, #1c0808 0%, #220e0e 100%);
    border: 2px solid rgba(200,52,47,0.30);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    text-align: center;
    padding: 20px;
}
.wlu-pl-intro__shield i {
    font-size: 2.8rem;
    color: var(--wlu-red, #c8342f);
}
.wlu-pl-intro__shield span {
    font-family: 'Sora', sans-serif;
    font-size: 1.1rem;
    font-weight: 800;
    color: #fff;
}
.wlu-pl-intro__shield small {
    font-size: 0.72rem;
    color: rgba(255,255,255,0.60);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

/* ── Why PearLife ─────────────────────────────────────────── */
.wlu-pl-why {
    padding: clamp(72px, 9vw, 110px) 0;
    background:
        radial-gradient(ellipse 65% 55% at 50% 0%, rgba(200,52,47,0.20) 0%, transparent 60%),
        linear-gradient(160deg, #1c0808 0%, #220e0e 50%, #1e0a0c 100%);
}
.wlu-pl-why .wlu-section-title--light { color: #fff; }
.wlu-pl-why .wlu-section-head { margin-bottom: 56px; }

/* ── Why diagram — faithful semi-circle infographic ─────── */
.wlu-pl-why__diagram {
    position: relative;
    width: 100%;
    max-width: 960px;
    margin: 0 auto;
    aspect-ratio: 1000 / 580;
    min-height: 340px;
}

/* Full-canvas SVG: arch + dashed lines */
.wlu-pl-why__svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

/* ── WHY centre label — inside the dome ─────────────────── */
.wlu-pl-why__centre {
    position: absolute;
    /* Arch centre circle is at y=545/580=93.9%; interior label sits 2/3 up the arch height */
    top: 62%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    pointer-events: none;
    white-space: nowrap;
}
.wlu-pl-why__centre strong {
    display: block;
    font-family: 'Sora', sans-serif;
    font-size: clamp(2.4rem, 5.5vw, 4.2rem);
    font-weight: 900;
    color: #c8342f;
    line-height: 1;
    letter-spacing: -0.02em;
}
.wlu-pl-why__centre span {
    display: block;
    font-family: 'Sora', sans-serif;
    font-size: clamp(0.58rem, 1.1vw, 0.80rem);
    font-weight: 800;
    color: #ffffff;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    line-height: 1.5;
    margin-top: 8px;
    white-space: normal;
}

/* ── Nodes — NO box, just floating text ─────────────────── */
.wlu-pl-why__node {
    position: absolute;
    background: none;
    border: none;
    border-radius: 0;
    padding: 0;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: none;
}

/* 02 — TOP CENTRE, above apex dot (apex at y≈39.7%) */
.wlu-pl-why__node--02 {
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: clamp(150px, 22%, 210px);
    text-align: center;
}

/* 01 — LEFT of arch left foot (foot at x≈18.5%, y≈93.9%) */
.wlu-pl-why__node--01 {
    /* Vertically: number above foot line, text below */
    bottom: 2%;
    left: 0;
    width: 16%;
    text-align: right;
}

/* 03 — RIGHT of arch right foot */
.wlu-pl-why__node--03 {
    bottom: 2%;
    right: 0;
    width: 16%;
    text-align: left;
}

/* ── Number labels ───────────────────────────────────────── */
.wlu-pl-why__num {
    display: block;
    font-family: 'Sora', sans-serif;
    font-size: clamp(1.8rem, 4.5vw, 3.6rem);
    font-weight: 900;
    color: #c8342f;
    line-height: 1;
    margin-bottom: 10px;
}
/* 02 — larger, glowing — primary focal point */
.wlu-pl-why__node--02 .wlu-pl-why__num {
    font-size: clamp(2.6rem, 6.5vw, 5rem);
    text-shadow: 0 0 40px rgba(200,52,47,0.45);
}

/* Description text */
.wlu-pl-why__node p {
    font-size: clamp(0.72rem, 1.3vw, 0.88rem);
    color: #ffffff !important;
    line-height: 1.58;
    margin: 0;
}

/* ── Coverage Overview ────────────────────────────────────── */
.wlu-pl-coverage {
    padding: clamp(72px, 9vw, 110px) 0;
    background: var(--wlu-cream, #faf9f7);
}
.wlu-pl-coverage__inner {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: clamp(48px, 6vw, 80px);
    align-items: center;
}
.wlu-pl-coverage__title {
    font-family: 'Sora', sans-serif;
    font-size: clamp(1.6rem, 3vw, 2.3rem);
    font-weight: 800;
    color: var(--wlu-text);
    margin: 12px 0 18px;
    line-height: 1.18;
}
.wlu-pl-coverage__lead {
    font-size: 1rem;
    color: var(--wlu-muted);
    line-height: 1.72;
    margin-bottom: 24px;
}
.wlu-pl-coverage__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.wlu-pl-coverage__list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 0.93rem;
    color: var(--wlu-text);
    line-height: 1.55;
}
.wlu-pl-coverage__list li i {
    color: var(--wlu-red);
    font-size: 0.8rem;
    margin-top: 3px;
    flex-shrink: 0;
}
.wlu-pl-coverage__visual {
    display: flex;
    justify-content: center;
}
.wlu-pl-umbrella {
    text-align: center;
    background: linear-gradient(135deg, #fff 0%, #f5f0e8 100%);
    border: 1px solid rgba(200,52,47,0.15);
    border-radius: 20px;
    padding: 40px 32px 28px;
    width: 100%;
    max-width: 320px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.08);
}
.wlu-pl-umbrella__top i {
    font-size: 4rem;
    color: var(--wlu-red, #c8342f);
    margin-bottom: 16px;
    display: block;
}
.wlu-pl-umbrella__members {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-bottom: 16px;
}
.wlu-pl-umbrella__members span {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(200,52,47,0.10);
    border: 1px solid rgba(200,52,47,0.20);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    color: var(--wlu-red, #c8342f);
}
.wlu-pl-umbrella__label {
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--wlu-red, #c8342f);
    margin: 0;
}

/* ── Payout Bar Chart ─────────────────────────────────────── */
.wlu-pl-payout {
    padding: clamp(72px, 9vw, 110px) 0;
    background:
        radial-gradient(ellipse 60% 50% at 95% 5%, rgba(244,207,81,0.10) 0%, transparent 55%),
        linear-gradient(160deg, #1c0808 0%, #220e0e 50%, #1e0a0c 100%);
}
.wlu-pl-payout .wlu-section-title--light { color: #ffffff !important; }
.wlu-pl-payout .wlu-section-text--light { color: rgba(255,255,255,0.80); }
.wlu-pl-chart__note { color: #ffffff !important; }

.wlu-pl-chart { max-width: 700px; margin: 0 auto; }
.wlu-pl-chart__bars {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: clamp(16px, 3vw, 36px);
    height: 280px;
    margin-bottom: 32px;
    padding: 0 8px;
}
.wlu-pl-chart__bar-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    height: 100%;
}
.wlu-pl-chart__pct {
    font-family: 'Sora', sans-serif;
    font-size: clamp(0.9rem, 2vw, 1.2rem);
    font-weight: 800;
    color: #ffffff;
    margin-bottom: 8px;
}
.wlu-pl-chart__bar-col {
    flex: 1;
    width: 100%;
    display: flex;
    align-items: flex-end;
}
.wlu-pl-chart__bar-track {
    width: 100%;
    height: 100%;
    background: rgba(255,255,255,0.08);
    border-radius: 8px 8px 4px 4px;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
}
.wlu-pl-chart__bar-fill {
    width: 100%;
    background: linear-gradient(180deg, #e84040 0%, #c8342f 60%, #9e1f1f 100%);
    border-radius: 6px 6px 2px 2px;
    box-shadow: 0 -4px 16px rgba(200,52,47,0.40);
    transition: height 1s ease;
}
.wlu-pl-chart__label {
    font-size: clamp(0.68rem, 1.5vw, 0.82rem);
    font-weight: 700;
    color: rgba(255,255,255,0.85);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-top: 10px;
    text-align: center;
}
.wlu-pl-chart__note {
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 12px;
    padding: 16px 20px;
    font-size: 0.92rem;
    color: #ffffff;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    line-height: 1.6;
}
.wlu-pl-chart__note i { color: var(--wlu-gold); flex-shrink: 0; margin-top: 2px; }
.wlu-pl-chart__note strong { color: var(--wlu-gold); }

/* ── Payment Process ──────────────────────────────────────── */
.wlu-pl-payment {
    padding: clamp(72px, 9vw, 110px) 0;
    background: var(--wlu-cream, #faf9f7);
}
.wlu-pl-payment__inner {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 48px;
    align-items: center;
    max-width: 860px;
    margin: 0 auto;
}
.wlu-pl-payment__icon {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(200,52,47,0.10) 0%, rgba(200,52,47,0.04) 100%);
    border: 2px solid rgba(200,52,47,0.20);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3.2rem;
    color: var(--wlu-red, #c8342f);
}
.wlu-pl-payment__title {
    font-family: 'Sora', sans-serif;
    font-size: clamp(1.3rem, 2.5vw, 1.8rem);
    font-weight: 800;
    color: var(--wlu-text);
    margin: 10px 0 14px;
    line-height: 1.22;
}
.wlu-pl-payment__copy p {
    font-size: 0.97rem;
    color: var(--wlu-muted);
    line-height: 1.72;
    margin-bottom: 20px;
}
.wlu-pl-payment__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.wlu-pl-payment__tags span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--wlu-red, #c8342f);
    background: rgba(200,52,47,0.07);
    border: 1px solid rgba(200,52,47,0.15);
    padding: 5px 12px;
    border-radius: 100px;
}

/* ── 4-Step Claim Process ─────────────────────────────────── */
.wlu-pl-claim {
    padding: clamp(72px, 9vw, 110px) 0;
    background:
        radial-gradient(ellipse 65% 50% at 50% 0%, rgba(200,52,47,0.18) 0%, transparent 60%),
        linear-gradient(160deg, #1c0808 0%, #220e0e 50%, #1e0a0c 100%);
}
.wlu-pl-claim .wlu-section-title--light { color: #ffffff !important; }
.wlu-pl-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    position: relative;
    margin-top: 48px;
}
.wlu-pl-step {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 0 16px;
}
.wlu-pl-step__icon {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: rgba(200,52,47,0.15);
    border: 2px solid rgba(200,52,47,0.40);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    color: var(--wlu-red, #c8342f);
    margin-bottom: 14px;
    position: relative;
    z-index: 1;
}
.wlu-pl-step__num {
    font-size: 0.70rem;
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--wlu-gold, #f4cf51);
    margin-bottom: 8px;
}
.wlu-pl-step__title {
    font-family: 'Sora', sans-serif;
    font-size: 1rem;
    font-weight: 800;
    color: #e84040 !important;
    text-shadow: 0 0 18px rgba(232,64,64,0.40);
    margin: 0 0 10px;
}
.wlu-pl-step__body {
    font-size: 0.87rem;
    color: #ffffff !important;
    line-height: 1.6;
    margin: 0;
}
/* Arrow connector — line + arrowhead sitting entirely between the two circles
   Geometry (all % relative to step column width):
   • Current circle centre  = 50%
   • Current circle R edge  = 50% + 36px   → line starts 4px outside = 50% + 40px
   • Next circle centre     = 150%
   • Next circle L edge     = 150% − 36px  → arrowhead tip 4px outside = 150% − 40px
   • Arrowhead width        = 12px          → line ends at 150% − 52px
   • Line width             = (150%−52px) − (50%+40px) = 100% − 92px               */
.wlu-pl-step__connector {
    position: absolute;
    top: 35px;                        /* vertically centred on the 72px icon */
    left: calc(50% + 40px);           /* 4px gap after current circle right edge */
    width: calc(100% - 92px);         /* stops 52px before next circle centre  */
    height: 2px;
    background: linear-gradient(to right, rgba(232,64,64,0.35), rgba(232,64,64,0.90));
    z-index: 2;
}
/* Arrowhead — tip is flush with the connector's right end; stays outside the circle */
.wlu-pl-step__connector::after {
    content: '';
    position: absolute;
    right: -12px;   /* arrowhead extends 12px beyond line end → tip 4px from circle edge */
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 12px solid rgba(232,64,64,0.90);
}

/* ── 7-Step Vetting Timeline ──────────────────────────────── */
.wlu-pl-vetting {
    padding: clamp(72px, 9vw, 110px) 0;
    background: var(--wlu-cream, #faf9f7);
}
.wlu-pl-vetting__timeline {
    max-width: 760px;
    margin: 48px auto 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.wlu-pl-vetting__item {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 24px;
    align-items: flex-start;
}
.wlu-pl-vetting__marker {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.wlu-pl-vetting__dot {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--wlu-red, #c8342f);
    color: #fff;
    font-family: 'Sora', sans-serif;
    font-size: 1.1rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 16px rgba(200,52,47,0.30);
}
.wlu-pl-vetting__line {
    width: 2px;
    flex: 1;
    min-height: 32px;
    background: rgba(200,52,47,0.25);
    margin: 4px 0;
}
.wlu-pl-vetting__content {
    padding-bottom: 32px;
}
.wlu-pl-vetting__title {
    font-family: 'Sora', sans-serif;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--wlu-text, #36332e);
    margin: 10px 0 12px;
}
.wlu-pl-vetting__points {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.wlu-pl-vetting__points li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.90rem;
    color: var(--wlu-muted, #4e4a45);
    line-height: 1.55;
}
.wlu-pl-vetting__points li i {
    color: var(--wlu-red, #c8342f);
    font-size: 0.65rem;
    margin-top: 5px;
    flex-shrink: 0;
}

/* ── Application Process ──────────────────────────────────── */
.wlu-pl-apply {
    padding: clamp(72px, 9vw, 110px) 0;
    background:
        radial-gradient(ellipse 60% 50% at 50% 100%, rgba(200,52,47,0.18) 0%, transparent 60%),
        linear-gradient(160deg, #1c0808 0%, #220e0e 100%);
}
.wlu-pl-apply .wlu-section-title--light { color: #ffffff !important; }
.wlu-pl-apply__steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    margin-top: 48px;
    flex-wrap: wrap;
}
.wlu-pl-apply__circle {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    border: 3px solid var(--wlu-red, #c8342f);
    background: rgba(200,52,47,0.10);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 24px;
    text-align: center;
    gap: 8px;
}
.wlu-pl-apply__step-label {
    font-family: 'Sora', sans-serif;
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--wlu-red, #c8342f);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.wlu-pl-apply__circle p {
    font-size: 0.88rem;
    color: #ffffff !important;
    line-height: 1.5;
    margin: 0;
}
.wlu-pl-apply__connector {
    font-size: 1.4rem;
    color: rgba(200,52,47,0.60);
}

/* ── Terms & Conditions ───────────────────────────────────── */
.wlu-pl-terms {
    padding: clamp(72px, 9vw, 110px) 0;
    background: var(--wlu-cream, #faf9f7);
}
.wlu-pl-terms__inner { max-width: 820px; margin: 0 auto; }
.wlu-pl-terms__title {
    font-family: 'Sora', sans-serif;
    font-size: clamp(1.5rem, 2.8vw, 2.1rem);
    font-weight: 800;
    color: var(--wlu-text);
    margin: 12px 0 36px;
}
.wlu-pl-terms__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.wlu-pl-terms__list li {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    background: #fff;
    border: 1px solid rgba(200,52,47,0.10);
    border-radius: 16px;
    padding: 24px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.05);
}
.wlu-pl-terms__icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: rgba(200,52,47,0.08);
    border: 1px solid rgba(200,52,47,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    color: var(--wlu-red, #c8342f);
    flex-shrink: 0;
}
.wlu-pl-terms__list li strong {
    display: block;
    font-size: 0.97rem;
    font-weight: 700;
    color: var(--wlu-text);
    margin-bottom: 6px;
}
.wlu-pl-terms__list li p {
    font-size: 0.88rem;
    color: var(--wlu-muted);
    line-height: 1.65;
    margin: 0;
}

/* ── Conclusion CTA ───────────────────────────────────────── */
.wlu-pl-conclusion {
    padding: clamp(80px, 10vw, 120px) 0;
    background:
        radial-gradient(ellipse 70% 60% at 50% 0%, rgba(200,52,47,0.15) 0%, transparent 60%),
        linear-gradient(160deg, #060608 0%, #0d0e11 60%, #111013 100%);
}
.wlu-pl-conclusion__inner {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}
.wlu-pl-conclusion__title {
    font-family: 'Sora', sans-serif;
    font-size: clamp(1.5rem, 3.2vw, 2.2rem);
    font-weight: 800;
    color: #ffffff !important;
    line-height: 1.22;
    margin: 16px 0 18px;
}
.wlu-pl-conclusion__text {
    font-size: 1rem;
    color: #777777 !important;
    line-height: 1.72;
    margin-bottom: 36px;
}
.wlu-pl-conclusion__actions {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
}

/* ── PearLife responsive ──────────────────────────────────── */
@media (max-width: 1024px) {
    .wlu-pl-intro__inner,
    .wlu-pl-coverage__inner { grid-template-columns: 1fr; }
    .wlu-pl-intro__visual,
    .wlu-pl-coverage__visual { justify-content: flex-start; }
    /* Why diagram: widen side nodes slightly on tablet so text breathes */
    .wlu-pl-why__node--01,
    .wlu-pl-why__node--03 { width: 19%; }
    .wlu-pl-steps { grid-template-columns: 1fr 1fr; }
    .wlu-pl-step__connector { display: none; }
    .wlu-pl-payment__inner { grid-template-columns: 1fr; text-align: center; }
    .wlu-pl-payment__icon { margin: 0 auto; }
    .wlu-pl-payment__tags { justify-content: center; }
}
@media (max-width: 640px) {
    .wlu-pl-steps { grid-template-columns: 1fr; }
    .wlu-pl-apply__steps { flex-direction: column; }
    .wlu-pl-apply__connector { transform: rotate(90deg); }
    .wlu-pl-chart__bars { height: 200px; }
    .wlu-pl-intro__badges { flex-direction: column; }
    .wlu-pl-intro__shield { width: 180px; height: 180px; }
    /* Why diagram — keep the arch, scale everything to fit */
    .wlu-pl-why__diagram { min-height: unset; }
    .wlu-pl-why__node--01,
    .wlu-pl-why__node--03 { width: 22%; }
    .wlu-pl-why__node--02 { width: 28%; }
    .wlu-pl-why__num { font-size: 1.3rem; margin-bottom: 4px; }
    .wlu-pl-why__node--02 .wlu-pl-why__num { font-size: 1.85rem; }
    .wlu-pl-why__node p { font-size: 0.63rem !important; line-height: 1.4; }
    .wlu-pl-why__centre strong { font-size: 1.5rem; }
    .wlu-pl-why__centre span { font-size: 0.47rem; }
}
/* Small phones (≤430px) — shrink further */
@media (max-width: 430px) {
    .wlu-pl-why__node--01,
    .wlu-pl-why__node--03 { width: 24%; }
    .wlu-pl-why__node--02 { width: 30%; }
    .wlu-pl-why__num { font-size: 1.05rem; }
    .wlu-pl-why__node--02 .wlu-pl-why__num { font-size: 1.5rem; }
    .wlu-pl-why__node p { font-size: 0.56rem !important; }
    .wlu-pl-why__centre strong { font-size: 1.2rem; }
    .wlu-pl-why__centre span { font-size: 0.42rem; }
}
/* Tiny phones (≤370px) — most aggressive */
@media (max-width: 370px) {
    .wlu-pl-why__node--01,
    .wlu-pl-why__node--03 { width: 26%; }
    .wlu-pl-why__node--02 { width: 32%; }
    .wlu-pl-why__num { font-size: 0.9rem; }
    .wlu-pl-why__node--02 .wlu-pl-why__num { font-size: 1.3rem; }
    .wlu-pl-why__node p { font-size: 0.5rem !important; }
    .wlu-pl-why__centre strong { font-size: 1rem; }
    .wlu-pl-why__centre span { font-size: 0.38rem; }
}

/* ════════════════════════════════════════════════════════════
   BEP — Business Elevation Program Page
   ════════════════════════════════════════════════════════════ */

/* ── Intro / What is WLU-BEP? ────────────────────────────── */
.wlu-bep-intro {
    position: relative;
    overflow: hidden;
    padding: clamp(72px, 9vw, 110px) 0;
    background:
        radial-gradient(ellipse 65% 55% at 95% 5%,  rgba(244,207,81,0.13) 0%, transparent 55%),
        radial-gradient(ellipse 55% 50% at -5% 95%, rgba(244,207,81,0.06) 0%, transparent 55%),
        radial-gradient(ellipse 80% 60% at 50% 100%, rgba(180,30,30,0.28) 0%, transparent 60%),
        linear-gradient(155deg, #1c0808 0%, #220e0e 45%, #1e0a0c 100%);
}
.wlu-bep-intro__arc {
    position: absolute;
    right: -40px;
    top: 0;
    height: 100%;
    width: 420px;
    pointer-events: none;
    opacity: 1;
}
.wlu-bep-intro__arc svg { width: 100%; height: 100%; }
.wlu-bep-intro__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(40px, 6vw, 80px);
    align-items: center;
    position: relative;
    z-index: 1;
}
.wlu-bep-intro__title {
    font-family: 'Sora', sans-serif;
    font-size: clamp(1.7rem, 3.5vw, 2.6rem);
    font-weight: 800;
    color: #ffffff;
    line-height: 1.2;
    margin: 16px 0 20px;
}
.wlu-bep-intro__lead {
    color: rgba(255,255,255,0.88);
    font-size: 1.05rem;
    line-height: 1.72;
    margin-bottom: 28px;
}
.wlu-bep-intro__points {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.wlu-bep-intro__points li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: #ffffff;
    font-size: 0.96rem;
    line-height: 1.55;
}
.wlu-bep-intro__points li i {
    color: var(--wlu-gold, #f4cf51);
    margin-top: 3px;
    flex-shrink: 0;
}
.wlu-bep-intro__visual {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 28px;
}
.wlu-bep-intro__badge-ring {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    border: 3px solid rgba(200,52,47,0.50);
    background: radial-gradient(circle at center, rgba(200,52,47,0.20) 0%, rgba(200,52,47,0.04) 70%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    box-shadow: 0 0 60px rgba(200,52,47,0.18);
}
.wlu-bep-intro__badge-ring i {
    font-size: 3rem;
    color: var(--wlu-gold, #f4cf51);
}
.wlu-bep-intro__badge-ring span {
    font-family: 'Sora', sans-serif;
    font-size: 0.85rem;
    font-weight: 800;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: #ffffff;
}
.wlu-bep-intro__stat-pill {
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.14);
    border-radius: 16px;
    padding: 18px 24px;
    text-align: center;
    max-width: 280px;
}
.wlu-bep-intro__stat-pill strong {
    display: block;
    font-family: 'Sora', sans-serif;
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--wlu-gold, #f4cf51);
    margin-bottom: 6px;
}
.wlu-bep-intro__stat-pill span {
    font-size: 0.84rem;
    color: rgba(255,255,255,0.80);
    line-height: 1.5;
}

/* ── Why WLU-BEP? ────────────────────────────────────────── */
.wlu-bep-why {
    padding: clamp(72px, 9vw, 110px) 0;
    background: var(--wlu-cream, #faf9f7);
}
.wlu-bep-why__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin-top: 48px;
}
.wlu-bep-why__card {
    background: #ffffff;
    border: 1px solid rgba(0,0,0,0.07);
    border-radius: 20px;
    padding: 36px 30px;
    position: relative;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.wlu-bep-why__card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, #c8342f, #e84040);
    border-radius: 20px 20px 0 0;
}
.wlu-bep-why__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 48px rgba(0,0,0,0.10);
}
.wlu-bep-why__card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}
.wlu-bep-why__num {
    font-family: 'Sora', sans-serif;
    font-size: 3.2rem;
    font-weight: 900;
    color: rgba(200,52,47,0.12);
    line-height: 1;
}
.wlu-bep-why__icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: rgba(200,52,47,0.10);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: #c8342f;
}
.wlu-bep-why__title {
    font-family: 'Sora', sans-serif;
    font-size: 1.1rem;
    font-weight: 800;
    color: #111111;
    margin: 0 0 14px;
    line-height: 1.3;
}
.wlu-bep-why__body {
    font-size: 0.92rem;
    color: #555555;
    line-height: 1.68;
    margin: 0;
}

/* ── Key Features — 5-column infographic ─────────────────── */
.wlu-bep-features {
    padding: clamp(72px, 9vw, 110px) 0;
    background:
        radial-gradient(ellipse 80% 60% at 50% 0%, rgba(200,52,47,0.14) 0%, transparent 60%),
        linear-gradient(160deg, #1c0808 0%, #220e0e 50%, #1e0a0c 100%);
}
.wlu-bep-features__grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 2px;
    margin-top: 56px;
    position: relative;
}
/* Connecting bar behind the feature column numbers */
.wlu-bep-features__grid::before {
    content: '';
    position: absolute;
    top: 38px; /* aligns with centre of number badges */
    left: 10%;
    right: 10%;
    height: 2px;
    background: linear-gradient(to right, transparent, rgba(200,52,47,0.50) 20%, rgba(200,52,47,0.50) 80%, transparent);
    z-index: 0;
}
.wlu-bep-feature {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 28px 18px 24px;
    position: relative;
    z-index: 1;
    border-radius: 24px;
    background: #C9342F;
    border: 1px solid rgba(255,255,255,0.08);
    box-shadow:
        0 14px 0 #8f1f1b,
        0 30px 48px rgba(120, 0, 0, 0.22);
    transform: translateY(0);
    transition: transform 0.22s ease, box-shadow 0.22s ease, filter 0.22s ease;
}
.wlu-bep-feature:hover {
    transform: translateY(8px);
    box-shadow:
        0 6px 0 #8f1f1b,
        0 16px 28px rgba(120, 0, 0, 0.18);
    filter: saturate(1.03);
}
.wlu-bep-feature__num {
    width: 76px;
    height: 76px;
    border-radius: 50%;
    background: #ffffff;
    border: 3px solid rgba(255,255,255,0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Sora', sans-serif;
    font-size: 1.8rem;
    font-weight: 900;
    color: #E60001;
    margin-bottom: 22px;
    box-shadow: 0 0 30px rgba(255,255,255,0.18);
    flex-shrink: 0;
}
.wlu-bep-feature__icon {
    font-size: 1.8rem;
    color: #ffffff;
    margin-bottom: 16px;
}
.wlu-bep-feature__title {
    font-family: 'Sora', sans-serif;
    font-size: 0.92rem;
    font-weight: 800;
    color: #ffffff;
    line-height: 1.35;
    margin: 0 0 12px;
}
.wlu-bep-feature__body {
    font-size: 0.82rem;
    color: #E60001;
    line-height: 1.60;
    margin: 0;
}

/* ── Unique Benefits ──────────────────────────────────────── */
.wlu-bep-benefits {
    padding: clamp(72px, 9vw, 110px) 0;
    background: #ffffff;
}
.wlu-bep-benefits__inner {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: clamp(48px, 7vw, 96px);
    align-items: start;
}
.wlu-bep-benefits__title {
    font-family: 'Sora', sans-serif;
    font-size: clamp(1.5rem, 3vw, 2.2rem);
    font-weight: 800;
    color: #111111;
    line-height: 1.22;
    margin: 16px 0 16px;
}
.wlu-bep-benefits__lead {
    font-size: 0.98rem;
    color: #555555;
    line-height: 1.70;
    margin: 0;
}
.wlu-bep-benefits__list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.wlu-bep-benefit-item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 18px 20px;
    border-radius: 14px;
    background: #faf9f7;
    border: 1px solid rgba(0,0,0,0.06);
    transition: background 0.25s ease;
}
.wlu-bep-benefit-item:hover { background: rgba(200,52,47,0.04); }
.wlu-bep-benefit-item__icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: rgba(200,52,47,0.10);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    color: #c8342f;
    flex-shrink: 0;
}
.wlu-bep-benefit-item__text {
    font-size: 0.92rem;
    color: #333333;
    line-height: 1.58;
    margin: 0;
    padding-top: 8px;
}

/* ── Implementation Timeline — Q1–Q4 ─────────────────────── */
.wlu-bep-timeline {
    padding: clamp(72px, 9vw, 110px) 0;
    background:
        radial-gradient(ellipse 70% 60% at 50% 100%, rgba(200,52,47,0.16) 0%, transparent 65%),
        linear-gradient(160deg, #1c0808 0%, #220e0e 50%, #1e0a0c 100%);
}
.wlu-bep-timeline__track {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-top: 56px;
    position: relative;
}
/* Connecting line between quarter badges */
.wlu-bep-timeline__line {
    position: absolute;
    top: 40px; /* aligns with badge centres */
    left: calc(12.5% + 10px);
    right: calc(12.5% + 10px);
    height: 2px;
    background: linear-gradient(to right, transparent, rgba(200,52,47,0.50) 10%, rgba(200,52,47,0.50) 90%, transparent);
    z-index: 0;
}
.wlu-bep-timeline__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    position: relative;
    z-index: 1;
}
.wlu-bep-timeline__badge {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: #c8342f;
    border: 3px solid rgba(255,255,255,0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Sora', sans-serif;
    font-size: 1.2rem;
    font-weight: 900;
    color: #ffffff;
    box-shadow: 0 0 28px rgba(200,52,47,0.40);
    flex-shrink: 0;
    margin-bottom: 20px;
}
.wlu-bep-timeline__card {
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.10);
    border-radius: 18px;
    padding: 24px 20px;
    width: 100%;
}
.wlu-bep-timeline__label {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.10em;
    color: var(--wlu-gold, #f4cf51);
    margin-bottom: 10px;
}
.wlu-bep-timeline__title {
    font-family: 'Sora', sans-serif;
    font-size: 0.92rem;
    font-weight: 700;
    color: #C9342F;
    line-height: 1.35;
    margin: 0 0 14px;
}
.wlu-bep-timeline__points {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.wlu-bep-timeline__points li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 0.80rem;
    color: rgba(255,255,255,0.78);
    line-height: 1.5;
}
.wlu-bep-timeline__points li i {
    color: #c8342f;
    flex-shrink: 0;
    margin-top: 3px;
    font-size: 0.6rem;
}

/* ── How to Get Involved ──────────────────────────────────── */
.wlu-bep-involve {
    padding: clamp(72px, 9vw, 110px) 0;
    background: var(--wlu-cream, #faf9f7);
}
.wlu-bep-involve__steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    margin-top: 56px;
    position: relative;
}
.wlu-bep-involve__steps::before {
    content: none;
}
.wlu-bep-involve__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 0 12px;
    position: relative;
}
.wlu-bep-involve__connector {
    position: absolute;
    top: 43px;
    left: calc(50% + 48px);
    width: calc(100% - 108px);
    height: 2px;
    background: linear-gradient(to right, rgba(200,52,47,0.38), rgba(200,52,47,0.95));
    z-index: 1;
}
.wlu-bep-involve__connector::after {
    content: '';
    position: absolute;
    right: -12px;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 12px solid rgba(200,52,47,0.95);
}
.wlu-bep-involve__step-icon {
    position: relative;
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background: #ffffff;
    border: 2px solid rgba(200,52,47,0.25);
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    color: #c8342f;
    margin-bottom: 20px;
    flex-shrink: 0;
}
.wlu-bep-involve__step-num {
    position: absolute;
    top: -8px;
    right: -8px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #c8342f;
    color: #ffffff;
    font-family: 'Sora', sans-serif;
    font-size: 0.68rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #faf9f7;
}
.wlu-bep-involve__step-title {
    font-family: 'Sora', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    color: #111111;
    margin: 0 0 10px;
    line-height: 1.3;
}
.wlu-bep-involve__step-body {
    font-size: 0.88rem;
    color: #555555;
    line-height: 1.62;
    margin: 0;
}

/* ── Final CTA ────────────────────────────────────────────── */
.wlu-bep-cta {
    position: relative;
    overflow: hidden;
    padding: clamp(80px, 10vw, 130px) 0;
    background:
        radial-gradient(ellipse 70% 50% at 50% 50%, rgba(200,52,47,0.16) 0%, transparent 65%),
        linear-gradient(160deg, #060608 0%, #0d0e11 60%, #111013 100%);
}
.wlu-bep-cta__arc {
    position: absolute;
    right: -60px;
    top: 0;
    height: 100%;
    width: 500px;
    pointer-events: none;
}
.wlu-bep-cta__arc svg { width: 100%; height: 100%; }
.wlu-bep-cta__inner {
    position: relative;
    z-index: 1;
    max-width: 760px;
    margin: 0 auto;
    text-align: center;
}
.wlu-bep-cta__icon {
    font-size: 2rem;
    color: var(--wlu-gold, #f4cf51);
    opacity: 0.9;
    margin-bottom: 20px;
    display: block;
}
.wlu-bep-cta__title {
    font-family: 'Sora', sans-serif;
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 900;
    color: #ffffff;
    line-height: 1.18;
    margin: 0 0 20px;
}
.wlu-bep-cta__text {
    font-size: 1.05rem;
    color: rgba(255,255,255,0.80);
    line-height: 1.72;
    margin-bottom: 36px;
}
.wlu-bep-cta__actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 48px;
}
.wlu-bep-cta__contact {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 28px 36px;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 20px;
    max-width: 420px;
    margin: 0 auto;
}
.wlu-bep-cta__contact-label {
    font-size: 0.80rem;
    color: rgba(255,255,255,0.55);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.wlu-bep-cta__contact-name {
    font-family: 'Sora', sans-serif;
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--wlu-gold, #f4cf51);
}
.wlu-bep-cta__contact-phones {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    justify-content: center;
}
.wlu-bep-cta__contact-phones a {
    font-size: 0.92rem;
    color: #888888;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: color 0.2s;
}
.wlu-bep-cta__contact-phones a:hover { color: var(--wlu-gold, #f4cf51); }
.wlu-bep-cta__contact-phones a i { color: #c8342f; }

/* ── BEP Responsive ───────────────────────────────────────── */
@media (max-width: 1100px) {
    .wlu-bep-features__grid { grid-template-columns: repeat(3, 1fr); }
    .wlu-bep-features__grid::before { display: none; }
}
@media (max-width: 900px) {
    .wlu-bep-intro__inner { grid-template-columns: 1fr; }
    .wlu-bep-intro__visual { display: none; }
    .wlu-bep-why__grid { grid-template-columns: 1fr; gap: 20px; }
    .wlu-bep-benefits__inner { grid-template-columns: 1fr; }
    .wlu-bep-timeline__track { grid-template-columns: 1fr 1fr; }
    .wlu-bep-timeline__line { display: none; }
    .wlu-bep-involve__steps { grid-template-columns: 1fr 1fr; }
    .wlu-bep-involve__steps::before { display: none; }
    .wlu-bep-involve__connector { display: none; }
}
@media (max-width: 640px) {
    .wlu-bep-features__grid { grid-template-columns: 1fr 1fr; }
    .wlu-bep-timeline__track { grid-template-columns: 1fr; }
    .wlu-bep-involve__steps { grid-template-columns: 1fr; }
    .wlu-bep-involve__step { padding-bottom: 58px; }
    .wlu-bep-involve__step:last-child { padding-bottom: 0; }
    .wlu-bep-involve__connector {
        display: block;
        top: auto;
        bottom: 8px;
        left: 50%;
        width: 2px;
        height: 42px;
        transform: translateX(-50%);
        background: linear-gradient(to bottom, rgba(200,52,47,0.38), rgba(200,52,47,0.95));
    }
    .wlu-bep-involve__connector::after {
        right: auto;
        left: 50%;
        top: auto;
        bottom: -12px;
        transform: translateX(-50%);
        border-top: 12px solid rgba(200,52,47,0.95);
        border-right: 7px solid transparent;
        border-left: 7px solid transparent;
        border-bottom: 0;
    }
    .wlu-bep-cta__arc { display: none; }
    .wlu-bep-intro__arc { display: none; }
}
@media (max-width: 480px) {
    .wlu-bep-features__grid { grid-template-columns: 1fr; }
}

/* ── Careers / Jobs ───────────────────────────────────────── */
.wlu-job-card {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.wlu-job-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}
.wlu-job-meta-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border-radius: 999px;
    background: rgba(200, 52, 47, 0.08);
    color: var(--wlu-navy, #11284b);
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.2;
}
.wlu-job-meta-pill i {
    color: var(--wlu-red, #c8342f);
}
.wlu-job-detail-grid {
    align-items: start;
}
.wlu-job-article,
.wlu-job-sidebar {
    height: 100%;
}
.wlu-job-summary-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 28px;
}
.wlu-job-summary-item {
    padding: 16px 18px;
    border-radius: 18px;
    background: rgba(17, 40, 75, 0.04);
    border: 1px solid rgba(17, 40, 75, 0.08);
}
.wlu-job-summary-item strong {
    display: block;
    margin-top: 6px;
    color: var(--wlu-navy, #11284b);
    font-family: 'Sora', sans-serif;
    font-size: 0.98rem;
}
.wlu-job-list {
    margin-top: 18px;
}
.wlu-job-list li {
    align-items: flex-start;
}
@media (max-width: 900px) {
    .wlu-job-summary-grid {
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   Site forms — Bootstrap-based inputs (reliable mobile tapping)
   Shared by the contact and member-login forms. Plain Bootstrap
   .input-group / .form-control, styled to match the WLU design.
   ============================================================ */
.wlu-contact-form .form-label {
    font-size: 0.87rem;
    font-weight: 700;
    color: var(--wlu-ink);
    margin-bottom: 7px;
    display: block;
}

/* Base field look — covers input-group fields and standalone textareas */
.wlu-input-group .form-control,
.wlu-contact-form .form-control {
    font-family: "Manrope", sans-serif;
    font-size: 1rem;            /* >=16px stops iOS from auto-zooming on focus */
    line-height: 1.5;
    color: var(--wlu-ink);
    padding: 12px 14px;
    min-height: 50px;           /* comfortable tap target */
    background: #fff;
    border: 1.5px solid var(--wlu-border);
    border-radius: 12px;
}

.wlu-input-group .form-control::placeholder,
.wlu-contact-form .form-control::placeholder {
    color: rgba(17, 17, 17, 0.38);
}

.wlu-input-group {
    border-radius: 12px;
}

/* Leading icon add-on */
.wlu-input-group .input-group-text {
    width: 46px;
    justify-content: center;
    color: var(--wlu-muted);
    background: rgba(17, 17, 17, 0.025);
    border: 1.5px solid var(--wlu-border);
    border-right: 0;
    border-radius: 12px 0 0 12px;
}

/* Field sits to the right of the icon */
.wlu-input-group .form-control {
    border-left: 0;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

/* When a trailing button (e.g. password eye) follows, square the input's
   right edge so the button carries the rounded corner. */
.wlu-input-group .form-control:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

/* Whole-group focus ring (instead of a per-input shadow) */
.wlu-input-group:focus-within {
    box-shadow: 0 0 0 3px rgba(200, 52, 47, 0.10);
}
.wlu-input-group:focus-within .input-group-text,
.wlu-input-group:focus-within .form-control,
.wlu-input-group:focus-within .wlu-login-eye {
    border-color: var(--wlu-red);
}
.wlu-input-group:focus-within .input-group-text {
    color: var(--wlu-red);
}
.wlu-input-group .form-control:focus {
    box-shadow: none;
    outline: none;
}

/* Password show/hide button as a trailing add-on */
.wlu-input-group .wlu-login-eye {
    width: 46px;
    /* Match the sibling input/icon height exactly: "height: 100%" from the
       base .wlu-login-eye rule doesn't resolve inside this flex group (the
       group has no explicit height), so it was falling back to the button's
       own min-height and sitting shorter than the input. Forcing height to
       auto + align-self: stretch lets flexbox stretch it to match. */
    height: auto;
    min-height: 0;
    align-self: stretch;
    border: 1.5px solid var(--wlu-border);
    border-left: 0;
    border-radius: 0 12px 12px 0;
    background: #fff;
    color: var(--wlu-muted);
    box-shadow: none;
}

/* Standalone textarea (contact message) */
.wlu-contact-form .wlu-textarea {
    min-height: 150px;
    line-height: 1.65;
    resize: vertical;
}
.wlu-contact-form .wlu-textarea:focus {
    border-color: var(--wlu-red);
    box-shadow: 0 0 0 3px rgba(200, 52, 47, 0.10);
    outline: none;
}

/* Keep the icon add-on border in sync with Bootstrap's is-invalid/is-valid */
.wlu-input-group:has(.form-control.is-invalid) .input-group-text {
    border-color: #dc3545;
}
.wlu-input-group:has(.form-control.is-valid) .input-group-text {
    border-color: #198754;
}

/* ── Eyebrow → heading breathing room (overrides body.wlu-body h2 margin reset) ── */
body.wlu-body .wlu-eyebrow + .wlu-section-title,
body.wlu-body .wlu-eyebrow + h1,
body.wlu-body .wlu-eyebrow + h2,
body.wlu-body .wlu-eyebrow + h3 {
    margin-top: 16px;
}
