/* =============================================================
   THEMBA MENES FOUNDATION — Main CSS v2
   Inspired by Charifund design: sky-blue + yellow palette
   ============================================================= */

/* ── TOP BAR ────────────────────────────────────────────────── */
.top-bar {
    background: var(--hero-bg);
    color: rgba(255,255,255,.75);
    font-size: .82rem;
    padding: 9px 0;
}
.top-bar__inner { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.top-bar__left  { display:flex; gap:20px; flex-wrap:wrap; }
.top-bar__left a{ display:flex; align-items:center; gap:6px; color:rgba(255,255,255,.75); transition:color var(--transition); }
.top-bar__left a:hover { color:var(--yellow); }
.top-bar__left i { color:var(--yellow); font-size:.8rem; }
.top-bar__social{ display:flex; gap:8px; }
.top-bar__social a {
    width:28px; height:28px; border-radius:50%;
    background:rgba(255,255,255,.1);
    color:var(--white); font-size:.75rem;
    display:flex; align-items:center; justify-content:center;
    transition:all var(--transition);
}
.top-bar__social a:hover { background:var(--yellow); color:var(--dark); }

/* ── SITE HEADER ────────────────────────────────────────────── */
.site-header {
    position:sticky; top:0; z-index:1000;
    background:var(--white);
    box-shadow:0 2px 20px rgba(0,0,0,.08);
    transition:box-shadow var(--transition);
}
.site-header.scrolled { box-shadow:0 6px 32px rgba(0,0,0,.14); }

.nav-wrap {
    display:flex; align-items:center;
    gap:20px; height:140px;
}

/* ── LOGO ───────────────────────────────────────────────────── */
.site-logo { display:flex; align-items:center; flex-shrink:0; text-decoration:none; }
.header-logo-img {
    height:128px;
    width:auto;
    max-width:450px;
    object-fit:contain;
    display:block;
}

/* ── CUSTOM CURSOR ───────────────────────────────────────────── */
* { cursor: none !important; }

.cur-dot,
.cur-ring,
.cur-trail {
    position: fixed;
    top: 0; left: 0;
    pointer-events: none;
    z-index: 99999;
    border-radius: 50%;
    will-change: transform;
    transition: opacity .3s;
}

/* Tiny sharp dot — exact cursor position */
.cur-dot {
    width: 8px; height: 8px;
    margin: -4px 0 0 -4px;
    background: var(--yellow);
    box-shadow: 0 0 6px 2px rgba(200, 212, 0, .7);
}
.cur-dot--hover {
    background: #fff;
    box-shadow: 0 0 8px 3px rgba(255,255,255,.6);
}

/* Medium ring — lags slightly behind */
.cur-ring {
    width: 36px; height: 36px;
    margin: -18px 0 0 -18px;
    border: 2px solid rgba(200, 212, 0, .75);
    background: transparent;
    transition: width .2s, height .2s, margin .2s, border-color .2s, opacity .3s;
}
.cur-ring--hover {
    width: 54px; height: 54px;
    margin: -27px 0 0 -27px;
    border-color: rgba(255,255,255,.6);
    background: rgba(200, 212, 0, .08);
}

/* Large soft blob — slowest trail shadow */
.cur-trail {
    width: 80px; height: 80px;
    margin: -40px 0 0 -40px;
    background: radial-gradient(circle, rgba(43,45,126,.35) 0%, rgba(43,45,126,0) 70%);
}

@media (pointer: coarse) {
    * { cursor: auto !important; }
    .cur-dot, .cur-ring, .cur-trail { display: none; }
}

/* ── CENTRE GROUP — two yellow pills + junction ─────────────── */
.hdr-centre-group {
    flex:1; display:flex; align-items:center;
    margin:0 14px;
}

/* LEFT pill — nav items */
.hdr-nav-pill {
    flex:1;
    background:var(--yellow);
    border-radius:50px;
    padding:7px 10px;
}
.pill-nav { display:flex; }
.pill-menu {
    display:flex; align-items:center;
    justify-content:center; gap:2px;
    list-style:none; margin:0; padding:0;
}
.pill-menu > li { position:relative; }
.pill-menu > li > a {
    display:block; padding:10px 17px;
    font-size:.88rem; font-weight:700; color:var(--dark);
    border-radius:50px; white-space:nowrap; text-decoration:none;
    transition:background .22s ease, color .22s ease, transform .22s ease;
}
.pill-menu > li > a:hover {
    background:rgba(0,0,0,.1);
    transform:translateY(-1px);
}
.pill-menu > li.current-menu-item > a,
.pill-menu > li.current_page_item > a { background:var(--dark); color:var(--white); }
/* Dropdown */
.pill-menu .sub-menu {
    position:absolute; top:calc(100% + 10px); left:0;
    min-width:190px; background:var(--white);
    border-radius:14px; box-shadow:0 12px 40px rgba(0,0,0,.14);
    padding:8px; z-index:200; list-style:none;
    opacity:0; visibility:hidden; transform:translateY(6px);
    transition:all var(--transition);
}
.pill-menu > li:hover > .sub-menu { opacity:1; visibility:visible; transform:translateY(0); }
.pill-menu .sub-menu li a {
    display:block; padding:9px 14px;
    font-size:.85rem; font-weight:600; color:var(--dark);
    border-radius:8px; text-decoration:none; transition:all var(--transition);
}
.pill-menu .sub-menu li a:hover { background:var(--primary-light); color:var(--primary); }

/* JUNCTION — white circle sitting in the notch between the two pills */
.hdr-junction {
    width:52px; height:52px; border-radius:50%; flex-shrink:0;
    background:var(--white);
    border:3px solid var(--yellow);
    display:flex; align-items:center; justify-content:center;
    color:var(--dark); font-size:1.05rem;
    margin:0 -8px;          /* pulls into both pills, creating notch */
    position:relative; z-index:3;
    box-shadow:0 0 0 6px var(--yellow); /* yellow halo blends with both pills */
}

/* RIGHT pill — contact info */
.hdr-contact-pill {
    background:var(--yellow);
    border-radius:50px;
    padding:10px 22px 10px 18px;
    flex-shrink:0;
    display:flex; flex-direction:column; gap:2px;
}
.hdr-phone-label {
    font-size:.62rem; font-weight:800;
    text-transform:uppercase; letter-spacing:.12em;
    color:rgba(0,0,0,.5); line-height:1;
}
.hdr-phone-number {
    font-size:.93rem; font-weight:800; color:var(--dark);
    text-decoration:none; white-space:nowrap; line-height:1.3;
    transition:color var(--transition);
}
.hdr-phone-number:hover { color:rgba(0,0,0,.6); }

/* ── DONATE NOW button — text only ──────────────────────────── */
.hdr-donate-btn {
    display:inline-flex; align-items:center; justify-content:center;
    background:var(--yellow); color:var(--dark);
    font-size:.9rem; font-weight:800;
    padding:14px 28px; border-radius:50px;
    text-decoration:none; white-space:nowrap; flex-shrink:0;
    box-shadow:0 4px 16px rgba(0,0,0,.13);
    transition:background .25s ease, color .25s ease,
               transform .25s ease, box-shadow .25s ease;
}
.hdr-donate-btn:hover {
    background:var(--dark); color:var(--white);
    transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.2);
}

/* Hamburger */
.hamburger { display:none; flex-direction:column; gap:5px; background:none; cursor:pointer; padding:8px; border-radius:8px; border:2px solid var(--gray-border); flex-shrink:0; }
.hamburger span { display:block; width:22px; height:2px; background:var(--dark); border-radius:2px; transition:all var(--transition); }
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ══════════════════════════════════════════════════════════════
   HERO SLIDER — hslider
   ══════════════════════════════════════════════════════════════ */

.hslider { position:relative; }

/* Photo stage — all slides stack inside here */
.hslider__stage {
    position:relative;
    overflow:hidden;
    height:91vh;
    min-height:540px;
    max-height:880px;
    background:#000;
}

/* Individual slide — opacity cross-fade */
.hslide {
    position:absolute;
    inset:0;
    opacity:0;
    transition:opacity 1.1s ease;
    z-index:0;
    display:flex;
    align-items:center;
}
.hslide.active { opacity:1; z-index:1; }

/* Ken Burns zoom on active photo */
.hslide__photo {
    position:absolute;
    inset:0;
    background-size:cover;
    background-position:center;
    transform:scale(1.07);
    transition:transform 7s ease-out;
    will-change:transform;
}
.hslide.active .hslide__photo { transform:scale(1); }

/* Gradient veil */
.hslide__veil {
    position:absolute;
    inset:0;
    z-index:1;
    background:
        linear-gradient(to right,  rgba(0,0,0,.84) 0%, rgba(0,0,0,.52) 52%, rgba(0,0,0,.10) 100%),
        linear-gradient(to top,    rgba(0,0,0,.55) 0%, transparent 40%);
}

/* Slide text content */
.hslide__body {
    position:relative;
    z-index:2;
    padding-top:80px;
    padding-bottom:160px;  /* extra clearance for the fixed-cta bar below */
    max-width:680px;
}

/* Start children invisible */
.hslide__body > * { opacity:0; transform:translateY(28px); }

/* Staggered text-in */
@keyframes hSlideIn { to { opacity:1; transform:none; } }
.hslide.active .hslide__tag  { animation:hSlideIn .65s .08s ease forwards; }
.hslide.active .hslide__h    { animation:hSlideIn .65s .22s ease forwards; }
.hslide.active .hslide__sub  { animation:hSlideIn .65s .38s ease forwards; }
.hslide.active .hslide__btns { animation:hSlideIn .65s .52s ease forwards; }

/* Eyebrow tag */
.hslide__tag {
    display:inline-flex; align-items:center; gap:10px;
    font-family:var(--font-script); font-size:1.1rem;
    color:var(--yellow); margin-bottom:18px;
}
.hslide__tag i {
    width:32px; height:32px; border-radius:50%;
    background:rgba(234,179,8,.18); border:1px solid rgba(234,179,8,.4);
    display:flex; align-items:center; justify-content:center;
    font-size:.8rem; flex-shrink:0;
}

/* Heading */
.hslide__h {
    font-size:clamp(2.4rem,6vw,4.2rem);
    color:#fff; font-weight:800; line-height:1.1;
    margin-bottom:20px; letter-spacing:-.01em;
}
.hslide__em {
    font-style:italic; font-family:var(--font-script);
    color:var(--yellow); font-size:1.1em;
}

/* Subtitle */
.hslide__sub {
    font-size:1rem; color:rgba(255,255,255,.74);
    line-height:1.75; max-width:500px; margin-bottom:34px;
}

/* Buttons (legacy — kept for any remaining references) */
.hslide__btns { display:flex; gap:14px; flex-wrap:wrap; }

/* ── FIXED CTA — floats above controls, never changes between slides ── */
.hslider__fixed-cta {
    position:absolute;
    bottom:82px;          /* sits above the controls strip at bottom:22px */
    left:0; right:0;
    z-index:10;
    pointer-events:none;  /* pass-through by default */
}
.hslider__fixed-cta__inner {
    display:flex;
    gap:14px;
    flex-wrap:wrap;
    pointer-events:auto;
}

/* ── SLIDE CONTROLS OVERLAY (inside stage, above torn paper) ── */
.hslider__ctrl {
    position:absolute;
    bottom:22px; left:0; right:0;
    z-index:12;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 clamp(20px, 5vw, 60px);
    pointer-events:none;
}
.hslider__ctrl > * { pointer-events:auto; }

/* Counter */
.hslider__count {
    display:flex; align-items:center; gap:8px;
    font-size:.82rem; font-weight:700; letter-spacing:.06em;
    color:rgba(255,255,255,.6);
}
.hslider__count #hCur { color:var(--yellow); font-size:1rem; }
.hslider__sep {
    display:inline-block; width:24px; height:1px;
    background:rgba(255,255,255,.35); vertical-align:middle;
}

/* Pip dots */
.hslider__pips { display:flex; gap:8px; align-items:center; }
.hpip {
    width:9px; height:9px; border-radius:50%;
    border:1.5px solid rgba(255,255,255,.45);
    background:transparent; padding:0; cursor:pointer;
    transition:all var(--transition);
}
.hpip.active { background:var(--yellow); border-color:var(--yellow); transform:scale(1.4); }

/* Arrow pair */
.hslider__arrows { display:flex; gap:10px; }
.harr {
    width:44px; height:44px; border-radius:50%;
    border:none; display:flex; align-items:center; justify-content:center;
    font-size:.9rem; cursor:pointer; transition:all var(--transition);
    box-shadow:0 4px 16px rgba(0,0,0,.4);
}
.harr--prev {
    background:rgba(255,255,255,.12); color:#fff;
    border:1px solid rgba(255,255,255,.2);
    backdrop-filter:blur(8px);
}
.harr--prev:hover { background:var(--primary); border-color:var(--primary); }
.harr--next { background:var(--yellow); color:#000; }
.harr--next:hover { background:var(--yellow-dark); }

/* ── WHITE TORN PAPER — bottom of photo stage ─────────────── */
.htear {
    position:absolute;
    bottom:-1px; left:0; right:0;
    line-height:0; z-index:11; pointer-events:none;
}
.htear svg { width:100%; display:block; }

/* ── IMPACT STATS STRIP (white band below hero) ─────────────── */
.hero-stats {
    background:#fff;
    padding:28px 0;
    border-bottom:1px solid var(--gray-border);
    box-shadow:0 4px 20px rgba(0,0,0,.06);
}
.hero-stats__inner {
    display:flex; align-items:center; justify-content:center;
    flex-wrap:wrap; gap:0;
}
.hero-stats__item {
    text-align:center; padding:0 36px; flex:1; min-width:120px;
}
.hero-stats__item strong {
    display:block; font-size:1.8rem; font-weight:800;
    color:var(--primary); line-height:1; margin-bottom:4px;
    font-family:var(--font-heading);
}
.hero-stats__item strong sup { font-size:.6em; vertical-align:super; }
.hero-stats__item span {
    font-size:.73rem; color:var(--gray);
    text-transform:uppercase; letter-spacing:.08em; font-weight:600;
}
.hero-stats__div {
    width:1px; height:40px; background:var(--gray-border); flex-shrink:0;
}

/* ── PARTNERS ───────────────────────────────────────────────── */
/* ── PARTNERS BAND (dark navy, flows from hero) ──────────────── */
.hpartners {
    background:#0B1A2B;
    padding:26px 0;
    overflow:hidden;
    border-bottom:1px solid rgba(255,255,255,.06);
}
.hpartners__track-wrap { overflow:hidden; }
.hpartners__track {
    display:flex;
    align-items:center;
    gap:0;
    width:max-content;
    animation:hPartnerScroll 28s linear infinite;
}
.hpartners__track:hover { animation-play-state:paused; }

@keyframes hPartnerScroll {
    from { transform:translateX(0); }
    to   { transform:translateX(-50%); }
}

.hpartners__item {
    display:flex; align-items:center; gap:12px;
    padding:0 44px;
    white-space:nowrap;
    color:rgba(255,255,255,.45);
    font-size:.82rem; font-weight:700;
    letter-spacing:.06em; text-transform:uppercase;
    transition:color .3s ease;
    border-right:1px solid rgba(255,255,255,.08);
}
.hpartners__item:hover { color:var(--yellow); }
.hpartners__item i { font-size:1.3rem; color:rgba(255,255,255,.25); flex-shrink:0; transition:color .3s ease; }
.hpartners__item:hover i { color:var(--yellow); }

/* ── BLOB CAUSE CARDS ───────────────────────────────────────── */
.blob-slider { overflow:hidden; margin:0 -10px; }
.blob-track  { display:flex; transition:transform .5s ease; }
.blob-slide  { min-width:calc(33.333% - 20px); padding:0 10px; }

.blob-card {
    text-align:center;
    padding:44px 28px 36px;
    background:var(--white);
    border-radius:60% 40% 55% 45% / 50% 50% 50% 50%;
    border:3px solid transparent;
    transition:all var(--transition);
    cursor:pointer;
    min-height:320px;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
}
.blob-card:hover { transform:translateY(-6px); }
.blob-card--blue   { border-color:var(--primary); background:rgba(14,165,233,.04); }
.blob-card--coral  { border-color:#F87171;        background:rgba(248,113,113,.04); }
.blob-card--yellow { border-color:var(--yellow);  background:rgba(234,179,8,.04); }

.blob-card__icon-wrap { margin-bottom:8px; }
.blob-card__icon {
    width:72px; height:72px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:1.5rem; color:var(--white); margin:0 auto;
}
.blob-card--blue   .blob-card__icon { background:var(--hero-bg); }
.blob-card--coral  .blob-card__icon { background:#EF4444; }
.blob-card--yellow .blob-card__icon { background:var(--yellow); }

.blob-card h3 { font-size:1.15rem; color:var(--dark); }
.blob-card p  { font-size:.88rem; color:var(--gray); text-align:center; }

.slider-nav { display:flex; gap:10px; align-items:center; }
.slider-nav--center { justify-content:center; margin-top:36px; }
.slider-btn {
    width:48px; height:48px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:.9rem; cursor:pointer; border:none;
    transition:all var(--transition);
}
.slider-btn--dark   { background:var(--hero-bg); color:var(--white); }
.slider-btn--yellow { background:var(--yellow);  color:var(--dark); }
.slider-btn--dark:hover   { background:var(--primary); }
.slider-btn--yellow:hover { background:var(--yellow-dark); }

/* ── ABOUT (collage layout — matches reference) ──────────────── */
.about2 { background:#fff; }

.about2__wrap {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:72px;
    align-items:center;
}

/* ═══ LEFT: photo collage ═══ */
.about2__visual { position:relative; }

/* Dashed ring behind top-left photo */
.about2__ring {
    position:absolute;
    top:-30px; left:-30px;
    width:230px; height:230px;
    border-radius:50%;
    border:2px dashed rgba(220,50,50,.22);
    z-index:0; pointer-events:none;
}

/* Top row: two portrait photos */
.about2__row {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    margin-bottom:14px;
    position:relative; z-index:1;
}

.about2__ph { border-radius:var(--radius-lg); overflow:hidden; }
.about2__ph img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.about2__ph:hover img { transform:scale(1.04); }

/* Left portrait — shorter */
.about2__ph--a { aspect-ratio:3/4; }
/* Right portrait — same ratio but pushed down */
.about2__ph--b { aspect-ratio:3/4; margin-top:40px; }
/* Bottom wide */
.about2__ph--c { aspect-ratio:16/7; position:relative; z-index:1; }

/* Badge — sits between the two rows on the left */
.about2__badge {
    position:absolute;
    left:-18px;
    bottom:calc(31% + 8px);
    background:#fff;
    border-radius:var(--radius-lg);
    padding:14px 18px;
    display:flex; align-items:center; gap:14px;
    box-shadow:0 10px 36px rgba(0,0,0,.13);
    z-index:5; min-width:190px;
}
.about2__badge-icon {
    width:50px; height:50px; border-radius:50%;
    overflow:hidden; flex-shrink:0;
    border:2px solid var(--yellow);
}
.about2__badge-icon img {
    width:100%; height:100%; object-fit:cover; display:block;
}
.about2__badge-text strong {
    display:block; font-size:1.65rem; font-weight:800;
    color:var(--primary); line-height:1; font-family:var(--font-heading);
}
.about2__badge-text strong sup { font-size:.6em; vertical-align:super; }
.about2__badge-text span { font-size:.72rem; color:var(--gray); font-weight:600; text-transform:uppercase; letter-spacing:.05em; }

/* ═══ RIGHT ═══ */
.about2__right { position:relative; }

/* Floating card — top-right corner of right column */
.about2__card {
    position:absolute;
    top:0; right:0;
    background:#fff;
    border-radius:var(--radius-lg);
    padding:14px 18px;
    display:flex; align-items:center; gap:14px;
    box-shadow:0 14px 44px rgba(0,0,0,.12);
    z-index:5; min-width:210px;
}
.about2__card-img {
    position:relative; flex-shrink:0;
    width:58px; height:58px;
    border-radius:50%; overflow:hidden;
    border:3px solid #e5e7eb;
}
.about2__card-img img { width:100%; height:100%; object-fit:cover; display:block; }
.about2__star {
    position:absolute; top:-6px; left:-6px;
    background:var(--yellow); color:#fff;
    border-radius:50%; width:22px; height:22px;
    display:flex; align-items:center; justify-content:center;
    font-size:.55rem;
}
.about2__card-info strong {
    display:block; font-size:1.45rem; font-weight:800;
    color:var(--dark); line-height:1; font-family:var(--font-heading);
}
.about2__card-info em {
    display:block; font-size:.7rem; color:var(--primary);
    font-weight:700; text-transform:uppercase; letter-spacing:.05em;
    font-style:normal; margin-top:2px;
}
.about2__card-info p { font-size:.7rem; color:var(--gray); margin:3px 0 0; }

/* Content sits below the card */
.about2__content { padding-top:90px; }
.about2__content h2 { margin-bottom:14px; line-height:1.2; }
.about2__lead { font-size:.96rem; color:var(--gray); line-height:1.8; margin-bottom:26px; }

/* Feature rows */
.about2__features { display:flex; flex-direction:column; gap:0; margin-bottom:22px; }
.about2__feature {
    display:flex; align-items:flex-start; gap:18px;
    padding:18px 0;
    border-bottom:1px solid var(--gray-border);
}
.about2__feature:first-child { padding-top:0; }
.about2__feature:last-child  { border-bottom:none; }

/* Circular icon with outline — matches reference */
.about2__feat-icon {
    width:56px; height:56px; border-radius:50%;
    border:1.5px solid var(--primary);
    background:rgba(14,165,233,.06);
    color:var(--primary);
    display:flex; align-items:center; justify-content:center;
    font-size:1.2rem; flex-shrink:0;
}
.about2__feat-icon--y {
    border-color:var(--yellow);
    background:rgba(234,179,8,.07);
    color:var(--yellow-dark);
}
.about2__feat-body h4 { font-size:1rem; margin-bottom:5px; color:var(--dark); font-weight:700; }
.about2__feat-body p  { font-size:.85rem; color:var(--gray); line-height:1.7; margin:0; }

/* Checklist */
.about2__checks { display:flex; flex-direction:column; gap:10px; }
.about2__checks li {
    display:flex; align-items:center; gap:10px;
    font-size:.9rem; color:var(--dark); font-weight:500;
}
.about2__checks li i { color:var(--primary); font-size:1.05rem; flex-shrink:0; }

/* Play button (used by split-cta) */
.play-btn, .split-play-btn {
    width:60px; height:60px; border-radius:50%;
    background:var(--yellow); color:var(--dark);
    border:none; cursor:pointer; font-size:1rem;
    display:flex; align-items:center; justify-content:center;
    transition:all var(--transition); position:relative; z-index:2;
}
.play-btn:hover, .split-play-btn:hover { background:var(--yellow-dark); transform:scale(1.1); }
.play-btn::before, .split-play-btn::before {
    content:''; position:absolute; inset:-8px;
    border-radius:50%; border:2px solid rgba(234,179,8,.4);
    animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse { 0%,100%{transform:scale(1);opacity:1} 50%{transform:scale(1.15);opacity:.5} }

/* ── DONATE CAUSES SECTION ──────────────────────────────────── */
.dcauses__head {
    display:flex; align-items:flex-end; justify-content:space-between;
    gap:24px; margin-bottom:40px; flex-wrap:wrap;
}
.dcauses__title {
    font-size:clamp(2rem,5vw,3.2rem);
    font-weight:800; line-height:1.15;
    color:var(--dark); margin-top:10px;
    overflow:hidden;
}

/* Each word starts off-screen left and invisible */
.dc-word {
    display:inline-block;
    opacity:0;
    transform:translateX(-50px);
    transition:opacity .5s ease, transform .5s ease;
    transition-delay:calc(var(--wi) * 0.09s);
    margin-right:.25em;
}
/* When section is in view, words slide into place */
.dcauses__title.dc-animate .dc-word {
    opacity:1;
    transform:translateX(0);
}

/* Slider track */
.dcauses__wrap { overflow:hidden; }
.dcauses__track { display:flex; transition:transform .9s cubic-bezier(.25,.46,.45,.94); }
.dc-slide { min-width:100%; padding:0 10px; box-sizing:border-box; }
@media(min-width:640px)  { .dc-slide { min-width:50%;     } }
@media(min-width:1024px) { .dc-slide { min-width:33.333%; } }

/* Card */
.dc-card {
    background:#fff;
    border-radius:var(--radius-lg);
    overflow:hidden;
    box-shadow:0 4px 24px rgba(0,0,0,.08);
    transition:transform var(--transition), box-shadow var(--transition);
    display:flex; flex-direction:column;
}
.dc-card:hover { transform:translateY(-6px); box-shadow:0 12px 36px rgba(0,0,0,.14); }

/* Image — landscape ratio, grayscale by default */
.dc-card__img-wrap { overflow:hidden; aspect-ratio:4/3; flex-shrink:0; }
.dc-card__img {
    width:100%; height:100%; object-fit:cover; display:block;
    transition:filter .5s ease, transform .5s ease;
}
.dc-card:hover .dc-card__img { transform:scale(1.04); }

/* Body */
.dc-card__body {
    padding:20px 22px 24px;
    display:flex; flex-direction:column; gap:12px;
    flex:1;
}
.dc-card__body h3 {
    font-size:1.05rem; font-weight:700; color:var(--dark);
    margin:0; line-height:1.3;
}
.dc-card__body > p {
    font-size:.83rem; color:var(--gray); line-height:1.65;
    margin:0; flex:1;
}

/* Progress area */
.dc-card__progress { display:flex; flex-direction:column; gap:7px; }
.dc-prog__top {
    display:flex; justify-content:space-between; align-items:center;
    font-size:.78rem; color:var(--gray); font-weight:600;
}
.dc-prog__top span:last-child { color:var(--dark); font-weight:700; }

.dc-prog__bar {
    height:8px; border-radius:var(--radius-pill);
    background:var(--gray-border); overflow:hidden;
}
.dc-prog__fill {
    height:100%; border-radius:var(--radius-pill);
    background:linear-gradient(to right, var(--yellow), var(--yellow-dark));
    transition:width 1s ease;
}

.dc-prog__amounts {
    display:flex; justify-content:space-between;
    font-size:.76rem; color:var(--gray);
}
.dc-prog__amounts strong { color:var(--dark); font-weight:700; }

/* Donate button */
.dc-card__btn {
    display:block; text-align:center;
    background:var(--hero-bg); color:#fff;
    border-radius:var(--radius-pill);
    padding:11px 20px;
    font-size:.88rem; font-weight:700;
    transition:background var(--transition);
    margin-top:4px;
}
.dc-card__btn:hover { background:var(--primary); color:#fff; }

/* Dots */
.dcauses__dots {
    display:flex; justify-content:center; gap:8px;
    margin-top:32px;
}
.dc-dot {
    width:10px; height:10px; border-radius:50%;
    border:2px solid var(--gray-border);
    background:transparent; cursor:pointer; padding:0;
    transition:all var(--transition);
}
.dc-dot.active { background:var(--primary); border-color:var(--primary); transform:scale(1.3); }

/* ── CAUSES SLIDER ──────────────────────────────────────────── */
.causes-slider__header { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:36px; }
.causes-slider__header h2 { margin-bottom:0; }

.causes-track-wrap { overflow:hidden; }
.causes-track { display:flex; transition:transform .5s ease; }
.cause-card-slide { min-width:25%; padding:0 10px; }

.cause-card { background:var(--white); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); transition:transform var(--transition), box-shadow var(--transition); }
.cause-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-lg); }

.cause-card__img-wrap { position:relative; height:230px; display:block; overflow:hidden; }
.cause-card__img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.cause-card:hover .cause-card__img { transform:scale(1.05); }
.cause-card__img-ph { width:100%; height:100%; background:var(--primary-light); display:flex; align-items:center; justify-content:center; font-size:3rem; color:var(--primary); }
.cause-card__link-icon {
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:52px; height:52px; border-radius:50%;
    background:var(--teal); color:var(--white);
    display:flex; align-items:center; justify-content:center;
    font-size:.9rem; opacity:0; transition:opacity var(--transition);
}
.cause-card:hover .cause-card__link-icon { opacity:1; }
.cause-card__body  { padding:20px 18px; }
.cause-card__cat   { font-size:.72rem; font-weight:700; color:var(--primary); text-transform:uppercase; letter-spacing:.08em; display:block; margin-bottom:6px; }
.cause-card__body h3 { font-size:1rem; margin-bottom:8px; }
.cause-card__body h3 a { color:var(--dark); }
.cause-card__body h3 a:hover { color:var(--primary); }
.cause-card__body p  { font-size:.82rem; }
.causes-dots { display:flex; gap:8px; justify-content:center; margin-top:24px; }
.causes-dot { width:10px; height:10px; border-radius:50%; background:var(--gray-border); border:none; cursor:pointer; transition:all var(--transition); }
.causes-dot.active { background:var(--primary); transform:scale(1.3); }

/* ── DONATE FORM SECTION ─────────────────────────────────────── */
.donate-cta {
    position:relative; overflow:hidden;
    background:linear-gradient(135deg, var(--hero-bg) 0%, var(--primary) 100%);
}
.donate-cta__bg {
    position:absolute; inset:0; pointer-events:none;
    background-image:radial-gradient(circle at 15% 50%, rgba(200,212,0,.08) 0%, transparent 55%),
                     radial-gradient(circle at 85% 15%, rgba(255,255,255,.05) 0%, transparent 50%);
}
.donate-cta__inner {
    position:relative; z-index:1;
    display:grid; grid-template-columns:1fr 1.05fr; gap:64px; align-items:center;
}
/* ─ Left column */
.donate-cta__left { display:flex; flex-direction:column; }

/* ─ Left text content */
.donate-cta__content h2 {
    font-size:clamp(1.6rem,2.8vw,2.4rem); line-height:1.2;
    color:var(--white); margin-bottom:14px;
}
.donate-cta__content > p { line-height:1.75; color:rgba(255,255,255,.78); margin-bottom:28px; }
.donate-features { display:flex; flex-direction:column; gap:16px; }
.donate-feature {
    display:flex; align-items:center; gap:14px;
    color:rgba(255,255,255,.85); font-size:.92rem;
}
.donate-feature i {
    width:40px; height:40px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    border-radius:50%; background:rgba(200,212,0,.18);
    color:var(--yellow); font-size:1rem;
}
/* ─ Form card */
.donate-form-wrap { display:flex; }
.donate-form-card {
    background:var(--white); border-radius:var(--radius-lg);
    padding:36px 32px; box-shadow:0 24px 64px rgba(0,0,0,.32);
    width:100%; display:flex; flex-direction:column; gap:20px;
}
.donate-form-card h3 { font-size:1.3rem; color:var(--dark); margin:0; }
/* ─ Tabs */
.donate-tabs {
    display:flex; border:2px solid var(--gray-border);
    border-radius:var(--radius-pill); overflow:hidden; background:var(--gray-light);
}
.donate-tab {
    flex:1; padding:10px 0; font-size:.88rem; font-weight:600;
    border:none; background:transparent; color:var(--gray);
    cursor:pointer; transition:all var(--transition); border-radius:0;
}
.donate-tab.active {
    background:var(--hero-bg); color:var(--white);
    border-radius:var(--radius-pill);
}
/* ─ Amount buttons */
.donate-amounts { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.amount-btn {
    padding:11px 6px; border-radius:var(--radius);
    border:2px solid var(--gray-border); background:var(--white);
    color:var(--dark); font-size:.88rem; font-weight:700;
    cursor:pointer; transition:all var(--transition); text-align:center;
}
.amount-btn:hover { border-color:var(--yellow); background:var(--yellow-light); }
.amount-btn.active { background:var(--yellow); border-color:var(--yellow); color:var(--dark); }
.amount-btn--custom { grid-column:span 3; font-weight:600; color:var(--gray); }
.amount-btn--custom.active { background:var(--hero-bg); border-color:var(--hero-bg); color:var(--white); }
/* ─ Custom amount input */
.donate-custom-wrap label { display:block; font-size:.8rem; font-weight:600; color:var(--dark); margin-bottom:6px; }
.donate-custom-wrap input {
    width:100%; padding:11px 14px; border-radius:var(--radius);
    border:2px solid var(--gray-border); font-size:1rem;
    outline:none; transition:border-color var(--transition); box-sizing:border-box;
    font-family:var(--font-body);
}
.donate-custom-wrap input:focus { border-color:var(--primary); }
/* ─ Impact message */
.donate-impact-msg {
    display:flex; align-items:flex-start; gap:10px;
    padding:12px 14px; border-radius:var(--radius);
    background:var(--yellow-light); font-size:.83rem;
    color:var(--dark); line-height:1.5; border-left:3px solid var(--yellow);
}
.donate-impact-msg i { margin-top:2px; flex-shrink:0; color:var(--primary); }
/* ─ Monthly notice */
.donate-monthly-notice {
    display:flex; align-items:flex-start; gap:12px;
    padding:14px 16px; border-radius:var(--radius);
    background:var(--primary-light); border-left:3px solid var(--primary);
}
.donate-monthly-notice i { color:var(--primary); margin-top:3px; flex-shrink:0; font-size:1rem; }
.donate-monthly-notice strong { display:block; color:var(--dark); font-size:.88rem; margin-bottom:3px; }
.donate-monthly-notice p { margin:0; color:var(--gray); font-size:.8rem; line-height:1.5; }
/* ─ Donor fields */
.donate-donor-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.donate-donor-field { display:flex; flex-direction:column; gap:5px; }
.donate-donor-field label { font-size:.8rem; font-weight:600; color:var(--dark); }
.donate-donor-field input {
    padding:11px 14px; border-radius:var(--radius);
    border:2px solid var(--gray-border); font-size:.9rem;
    outline:none; transition:border-color var(--transition);
    font-family:var(--font-body);
}
.donate-donor-field input:focus { border-color:var(--primary); }
/* ─ Submit button */
.donate-submit {
    width:100%; justify-content:center; padding:15px 20px;
    font-size:1rem; border:none; cursor:pointer;
    background:var(--yellow); color:var(--dark); font-weight:700;
    border-radius:var(--radius-pill); transition:all var(--transition);
    display:flex; align-items:center; gap:8px;
}
.donate-submit:hover { background:var(--yellow-dark); transform:translateY(-2px); box-shadow:0 8px 24px rgba(200,212,0,.4); }
/* ─ Security note */
.donate-secure {
    text-align:center; font-size:.78rem; color:var(--gray);
    margin:0; display:flex; align-items:center; justify-content:center; gap:6px;
}
.donate-secure i { color:var(--primary); }
/* ─ Success state */
.donate-success {
    display:flex; flex-direction:column; align-items:center;
    text-align:center; padding:24px 0; gap:14px;
}
.donate-success i { font-size:3rem; color:#22C55E; }
.donate-success h3 { margin:0; font-size:1.4rem; color:var(--dark); }
.donate-success p  { font-size:.92rem; color:var(--gray); margin:0; line-height:1.6; }
/* ─ Responsive handled in global breakpoints below */

/* ── HELPCTA (full-width CTA banner) ────────────────────────── */
.helpcta {
    position:relative; overflow:hidden;
    min-height:520px;
    display:flex; align-items:center; justify-content:center;
}
.helpcta::before {
    content:'';
    position:absolute; inset:0;
    background-image:var(--helpcta-img);
    background-size:cover; background-position:center 25%;
    z-index:0;
}
.helpcta::after {
    content:'';
    position:absolute; inset:0;
    background:rgba(11,29,48,.74);
    z-index:1;
}
.helpcta__brush {
    position:absolute; left:0; top:0; bottom:0; width:240px;
    z-index:2; pointer-events:none;
}
.helpcta__brush svg { width:100%; height:100%; }

.helpcta__inner {
    position:relative; z-index:3;
    text-align:center; color:var(--white);
    padding:90px 20px 110px;
}
.helpcta__eyebrow {
    font-family:'Dancing Script',cursive; font-size:1.15rem; font-weight:600;
    color:var(--yellow); margin-bottom:20px;
    display:flex; align-items:center; justify-content:center; gap:8px;
}
.helpcta__title {
    font-size:clamp(2rem,5vw,3.2rem); font-weight:800; line-height:1.2;
    color:var(--white); margin-bottom:40px;
    max-width:680px; margin-left:auto; margin-right:auto;
}
.helpcta__actions { display:flex; gap:20px; justify-content:center; flex-wrap:wrap; }
.helpcta__btn {
    display:inline-flex; align-items:center; gap:8px;
    padding:14px 32px; border-radius:var(--radius-pill);
    font-weight:600; font-size:1rem; text-decoration:none;
    transition:all var(--transition);
}
.helpcta__btn--ghost {
    border:2px solid rgba(255,255,255,.7); color:var(--white); background:transparent;
}
.helpcta__btn--ghost:hover { background:rgba(255,255,255,.12); border-color:var(--white); }
.helpcta__btn--yellow {
    background:var(--yellow); color:var(--dark); border:2px solid var(--yellow);
}
.helpcta__btn--yellow:hover { background:var(--yellow-dark); border-color:var(--yellow-dark); }

.helpcta__tear {
    position:absolute; bottom:-1px; left:0; right:0; z-index:4; line-height:0;
}
.helpcta__tear svg { width:100%; height:80px; display:block; }

/* ── VOLUNTEERS (circle portrait grid) ──────────────────────── */
.vol-grid {
    display:grid; grid-template-columns:repeat(4,1fr);
    gap:40px 24px; margin-top:48px;
}

.vol-card { text-align:center; }

.vol-card__ring {
    width:160px; height:160px; border-radius:50%;
    border:4px solid var(--yellow);
    padding:5px; margin:0 auto 18px;
    overflow:hidden;
    transition:border-color var(--transition), transform var(--transition);
}
.vol-card:hover .vol-card__ring {
    border-color:var(--primary);
    transform:translateY(-5px);
}
.vol-card__img { width:100%; height:100%; border-radius:50%; object-fit:cover; display:block; }

.vol-card__name { font-size:1rem; font-weight:700; margin:0 0 4px; color:var(--dark); }
.vol-card__role { font-size:.8rem; color:var(--primary); font-weight:500; margin-bottom:14px; }

.vol-card__socials {
    display:flex; gap:8px; justify-content:center;
    opacity:0; transform:translateY(6px);
    transition:opacity .3s ease, transform .3s ease;
}
.vol-card:hover .vol-card__socials { opacity:1; transform:translateY(0); }
.vol-card__socials a {
    width:32px; height:32px; border-radius:50%;
    background:var(--gray-light); color:var(--dark);
    display:flex; align-items:center; justify-content:center;
    font-size:.75rem; text-decoration:none;
    transition:background var(--transition), color var(--transition);
}
.vol-card__socials a:hover { background:var(--yellow); color:var(--dark); }

.vol__footer { text-align:center; margin-top:48px; }

/* Back button (team page) */
.team-page__back { margin-bottom:24px; }
.back-btn {
    display:inline-flex; align-items:center; gap:8px;
    padding:10px 22px; border-radius:var(--radius-pill);
    border:2px solid var(--hero-bg); color:var(--hero-bg);
    font-weight:600; font-size:.9rem; text-decoration:none;
    transition:all var(--transition);
}
.back-btn:hover { background:var(--hero-bg); color:var(--white); }

.vol-card__initials {
    width:100%; height:100%; border-radius:50%;
    background:var(--primary); color:var(--white);
    display:flex; align-items:center; justify-content:center;
    font-size:2.5rem; font-weight:800;
}
.vol-empty { grid-column:1/-1; text-align:center; color:var(--gray); padding:40px 0; }
.vol-grid--wide { grid-template-columns:repeat(4,1fr); }

/* ── TESTIMONIALS — continuous marquee ──────────────────────── */
.testi2 { background:#f8f5f0; position:relative; overflow:hidden; }

/* Section heading */
.testi2__header { text-align:center; margin-bottom:52px; }
.testi2__heading {
    font-size:clamp(1.7rem,2.8vw,2.5rem); font-weight:800;
    line-height:1.2; margin:10px 0 14px;
}
.testi2__subhead { color:var(--gray); font-size:.97rem; max-width:520px; margin:0 auto; }

/* Marquee outer — clips overflow, adds edge fades */
.testi2__marquee-wrap {
    overflow:hidden;
    position:relative;
    padding:8px 0 32px;
}
.testi2__marquee-wrap::before,
.testi2__marquee-wrap::after {
    content:''; position:absolute; top:0; bottom:0; width:160px;
    z-index:2; pointer-events:none;
}
.testi2__marquee-wrap::before { left:0;  background:linear-gradient(to right, #f8f5f0 20%, transparent); }
.testi2__marquee-wrap::after  { right:0; background:linear-gradient(to left,  #f8f5f0 20%, transparent); }

/* Marquee track — scrolls infinitely */
.testi2__marquee-track {
    display:flex;
    gap:24px;
    width:max-content;
    animation:testi2Scroll 32s linear infinite;
}
.testi2__marquee-wrap:hover .testi2__marquee-track {
    animation-play-state:paused;
}
@keyframes testi2Scroll {
    from { transform:translateX(0); }
    to   { transform:translateX(-50%); }
}

/* Individual card */
.testi2__card {
    background:var(--white);
    border-radius:20px;
    border:1px solid #e8e4de;
    box-shadow:0 6px 30px rgba(0,0,0,.08);
    padding:30px 28px 26px;
    width:340px;
    flex-shrink:0;
    position:relative; overflow:hidden;
    display:flex; flex-direction:column; gap:0;
    transition:box-shadow .3s ease, transform .3s ease;
}
.testi2__card:hover {
    box-shadow:0 12px 48px rgba(0,0,0,.14);
    transform:translateY(-4px);
}

/* Faded circles — bottom-right decoration */
.testi2__bg-deco {
    position:absolute; bottom:-28px; right:-28px;
    width:130px; height:130px; border-radius:50%;
    background:rgba(0,0,0,.04); pointer-events:none;
}
.testi2__bg-deco::before {
    content:''; position:absolute; inset:16px;
    border-radius:50%; background:rgba(0,0,0,.03);
}

/* Quote icon at top of card */
.testi2__quote-icon {
    color:var(--yellow); font-size:1.4rem;
    margin-bottom:14px; line-height:1;
}

/* Review text */
.testi2__text {
    font-size:.92rem; line-height:1.8; color:#3a3a3a;
    margin:0 0 18px; flex:1;
}

/* Stars */
.testi2__stars { letter-spacing:3px; margin-bottom:20px; }
.testi2__stars i { color:var(--yellow); font-size:1rem; }
.testi-star-empty { color:#ddd !important; }

/* Reviewer at bottom */
.testi2__reviewer {
    display:flex; align-items:center; gap:12px;
    padding-top:18px;
    border-top:1px solid #f0ece6;
}
.testi2__avatar {
    width:50px; height:50px; border-radius:50%; flex-shrink:0;
    background:linear-gradient(135deg, var(--primary), var(--hero-bg));
    color:var(--white); font-size:.82rem; font-weight:700;
    display:flex; align-items:center; justify-content:center;
}
.testi2__avatar-img {
    width:100%; height:100%; border-radius:50%;
    object-fit:cover; object-position:center top; display:block;
}
.testi2__reviewer-info { display:flex; flex-direction:column; gap:2px; }
.testi2__name { font-size:.92rem; font-weight:700; color:var(--dark); }
.testi2__role { font-size:.76rem; color:var(--gray); }

/* ── TESTIMONIALS ALT — dark spotlight style ─────────────────── */
.testi3 {
    background:var(--hero-bg);
    position:relative; overflow:hidden;
}
.testi3::before {
    content:''; position:absolute; inset:0;
    background:radial-gradient(ellipse at 60% 40%, rgba(14,165,233,.12) 0%, transparent 70%);
    pointer-events:none;
}

/* Header */
.testi3__header { text-align:center; margin-bottom:52px; }
.testi3__eyebrow {
    font-family:var(--font-script); font-size:1.25rem;
    color:var(--yellow); margin-bottom:10px;
    display:flex; align-items:center; justify-content:center; gap:8px;
}
.testi3__heading {
    font-size:clamp(1.7rem,2.8vw,2.5rem); font-weight:800;
    color:var(--white); line-height:1.2; margin:0;
}
.testi3__highlight { color:var(--yellow); }

/* Slider */
.testi3__slider { overflow:hidden; }
.testi3__track  { display:flex; transition:transform .7s cubic-bezier(.25,.46,.45,.94); }

/* Each slide */
.testi3__slide {
    min-width:100%; flex-shrink:0;
    text-align:center;
    padding:0 clamp(20px, 8vw, 140px);
    display:flex; flex-direction:column; align-items:center; gap:20px;
}

/* Giant decorative quote */
.testi3__quote-mark {
    font-family:Georgia, serif; font-size:7rem; line-height:.6;
    color:var(--yellow); opacity:.7; margin-bottom:4px;
    -webkit-user-select:none; user-select:none;
}

/* Quote text */
.testi3__text {
    font-size:clamp(1rem,1.6vw,1.2rem);
    line-height:1.9; color:rgba(255,255,255,.88);
    font-style:italic; max-width:720px;
    margin:0;
}

/* Stars */
.testi3__stars { color:var(--yellow); font-size:1.1rem; letter-spacing:4px; }

/* Reviewer */
.testi3__reviewer {
    display:flex; align-items:center; gap:14px;
    justify-content:center; margin-top:4px;
}
.testi3__avatar {
    width:58px; height:58px; border-radius:50%; flex-shrink:0;
    background:linear-gradient(135deg,var(--yellow),#f59e0b);
    color:var(--dark); font-size:.88rem; font-weight:800;
    display:flex; align-items:center; justify-content:center;
}
.testi3__avatar-img {
    width:100%; height:100%; border-radius:50%;
    object-fit:cover; object-position:center top; display:block;
}
.testi3__reviewer-info { display:flex; flex-direction:column; gap:3px; text-align:left; }
.testi3__name { font-size:1rem; font-weight:700; color:var(--white); }
.testi3__role { font-size:.8rem; color:rgba(255,255,255,.55); }

/* Controls */
.testi3__controls {
    display:flex; align-items:center; justify-content:center; gap:20px;
    margin-top:44px;
}
.testi3__arrow {
    width:48px; height:48px; border-radius:50%; border:2px solid rgba(255,255,255,.2);
    background:transparent; color:rgba(255,255,255,.7);
    display:flex; align-items:center; justify-content:center;
    font-size:.95rem; cursor:pointer;
    transition:all var(--transition);
}
.testi3__arrow:hover { border-color:var(--yellow); color:var(--yellow); background:rgba(234,179,8,.1); }

/* Dots */
.testi3__dots { display:flex; gap:8px; align-items:center; }
.testi3-dot {
    width:8px; height:8px; border-radius:50%;
    background:rgba(255,255,255,.25); border:none; cursor:pointer;
    transition:all .3s ease; padding:0;
}
.testi3-dot.active { background:var(--yellow); width:24px; border-radius:4px; }

/* ── GALLERY ────────────────────────────────────────────────── */
.gallery-section { padding:80px 0 0; overflow:hidden; background:var(--white); }
.gallery-slider  { overflow:hidden; }
.gallery-track   { display:flex; transition:transform .5s ease; }
.gallery-slide   { min-width:33.333%; padding:0 8px; }

.gallery-img-wrap { position:relative; border-radius:var(--radius-lg); overflow:hidden; }
.gallery-img { width:100%; aspect-ratio:5/6; object-fit:cover; display:block; }
.gallery-img-ph {
    width:100%; aspect-ratio:5/6;
    display:flex; align-items:center; justify-content:center;
    font-size:4rem;
}
.gallery-img-ph--blue   { background:var(--primary-light); color:var(--primary); }
.gallery-img-ph--coral  { background:#FEE2E2; color:#EF4444; }
.gallery-img-ph--yellow { background:var(--yellow-light); color:var(--yellow-dark); }

.gallery-link-icon {
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:60px; height:60px; border-radius:50%;
    background:var(--teal); color:var(--white);
    display:flex; align-items:center; justify-content:center;
    font-size:1rem; z-index:2;
    transition:all var(--transition);
}
.gallery-link-icon:hover { background:var(--primary); transform:translate(-50%,-50%) scale(1.1); }
.gallery-dot { position:absolute; bottom:14px; left:50%; transform:translateX(-50%); width:12px; height:12px; border-radius:50%; background:var(--primary); }

.gallery-caption { text-align:center; padding:24px 0 60px; }
.gallery-caption h3 { font-size:1.4rem; margin-bottom:6px; }
.gallery-caption p  { font-size:.88rem; color:var(--gray); }

/* ── PHOTO STRIP ─────────────────────────────────────────────── */
.photo-strip {
    width:100%; overflow:hidden;
    background:#111;
    line-height:0; /* removes any inline gap under images */
}
.photo-strip__track {
    display:flex;
    width:max-content;
    animation:photoScroll 40s linear infinite;
}
.photo-strip:hover .photo-strip__track { animation-play-state:paused; }
@keyframes photoScroll {
    from { transform:translateX(0); }
    to   { transform:translateX(-50%); }
}
.photo-strip__item {
    flex-shrink:0;
    width:280px; height:380px;
    overflow:hidden;
}
.photo-strip__img {
    width:100%; height:100%;
    object-fit:cover; object-position:center top;
    display:block;
    transition:transform .6s ease;
    filter:brightness(.9);
}
.photo-strip__item:hover .photo-strip__img {
    transform:scale(1.06);
    filter:brightness(1);
}

@media(max-width:768px) {
    .photo-strip__item { width:200px; height:280px; }
}
@media(max-width:480px) {
    .photo-strip__item { width:160px; height:220px; }
}

/* ── LATEST NEWS & ARTICLES ─────────────────────────────────── */
.lnews { background:#f8f5f0; }
.lnews__header { text-align:center; margin-bottom:48px; }
.lnews__eyebrow {
    display:inline-flex; align-items:center; gap:8px;
    font-size:.78rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
    color:var(--primary); margin-bottom:12px;
}
.lnews__heading {
    font-size:clamp(1.7rem,3.5vw,2.6rem); font-weight:800;
    color:var(--dark); line-height:1.2; margin:0;
}
.lnews__highlight {
    background:var(--yellow); color:var(--dark);
    padding:0 6px 2px; border-radius:4px; font-style:italic;
}

/* 3-column grid */
.lnews__grid {
    display:grid; grid-template-columns:repeat(3,1fr); gap:28px;
    align-items:stretch;
}

/* Base card */
.lnews__card {
    background:var(--white); border-radius:16px;
    padding:28px 26px 24px; display:flex; flex-direction:column; gap:18px;
    box-shadow:0 4px 20px rgba(0,0,0,.07);
    transition:transform .28s ease, box-shadow .28s ease;
}
.lnews__card:hover { transform:translateY(-5px); box-shadow:0 12px 40px rgba(0,0,0,.13); }

/* Middle (featured) card — teal highlight */
.lnews__card--featured {
    background:var(--teal); color:var(--white);
}
.lnews__card--featured .lnews__meta,
.lnews__card--featured .lnews__meta-item { color:rgba(255,255,255,.75); }
.lnews__card--featured .lnews__title a { color:var(--white); }
.lnews__card--featured .lnews__title a:hover { color:var(--yellow); }
.lnews__card--featured .lnews__readmore {
    color:var(--white); border-color:rgba(255,255,255,.45);
}
.lnews__card--featured .lnews__readmore:hover {
    background:rgba(255,255,255,.15); border-color:var(--white);
}
.lnews__card--featured .lnews__cat-badge { background:var(--yellow); color:var(--dark); }

/* Meta row */
.lnews__meta {
    display:flex; align-items:center; gap:8px; flex-wrap:wrap;
    font-size:.8rem; font-weight:600; color:var(--gray);
}
.lnews__meta-item { display:inline-flex; align-items:center; gap:5px; }
.lnews__meta-sep { opacity:.4; }

/* Title */
.lnews__title { font-size:1.05rem; font-weight:700; line-height:1.38; margin:0; }
.lnews__title a { color:var(--dark); text-decoration:none; transition:color var(--transition); }
.lnews__title a:hover { color:var(--primary); }

/* Image */
.lnews__img-wrap { position:relative; border-radius:12px; overflow:hidden; aspect-ratio:16/10; flex-shrink:0; }
.lnews__img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.lnews__card:hover .lnews__img { transform:scale(1.05); }
.lnews__img-placeholder {
    width:100%; height:100%; min-height:160px;
    background:rgba(0,0,0,.08);
    display:flex; align-items:center; justify-content:center;
    font-size:2.2rem; color:rgba(0,0,0,.25);
}
.lnews__card--featured .lnews__img-placeholder { background:rgba(255,255,255,.1); color:rgba(255,255,255,.3); }

/* Category badge over image */
.lnews__cat-badge {
    position:absolute; bottom:10px; left:12px;
    background:var(--primary); color:var(--white);
    font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em;
    padding:4px 10px; border-radius:20px;
}

/* Read More link */
.lnews__readmore {
    display:inline-flex; align-items:center; gap:8px;
    font-size:.85rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
    color:var(--primary); text-decoration:none;
    border:2px solid currentColor; border-radius:30px;
    padding:8px 18px; margin-top:auto;
    align-self:flex-start;
    transition:background var(--transition), color var(--transition);
}
.lnews__readmore:hover { background:var(--primary); color:var(--white); }

/* View All button */
.lnews__footer { text-align:center; margin-top:44px; }
.lnews__view-all {
    display:inline-flex; align-items:center; gap:9px;
    font-size:.92rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em;
    color:var(--white); background:var(--dark);
    padding:14px 32px; border-radius:40px;
    text-decoration:none;
    transition:background var(--transition), transform var(--transition);
}
.lnews__view-all:hover { background:var(--primary); transform:translateY(-2px); }

/* Responsive */
@media(max-width:900px) { .lnews__grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px) { .lnews__grid { grid-template-columns:1fr; } }

/* ── NEWSLETTER ─────────────────────────────────────────────── */
.newsletter { background:var(--yellow); padding:100px 0; position:relative; overflow:hidden; }

.newsletter__wave-top,
.newsletter__wave-bottom {
    position:absolute; left:0; right:0;
    line-height:0; pointer-events:none; z-index:1;
}
.newsletter__wave-top    { top:-1px; }
.newsletter__wave-bottom { bottom:-1px; }
.newsletter__wave-top svg,
.newsletter__wave-bottom svg { width:100%; display:block; height:70px; }
.newsletter__inner { position:relative; z-index:2; }
.newsletter__inner { display:flex; align-items:center; gap:50px; flex-wrap:wrap; }
.newsletter__text { flex:1; min-width:260px; }
.newsletter__text h2 { color:var(--hero-bg); font-size:clamp(1.4rem,3vw,2.2rem); margin-bottom:8px; }
.newsletter__text p  { color:rgba(28,30,107,.7); }
.newsletter__deco-heart { font-size:3rem; color:var(--hero-bg); margin-bottom:16px; opacity:.5; }

.newsletter__form { display:flex; gap:10px; flex:1; min-width:300px; }
.newsletter__form input {
    flex:1; padding:14px 20px;
    border-radius:var(--radius-pill);
    border:none; background:rgba(255,255,255,.55);
    color:var(--dark); font-size:.9rem;
    outline:none; transition:background var(--transition);
}
.newsletter__form input::placeholder { color:rgba(28,30,107,.5); }
.newsletter__form input:focus { background:rgba(255,255,255,.8); }
.newsletter .btn-yellow {
    background:var(--hero-bg); color:var(--white);
}
.newsletter .btn-yellow:hover {
    background:var(--hero-mid); color:var(--white);
}
.newsletter__feedback { width:100%; text-align:center; font-size:.9rem; font-weight:600; margin-top:10px; min-height:1.2em; }
.newsletter__feedback--ok  { color:#065F46; }
.newsletter__feedback--err { color:#b91c1c; }

/* ── SITE FOOTER ────────────────────────────────────────────── */
.site-footer { background:#12145A; padding:70px 0 0; }

.footer-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; padding-bottom:60px; }

.footer-logo-link {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#ffffff;
    border-radius:14px;
    padding:10px 20px;
    margin-bottom:28px;
    box-shadow:0 6px 24px rgba(0,0,0,.35);
}
.footer-logo-img {
    height:128px;
    width:auto;
    max-width:380px;
    object-fit:contain;
    display:block;
}
.footer-brand p { font-size:.84rem; color:rgba(255,255,255,.45); line-height:1.8; margin-bottom:20px; }

.footer-social { display:flex; gap:10px; }
.footer-social a {
    width:38px; height:38px; border-radius:50%;
    background:rgba(255,255,255,.08); color:rgba(255,255,255,.6);
    display:flex; align-items:center; justify-content:center;
    font-size:.85rem; transition:all var(--transition);
}
.footer-social a:hover { background:var(--yellow); color:var(--dark); }

.footer-col__title {
    color:var(--white); font-size:.95rem;
    margin-bottom:20px; padding-bottom:12px;
    position:relative;
}
.footer-col__title::after {
    content:''; position:absolute; left:0; bottom:0;
    width:36px; height:3px;
    background:var(--yellow); border-radius:2px;
}

.footer-links { display:flex; flex-direction:column; gap:10px; }
.footer-links li a {
    display:flex; align-items:center; gap:8px;
    font-size:.84rem; color:rgba(255,255,255,.5);
    transition:all var(--transition);
}
.footer-links li a i   { font-size:.7rem; color:var(--yellow); }
.footer-links li a:hover { color:var(--yellow); gap:12px; }

.footer-contact { display:flex; flex-direction:column; gap:14px; }
.footer-contact li { display:flex; align-items:flex-start; gap:12px; font-size:.84rem; color:rgba(255,255,255,.5); }
.footer-contact li i { color:var(--yellow); margin-top:3px; flex-shrink:0; }
.footer-contact li a { color:rgba(255,255,255,.5); }
.footer-contact li a:hover { color:var(--yellow); }

.footer-bottom { border-top:1px solid rgba(255,255,255,.07); padding:22px 0; }
.footer-bottom__inner { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.footer-bottom p { font-size:.8rem; color:rgba(255,255,255,.35); }
.footer-legal { display:flex; gap:20px; }
.footer-legal a { font-size:.8rem; color:rgba(255,255,255,.35); transition:color var(--transition); }
.footer-legal a:hover { color:var(--yellow); }

/* ── SINGLE POST ────────────────────────────────────────────── */

/* Hero */
.sp-hero {
    position:relative; min-height:480px;
    background:var(--hero-bg);
    display:flex; align-items:flex-end;
    padding-bottom:0;
    overflow:hidden;
}
.sp-hero--has-img {
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;
}
.sp-hero__overlay {
    position:absolute; inset:0;
    background:linear-gradient(to top, rgba(10,15,30,.92) 0%, rgba(10,15,30,.55) 60%, rgba(10,15,30,.25) 100%);
}
.sp-hero__inner {
    position:relative; z-index:1;
    padding-top:120px; padding-bottom:56px;
    max-width:860px;
}
.sp-breadcrumb {
    display:flex; align-items:center; gap:7px; flex-wrap:wrap;
    font-size:.78rem; color:rgba(255,255,255,.6); margin-bottom:18px;
}
.sp-breadcrumb a { color:rgba(255,255,255,.8); transition:color var(--transition); }
.sp-breadcrumb a:hover { color:var(--yellow); }
.sp-breadcrumb i { font-size:.6rem; opacity:.5; }
.sp-cat-pill {
    display:inline-block;
    background:var(--primary); color:var(--white);
    font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em;
    padding:5px 14px; border-radius:20px; margin-bottom:14px;
    text-decoration:none;
}
.sp-cat-pill:hover { background:var(--yellow); color:var(--dark); }
.sp-hero__title {
    color:var(--white);
    font-size:clamp(1.7rem,4vw,2.9rem);
    font-weight:800; line-height:1.2;
    margin:0 0 20px;
}
.sp-hero__meta {
    display:flex; align-items:center; gap:10px; flex-wrap:wrap;
    font-size:.82rem; color:rgba(255,255,255,.7);
}
.sp-hero__meta i { color:var(--yellow); margin-right:4px; }
.sp-hero__meta a { color:rgba(255,255,255,.85); }
.sp-hero__meta a:hover { color:var(--yellow); }
.sp-meta-dot {
    width:4px; height:4px; border-radius:50%;
    background:rgba(255,255,255,.35); flex-shrink:0;
}

/* Layout */
.sp-main { background:#f8f5f0; }
.sp-layout {
    display:grid;
    grid-template-columns:1fr 320px;
    gap:40px; align-items:start;
}

/* Content */
.sp-content { min-width:0; }
.sp-body {
    background:var(--white); border-radius:16px;
    padding:40px 44px; box-shadow:0 4px 24px rgba(0,0,0,.07);
    font-size:1.05rem; line-height:1.8; color:#333;
}
.sp-body h2,.sp-body h3 { margin:32px 0 14px; color:var(--dark); }
.sp-body p  { margin-bottom:20px; }
.sp-body img { max-width:100%; border-radius:12px; margin:24px 0; }
.sp-body ul,.sp-body ol { padding-left:24px; margin-bottom:20px; }
.sp-body blockquote {
    border-left:5px solid var(--primary); padding:16px 22px;
    background:rgba(var(--primary-rgb),.06);
    margin:28px 0; border-radius:0 12px 12px 0;
    font-style:italic; font-size:1.1rem; color:var(--dark);
}
.sp-body a { color:var(--primary); }

/* Tags */
.sp-tags {
    background:var(--white); border-radius:12px;
    padding:20px 24px; margin-top:24px;
    display:flex; align-items:center; gap:10px; flex-wrap:wrap;
    box-shadow:0 2px 12px rgba(0,0,0,.06);
}
.sp-tags strong { color:var(--dark); font-size:.85rem; }
.sp-tag {
    background:var(--primary-light); color:var(--primary);
    font-size:.78rem; font-weight:600; padding:5px 12px;
    border-radius:20px; text-decoration:none;
    transition:background var(--transition),color var(--transition);
}
.sp-tag:hover { background:var(--primary); color:var(--white); }

/* Share */
.sp-share {
    background:var(--white); border-radius:16px;
    padding:24px 28px; margin-top:24px;
    box-shadow:0 2px 12px rgba(0,0,0,.06);
}
.sp-share__label {
    display:block; font-weight:700; font-size:.88rem;
    color:var(--dark); margin-bottom:14px;
}
.sp-share__label i { color:var(--primary); margin-right:6px; }
.sp-share__btns { display:flex; gap:10px; flex-wrap:wrap; }
.sp-share-btn {
    display:inline-flex; align-items:center; gap:7px;
    font-size:.82rem; font-weight:700;
    padding:9px 18px; border-radius:30px;
    text-decoration:none; transition:transform .2s,opacity .2s;
    color:var(--white);
}
.sp-share-btn:hover { opacity:.88; transform:translateY(-2px); }
.sp-share-btn--fb { background:#1877f2; }
.sp-share-btn--tw { background:#000; }
.sp-share-btn--wa { background:#25d366; }
.sp-share-btn--li { background:#0a66c2; }

/* Author Box */
.sp-author-box {
    display:flex; gap:22px; align-items:flex-start;
    background:var(--white); border-radius:16px;
    padding:28px 28px; margin-top:24px;
    box-shadow:0 2px 12px rgba(0,0,0,.06);
    border-left:5px solid var(--primary);
}
.sp-author-avatar { flex-shrink:0; }
.sp-author-img { width:80px; height:80px; border-radius:50%; object-fit:cover; border:3px solid var(--primary-light); }
.sp-author-label { font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; color:var(--gray); margin:0 0 4px; }
.sp-author-name { font-size:1.05rem; font-weight:700; display:block; margin-bottom:8px; }
.sp-author-name a { color:var(--dark); text-decoration:none; }
.sp-author-name a:hover { color:var(--primary); }
.sp-author-bio { font-size:.88rem; color:var(--gray); margin:0; line-height:1.6; }

/* Post Nav */
.sp-post-nav {
    display:grid; grid-template-columns:1fr 1fr;
    gap:16px; margin-top:24px;
}
.sp-nav-link {
    display:flex; flex-direction:column; gap:6px;
    background:var(--white); border-radius:12px; padding:20px 22px;
    text-decoration:none; box-shadow:0 2px 12px rgba(0,0,0,.06);
    transition:box-shadow .25s, transform .25s;
}
.sp-nav-link:hover { box-shadow:0 8px 28px rgba(0,0,0,.12); transform:translateY(-3px); }
.sp-nav-link--next { text-align:right; }
.sp-nav-dir {
    font-size:.75rem; font-weight:700; text-transform:uppercase;
    letter-spacing:.1em; color:var(--primary);
}
.sp-nav-title { font-size:.88rem; font-weight:600; color:var(--dark); line-height:1.4; }

/* Sidebar */
.sp-sidebar { display:flex; flex-direction:column; gap:24px; position:sticky; top:100px; }
.sp-sidebar-donate {
    background:var(--teal); color:var(--white);
    border-radius:16px; padding:30px 26px;
    text-align:center;
}
.sp-sidebar-donate__icon { font-size:2.4rem; color:rgba(255,255,255,.8); margin-bottom:12px; display:block; }
.sp-sidebar-donate h4 { color:var(--white); font-size:1.2rem; margin:0 0 8px; }
.sp-sidebar-donate p  { font-size:.88rem; color:rgba(255,255,255,.75); margin-bottom:20px; }
.btn--full { width:100%; justify-content:center; }

.sp-sidebar-widget {
    background:var(--white); border-radius:16px;
    padding:24px 22px; box-shadow:0 2px 12px rgba(0,0,0,.06);
}
.sp-sidebar-widget__title {
    font-size:.9rem; font-weight:800; text-transform:uppercase;
    letter-spacing:.1em; color:var(--dark); margin:0 0 16px;
    padding-bottom:12px; border-bottom:2px solid var(--primary-light);
}

/* Recent posts in sidebar */
.sp-recent-item {
    display:flex; gap:12px; align-items:center;
    padding:10px 0; border-bottom:1px solid #f0f0f0;
    text-decoration:none;
}
.sp-recent-item:last-child { border-bottom:none; }
.sp-recent-item:hover .sp-recent-title { color:var(--primary); }
.sp-recent-img { width:64px; height:52px; border-radius:8px; overflow:hidden; flex-shrink:0; }
.sp-recent-thumb { width:100%; height:100%; object-fit:cover; display:block; }
.sp-recent-img--placeholder {
    background:var(--gray-light); display:flex;
    align-items:center; justify-content:center;
    color:var(--gray); font-size:1.2rem;
}
.sp-recent-info { display:flex; flex-direction:column; gap:4px; }
.sp-recent-title { font-size:.84rem; font-weight:600; color:var(--dark); line-height:1.35; transition:color var(--transition); }
.sp-recent-date  { font-size:.74rem; color:var(--gray); }

/* Categories in sidebar */
.sp-cat-list { list-style:none; padding:0; margin:0; }
.sp-cat-list li { border-bottom:1px solid #f0f0f0; }
.sp-cat-list li:last-child { border-bottom:none; }
.sp-cat-list a {
    display:flex; align-items:center; justify-content:space-between;
    padding:9px 0; font-size:.87rem; color:var(--dark);
    text-decoration:none; transition:color var(--transition);
}
.sp-cat-list a:hover { color:var(--primary); }
.sp-cat-list .children { padding-left:14px; }

/* Related Posts */
.sp-related { background:var(--white); }
.sp-related__heading {
    font-size:1.5rem; font-weight:800; color:var(--dark);
    margin:0 0 32px; padding-bottom:14px;
    border-bottom:3px solid var(--primary-light);
}
.sp-related__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.sp-related__card {
    background:#f8f5f0; border-radius:14px; overflow:hidden;
    transition:transform .28s,box-shadow .28s;
}
.sp-related__card:hover { transform:translateY(-5px); box-shadow:0 12px 36px rgba(0,0,0,.12); }
.sp-related__img-wrap { display:block; position:relative; overflow:hidden; aspect-ratio:16/10; }
.sp-related__img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }
.sp-related__card:hover .sp-related__img { transform:scale(1.06); }
.sp-related__img-ph {
    width:100%; height:100%; min-height:150px;
    background:#ddd; display:flex; align-items:center;
    justify-content:center; font-size:2rem; color:#aaa;
}
.sp-related__cat {
    position:absolute; bottom:10px; left:12px;
    background:var(--primary); color:var(--white);
    font-size:.7rem; font-weight:700; text-transform:uppercase;
    padding:4px 10px; border-radius:20px;
}
.sp-related__body { padding:20px 18px; }
.sp-related__meta { font-size:.76rem; color:var(--gray); margin-bottom:8px; }
.sp-related__meta i { color:var(--primary); margin-right:4px; }
.sp-related__title { font-size:.95rem; font-weight:700; margin:0 0 12px; line-height:1.4; }
.sp-related__title a { color:var(--dark); text-decoration:none; }
.sp-related__title a:hover { color:var(--primary); }
.sp-related__link {
    font-size:.8rem; font-weight:700; color:var(--primary);
    text-decoration:none; display:inline-flex; align-items:center; gap:6px;
}
.sp-related__link:hover { text-decoration:underline; }

/* Responsive single post */
@media (max-width:900px) {
    .sp-layout { grid-template-columns:1fr; }
    .sp-sidebar { position:static; }
    .sp-related__grid { grid-template-columns:repeat(2,1fr); }
    .sp-body { padding:28px 22px; }
    .sp-hero__inner { padding-top:100px; padding-bottom:40px; }
}
@media (max-width:600px) {
    .sp-hero { min-height:380px; }
    .sp-hero__title { font-size:1.5rem; }
    .sp-related__grid { grid-template-columns:1fr; }
    .sp-post-nav { grid-template-columns:1fr; }
    .sp-share__btns { flex-direction:column; }
    .sp-author-box { flex-direction:column; }
}

/* ── ABOUT PAGE BANNER ──────────────────────────────────────── */
.about-banner {
    position:relative; min-height:420px;
    display:flex; align-items:center;
    overflow:hidden;
}
.about-banner__bg {
    position:absolute; inset:0;
    background-size:cover; background-position:center;
    filter:brightness(.55);
    z-index:0;
}
.about-banner__overlay {
    position:absolute; inset:0;
    background:linear-gradient(to right, rgba(28,30,107,.88) 0%, rgba(28,30,107,.55) 60%, rgba(0,0,0,.3) 100%);
    z-index:1;
}
.about-banner__brush {
    position:absolute; left:0; top:0; bottom:0;
    width:140px; z-index:2; pointer-events:none;
}
.about-banner__brush svg { width:100%; height:100%; }
.about-banner__inner {
    position:relative; z-index:3;
    padding:120px 0 100px;
}
.about-banner__eyebrow {
    font-family:var(--font-script); font-size:1.1rem; font-weight:600;
    color:var(--yellow); margin-bottom:14px;
    display:flex; align-items:center; gap:8px;
}
.about-banner__title {
    font-size:clamp(2.4rem,6vw,4rem); font-weight:800;
    color:#fff; line-height:1.1; margin-bottom:18px;
}
.about-banner__tear {
    position:absolute; bottom:-1px; left:0; right:0;
    z-index:4; line-height:0;
}
.about-banner__tear svg { width:100%; display:block; height:80px; }

/* ── WHO WE ARE (About page unique section) ─────────────────── */
.whoweare__wrap {
    display:grid; grid-template-columns:1fr 1fr;
    gap:80px; align-items:center;
}

/* Left visual */
.whoweare__visual { position:relative; }
.whoweare__img-wrap {
    position:relative; border-radius:var(--radius-lg);
    overflow:hidden; aspect-ratio:4/5;
}
.whoweare__img { width:100%; height:100%; object-fit:cover; display:block; }

/* Year badge — sits on bottom-left of image */
.whoweare__year-badge {
    position:absolute; bottom:24px; left:24px;
    background:var(--primary); color:#fff;
    border-radius:var(--radius); padding:14px 20px;
    display:flex; flex-direction:column; align-items:center;
    box-shadow:0 8px 28px rgba(43,45,126,.4);
    z-index:2;
}
.whoweare__year-num   { font-size:1.8rem; font-weight:800; line-height:1; }
.whoweare__year-label { font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; opacity:.8; }

/* Floating stat card — right side of image */
.whoweare__stat-card {
    position:absolute; right:-28px; top:40%;
    background:#fff; border-radius:var(--radius);
    padding:16px 20px;
    display:flex; align-items:center; gap:14px;
    box-shadow:0 12px 40px rgba(0,0,0,.14);
    z-index:3; min-width:190px;
}
.whoweare__stat-card i {
    font-size:1.6rem; color:var(--yellow-dark); flex-shrink:0;
}
.whoweare__stat-card strong {
    display:block; font-size:1.5rem; font-weight:800;
    color:var(--primary); line-height:1;
    font-family:var(--font-heading);
}
.whoweare__stat-card span {
    font-size:.72rem; color:var(--gray); font-weight:600;
    text-transform:uppercase; letter-spacing:.05em;
}

/* Decorative dots grid */
.whoweare__dots {
    position:absolute; bottom:-20px; left:-20px;
    width:100px; height:100px; z-index:0;
    background-image:radial-gradient(var(--primary-light) 2px, transparent 2px);
    background-size:14px 14px;
    border-radius:8px;
}

/* Right content */
.whoweare__lead {
    font-size:.97rem; color:var(--gray);
    line-height:1.85; margin-bottom:32px;
}

/* Mission / Vision / Values */
.whoweare__mvv { display:flex; flex-direction:column; gap:0; margin-bottom:28px; }
.whoweare__mvv-item {
    display:flex; align-items:flex-start; gap:18px;
    padding:18px 0; border-bottom:1px solid var(--gray-border);
}
.whoweare__mvv-item:last-child { border-bottom:none; }
.whoweare__mvv-icon {
    width:52px; height:52px; border-radius:50%; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    font-size:1.1rem;
}
.whoweare__mvv-icon--navy  { background:var(--primary-light); color:var(--primary); }
.whoweare__mvv-icon--yellow{ background:rgba(200,212,0,.15);   color:var(--yellow-dark); }
.whoweare__mvv-item h4 { font-size:1rem; font-weight:700; color:var(--dark); margin-bottom:5px; }
.whoweare__mvv-item p  { font-size:.86rem; color:var(--gray); line-height:1.7; margin:0; }

@media(max-width:900px) {
    .whoweare__wrap { grid-template-columns:1fr; gap:50px; }
    .whoweare__stat-card { right:10px; }
}

/* ── ABOUT STATS STRIP ──────────────────────────────────────── */
.about-stats {
    background:#fff;
    padding:60px 0;
    border-bottom:1px solid var(--gray-border);
}
.about-stats__grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:32px;
}
.about-stats__item {
    text-align:center;
    animation-delay:var(--d, 0s);
}
.about-stats__icon {
    width:64px; height:64px; border-radius:50%;
    background:var(--primary-light);
    color:var(--primary);
    display:flex; align-items:center; justify-content:center;
    font-size:1.4rem; margin:0 auto 14px;
}
.about-stats__num {
    display:inline; font-size:2.4rem; font-weight:800;
    color:var(--primary); font-family:var(--font-heading);
    line-height:1;
}
.about-stats__suffix {
    font-size:1.1rem; font-weight:700; color:var(--yellow-dark);
    margin-left:2px;
}
.about-stats__item p {
    font-size:.78rem; color:var(--gray);
    text-transform:uppercase; letter-spacing:.08em;
    font-weight:600; margin-top:6px;
}
@media(max-width:768px) {
    .about-stats__grid { grid-template-columns:repeat(2,1fr); gap:24px; }
}
@media(max-width:480px) {
    .about-stats__grid { grid-template-columns:1fr 1fr; }
}

/* ── INNER PAGES ────────────────────────────────────────────── */
.page-banner { background:var(--hero-bg); padding:70px 0; color:var(--white); }
.page-banner h1 { color:var(--white); margin-bottom:12px; }
.breadcrumb { display:flex; align-items:center; gap:8px; font-size:.85rem; color:rgba(255,255,255,.6); }
.breadcrumb a { color:var(--yellow); }
.breadcrumb i { font-size:.65rem; }
.blog-layout   { display:grid; grid-template-columns:1fr 300px; gap:36px; align-items:start; }
.blog-post-card { background:var(--white); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); margin-bottom:28px; }
.blog-post-card__img-wrap { display:block; overflow:hidden; height:250px; }
.blog-post-card__img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.blog-post-card:hover .blog-post-card__img { transform:scale(1.04); }
.blog-post-card__body { padding:28px; }
.blog-post-card__title { font-size:1.3rem; margin-bottom:10px; }
.blog-post-card__title a { color:var(--dark); }
.blog-post-card__title a:hover { color:var(--primary); }
.blog-post-card__excerpt { margin-bottom:18px; }
.post-meta { font-size:.78rem; color:var(--gray); margin-bottom:12px; display:flex; gap:12px; flex-wrap:wrap; }
.post-meta i { color:var(--primary); margin-right:4px; }
.sidebar-widget { background:var(--white); border-radius:var(--radius); padding:22px; box-shadow:var(--shadow); margin-bottom:22px; }
.widget-title { font-size:.95rem; margin-bottom:14px; padding-bottom:10px; border-bottom:2px solid var(--primary-light); }
.pagination { display:flex; gap:8px; flex-wrap:wrap; margin-top:28px; }
.page-numbers { display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:40px; border-radius:6px; background:var(--gray-light); color:var(--dark); font-weight:600; font-size:.88rem; transition:all var(--transition); padding:0 10px; }
.page-numbers.current,.page-numbers:hover { background:var(--primary); color:var(--white); }
.wp-content h2,.wp-content h3 { margin:26px 0 12px; }
.wp-content p  { margin-bottom:16px; }
.wp-content ul,.wp-content ol { padding-left:22px; margin-bottom:16px; }
.wp-content a  { color:var(--primary); text-decoration:underline; }
.wp-content blockquote { border-left:4px solid var(--yellow); padding:14px 18px; background:var(--yellow-light); margin:22px 0; border-radius:0 8px 8px 0; }

/* ── BLOCK EDITOR CONTENT (Gutenberg) ───────────────────────── */
/* Single image block */
.sp-body .wp-block-image { margin:28px 0; }
.sp-body .wp-block-image img {
    max-width:100%; height:auto; border-radius:12px;
    box-shadow:0 6px 24px rgba(0,0,0,.1);
}
.sp-body .wp-block-image figcaption {
    text-align:center; font-size:.8rem; color:var(--gray);
    margin-top:8px; font-style:italic;
}
.sp-body .wp-block-image.alignleft  { float:left;  margin:8px 28px 16px 0; max-width:45%; }
.sp-body .wp-block-image.alignright { float:right; margin:8px 0 16px 28px; max-width:45%; }
.sp-body .wp-block-image.aligncenter { text-align:center; }
.sp-body .wp-block-image.alignwide,
.sp-body .wp-block-image.alignfull  { margin-left:-44px; margin-right:-44px; max-width:none; }
.sp-body .wp-block-image.alignfull img { border-radius:0; }

/* Gallery block */
.sp-body .wp-block-gallery {
    display:grid !important;
    grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
    gap:12px; margin:28px 0;
}
.sp-body .wp-block-gallery .wp-block-image { margin:0; }
.sp-body .wp-block-gallery .wp-block-image img {
    width:100%; height:200px; object-fit:cover; border-radius:10px;
}

/* Cover block */
.sp-body .wp-block-cover { border-radius:14px; overflow:hidden; margin:28px 0; }

/* Columns block */
.sp-body .wp-block-columns { display:flex; gap:24px; margin:28px 0; flex-wrap:wrap; }
.sp-body .wp-block-column  { flex:1; min-width:200px; }

/* Quote block */
.sp-body .wp-block-quote {
    border-left:5px solid var(--primary);
    padding:18px 24px; margin:28px 0;
    background:rgba(0,100,200,.04); border-radius:0 12px 12px 0;
    font-style:italic; font-size:1.08rem;
}
.sp-body .wp-block-quote cite { display:block; font-style:normal; font-size:.82rem; color:var(--gray); margin-top:10px; }

/* Pullquote block */
.sp-body .wp-block-pullquote {
    border-top:4px solid var(--primary);
    border-bottom:4px solid var(--primary);
    padding:28px 32px; text-align:center; margin:36px 0;
    background:linear-gradient(135deg,rgba(var(--primary-rgb),.04),transparent);
    border-radius:12px;
}
.sp-body .wp-block-pullquote blockquote p { font-size:1.3rem; font-weight:600; color:var(--dark); font-style:italic; }

/* Separator */
.sp-body .wp-block-separator { border:none; border-top:2px solid var(--primary-light); margin:32px 0; }
.sp-body .wp-block-separator.is-style-dots { border:none; text-align:center; line-height:1; }
.sp-body .wp-block-separator.is-style-dots::before { content:"· · ·"; letter-spacing:.5em; color:var(--gray); font-size:1.2rem; }

/* Buttons block */
.sp-body .wp-block-buttons { margin:20px 0; display:flex; gap:12px; flex-wrap:wrap; }
.sp-body .wp-block-button__link {
    display:inline-flex; align-items:center;
    padding:12px 26px; border-radius:30px; font-weight:700;
    text-decoration:none; font-size:.9rem;
    background:var(--primary); color:var(--white);
    transition:background var(--transition), transform var(--transition);
}
.sp-body .wp-block-button__link:hover { background:var(--teal); transform:translateY(-2px); }
.sp-body .wp-block-button.is-style-outline .wp-block-button__link {
    background:transparent; color:var(--primary); border:2px solid var(--primary);
}
.sp-body .wp-block-button.is-style-outline .wp-block-button__link:hover {
    background:var(--primary); color:var(--white);
}

/* Table block */
.sp-body .wp-block-table { margin:28px 0; overflow-x:auto; }
.sp-body .wp-block-table table { width:100%; border-collapse:collapse; font-size:.9rem; }
.sp-body .wp-block-table th { background:var(--primary); color:var(--white); padding:12px 16px; text-align:left; }
.sp-body .wp-block-table td { padding:11px 16px; border-bottom:1px solid var(--gray-border); }
.sp-body .wp-block-table tr:nth-child(even) td { background:var(--gray-light); }

/* Video block */
.sp-body .wp-block-video video,
.sp-body .wp-block-embed__wrapper iframe {
    max-width:100%; border-radius:12px;
}
.sp-body .wp-block-embed { margin:28px 0; }

/* Code block */
.sp-body .wp-block-code, .sp-body pre {
    background:#1e1e2e; color:#cdd6f4; padding:20px 24px;
    border-radius:12px; overflow-x:auto; font-size:.85rem;
    line-height:1.7; margin:24px 0;
}

/* List block */
.sp-body .wp-block-list { padding-left:22px; margin:0 0 20px; }
.sp-body .wp-block-list li { margin-bottom:6px; }

/* Clearfix after floated images */
.sp-body::after { content:""; display:table; clear:both; }

/* ── COMMENTS ───────────────────────────────────────────────── */
.cm-section {
    margin-top:36px; padding-top:36px;
    border-top:2px solid var(--primary-light);
}
.cm-heading {
    font-size:1.2rem; font-weight:800; color:var(--dark);
    margin:0 0 24px; display:flex; align-items:center; gap:10px;
}
.cm-heading i { color:var(--primary); }

/* Comment list */
.cm-list { list-style:none; padding:0; margin:0 0 40px; display:flex; flex-direction:column; gap:20px; }
.cm-list .children { list-style:none; padding:0; margin:16px 0 0 52px; display:flex; flex-direction:column; gap:16px; }

.cm-card {
    display:flex; gap:16px; align-items:flex-start;
    background:#f8f5f0; border-radius:14px; padding:20px 22px;
    border-left:4px solid var(--primary-light);
    transition:border-color .25s;
}
.cm-card:hover { border-left-color:var(--primary); }
.cm-avatar { width:56px; height:56px; border-radius:50%; object-fit:cover; flex-shrink:0; border:2px solid var(--primary-light); }
.cm-card__body { flex:1; min-width:0; }
.cm-card__header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.cm-card__name { font-size:.95rem; color:var(--dark); }
.cm-card__name a { color:var(--dark); text-decoration:none; }
.cm-card__name a:hover { color:var(--primary); }
.cm-card__date { font-size:.76rem; color:var(--gray); display:flex; align-items:center; gap:5px; }
.cm-pending { font-size:.8rem; color:#f59e0b; background:#fffbeb; padding:6px 12px; border-radius:6px; margin-bottom:8px; }
.cm-card__text { font-size:.92rem; line-height:1.7; color:#444; }
.cm-card__text p { margin:0 0 8px; }
.cm-card__text p:last-child { margin-bottom:0; }
.cm-card__actions { margin-top:12px; display:flex; gap:12px; align-items:center; }
.cm-reply-wrap a, .cm-edit-wrap a {
    font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em;
    color:var(--primary); text-decoration:none; display:inline-flex; align-items:center; gap:5px;
    padding:5px 12px; border:1.5px solid var(--primary-light); border-radius:20px;
    transition:background var(--transition), color var(--transition);
}
.cm-reply-wrap a:hover, .cm-edit-wrap a:hover { background:var(--primary); color:var(--white); border-color:var(--primary); }
.cm-edit-wrap a { color:var(--gray); border-color:var(--gray-border); }
.cm-edit-wrap a:hover { background:var(--gray); color:var(--white); border-color:var(--gray); }

.cm-closed {
    background:#f8f5f0; border-radius:10px; padding:14px 20px;
    font-size:.88rem; color:var(--gray); display:flex; align-items:center; gap:8px;
    margin-bottom:28px;
}
.cm-pagination { display:flex; gap:8px; margin-bottom:28px; }
.cm-pagination a, .cm-pagination span {
    font-size:.82rem; font-weight:600; padding:7px 14px;
    border-radius:8px; background:var(--gray-light); color:var(--dark);
    text-decoration:none; transition:background var(--transition), color var(--transition);
}
.cm-pagination a:hover { background:var(--primary); color:var(--white); }

/* Comment Form */
#respond { margin-top:8px; }
#respond h3#reply-title {
    font-size:1.15rem; font-weight:800; color:var(--dark); margin-bottom:6px;
    display:flex; align-items:center; gap:10px;
}
#respond h3#reply-title i { color:var(--primary); }
.cm-notes { font-size:.82rem; color:var(--gray); margin-bottom:20px; }

#respond .comment-form {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}
.cm-field { margin:0; display:flex; flex-direction:column; gap:6px; }
.cm-field--full { grid-column:1 / -1; }
.cm-field label {
    font-size:.8rem; font-weight:700; text-transform:uppercase;
    letter-spacing:.07em; color:var(--dark);
}
.cm-optional { font-weight:400; text-transform:none; letter-spacing:0; color:var(--gray); }
.cm-field input[type="text"],
.cm-field input[type="email"],
.cm-field input[type="url"],
.cm-field textarea {
    width:100%; padding:13px 16px;
    border:2px solid var(--gray-border); border-radius:10px;
    font-size:.92rem; color:var(--dark); background:var(--white);
    transition:border-color var(--transition), box-shadow var(--transition);
    resize:vertical; font-family:var(--font-body);
}
.cm-field input:focus,
.cm-field textarea:focus {
    outline:none;
    border-color:var(--primary);
    box-shadow:0 0 0 3px rgba(var(--primary-rgb),.12);
}
.cm-field--check {
    grid-column:1 / -1;
    flex-direction:row; align-items:flex-start; gap:10px;
}
.cm-field--check input { width:auto; margin-top:3px; accent-color:var(--primary); }
.cm-field--check label { font-weight:400; text-transform:none; letter-spacing:0; font-size:.83rem; color:var(--gray); }

.cm-submit, #respond .submit {
    grid-column:1 / -1;
    display:inline-flex; align-items:center; gap:10px;
    background:var(--yellow); color:var(--dark);
    font-weight:800; font-size:.9rem; text-transform:uppercase; letter-spacing:.08em;
    padding:14px 32px; border-radius:40px; border:none; cursor:pointer;
    transition:background var(--transition), transform var(--transition);
    width:fit-content;
}
.cm-submit:hover, #respond .submit:hover { background:var(--primary); color:var(--white); transform:translateY(-2px); }

/* cancel reply link */
#cancel-comment-reply-link {
    font-size:.8rem; color:var(--gray); margin-left:12px; text-decoration:none;
}
#cancel-comment-reply-link:hover { color:var(--primary); }

@media(max-width:600px) {
    #respond .comment-form { grid-template-columns:1fr; }
    .cm-list .children { margin-left:20px; }
    .cm-card { flex-direction:column; gap:12px; }
}

/* ── VIDEO MODAL ────────────────────────────────────────────── */
.video-modal { display:none; position:fixed; inset:0; z-index:9000; align-items:center; justify-content:center; }
.video-modal.open { display:flex; }
.video-modal__backdrop { position:absolute; inset:0; background:rgba(0,0,0,.88); }
.video-modal__box {
    position:relative; z-index:1;
    width:min(90vw,900px);
    background:#000; border-radius:12px; overflow:hidden;
    box-shadow:0 30px 80px rgba(0,0,0,.6);
}
.video-modal__close {
    position:absolute; top:10px; right:10px;
    width:36px; height:36px; border-radius:50%;
    background:rgba(255,255,255,.15); color:var(--white);
    border:none; cursor:pointer; font-size:1rem;
    display:flex; align-items:center; justify-content:center;
    z-index:2; transition:background var(--transition);
}
.video-modal__close:hover { background:var(--yellow); color:var(--dark); }
.video-modal__frame { position:relative; padding-bottom:56.25%; }
.video-modal__frame iframe { position:absolute; inset:0; width:100%; height:100%; border:none; }

/* ── RESPONSIVE ─────────────────────────────────────────────── */
@media (max-width:1100px) {
    .about__grid { grid-template-columns:1fr; gap:40px; }
    .about__visual { display:none; }
    .vol-grid { grid-template-columns:repeat(2,1fr); }
    .footer-grid { grid-template-columns:1fr 1fr; gap:30px; }
    .cause-card-slide { min-width:50%; }
}
@media (max-width:900px) {
    .blob-slide { min-width:50%; }
    .testi2__card { width:300px; }
    .gallery-slide { min-width:50%; }
    .causes-slider__header { flex-direction:column; align-items:flex-start; }
    .about__features { grid-template-columns:1fr; }
    .blog-layout { grid-template-columns:1fr; }
    .helpcta__brush { width:110px; }
    .helpcta__btn   { padding:12px 22px; font-size:.9rem; }
}
@media (max-width:768px) {
    .pill-nav { display:none; position:fixed; inset:0; top:80px; background:var(--white); margin:0; border-radius:0; padding:20px; overflow-y:auto; z-index:999; flex-direction:column; }
    .pill-nav.open { display:flex; }
    .pill-menu { flex-direction:column; align-items:stretch; gap:0; }
    .pill-menu > li > a { border-bottom:1px solid var(--gray-border); border-radius:0; padding:14px 6px; }
    .hamburger { display:flex; }
    .header-cta { display:none; }

    /* hslider mobile */
    .hslider__stage { height:88svh; min-height:460px; }
    .hslide__body { padding-top:70px; padding-bottom:180px; }
    .hslide__h { font-size:2.2rem; }
    .hslide__sub { font-size:.9rem; }
    .hslide__btns { flex-direction:column; align-items:flex-start; }
    .hslider__count { display:none; }
    .hslider__fixed-cta { bottom:72px; }
    .hslider__fixed-cta__inner { flex-direction:column; align-items:flex-start; gap:10px; }
    .hslider__fixed-cta__inner .btn { justify-content:center; }
    .hero-stats__item { padding:0 18px; }
    .hero-stats__item strong { font-size:1.4rem; }

    .blob-slide { min-width:80%; }
    .testi2__card { width:260px; }
    .gallery-slide { min-width:80%; }
    .cause-card-slide { min-width:80%; }
    .vol-grid { grid-template-columns:repeat(2,1fr); }
    .footer-grid { grid-template-columns:1fr; }
    .newsletter__inner { flex-direction:column; gap:24px; }
    .newsletter__form { flex-direction:column; }
    .newsletter__form input { border-radius:var(--radius); }
    /* about2 mobile */
    .about2__grid { grid-template-columns:1fr; gap:40px; }
    .about2__card { position:static; margin-bottom:20px; }
    .about2__badge { left:10px; bottom:120px; }
    .about2__circle { display:none; }
}
@media (max-width:480px) {
    .vol-grid { grid-template-columns:1fr 1fr; }
    .hslide__btns { flex-direction:column; align-items:flex-start; }
    .about2__top-row { grid-template-columns:1fr 1fr; }
    .about2__photo--tr { margin-top:20px; }
    .about2__badge { display:none; }
}

/* ══════════════════════════════════════════════════════════════
   PROGRAMME PILLARS SECTION (homepage — replaces tabs)
   ══════════════════════════════════════════════════════════════ */
.prog-pillars { background:#f4f5fb; }

/* 3-column grid */
.prog-pillars__grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
    align-items:start;
}

/* Each pillar card */
.prog-pillar {
    background:#fff;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 6px 28px rgba(0,0,0,.08);
    display:flex;
    flex-direction:column;
}

/* Coloured header band */
.prog-pillar__head {
    display:flex;
    align-items:center;
    gap:16px;
    padding:28px 24px;
}
.prog-pillar--projects .prog-pillar__head { background:var(--primary); color:#fff; }
.prog-pillar--sports   .prog-pillar__head { background:var(--yellow);  color:var(--dark); }
.prog-pillar--music    .prog-pillar__head { background:#111827;         color:#fff; }

.prog-pillar__head-icon {
    width:52px; height:52px; border-radius:14px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    font-size:1.4rem;
}
.prog-pillar--projects .prog-pillar__head-icon { background:rgba(255,255,255,.18); color:#fff; }
.prog-pillar--sports   .prog-pillar__head-icon { background:rgba(0,0,0,.1);        color:var(--dark); }
.prog-pillar--music    .prog-pillar__head-icon { background:rgba(200,212,0,.2);    color:var(--yellow); }

.prog-pillar__head-title { font-size:1.15rem; font-weight:800; margin:0 0 2px; line-height:1.2; }
.prog-pillar--projects .prog-pillar__head-title,
.prog-pillar--music    .prog-pillar__head-title { color:#fff; }
.prog-pillar--sports   .prog-pillar__head-title { color:var(--dark); }

.prog-pillar__head-sub { font-size:.78rem; margin:0; opacity:.8; }

/* Body (card list) */
.prog-pillar__body { padding:20px; flex:1; display:flex; flex-direction:column; gap:16px; }

/* CTA at bottom */
.prog-pillar__cta {
    display:flex; align-items:center; justify-content:center; gap:8px;
    margin:0 20px 20px;
    padding:12px;
    border-radius:10px;
    font-size:.85rem; font-weight:700; text-decoration:none;
    transition:background .25s, color .25s, gap .25s;
    border:2px solid transparent;
}
.prog-pillar--projects .prog-pillar__cta { background:var(--primary); color:#fff; }
.prog-pillar--projects .prog-pillar__cta:hover { background:#1e2062; }
.prog-pillar--sports   .prog-pillar__cta { background:var(--yellow);  color:var(--dark); }
.prog-pillar--sports   .prog-pillar__cta:hover { background:#b8c200; }
.prog-pillar--music    .prog-pillar__cta { background:#111827; color:#fff; }
.prog-pillar--music    .prog-pillar__cta:hover { background:#1f2937; }
.prog-pillar__cta:hover { gap:12px; }

/* ── Project rows ── */
.pp-proj-row {
    display:flex; gap:14px; align-items:flex-start;
    background:#f9fafb; border-radius:12px; overflow:hidden;
    transition:box-shadow .25s;
}
.pp-proj-row:hover { box-shadow:0 4px 16px rgba(0,0,0,.1); }

.pp-proj-row__thumb {
    width:88px; height:80px; flex-shrink:0; position:relative; overflow:hidden;
}
.pp-proj-row__thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.pp-proj-row__status {
    position:absolute; bottom:4px; left:4px;
    font-size:.6rem; font-weight:700; text-transform:uppercase;
    padding:2px 7px; border-radius:10px;
}
.pp-proj-row__status--green  { background:#D1FAE5; color:#065F46; }
.pp-proj-row__status--navy   { background:var(--primary-light); color:var(--primary); }
.pp-proj-row__status--yellow { background:rgba(200,212,0,.2); color:#5a6200; }

.pp-proj-row__info { padding:10px 12px 10px 0; flex:1; min-width:0; }
.pp-proj-row__cat  { font-size:.7rem; font-weight:700; color:var(--primary); text-transform:uppercase; letter-spacing:.04em; }
.pp-proj-row__info h4 { font-size:.88rem; font-weight:700; color:var(--dark); margin:4px 0 8px; line-height:1.35; }

.pp-prog-bar-wrap { }
.pp-prog-bar-top  { display:flex; justify-content:space-between; font-size:.7rem; color:var(--gray); margin-bottom:4px; }
.pp-prog-bar      { background:#e5e7eb; border-radius:4px; height:5px; }
.pp-prog-fill     { background:var(--yellow); height:5px; border-radius:4px; }

/* ── Sports tiles 2-col grid ── */
.pp-sport-grid {
    display:grid; grid-template-columns:1fr 1fr; gap:12px;
}
.pp-sport-tile {
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:8px; padding:18px 12px; border-radius:12px; text-align:center;
    font-size:.82rem; font-weight:700; color:var(--dark);
    transition:transform .25s, box-shadow .25s;
    cursor:default;
}
.pp-sport-tile:hover { transform:translateY(-3px); box-shadow:0 6px 18px rgba(0,0,0,.1); }
.pp-sport-tile i { font-size:1.5rem; }
.pp-sport-tile--navy   { background:var(--primary-light); color:var(--primary); }
.pp-sport-tile--navy i { color:var(--primary); }
.pp-sport-tile--yellow   { background:rgba(200,212,0,.15); color:#5a6200; }
.pp-sport-tile--yellow i { color:#8a9200; }

/* ── Music / event rows ── */
.pp-event-row {
    display:flex; gap:14px; align-items:flex-start;
    background:#f9fafb; border-radius:12px; overflow:hidden;
    transition:box-shadow .25s;
}
.pp-event-row:hover { box-shadow:0 4px 16px rgba(0,0,0,.1); }

.pp-event-row__thumb {
    width:88px; height:80px; flex-shrink:0; overflow:hidden;
}
.pp-event-row__thumb img { width:100%; height:100%; object-fit:cover; display:block; }

.pp-event-row__info { padding:10px 12px 10px 0; flex:1; min-width:0; }
.pp-event-row__date {
    font-size:.7rem; font-weight:700; color:var(--yellow);
    background:#111827; padding:2px 8px; border-radius:6px;
    display:inline-flex; align-items:center; gap:5px; margin-bottom:6px;
}
.pp-event-row__info h4 { font-size:.88rem; font-weight:700; color:var(--dark); margin:0 0 4px; line-height:1.35; }
.pp-event-row__loc { font-size:.75rem; color:var(--gray); display:flex; align-items:center; gap:5px; }

/* ── Responsive ── */
@media(max-width:960px) {
    .prog-pillars__grid { grid-template-columns:1fr; }
}
@media(max-width:560px) {
    .prog-pillar__head { padding:20px 18px; }
    .pp-proj-row__thumb,
    .pp-event-row__thumb { width:72px; height:68px; }
}

/* ══════════════════════════════════════════════════════════════
   TABS PREVIEW SECTION (homepage)
   ══════════════════════════════════════════════════════════════ */
.tabs-preview { background:#fff; }

/* ── Tab selector card row ── */
.tp-tab-selector {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
    margin-bottom:48px;
}

.tp-tab-card {
    position:relative;
    display:flex;
    align-items:center;
    gap:16px;
    padding:20px 24px;
    background:#fff;
    border:2px solid var(--gray-border);
    border-radius:16px;
    cursor:pointer;
    text-align:left;
    transition:border-color .28s, box-shadow .28s, transform .28s;
    overflow:hidden;
}
.tp-tab-card:hover {
    border-color:var(--primary);
    box-shadow:0 8px 28px rgba(43,45,126,.12);
    transform:translateY(-2px);
}

/* Active bottom bar indicator */
.tp-tab-card__bar {
    position:absolute;
    bottom:0; left:0; right:0;
    height:4px;
    border-radius:0 0 14px 14px;
    background:transparent;
    transition:background .28s;
}
.tp-tab-card.active .tp-tab-card__bar { background:var(--primary); }
.tp-tab-card[data-tab="sports"].active .tp-tab-card__bar { background:var(--yellow); }
.tp-tab-card[data-tab="music"].active  .tp-tab-card__bar { background:#111827; }

/* Active card state */
.tp-tab-card.active {
    border-color:transparent;
    box-shadow:0 8px 32px rgba(43,45,126,.18);
}
.tp-tab-card[data-tab="projects"].active { background:var(--primary); }
.tp-tab-card[data-tab="sports"].active   { background:var(--yellow); }
.tp-tab-card[data-tab="music"].active    { background:#111827; }

/* Icon circle */
.tp-tab-card__icon {
    width:52px; height:52px; border-radius:14px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    font-size:1.3rem;
    transition:background .28s, color .28s;
}
.tp-tab-card__icon--navy   { background:var(--primary-light); color:var(--primary); }
.tp-tab-card__icon--yellow { background:rgba(200,212,0,.18); color:#7a8800; }
.tp-tab-card__icon--dark   { background:#f3f4f6; color:#111827; }

.tp-tab-card[data-tab="projects"].active .tp-tab-card__icon { background:rgba(255,255,255,.2); color:#fff; }
.tp-tab-card[data-tab="sports"].active   .tp-tab-card__icon { background:rgba(0,0,0,.12); color:var(--dark); }
.tp-tab-card[data-tab="music"].active    .tp-tab-card__icon { background:rgba(200,212,0,.2); color:var(--yellow); }

/* Text */
.tp-tab-card__text { display:flex; flex-direction:column; gap:2px; }
.tp-tab-card__text strong {
    font-size:1rem; font-weight:800; color:var(--dark);
    transition:color .28s;
}
.tp-tab-card__text span {
    font-size:.78rem; color:var(--gray);
    transition:color .28s;
}
.tp-tab-card[data-tab="projects"].active .tp-tab-card__text strong,
.tp-tab-card[data-tab="music"].active    .tp-tab-card__text strong { color:#fff; }
.tp-tab-card[data-tab="projects"].active .tp-tab-card__text span,
.tp-tab-card[data-tab="music"].active    .tp-tab-card__text span   { color:rgba(255,255,255,.75); }
.tp-tab-card[data-tab="sports"].active   .tp-tab-card__text strong { color:var(--dark); }
.tp-tab-card[data-tab="sports"].active   .tp-tab-card__text span   { color:rgba(0,0,0,.6); }

@media(max-width:640px) {
    .tp-tab-selector { grid-template-columns:1fr; gap:12px; }
    .tp-tab-card { padding:16px 18px; }
}

/* Panels */
.tp-panel {
    display:none; opacity:0;
    animation:tpFadeIn .35s ease forwards;
}
.tp-panel.active { display:block; }
@keyframes tpFadeIn { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:none} }

/* View all row */
.tp-view-all { text-align:center; margin-top:40px; }

/* ── Projects grid inside tab ── */
.tp-projects-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.tp-proj-card { background:#fff; border-radius:var(--radius-lg); overflow:hidden; box-shadow:0 4px 20px rgba(0,0,0,.08); transition:transform var(--transition),box-shadow var(--transition); text-decoration:none; display:block; color:inherit; }
.tp-proj-card:hover { transform:translateY(-5px); box-shadow:0 12px 36px rgba(0,0,0,.13); }
.tp-proj-card__readmore { display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-size:.82rem; font-weight:700; color:var(--primary); transition:gap .2s; }
.tp-proj-card:hover .tp-proj-card__readmore { gap:10px; }
.tp-proj-card__img-wrap { position:relative; aspect-ratio:16/10; overflow:hidden; }
.tp-proj-card__img-wrap img { width:100%; height:100%; object-fit:cover; display:block; filter:grayscale(.2); transition:filter .4s,transform .4s; }
.tp-proj-card:hover .tp-proj-card__img-wrap img { filter:grayscale(0); transform:scale(1.04); }
.tp-proj-card__status { position:absolute; top:10px; left:10px; font-size:.68rem; font-weight:700; text-transform:uppercase; padding:4px 10px; border-radius:20px; }
.tp-proj-card__status--green { background:#D1FAE5; color:#065F46; }
.tp-proj-card__cat { position:absolute; bottom:10px; right:10px; background:var(--primary); color:#fff; font-size:.68rem; font-weight:700; padding:4px 10px; border-radius:20px; }
.tp-proj-card__body { padding:18px 20px 22px; }
.tp-proj-card__body h3 { font-size:1rem; font-weight:700; color:var(--dark); margin-bottom:8px; line-height:1.4; }
.tp-proj-card__body p  { font-size:.83rem; color:var(--gray); line-height:1.65; margin-bottom:14px; }
.tp-prog-bar-wrap { }
.tp-prog-bar-top { display:flex; justify-content:space-between; font-size:.76rem; color:var(--gray); font-weight:600; margin-bottom:5px; }
.tp-prog-bar { height:7px; background:var(--gray-border); border-radius:var(--radius-pill); overflow:hidden; }
.tp-prog-fill { height:100%; background:linear-gradient(to right,var(--yellow),var(--yellow-dark)); border-radius:var(--radius-pill); }

/* ── Sports grid inside tab ── */
.tp-sports-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.tp-sport-card { background:var(--gray-light); border-radius:var(--radius-lg); padding:28px 24px; text-align:center; transition:transform var(--transition),box-shadow var(--transition),background var(--transition); }
.tp-sport-card:hover { transform:translateY(-5px); box-shadow:0 10px 32px rgba(0,0,0,.1); background:#fff; }
.tp-sport-card__icon { width:68px; height:68px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.5rem; margin:0 auto 16px; transition:background var(--transition),color var(--transition); }
.tp-sport-card__icon--navy   { background:var(--primary-light); color:var(--primary); }
.tp-sport-card__icon--yellow { background:rgba(200,212,0,.15); color:var(--yellow-dark); }
.tp-sport-card:hover .tp-sport-card__icon--navy   { background:var(--primary); color:#fff; }
.tp-sport-card:hover .tp-sport-card__icon--yellow { background:var(--yellow); color:var(--dark); }
.tp-sport-card h4 { font-size:1rem; font-weight:700; color:var(--dark); margin-bottom:8px; }
.tp-sport-card p  { font-size:.84rem; color:var(--gray); line-height:1.7; margin:0; }

/* ── Events grid inside tab ── */
.tp-events-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.tp-event-card { background:#fff; border-radius:var(--radius-lg); overflow:hidden; box-shadow:0 4px 20px rgba(0,0,0,.08); transition:transform var(--transition),box-shadow var(--transition); display:block; text-decoration:none; color:inherit; }
.tp-event-card:hover { transform:translateY(-5px); box-shadow:0 12px 36px rgba(0,0,0,.13); }
.tp-event-card__img-wrap { position:relative; aspect-ratio:16/10; overflow:hidden; }
.tp-event-card__img-wrap img { width:100%; height:100%; object-fit:cover; display:block; filter:grayscale(.2); transition:filter .4s,transform .4s; }
.tp-event-card:hover .tp-event-card__img-wrap img { filter:grayscale(0); transform:scale(1.05); }
.tp-event-card__cat { position:absolute; bottom:10px; left:12px; background:var(--primary); color:#fff; font-size:.68rem; font-weight:700; padding:4px 10px; border-radius:20px; }
.tp-event-card__body { padding:18px 20px 20px; }
.tp-event-card__date { font-size:.78rem; color:var(--primary); font-weight:700; margin-bottom:8px; display:flex; align-items:center; gap:6px; }
.tp-event-card__body h3 { font-size:1rem; font-weight:700; color:var(--dark); margin-bottom:8px; line-height:1.35; }
.tp-event-card__body p  { font-size:.83rem; color:var(--gray); line-height:1.65; margin-bottom:12px; }
.tp-event-card__footer { display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--gray-border); padding-top:10px; font-size:.8rem; }
.tp-event-card__footer span { color:var(--gray); display:flex; align-items:center; gap:5px; }
.tp-event-card__view { color:var(--primary); font-weight:700; display:flex; align-items:center; gap:5px; transition:gap var(--transition); }
.tp-event-card:hover .tp-event-card__view { gap:9px; }
.tp-event-card__footer a { color:var(--primary); font-weight:700; display:flex; align-items:center; gap:5px; transition:gap var(--transition); }
.tp-event-card__footer a:hover { gap:9px; }

/* Responsive */
@media(max-width:900px) {
    .tp-projects-grid,.tp-sports-grid,.tp-events-grid { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:560px) {
    .tp-projects-grid,.tp-sports-grid,.tp-events-grid { grid-template-columns:1fr; }
    .tp-tab { padding:11px 20px; font-size:.85rem; }
}

/* ══════════════════════════════════════════════════════════════
   INNER PAGES — Shared Banner + Page Components
   ══════════════════════════════════════════════════════════════ */

/* ── SHARED INNER BANNER ────────────────────────────────────── */
.inner-banner {
    position:relative; min-height:380px;
    display:flex; align-items:center; overflow:hidden;
}
.inner-banner__bg,
.inner-banner::before {
    position:absolute; inset:0;
    background-image:var(--banner-img,none);
    background-size:cover; background-position:center;
    filter:grayscale(1) brightness(.45); z-index:0;
}
.inner-banner__overlay {
    position:absolute; inset:0;
    background:linear-gradient(to right,rgba(28,30,107,.88) 0%,rgba(28,30,107,.5) 60%,rgba(0,0,0,.25) 100%);
    z-index:1;
}
.inner-banner__body {
    position:relative; z-index:2;
    padding:110px 0 90px;
}
.inner-banner__eyebrow {
    font-family:var(--font-script); font-size:1.1rem;
    color:var(--yellow); margin-bottom:12px;
    display:flex; align-items:center; gap:8px;
}
.inner-banner__title {
    font-size:clamp(2.2rem,5.5vw,3.8rem); font-weight:800;
    color:#fff; line-height:1.1; margin-bottom:16px;
}
.inner-banner__tear {
    position:absolute; bottom:-1px; left:0; right:0; z-index:3; line-height:0;
}
.inner-banner__tear svg { width:100%; display:block; height:70px; }

/* ── PROFILE PAGE ───────────────────────────────────────────── */
.ip-split { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
.ip-split__visual { position:relative; }
.ip-split__img { width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--radius-lg); display:block; }
.ip-split__badge {
    position:absolute; bottom:24px; right:-20px;
    background:#fff; border-radius:var(--radius); padding:14px 18px;
    display:flex; align-items:center; gap:14px;
    box-shadow:0 10px 36px rgba(0,0,0,.14); min-width:190px;
}
.ip-split__badge i { font-size:1.6rem; color:var(--yellow-dark); }
.ip-split__badge strong { display:block; font-size:.95rem; font-weight:700; color:var(--dark); }
.ip-split__badge span  { font-size:.72rem; color:var(--gray); text-transform:uppercase; letter-spacing:.05em; }
.ip-pills { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.ip-pill {
    display:inline-flex; align-items:center; gap:8px;
    background:var(--primary-light); color:var(--primary);
    font-size:.82rem; font-weight:600; padding:8px 16px;
    border-radius:var(--radius-pill);
}
.ip-pill i { font-size:.75rem; }

.ip-mvv-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:20px; }
.ip-mvv-card {
    background:#fff; border-radius:var(--radius-lg);
    padding:32px 28px; text-align:center;
    box-shadow:0 4px 24px rgba(0,0,0,.07);
    transition:transform var(--transition), box-shadow var(--transition);
}
.ip-mvv-card:hover { transform:translateY(-6px); box-shadow:0 12px 36px rgba(0,0,0,.12); }
.ip-mvv-card__icon {
    width:72px; height:72px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:1.5rem; margin:0 auto 18px;
}
.ip-mvv-card h3 { font-size:1.2rem; font-weight:700; color:var(--dark); margin-bottom:12px; }
.ip-mvv-card p  { font-size:.88rem; color:var(--gray); line-height:1.75; margin:0; }

.ip-stats-row {
    display:flex; align-items:center; justify-content:center;
    flex-wrap:wrap; gap:0;
}
.ip-stat { text-align:center; padding:0 48px; flex:1; min-width:140px; }
.ip-stat strong { display:block; font-size:2.2rem; font-weight:800; color:#fff; line-height:1; margin-bottom:6px; font-family:var(--font-heading); }
.ip-stat span   { font-size:.72rem; color:rgba(255,255,255,.7); text-transform:uppercase; letter-spacing:.1em; font-weight:600; }
.ip-stat-div    { width:1px; height:50px; background:rgba(255,255,255,.2); flex-shrink:0; }

/* ── SPORTS PAGE ────────────────────────────────────────────── */
.ip-sports-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:40px; }

/* Card with photo */
.ip-sport-card {
    background:#fff; border-radius:var(--radius-lg); overflow:hidden;
    box-shadow:0 4px 24px rgba(0,0,0,.07); text-align:center;
    border-bottom:4px solid transparent;
    transition:all var(--transition);
}
.ip-sport-card--linked { display:block; text-decoration:none; color:inherit; cursor:pointer; }
.ip-sport-card:hover { transform:translateY(-6px); box-shadow:0 12px 36px rgba(0,0,0,.14); border-bottom-color:var(--yellow); }

/* Photo area */
.ip-sport-card__photo { position:relative; aspect-ratio:16/10; overflow:hidden; }
.ip-sport-card__photo img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.ip-sport-card:hover .ip-sport-card__photo img { transform:scale(1.06); }
.ip-sport-card__photo-placeholder {
    width:100%; height:100%;
    display:flex; align-items:center; justify-content:center; font-size:3rem;
}

/* Badge icon overlaid on photo bottom-right */
.ip-sport-card__badge {
    position:absolute; bottom:-20px; right:20px;
    width:48px; height:48px; border-radius:50%; font-size:1.1rem;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 4px 12px rgba(0,0,0,.2); border:3px solid #fff;
}

/* Body area */
.ip-sport-card__body { padding:32px 24px 24px; }
.ip-sport-card h3 { font-size:1.1rem; font-weight:700; color:var(--dark); margin-bottom:10px; }
.ip-sport-card p  { font-size:.86rem; color:var(--gray); line-height:1.7; margin-bottom:18px; }

/* Icon colour variants */
.ip-sport-card__icon--navy   { background:var(--primary-light); color:var(--primary); }
.ip-sport-card__icon--yellow { background:#f5f9d0; color:#7a8600; }

.ip-sport-card__acts {
    list-style:none; padding:0; margin:0 0 18px;
    text-align:left; border-top:1px solid var(--gray-border); padding-top:14px;
}
.ip-sport-card__acts li {
    display:flex; align-items:center; gap:8px;
    font-size:.82rem; color:var(--dark); padding:5px 0;
    border-bottom:1px dashed var(--gray-border);
}
.ip-sport-card__acts li:last-child { border-bottom:none; }
.ip-sport-card__acts li i { color:var(--primary); flex-shrink:0; font-size:.8rem; }

.ip-sport-card__link {
    display:inline-flex; align-items:center; gap:6px;
    font-size:.84rem; font-weight:700; color:var(--primary);
    text-decoration:none; transition:gap var(--transition);
}
.ip-sport-card:hover .ip-sport-card__link { gap:10px; color:var(--hero-bg); }

/* ── SINGLE SPORT DETAIL PAGE ───────────────────────────────── */
.sp-detail { display:grid; grid-template-columns:1fr 360px; gap:48px; align-items:start; }

.sp-detail__icon-wrap {
    width:72px; height:72px; border-radius:50%; font-size:1.6rem;
    display:flex; align-items:center; justify-content:center;
    margin-bottom:20px;
}
.sp-detail__icon-wrap--navy   { background:var(--primary-light); color:var(--primary); }
.sp-detail__icon-wrap--yellow { background:#f5f9d0; color:#7a8600; }

.sp-detail__title { font-size:clamp(1.6rem,3vw,2.2rem); font-weight:800; color:var(--dark); margin-bottom:16px; }
.sp-detail__desc  { font-size:1rem; color:var(--gray); line-height:1.85; margin-bottom:36px; }

.sp-detail__activities h3 {
    font-size:1.05rem; font-weight:700; color:var(--dark);
    margin-bottom:20px; display:flex; align-items:center; gap:10px;
}
.sp-detail__activities h3 i { color:var(--primary); font-size:1.1rem; }

.sp-activities-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; }
.sp-activities-list li {
    display:flex; align-items:center; gap:10px;
    font-size:.92rem; font-weight:500; color:var(--dark);
    background:var(--gray-light); border-radius:8px;
    padding:12px 16px;
}
.sp-activities-list li i { color:var(--primary); flex-shrink:0; }

/* Aside */
.sp-detail__photo { border-radius:var(--radius-lg); overflow:hidden; margin-bottom:24px; }
.sp-detail__photo img { width:100%; height:260px; object-fit:cover; display:block; }

.sp-detail__cta-card {
    background:var(--hero-bg); border-radius:var(--radius-lg);
    padding:32px 28px; text-align:center; color:#fff;
}
.sp-detail__cta-card > i { font-size:2.2rem; color:var(--yellow); margin-bottom:12px; display:block; }
.sp-detail__cta-card h4  { font-size:1.2rem; font-weight:700; margin-bottom:10px; }
.sp-detail__cta-card p   { font-size:.88rem; color:rgba(255,255,255,.75); line-height:1.7; }

.sp-detail__back {
    display:inline-flex; align-items:center; gap:6px;
    margin-top:16px; font-size:.84rem; font-weight:600;
    color:rgba(255,255,255,.7); text-decoration:none;
    transition:color var(--transition);
}
.sp-detail__back:hover { color:#fff; }

@media(max-width:900px) {
    .sp-detail { grid-template-columns:1fr; }
    .sp-activities-list { grid-template-columns:1fr; }
}
@media(max-width:768px) {
    .ip-sports-grid { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:480px) {
    .ip-sports-grid { grid-template-columns:1fr; }
}

/* ── SPORT HUB INTRO STRIP ─────────────────────────────────── */
.sh-intro {
    background:#fff;
    border-bottom:1px solid var(--border);
    padding:28px 0;
}
.sh-intro__inner {
    display:flex;
    align-items:center;
    gap:32px;
    flex-wrap:wrap;
}
.sh-intro__info {
    display:flex;
    align-items:center;
    gap:18px;
    flex:1;
    min-width:260px;
}
.sh-intro__icon {
    width:56px; height:56px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:1.4rem; flex-shrink:0;
}
.sh-intro__icon--navy   { background:var(--primary-light); color:var(--primary); }
.sh-intro__icon--yellow { background:rgba(234,179,8,.15);  color:#b45309; }
.sh-intro__title { font-size:1.1rem; font-weight:700; color:var(--dark); margin:0 0 4px; }
.sh-intro__desc  { font-size:.86rem; color:var(--gray); margin:0; line-height:1.6; }

.sh-intro__areas { flex-shrink:0; max-width:360px; }
.sh-intro__areas-label {
    font-size:.72rem; text-transform:uppercase; letter-spacing:.07em;
    color:var(--gray); font-weight:700; display:block; margin-bottom:8px;
}
.sh-intro__tags { display:flex; flex-wrap:wrap; gap:6px; }
.sh-intro__tag {
    background:var(--gray-light); color:var(--dark);
    border:1px solid var(--border);
    font-size:.78rem; font-weight:600; padding:4px 12px;
    border-radius:20px;
}

.sh-intro__cta { flex-shrink:0; white-space:nowrap; }

@media(max-width:900px) {
    .sh-intro__inner { gap:20px; }
    .sh-intro__areas { max-width:100%; }
    .sh-intro__cta   { width:100%; text-align:center; justify-content:center; }
}
@media(max-width:600px) {
    .sh-intro__info { flex-direction:column; align-items:flex-start; }
}

/* Feed section header */
.sh-feed-header {
    display:flex; align-items:flex-end; justify-content:space-between;
    flex-wrap:wrap; gap:16px; margin-bottom:36px;
}
.sh-feed-header h2 { margin-bottom:6px; }
.sh-feed-header p  { color:var(--gray); margin:0; }

/* ── SPORT POSTS FEED (grid on single sport page) ──────────── */
.sp-posts-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
}

.sp-post-card {
    display:flex; flex-direction:column;
    background:#fff; border-radius:14px;
    overflow:hidden; text-decoration:none; color:inherit;
    box-shadow:0 2px 12px rgba(0,0,0,.07);
    transition:transform .22s, box-shadow .22s;
}
.sp-post-card:hover { transform:translateY(-5px); box-shadow:0 8px 28px rgba(0,0,0,.13); }

.sp-post-card__img { position:relative; aspect-ratio:16/10; overflow:hidden; }
.sp-post-card__img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.sp-post-card:hover .sp-post-card__img img { transform:scale(1.05); }
.sp-post-card__img-ph {
    width:100%; height:100%; background:var(--primary-light);
    display:flex; align-items:center; justify-content:center;
    font-size:2.4rem; color:var(--primary);
}
.sp-post-card__date {
    position:absolute; bottom:10px; left:12px;
    background:rgba(0,0,0,.55); color:#fff;
    font-size:.72rem; font-weight:600; padding:4px 10px; border-radius:20px;
    backdrop-filter:blur(4px);
}

.sp-post-card__body { padding:20px 22px; flex:1; display:flex; flex-direction:column; gap:8px; }
.sp-post-card__title { font-size:1rem; font-weight:700; color:var(--dark); line-height:1.4; margin:0; }
.sp-post-card__excerpt { font-size:.85rem; color:var(--gray); line-height:1.65; margin:0; flex:1; }
.sp-post-card__link {
    font-size:.82rem; font-weight:700; color:var(--primary);
    display:inline-flex; align-items:center; gap:5px; margin-top:4px;
    transition:gap .2s;
}
.sp-post-card:hover .sp-post-card__link { gap:9px; }

/* YouTube badge on card image */
.sp-post-card__yt-badge {
    position:absolute; top:10px; right:12px;
    background:#ff0000; color:#fff;
    width:32px; height:32px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:.9rem;
}

/* Empty state */
.sp-posts-empty {
    text-align:center; padding:60px 20px;
    background:#fff; border-radius:16px;
    border:2px dashed var(--border);
}
.sp-posts-empty > i { font-size:3rem; color:var(--primary-light); margin-bottom:16px; display:block; }
.sp-posts-empty h3  { font-size:1.3rem; color:var(--dark); margin-bottom:10px; }
.sp-posts-empty p   { color:var(--gray); max-width:480px; margin:0 auto; }

@media(max-width:900px) { .sp-posts-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:500px) { .sp-posts-grid { grid-template-columns:1fr; } }

/* ── SINGLE SPORT POST PAGE ────────────────────────────────── */
.spf-layout {
    display:grid;
    grid-template-columns:1fr 320px;
    gap:48px;
    align-items:start;
}

/* Meta bar */
.spf-meta {
    display:flex; align-items:center; gap:12px; flex-wrap:wrap;
    font-size:.84rem; color:var(--gray); margin-bottom:24px;
}
.spf-meta__dot { width:4px; height:4px; border-radius:50%; background:var(--border); }
.spf-meta__cat {
    color:var(--primary); font-weight:600; text-decoration:none;
    display:inline-flex; align-items:center; gap:5px;
}
.spf-meta__cat:hover { text-decoration:underline; }

/* Post body (block editor output) */
.spf-body { font-size:.97rem; line-height:1.85; color:var(--dark); }
.spf-body img  { max-width:100%; height:auto; border-radius:10px; margin:16px 0; }
.spf-body video, .spf-body iframe { max-width:100%; border-radius:10px; margin:16px 0; }
.spf-body figure.wp-block-image { margin:24px 0; }
.spf-body .wp-block-gallery { margin:24px 0; }
.spf-body h2,.spf-body h3,.spf-body h4 { color:var(--dark); margin-top:28px; margin-bottom:10px; }
.spf-body p { margin-bottom:16px; }
.spf-body ul,.spf-body ol { padding-left:24px; margin-bottom:16px; }
.spf-body li { margin-bottom:6px; }

/* Back link */
.spf-back { margin-top:40px; padding-top:24px; border-top:1px solid var(--border); }
.spf-back__link {
    display:inline-flex; align-items:center; gap:8px;
    font-size:.9rem; font-weight:600; color:var(--primary);
    text-decoration:none; transition:gap .2s;
}
.spf-back__link:hover { gap:12px; }

/* Sidebar */
.spf-sidebar { position:sticky; top:100px; display:flex; flex-direction:column; gap:24px; }

.spf-sidebar-cta {
    background:var(--hero-bg); color:#fff; border-radius:16px;
    padding:28px 24px; text-align:center;
}
.spf-sidebar-cta__icon { font-size:2.4rem; color:var(--yellow); margin-bottom:14px; display:block; }
.spf-sidebar-cta h4    { font-size:1.1rem; font-weight:700; margin-bottom:10px; color:#fff; }
.spf-sidebar-cta p     { font-size:.86rem; color:rgba(255,255,255,.75); line-height:1.7; margin-bottom:18px; }

.spf-sidebar-widget { background:#fff; border-radius:14px; padding:22px; box-shadow:0 2px 10px rgba(0,0,0,.06); }
.spf-sidebar-widget__title {
    font-size:.9rem; font-weight:700; color:var(--dark);
    margin-bottom:16px; padding-bottom:10px; border-bottom:1px solid var(--border);
}

.spf-recent-item {
    display:flex; gap:12px; align-items:center;
    text-decoration:none; color:inherit; padding:10px 0;
    border-bottom:1px solid var(--border);
}
.spf-recent-item:last-child { border-bottom:none; }
.spf-recent-img { width:60px; height:50px; border-radius:8px; overflow:hidden; flex-shrink:0; }
.spf-recent-img img { width:100%; height:100%; object-fit:cover; }
.spf-recent-img--ph {
    background:var(--primary-light); display:flex;
    align-items:center; justify-content:center; color:var(--primary); font-size:1.2rem;
}
.spf-recent-info { display:flex; flex-direction:column; gap:3px; }
.spf-recent-title { font-size:.84rem; font-weight:600; color:var(--dark); line-height:1.35; }
.spf-recent-date  { font-size:.75rem; color:var(--gray); }
.spf-recent-item:hover .spf-recent-title { color:var(--primary); }

.spf-all-sports {
    display:flex; align-items:center; justify-content:center; gap:8px;
    background:#fff; border:2px solid var(--primary); color:var(--primary);
    border-radius:12px; padding:14px; font-size:.88rem; font-weight:700;
    text-decoration:none; transition:background .2s, color .2s;
}
.spf-all-sports:hover { background:var(--primary); color:#fff; }

@media(max-width:900px) {
    .spf-layout { grid-template-columns:1fr; }
    .spf-sidebar { position:static; }
}

/* ── EVENT INFO BAR ─────────────────────────────────────────── */
.spf-event-bar {
    display:flex; flex-wrap:wrap; gap:0;
    background:var(--gray-light); border-radius:14px;
    overflow:hidden; margin-bottom:36px;
    border:1px solid var(--border);
}
.spf-event-bar__item {
    display:flex; align-items:center; gap:14px;
    padding:18px 24px; flex:1; min-width:180px;
    border-right:1px solid var(--border);
}
.spf-event-bar__item:last-child { border-right:none; }
.spf-event-bar__item > i {
    font-size:1.4rem; color:var(--primary); flex-shrink:0;
}
.spf-event-bar__item > div { display:flex; flex-direction:column; gap:2px; }
.spf-event-bar__label { font-size:.72rem; text-transform:uppercase; letter-spacing:.07em; color:var(--gray); font-weight:600; }
.spf-event-bar__item strong { font-size:.95rem; color:var(--dark); font-weight:700; }
.spf-event-bar__cat {
    font-size:.95rem; color:var(--primary); font-weight:700;
    text-decoration:none;
}
.spf-event-bar__cat:hover { text-decoration:underline; }
@media(max-width:700px) {
    .spf-event-bar { flex-direction:column; }
    .spf-event-bar__item { border-right:none; border-bottom:1px solid var(--border); }
    .spf-event-bar__item:last-child { border-bottom:none; }
}

/* ── AWARDS SECTION ─────────────────────────────────────────── */
.spf-awards {
    margin-top:44px; padding-top:36px;
    border-top:2px solid var(--border);
}
.spf-awards--compact {
    margin-top:14px; padding-top:12px;
    border-top:1px solid var(--border);
}
.spf-awards--compact .spf-awards__label {
    font-size:.75rem; font-weight:700; text-transform:uppercase;
    letter-spacing:.06em; color:var(--gray);
    display:flex; align-items:center; gap:6px; margin-bottom:8px;
}
.spf-awards--compact .spf-awards__label i { color:var(--yellow); }
.spf-awards--compact .spf-awards__grid { gap:8px; }
.spf-awards--compact .spf-award-card { padding:10px 14px; border-radius:8px; }
.spf-awards--compact .spf-award-card__label { font-size:.7rem; }
.spf-awards--compact .spf-award-card__name  { font-size:.88rem; }
.spf-awards__heading {
    font-size:1.2rem; font-weight:700; color:var(--dark);
    display:flex; align-items:center; gap:10px; margin-bottom:24px;
}
.spf-awards__heading i { color:var(--yellow); }

.spf-awards__grid {
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:16px;
}
.spf-award-card {
    display:flex; align-items:center; gap:16px;
    border-radius:12px; padding:18px 20px;
}
.spf-award-card--yellow {
    background:rgba(234,179,8,.1); border:1.5px solid rgba(234,179,8,.35);
}
.spf-award-card--navy {
    background:var(--primary-light); border:1.5px solid rgba(13,40,104,.15);
}
.spf-award-card__icon {
    width:46px; height:46px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:1.2rem; flex-shrink:0;
}
.spf-award-card--yellow .spf-award-card__icon { background:var(--yellow); color:#fff; }
.spf-award-card--navy   .spf-award-card__icon { background:var(--primary); color:#fff; }
.spf-award-card__body { display:flex; flex-direction:column; gap:3px; }
.spf-award-card__label { font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; color:var(--gray); font-weight:600; }
.spf-award-card__name  { font-size:1rem; font-weight:700; color:var(--dark); }
@media(max-width:600px) { .spf-awards__grid { grid-template-columns:1fr; } }

/* ── YOUTUBE EMBED ──────────────────────────────────────────── */
.spf-video {
    margin-top:44px; padding-top:36px;
    border-top:2px solid var(--border);
}
.spf-video__heading {
    font-size:1.2rem; font-weight:700; color:var(--dark);
    display:flex; align-items:center; gap:10px; margin-bottom:20px;
}
.spf-video__heading i { color:#ff0000; }
.spf-video__wrap {
    position:relative; padding-bottom:56.25%; /* 16:9 */
    height:0; border-radius:14px; overflow:hidden;
    background:#000;
}
.spf-video__wrap iframe {
    position:absolute; top:0; left:0;
    width:100%; height:100%; border:none;
}
.spf-video__yt-link {
    display:inline-flex; align-items:center; gap:8px;
    margin-top:14px; font-size:.88rem; font-weight:700;
    color:#ff0000; text-decoration:none;
    transition:opacity .2s;
}
.spf-video__yt-link:hover { opacity:.75; }

/* YouTube shortcut in sidebar */
.spf-yt-sidebar {
    display:flex; align-items:center; gap:12px;
    background:#ff0000; color:#fff; border-radius:12px;
    padding:16px 18px; text-decoration:none; font-weight:700;
    font-size:.9rem; transition:opacity .2s;
}
.spf-yt-sidebar:hover { opacity:.88; }
.spf-yt-sidebar__icon { font-size:1.6rem; flex-shrink:0; }
.spf-yt-sidebar__arrow { margin-left:auto; font-size:.8rem; }

/* Updated sport post cards — show date + location below title */
.sp-post-card__meta {
    display:flex; flex-wrap:wrap; gap:10px;
    font-size:.78rem; color:var(--gray); margin-bottom:6px;
}
.sp-post-card__meta span { display:inline-flex; align-items:center; gap:4px; }

.ip-accent-strip { background:var(--hero-bg); padding:60px 0; }
.ip-accent-strip__inner { display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap; }
.ip-accent-strip__text h2 { color:#fff; font-size:clamp(1.4rem,2.5vw,2rem); margin-bottom:8px; }
.ip-accent-strip__text p  { color:rgba(255,255,255,.65); }
.ip-accent-strip__btns { display:flex; gap:14px; flex-wrap:wrap; }

.ip-photo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:20px; }
.ip-photo-grid__item { border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:4/3; }
.ip-photo-grid__item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.ip-photo-grid__item:hover img { transform:scale(1.06); }

/* ── PROJECTS PAGE ──────────────────────────────────────────── */
.ip-filter-pills { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px; }
.ip-filter-pill {
    padding:9px 22px; border-radius:var(--radius-pill);
    border:2px solid var(--gray-border); background:#fff;
    font-size:.85rem; font-weight:600; color:var(--gray);
    cursor:pointer; transition:all var(--transition);
}
.ip-filter-pill.active,
.ip-filter-pill:hover { background:var(--primary); color:#fff; border-color:var(--primary); }

.ip-projects-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.ip-project-card { background:#fff; border-radius:var(--radius-lg); overflow:hidden; box-shadow:0 4px 24px rgba(0,0,0,.07); transition:transform var(--transition),box-shadow var(--transition); }
.ip-project-card:hover { transform:translateY(-6px); box-shadow:0 12px 36px rgba(0,0,0,.12); }
.ip-project-card__img-wrap { position:relative; aspect-ratio:16/10; overflow:hidden; }
.ip-project-card__img { width:100%; height:100%; object-fit:cover; display:block; filter:grayscale(.3); transition:filter .4s,transform .4s; }
.ip-project-card:hover .ip-project-card__img { filter:grayscale(0); transform:scale(1.04); }
.ip-project-card__status {
    position:absolute; top:12px; left:12px;
    font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em;
    padding:5px 12px; border-radius:20px;
}
.ip-project-card__status--green  { background:#D1FAE5; color:#065F46; }
.ip-project-card__status--navy   { background:var(--primary-light); color:var(--primary); }
.ip-project-card__status--yellow { background:rgba(200,212,0,.2); color:var(--yellow-dark); }
.ip-project-card__cat {
    position:absolute; bottom:12px; right:12px;
    background:var(--primary); color:#fff;
    font-size:.7rem; font-weight:700; padding:4px 10px; border-radius:20px;
}
.ip-project-card__body { padding:20px 22px 24px; }
.ip-project-card__body h3 { font-size:1rem; font-weight:700; color:var(--dark); margin-bottom:8px; line-height:1.4; }
.ip-project-card__body > p { font-size:.83rem; color:var(--gray); line-height:1.65; margin-bottom:16px; }
.ip-project-card__progress { margin-bottom:16px; }
.ip-project-card__prog-top { display:flex; justify-content:space-between; font-size:.76rem; color:var(--gray); font-weight:600; margin-bottom:6px; }
.ip-project-card__prog-bar { height:8px; background:var(--gray-border); border-radius:var(--radius-pill); overflow:hidden; }
.ip-project-card__prog-fill { height:100%; background:linear-gradient(to right,var(--yellow),var(--yellow-dark)); border-radius:var(--radius-pill); }
.ip-project-card__btn {
    display:block; text-align:center; background:var(--hero-bg); color:#fff;
    border-radius:var(--radius-pill); padding:10px 20px;
    font-size:.85rem; font-weight:700; transition:background var(--transition);
}
.ip-project-card__btn:hover { background:var(--primary); color:#fff; }

/* ── ENTERTAINMENT PAGE ─────────────────────────────────────── */
.ip-feat-event {
    display:grid; grid-template-columns:1fr 1fr; gap:56px;
    align-items:center; margin-bottom:64px;
    background:var(--gray-light); border-radius:var(--radius-lg);
    overflow:hidden;
}
.ip-feat-event__img-wrap { position:relative; aspect-ratio:4/3; overflow:hidden; }
.ip-feat-event__img { width:100%; height:100%; object-fit:cover; display:block; }
.ip-feat-event__badge {
    position:absolute; top:16px; left:16px;
    background:var(--yellow); color:var(--dark);
    font-size:.72rem; font-weight:800; padding:6px 14px; border-radius:20px;
}
.ip-feat-event__body { padding:40px 40px 40px 0; }
.ip-feat-event__cat {
    display:inline-flex; align-items:center; gap:6px;
    background:var(--primary-light); color:var(--primary);
    font-size:.75rem; font-weight:700; padding:5px 12px;
    border-radius:20px; margin-bottom:14px;
}
.ip-feat-event__body h2 { font-size:clamp(1.4rem,2.5vw,2rem); color:var(--dark); margin-bottom:14px; }
.ip-feat-event__body > p { font-size:.9rem; color:var(--gray); line-height:1.8; margin-bottom:20px; }
.ip-feat-event__meta { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:24px; }
.ip-feat-event__meta span { display:flex; align-items:center; gap:6px; font-size:.82rem; color:var(--gray); font-weight:600; }
.ip-feat-event__meta i { color:var(--primary); }

.btn-outline { background:transparent; color:var(--primary); border:2px solid var(--primary); padding:12px 24px; border-radius:var(--radius-pill); font-weight:700; font-size:.9rem; cursor:pointer; display:inline-flex; align-items:center; gap:8px; transition:all var(--transition); }
.btn-outline:hover { background:var(--primary); color:#fff; }
.ip-feat-event__img-wrap { display:block; text-decoration:none; }
.ip-event-card__img-wrap { display:block; text-decoration:none; }
.ip-grid-heading { font-size:1.4rem; font-weight:800; color:var(--dark); margin-bottom:28px; padding-bottom:14px; border-bottom:3px solid var(--primary-light); }

.ip-events-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.ip-event-card { background:#fff; border-radius:var(--radius-lg); overflow:hidden; box-shadow:0 4px 20px rgba(0,0,0,.07); transition:transform var(--transition),box-shadow var(--transition); }
.ip-event-card:hover { transform:translateY(-5px); box-shadow:0 12px 36px rgba(0,0,0,.12); }
.ip-event-card__img-wrap { position:relative; aspect-ratio:16/10; overflow:hidden; }
.ip-event-card__img { width:100%; height:100%; object-fit:cover; display:block; filter:grayscale(.2); transition:filter .4s,transform .4s; }
.ip-event-card:hover .ip-event-card__img { filter:grayscale(0); transform:scale(1.05); }
.ip-event-card__cat { position:absolute; bottom:10px; left:12px; background:var(--primary); color:#fff; font-size:.7rem; font-weight:700; padding:4px 10px; border-radius:20px; }
.ip-event-card__body { padding:18px 20px 20px; }
.ip-event-card__date { font-size:.78rem; color:var(--primary); font-weight:700; margin-bottom:8px; display:flex; align-items:center; gap:6px; }
.ip-event-card__body h4 { font-size:.95rem; font-weight:700; color:var(--dark); margin-bottom:8px; line-height:1.4; }
.ip-event-card__body > p { font-size:.82rem; color:var(--gray); line-height:1.65; margin-bottom:14px; }
.ip-event-card__footer { display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--gray-border); padding-top:12px; font-size:.8rem; }
.ip-event-card__footer span { color:var(--gray); display:flex; align-items:center; gap:5px; }
.ip-event-card__footer a { color:var(--primary); font-weight:700; display:flex; align-items:center; gap:5px; transition:gap var(--transition); }
.ip-event-card__footer a:hover { gap:9px; }

/* ── INTERVIEWS PAGE ────────────────────────────────────────── */
.ip-feat-interview {
    display:grid; grid-template-columns:1fr 1fr; gap:56px;
    align-items:center; margin-bottom:64px;
    border-radius:var(--radius-lg); overflow:hidden;
    background:var(--hero-bg);
}
.ip-feat-interview__img-wrap { position:relative; aspect-ratio:4/3; overflow:hidden; }
.ip-feat-interview__img { width:100%; height:100%; object-fit:cover; display:block; filter:grayscale(.3); }
.ip-feat-interview__play {
    position:absolute; top:50%; left:50%;
    transform:translate(-50%,-50%);
    width:68px; height:68px; border-radius:50%;
    background:var(--yellow); color:var(--dark);
    display:flex; align-items:center; justify-content:center;
    font-size:1.1rem; cursor:pointer; z-index:2;
    transition:transform var(--transition), box-shadow var(--transition);
    box-shadow:0 0 0 10px rgba(200,212,0,.25);
}
.ip-feat-interview__play:hover { transform:translate(-50%,-50%) scale(1.1); }
.ip-feat-interview__type-badge {
    position:absolute; top:14px; left:14px;
    background:var(--yellow); color:var(--dark);
    font-size:.72rem; font-weight:800; padding:5px 12px; border-radius:20px;
    display:flex; align-items:center; gap:5px;
}
.ip-feat-interview__body { padding:40px 40px 40px 0; }
.ip-feat-interview__cat { display:block; font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--yellow); margin-bottom:12px; }
.ip-feat-interview__body h2 { font-size:clamp(1.3rem,2.2vw,1.8rem); color:#fff; margin-bottom:16px; line-height:1.3; }
.ip-feat-interview__quote { font-size:.93rem; color:rgba(255,255,255,.8); line-height:1.85; font-style:italic; margin-bottom:24px; }
.ip-feat-interview__person { display:flex; align-items:center; gap:14px; }
.ip-feat-interview__avatar { width:52px; height:52px; border-radius:50%; object-fit:cover; border:3px solid var(--yellow); }
.ip-feat-interview__person strong { display:block; font-size:.95rem; font-weight:700; color:#fff; }
.ip-feat-interview__person span   { font-size:.75rem; color:rgba(255,255,255,.6); }

.ip-interviews-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.ip-interview-card {
    background:#fff; border-radius:var(--radius-lg);
    box-shadow:0 4px 20px rgba(0,0,0,.07);
    overflow:hidden; display:flex; flex-direction:column;
    transition:transform var(--transition), box-shadow var(--transition);
}
.ip-interview-card:hover { transform:translateY(-5px); box-shadow:0 12px 36px rgba(0,0,0,.12); }
.ip-interview-card__top { position:relative; }
.ip-interview-card__avatar { width:100%; aspect-ratio:1/1; object-fit:cover; object-position:top; display:block; filter:grayscale(.2); transition:filter .4s; }
.ip-interview-card:hover .ip-interview-card__avatar { filter:grayscale(0); }
.ip-interview-card__type {
    position:absolute; top:12px; right:12px;
    font-size:.7rem; font-weight:700; padding:4px 10px;
    border-radius:20px; display:flex; align-items:center; gap:5px;
}
.ip-interview-card__type--video   { background:var(--primary); color:#fff; }
.ip-interview-card__type--written { background:var(--yellow); color:var(--dark); }
.ip-interview-card__body { padding:20px 20px 10px; flex:1; }
.ip-interview-card__body h4 { font-size:.95rem; font-weight:700; color:var(--dark); margin-bottom:10px; line-height:1.4; }
.ip-interview-card__quote { font-size:.83rem; color:var(--gray); line-height:1.7; font-style:italic; margin:0 0 14px; border-left:3px solid var(--yellow); padding-left:12px; }
.ip-interview-card__person strong { display:block; font-size:.87rem; font-weight:700; color:var(--dark); }
.ip-interview-card__person span   { font-size:.75rem; color:var(--gray); }
.ip-interview-card__link {
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 20px; border-top:1px solid var(--gray-border);
    font-size:.82rem; font-weight:700; color:var(--primary);
    text-decoration:none; transition:background var(--transition);
}
.ip-interview-card__link:hover { background:var(--primary-light); }

/* ── RESPONSIVE ─────────────────────────────────────────────── */
@media(max-width:1024px) {
    .ip-sports-grid    { grid-template-columns:repeat(2,1fr); }
    .ip-projects-grid  { grid-template-columns:repeat(2,1fr); }
    .ip-events-grid    { grid-template-columns:repeat(2,1fr); }
    .ip-interviews-grid{ grid-template-columns:repeat(2,1fr); }
    .ip-mvv-grid       { grid-template-columns:repeat(3,1fr); }
}
@media(max-width:768px) {
    .ip-split          { grid-template-columns:1fr; gap:40px; }
    .ip-mvv-grid       { grid-template-columns:1fr; }
    .ip-sports-grid    { grid-template-columns:1fr; }
    .ip-projects-grid  { grid-template-columns:1fr; }
    .ip-photo-grid     { grid-template-columns:repeat(2,1fr); }
    .ip-feat-event     { grid-template-columns:1fr; }
    .ip-feat-event__body { padding:28px; }
    .ip-events-grid    { grid-template-columns:1fr; }
    .ip-feat-interview { grid-template-columns:1fr; }
    .ip-feat-interview__body { padding:28px; }
    .ip-interviews-grid{ grid-template-columns:1fr; }
    .ip-accent-strip__inner { flex-direction:column; text-align:center; }
    .ip-stats-row      { gap:20px; }
    .ip-stat           { padding:0 20px; }
}
@media(max-width:480px) {
    .ip-photo-grid { grid-template-columns:1fr; }
}

/* ── SCROLL REVEAL ──────────────────────────────────────────── */
[data-aos] { opacity:0; transform:translateY(28px); transition:opacity .6s ease, transform .6s ease; }
[data-aos].aos-animate { opacity:1; transform:none; }
[data-aos="fade-right"] { transform:translateX(-28px); }
[data-aos="fade-left"]  { transform:translateX(28px); }
[data-aos="fade-right"].aos-animate,[data-aos="fade-left"].aos-animate { transform:none; }

/* ── FOUNDER SECTION — Magazine Chapter Format ──────────────── */
.founder-section {
    background:var(--primary);
    position:relative;
    padding:80px 0 0;
}
/* top tear from previous section */
.founder-section::before {
    content:'';
    position:absolute;
    top:-1px; left:0; right:0;
    height:50px;
    background:#f8f9fb;
    clip-path:ellipse(55% 100% at 50% 0%);
}
/* bottom wave separator into next section */
.founder-section::after {
    content:'';
    display:block;
    height:70px;
    background:#fff;
    clip-path:ellipse(55% 100% at 50% 100%);
    margin-top:60px;
}

.fdr-wrap {
    display:grid;
    grid-template-columns:300px 1fr;
    width:100%;
    max-width:1160px;
    margin:0 auto;
    padding:0 40px;
    gap:56px;
    align-items:start;
}

/* ── Photo frame ── */
.fdr-photo-frame {
    position:relative;
    border-radius:20px;
    overflow:visible;
    margin-bottom:24px;
}
.fdr-photo {
    width:100%;
    aspect-ratio:3/4;
    object-fit:cover;
    object-position:top;
    border-radius:20px;
    display:block;
    box-shadow:0 24px 60px rgba(0,0,0,.45);
    border:3px solid var(--yellow);
}
.fdr-photo-badge {
    position:absolute;
    bottom:-16px;
    left:50%;
    transform:translateX(-50%);
    background:var(--yellow);
    color:var(--dark);
    font-size:.78rem;
    font-weight:800;
    padding:8px 18px;
    border-radius:50px;
    white-space:nowrap;
    box-shadow:0 6px 20px rgba(0,0,0,.25);
}
.fdr-photo-badge i { margin-right:5px; }

/* identity panel */
.fdr-identity__eyebrow {
    font-size:.7rem;
    font-weight:700;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--yellow);
    display:flex;
    align-items:center;
    gap:7px;
    margin-bottom:20px;
}
.fdr-identity__name {
    font-size:1.5rem;
    font-weight:800;
    color:#fff;
    line-height:1.2;
    margin-bottom:4px;
    margin-top:28px;
}
.fdr-identity__aka {
    font-size:.82rem;
    color:rgba(255,255,255,.55);
    font-weight:500;
    margin-bottom:20px;
}

.fdr-identity__pills {
    display:flex;
    flex-direction:column;
    gap:8px;
    margin-bottom:28px;
}
.fdr-identity__pills span {
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:rgba(255,255,255,.75);
    font-size:.8rem;
    font-weight:500;
    background:rgba(255,255,255,.07);
    padding:6px 12px;
    border-radius:8px;
}
.fdr-identity__pills span i { color:var(--yellow); width:14px; text-align:center; }

.fdr-dots {
    display:flex;
    gap:10px;
    align-items:center;
}
.fdr-dot {
    width:10px;
    height:10px;
    border-radius:50%;
    background:rgba(255,255,255,.2);
    border:none;
    cursor:pointer;
    transition:background .25s, transform .25s;
    padding:0;
}
.fdr-dot--active { background:var(--yellow); transform:scale(1.4); }

/* chapter reader */
.fdr-reader {
    background:rgba(255,255,255,.07);
    backdrop-filter:blur(10px);
    border:1px solid rgba(255,255,255,.1);
    border-radius:20px;
    padding:44px 40px;
    margin-top:8px;
}

.fdr-chapters { position:relative; min-height:240px; }

.fdr-chapter { display:none; animation:fdr-slide-in .4s ease; }
.fdr-chapter--active { display:block; }

@keyframes fdr-slide-in {
    from { opacity:0; transform:translateY(14px); }
    to   { opacity:1; transform:translateY(0); }
}

.fdr-chapter__num {
    font-size:.68rem;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--yellow);
    display:block;
    margin-bottom:12px;
}
.fdr-chapter__title {
    font-size:1.45rem;
    font-weight:800;
    color:#fff;
    margin-bottom:16px;
    display:flex;
    align-items:center;
    gap:10px;
}
.fdr-chapter__title i { color:var(--yellow); font-size:1rem; }
.fdr-chapter p { color:rgba(255,255,255,.78); line-height:1.9; font-size:.96rem; }
.fdr-chapter p strong { color:#fff; }
.fdr-chapter p em { color:var(--yellow); font-style:normal; font-weight:600; }

.fdr-nav {
    display:flex;
    align-items:center;
    gap:14px;
    margin-top:32px;
    padding-top:24px;
    border-top:1px solid rgba(255,255,255,.1);
}
.fdr-nav__btn {
    display:inline-flex;
    align-items:center;
    gap:8px;
    border:1.5px solid rgba(255,255,255,.25);
    background:transparent;
    color:#fff;
    border-radius:50px;
    padding:10px 22px;
    font-size:.87rem;
    font-weight:600;
    cursor:pointer;
    transition:background .2s, border-color .2s, color .2s;
}
.fdr-nav__btn:hover:not(:disabled) { background:var(--yellow); border-color:var(--yellow); color:var(--dark); }
.fdr-nav__btn:disabled { opacity:.3; cursor:default; }
.fdr-nav__btn--next { background:var(--yellow); border-color:var(--yellow); color:var(--dark); }
.fdr-nav__btn--next:hover:not(:disabled) { background:#f0c000; }

@media(max-width:960px) {
    .fdr-wrap { grid-template-columns:1fr; padding:0 24px; gap:32px; }
    .fdr-photo { aspect-ratio:4/3; max-height:340px; }
    .fdr-identity__name { font-size:1.4rem; margin-top:32px; }
    .fdr-identity__pills { flex-direction:row; flex-wrap:wrap; }
    .fdr-reader { padding:28px 20px; }
}
@media(max-width:560px) {
    .founder-section { padding:60px 0 0; }
    .fdr-chapter__title { font-size:1.2rem; }
}

/* ── FAQ SECTION ────────────────────────────────────────────── */
:root { --faq-teal: #2B2D7E; }

.faq { padding:0; overflow:hidden; }

.faq__layout {
    display:grid;
    grid-template-columns:55fr 45fr;
    min-height:580px;
}

/* ── LEFT column ── */
.faq__left {
    padding:80px 60px 80px 0;
    padding-left:max(24px, calc((100vw - 1200px) / 2));
}

.faq__title { font-size:2.2rem; line-height:1.2; margin:0 0 14px; }
.faq__intro  { color:var(--gray); margin-bottom:36px; max-width:480px; }

/* Accordion */
.faq__accordion { display:flex; flex-direction:column; gap:12px; }

.faq__item {
    border:1.5px solid var(--gray-border);
    border-radius:10px;
    overflow:hidden;
    transition:border-color .25s, box-shadow .25s;
    background:var(--white);
}
.faq__item.is-open {
    border-color:var(--yellow);
    box-shadow:0 4px 20px rgba(234,179,8,.12);
}

.faq__question {
    width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
    padding:18px 20px;
    background:none; border:none; cursor:pointer;
    font-size:.95rem; font-weight:700; color:var(--dark);
    text-align:left; line-height:1.4;
    transition:color .2s;
}
.faq__question:hover { color:var(--faq-teal); }
.faq__item.is-open .faq__question { color:var(--faq-teal); }

.faq__chevron {
    font-size:.8rem; flex-shrink:0; color:var(--gray);
    transition:transform .3s ease, color .2s;
}
.faq__item.is-open .faq__chevron {
    transform:rotate(90deg);
    color:var(--yellow);
}

.faq__answer {
    padding:0 20px 18px;
    color:var(--gray);
    font-size:.9rem;
    line-height:1.7;
    animation:faqOpen .25s ease;
}
.faq__answer[hidden] { display:none; }

@keyframes faqOpen {
    from { opacity:0; transform:translateY(-6px); }
    to   { opacity:1; transform:none; }
}

/* ── RIGHT column ── */
.faq__right {
    position:relative;
    background:var(--faq-teal);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:60px 40px;
    overflow:hidden;
}

/* Wavy SVG on left edge */
.faq__wave {
    position:absolute;
    left:0; top:0;
    width:60px; height:100%;
    z-index:2;
}

/* Photos container */
.faq__photos-wrap {
    position:relative;
    width:340px; height:400px;
    flex-shrink:0;
}

.faq__photo {
    position:absolute;
    border-radius:14px;
    overflow:hidden;
    border:5px solid var(--white);
    box-shadow:0 12px 40px rgba(0,0,0,.25);
}
.faq__photo img { width:100%; height:100%; object-fit:cover; display:block; }

.faq__photo--back {
    width:260px; height:300px;
    top:0; left:0;
    z-index:1;
}
.faq__photo--front {
    width:200px; height:220px;
    bottom:0; right:0;
    z-index:2;
}

/* Yellow vertical accent bar */
.faq__accent-bar {
    position:absolute;
    bottom:30px; right:-10px;
    width:18px; height:110px;
    background:var(--yellow);
    border-radius:10px;
    z-index:3;
}

/* ── FAQ RESPONSIVE ──────────────────────────────────────────── */
@media (max-width:960px) {
    .faq__layout { grid-template-columns:1fr; }
    .faq__left { padding:60px 24px; }
    .faq__right { padding:50px 24px; min-height:320px; }
    .faq__photos-wrap { width:280px; height:320px; }
    .faq__photo--back  { width:210px; height:240px; }
    .faq__photo--front { width:165px; height:180px; }
}
@media (max-width:480px) {
    .faq__photos-wrap { width:240px; height:280px; }
    .faq__photo--back  { width:180px; height:210px; }
    .faq__photo--front { width:140px; height:155px; }
    .faq__title { font-size:1.7rem; }
}

/* ── FAQs PAGE (page-faqs.php) ──────────────────────────────── */
.faqp { padding:70px 0; }

.faqp__layout {
    display:grid;
    grid-template-columns:1fr 300px;
    gap:40px;
    align-items:start;
}

/* Accordion column */
.faqp__accordion { display:flex; flex-direction:column; gap:14px; }

.faqp__item {
    background:var(--white);
    border:1.5px solid var(--gray-border);
    border-radius:12px;
    overflow:hidden;
    transition:border-color .25s, box-shadow .25s;
}
.faqp__item.is-open {
    border-color:var(--yellow);
    box-shadow:0 6px 24px rgba(234,179,8,.13);
}

.faqp__question {
    width:100%; display:flex; align-items:center; justify-content:space-between; gap:14px;
    padding:20px 22px;
    background:none; border:none; cursor:pointer;
    font-size:1rem; font-weight:700; color:var(--dark);
    text-align:left; line-height:1.45;
    transition:color .2s;
}
.faqp__question:hover { color:var(--faq-teal); }
.faqp__item.is-open .faqp__question { color:var(--faq-teal); }

.faqp__q-inner { display:flex; align-items:center; gap:12px; }

.faqp__icon {
    width:38px; height:38px; border-radius:50%; flex-shrink:0;
    background:var(--yellow-light); color:var(--yellow-dark);
    display:flex; align-items:center; justify-content:center;
    font-size:.85rem; transition:background .2s, color .2s;
}
.faqp__item.is-open .faqp__icon { background:var(--yellow); color:var(--dark); }

.faqp__chevron {
    font-size:.8rem; flex-shrink:0; color:var(--gray);
    transition:transform .3s ease, color .2s;
}
.faqp__item.is-open .faqp__chevron { transform:rotate(180deg); color:var(--yellow-dark); }

.faqp__answer {
    padding:0 22px 20px 72px;
    color:var(--gray); font-size:.92rem; line-height:1.75;
    animation:faqOpen .25s ease;
}
.faqp__answer[hidden] { display:none; }

/* Sidebar */
.faqp__sidebar { display:flex; flex-direction:column; gap:20px; position:sticky; top:110px; }

.faqp__contact-card {
    background:var(--faq-teal); color:var(--white);
    border-radius:16px; padding:32px 26px; text-align:center;
}
.faqp__contact-icon {
    width:64px; height:64px; border-radius:50%;
    background:rgba(255,255,255,.15);
    display:flex; align-items:center; justify-content:center;
    font-size:1.6rem; margin:0 auto 18px; color:var(--yellow);
}
.faqp__contact-card h3 { color:var(--white); margin:0 0 10px; font-size:1.15rem; }
.faqp__contact-card p  { color:rgba(255,255,255,.75); font-size:.88rem; margin-bottom:18px; line-height:1.6; }

.faqp__donate-card {
    background:var(--dark); color:var(--white);
    border-radius:16px; padding:28px 24px; text-align:center;
}
.faqp__donate-card h4 { color:var(--white); margin:0 0 10px; font-size:1rem; }
.faqp__donate-card p  { color:rgba(255,255,255,.65); font-size:.85rem; margin-bottom:18px; line-height:1.6; }

/* Testimonials grid */
.faqp-testi__grid {
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:24px;
}

.faqp-testi__card {
    background:var(--white);
    border-radius:16px;
    padding:28px 24px;
    box-shadow:var(--shadow);
    display:flex; flex-direction:column; gap:14px;
    transition:transform .3s ease, box-shadow .3s;
}
.faqp-testi__card:hover { transform:translateY(-5px); box-shadow:0 12px 36px rgba(0,0,0,.1); }

.faqp-testi__stars { display:flex; gap:4px; color:var(--yellow); font-size:.9rem; }
.faqp-testi__stars .fa-regular { color:var(--gray-border); }

.faqp-testi__text {
    color:var(--gray); font-size:.9rem; line-height:1.75;
    flex:1; font-style:italic;
    position:relative; padding-top:8px;
}
.faqp-testi__text::before {
    content:'\201C';
    font-size:3rem; line-height:1; color:var(--yellow);
    position:absolute; top:-10px; left:-4px;
    font-family:Georgia, serif;
}

.faqp-testi__author { display:flex; align-items:center; gap:12px; border-top:1px solid var(--gray-border); padding-top:14px; }

.faqp-testi__avatar {
    width:48px; height:48px; border-radius:50%; object-fit:cover;
    border:2px solid var(--yellow); flex-shrink:0;
}
.faqp-testi__avatar--placeholder {
    background:var(--gray-light); color:var(--gray);
    display:flex; align-items:center; justify-content:center;
    font-size:1.1rem;
}

.faqp-testi__name  { display:block; font-size:.9rem; font-weight:700; color:var(--dark); }
.faqp-testi__role  { display:block; font-size:.75rem; color:var(--primary); font-weight:600; text-transform:uppercase; letter-spacing:.04em; margin-top:2px; }

/* Responsive FAQs page */
@media (max-width:900px) {
    .faqp__layout       { grid-template-columns:1fr; }
    .faqp__sidebar      { position:static; }
    .faqp-testi__grid   { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px) {
    .faqp-testi__grid   { grid-template-columns:1fr; }
    .faqp__answer       { padding-left:22px; }
}

/* ═══════════════════════════════════════════════════════════════
   CONTACT PAGE
   ═══════════════════════════════════════════════════════════════ */

/* ── Banner ─────────────────────────────────────────────────── */
.contact-banner {
    position:relative; min-height:420px;
    display:flex; align-items:center;
    overflow:hidden;
}
.contact-banner__bg {
    position:absolute; inset:0;
    background-size:cover; background-position:center;
    filter:brightness(.5);
    z-index:0;
}
.contact-banner__overlay {
    position:absolute; inset:0;
    background:linear-gradient(to right, rgba(28,30,107,.90) 0%, rgba(28,30,107,.55) 60%, rgba(0,0,0,.3) 100%);
    z-index:1;
}
.contact-banner__brush {
    position:absolute; left:0; top:0; bottom:0;
    width:140px; z-index:2; pointer-events:none;
}
.contact-banner__brush svg { width:100%; height:100%; }
.contact-banner__inner {
    position:relative; z-index:3;
    padding:120px 0 110px;
}
.contact-banner__eyebrow {
    font-family:var(--font-script); font-size:1.1rem; font-weight:600;
    color:var(--yellow); margin-bottom:14px;
    display:flex; align-items:center; gap:8px;
}
.contact-banner__title {
    font-size:clamp(2.4rem,6vw,4rem); font-weight:800;
    color:#fff; line-height:1.1; margin-bottom:18px;
}
.contact-banner__tear {
    position:absolute; bottom:-1px; left:0; right:0;
    z-index:4; line-height:0;
}
.contact-banner__tear svg { width:100%; display:block; height:80px; }

/* ── Info Cards ─────────────────────────────────────────────── */
.contact-cards__grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:24px;
    margin-bottom:-60px;
    position:relative; z-index:2;
}
.contact-card {
    background:#fff;
    border-radius:var(--radius-lg);
    padding:36px 28px 32px;
    text-align:center;
    box-shadow:var(--shadow);
    transition:transform var(--transition), box-shadow var(--transition);
    border-bottom:4px solid transparent;
}
.contact-card:hover {
    transform:translateY(-6px);
    box-shadow:var(--shadow-lg);
    border-bottom-color:var(--yellow);
}
.contact-card__icon {
    width:64px; height:64px; border-radius:50%;
    background:var(--primary-light);
    display:flex; align-items:center; justify-content:center;
    margin:0 auto 18px;
    font-size:1.4rem; color:var(--primary);
    transition:background var(--transition), color var(--transition);
}
.contact-card:hover .contact-card__icon {
    background:var(--yellow);
    color:var(--dark);
}
.contact-card h4 {
    font-size:1.05rem; font-weight:700;
    color:var(--dark); margin-bottom:10px;
}
.contact-card p {
    font-size:.88rem; color:var(--gray);
    line-height:1.6; margin-bottom:14px;
}
.contact-card__link {
    font-size:.85rem; font-weight:600;
    color:var(--primary);
    display:inline-flex; align-items:center; gap:6px;
    transition:color var(--transition);
}
.contact-card__link:hover { color:var(--yellow-dark); }

/* ── Main Grid (Form + Aside) ───────────────────────────────── */
.contact-main__grid {
    display:grid;
    grid-template-columns:1fr 420px;
    gap:60px;
    align-items:start;
    padding-top:80px;
}

/* ── Form Wrap ──────────────────────────────────────────────── */
.contact-form-wrap__title {
    font-size:clamp(1.7rem,3vw,2.2rem);
    color:var(--dark); margin-bottom:12px;
}
.contact-form-wrap__sub {
    font-size:.95rem; color:var(--gray);
    margin-bottom:36px; line-height:1.75;
}

/* ── Form ───────────────────────────────────────────────────── */
.contact-form { display:flex; flex-direction:column; gap:20px; }
.contact-form__row {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
}
.contact-form__field { display:flex; flex-direction:column; gap:8px; }
.contact-form__field--full { grid-column:1/-1; }
.contact-form__field label {
    font-size:.85rem; font-weight:600;
    color:var(--dark); letter-spacing:.02em;
}
.contact-form__field label span { color:#e74c3c; margin-left:2px; }
.contact-form__input-wrap {
    position:relative;
}
.contact-form__input-wrap > i {
    position:absolute; left:16px; top:50%;
    transform:translateY(-50%);
    color:var(--gray); font-size:.9rem;
    pointer-events:none;
}
.contact-form__input-wrap--textarea > i {
    top:16px; transform:none;
}
.contact-form__input-wrap input,
.contact-form__input-wrap select,
.contact-form__input-wrap textarea {
    width:100%;
    padding:14px 16px 14px 44px;
    border:2px solid var(--gray-border);
    border-radius:var(--radius);
    font-size:.93rem;
    color:var(--dark);
    background:#fff;
    transition:border-color var(--transition), box-shadow var(--transition);
}
.contact-form__input-wrap textarea { resize:vertical; padding-top:14px; }
.contact-form__input-wrap input:focus,
.contact-form__input-wrap select:focus,
.contact-form__input-wrap textarea:focus {
    border-color:var(--primary);
    box-shadow:0 0 0 4px rgba(43,45,126,.08);
    outline:none;
}
.contact-form__input-wrap select { appearance:none; cursor:pointer; }
.contact-form__submit { margin-top:8px; align-self:flex-start; }
.contact-form__feedback { display:none; margin-top:12px; }
.cf-input-error {
    border-color: #e74c3c !important;
    box-shadow: 0 0 0 4px rgba(231,76,60,.1) !important;
}
.cf-error {
    display: block;
    font-size: .8rem;
    color: #e74c3c;
    margin-top: 5px;
    font-weight: 500;
}
.contact-form__success {
    display:flex; align-items:center; gap:10px;
    background:#ecfdf5; border:1px solid #6ee7b7;
    color:#065f46; border-radius:var(--radius);
    padding:14px 18px; font-size:.92rem; font-weight:500;
}
.contact-form__success i { font-size:1.1rem; flex-shrink:0; }

/* ── Aside ──────────────────────────────────────────────────── */
.contact-aside { display:flex; flex-direction:column; gap:28px; }

.contact-map {
    border-radius:var(--radius-lg);
    overflow:hidden;
    box-shadow:var(--shadow);
}
.contact-map iframe { display:block; }

.contact-aside__social {
    background:#fff;
    border-radius:var(--radius-lg);
    padding:28px;
    box-shadow:var(--shadow);
}
.contact-aside__social h4 {
    font-size:1rem; font-weight:700;
    color:var(--dark); margin-bottom:16px;
}
.contact-social-links { display:flex; flex-direction:column; gap:12px; }
.contact-social-btn {
    display:flex; align-items:center; gap:14px;
    padding:12px 16px;
    border-radius:var(--radius);
    background:var(--primary-light);
    color:var(--primary);
    font-size:.88rem; font-weight:600;
    transition:background var(--transition), color var(--transition);
}
.contact-social-btn i { font-size:1rem; width:18px; text-align:center; }
.contact-social-btn:hover { background:var(--primary); color:#fff; }

.contact-aside__cta {
    background:var(--hero-bg);
    border-radius:var(--radius-lg);
    padding:32px 28px;
    text-align:center;
    box-shadow:var(--shadow);
}
.contact-aside__cta > i {
    font-size:2rem; color:var(--yellow);
    margin-bottom:14px; display:block;
}
.contact-aside__cta h4 {
    font-size:1.1rem; color:#fff; margin-bottom:10px;
}
.contact-aside__cta p {
    font-size:.88rem; color:rgba(255,255,255,.7);
    margin-bottom:20px; line-height:1.6;
}
.contact-aside__cta .btn { width:100%; justify-content:center; }

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width:1024px) {
    .contact-cards__grid { grid-template-columns:repeat(2,1fr); }
    .contact-main__grid  { grid-template-columns:1fr; }
    .contact-aside       { flex-direction:row; flex-wrap:wrap; }
    .contact-map         { flex:1 1 100%; }
    .contact-aside__social, .contact-aside__cta { flex:1 1 calc(50% - 14px); }
}
@media (max-width:768px) {
    .contact-form__row   { grid-template-columns:1fr; }
    .contact-cards__grid { grid-template-columns:1fr 1fr; gap:16px; }
    .contact-aside       { flex-direction:column; }
    .contact-aside__social, .contact-aside__cta { flex:unset; }
}
@media (max-width:520px) {
    .contact-cards__grid { grid-template-columns:1fr; }
    .contact-banner__inner { padding:100px 0 90px; }
}

/* ════════════════════════════════════════════════════════════════
   GLOBAL RESPONSIVE — all devices
   Phones · Tablets · Laptops · Desktops
   ════════════════════════════════════════════════════════════════ */

/* ── BACK BUTTON (inner pages) ───────────────────────────── */
.page-back-btn {
    display:inline-flex; align-items:center; gap:8px;
    padding:8px 18px;
    border-radius:var(--radius-pill);
    background:rgba(255,255,255,.15);
    border:1px solid rgba(255,255,255,.3);
    color:#fff; font-size:.85rem; font-weight:600;
    transition:all var(--transition);
    margin-bottom:14px;
    backdrop-filter:blur(6px);
    cursor:pointer; text-decoration:none;
}
.page-back-btn:hover { background:rgba(255,255,255,.28); color:#fff; }
.page-back-btn i { font-size:.78rem; }

/* ── Prevent horizontal overflow on every screen ─────────── */
html, body { overflow-x:hidden; max-width:100%; }
img, video, iframe, embed, object { max-width:100%; }

/* ── MOBILE NAV OVERLAY (hamburger reveals this) ─────────── */
.mobile-nav {
    display:none;
    position:fixed;
    inset:0;
    top:70px;
    background:var(--white);
    z-index:998;
    overflow-y:auto;
    overflow-x:hidden;
    flex-direction:column;
}
.mobile-nav.open { display:flex; }

/* Nav list inside mobile overlay */
.mobile-nav .mobile-nav__list,
.mobile-nav .pill-menu {
    list-style:none; margin:0; padding:0;
    display:flex; flex-direction:column;
}
.mobile-nav .mobile-nav__list > li > a,
.mobile-nav .pill-menu > li > a {
    display:block; padding:16px 20px;
    font-size:1.05rem; font-weight:600;
    color:var(--dark);
    border-bottom:1px solid var(--gray-border);
    transition:color var(--transition), background var(--transition);
    border-radius:0;
}
.mobile-nav .mobile-nav__list > li > a:hover,
.mobile-nav .pill-menu > li > a:hover { color:var(--primary); background:var(--primary-light); }
.mobile-nav .mobile-nav__list > li.current-menu-item > a,
.mobile-nav .pill-menu > li.current-menu-item > a { color:var(--primary); font-weight:700; }

/* Sub-menus flat-listed below parent */
.mobile-nav .sub-menu { list-style:none; padding:0; background:var(--gray-light); }
.mobile-nav .sub-menu a { display:block; padding:12px 36px; font-size:.9rem; color:var(--gray); border-bottom:1px solid var(--gray-border); }
.mobile-nav .sub-menu a:hover { color:var(--primary); }

/* Footer CTAs */
.mobile-nav__footer {
    padding:24px 20px 32px;
    display:flex; flex-direction:column; gap:12px;
    border-top:2px solid var(--gray-border);
    margin-top:auto;
}
.mobile-nav__cta-link {
    display:flex; align-items:center; justify-content:center; gap:8px;
    padding:14px; border:2px solid var(--gray-border);
    border-radius:var(--radius-pill);
    font-weight:600; color:var(--dark);
    transition:all var(--transition);
}
.mobile-nav__cta-link:hover { border-color:var(--primary); color:var(--primary); }

/* ── iOS zoom fix: 16px minimum on all form inputs ────────── */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="number"],
input[type="date"],
textarea, select { font-size:max(16px, 1rem); }

/* ════════════════════════════════
   ≤ 1200px — Large tablet / small laptop
   ════════════════════════════════ */
@media (max-width:1200px) {
    .section-pad { padding:72px 0; }
    .hdr-contact-pill { padding:8px 16px; }
    .hdr-phone-number { font-size:.85rem; }
}

/* ════════════════════════════════
   ≤ 960px — Collapse donate grid
   ════════════════════════════════ */
@media (max-width:960px) {
    .donate-cta__inner  { grid-template-columns:1fr; gap:32px; }
    .donate-cta__content { text-align:center; }
    .donate-features     { align-items:center; }
    .donate-form-wrap    { justify-content:center; }
    .donate-form-card    { max-width:560px; width:100%; margin:0 auto; }
}

/* ════════════════════════════════
   ≤ 1024px — Tablet landscape
   ════════════════════════════════ */
@media (max-width:1024px) {
    .nav-wrap        { height:100px; gap:12px; }
    .header-logo-img { height:82px; }
    .hdr-donate-btn  { padding:11px 20px; font-size:.85rem; }
    .section-pad     { padding:60px 0; }
    .section-header  { margin-bottom:40px; }
    .inner-banner__body { padding:88px 0 68px; }
    .faq__layout     { grid-template-columns:1fr; }
    .faq__right      { display:none; }
    .faq__left       { padding:60px 0; }
    .sp-detail       { grid-template-columns:1fr; gap:32px; }
    .sp-activities-list { grid-template-columns:1fr; }
    .spf-layout      { grid-template-columns:1fr 300px; gap:32px; }
}

/* ════════════════════════════════
   ≤ 768px — Tablet portrait / large phone
   ════════════════════════════════ */
@media (max-width:768px) {

    /* ── HEADER ── */
    .nav-wrap          { height:70px; gap:8px; }
    .header-logo-img   { height:58px; max-width:210px; }
    .hdr-centre-group  { display:none; }   /* hides both nav pills + junction */
    .hdr-donate-btn    { display:none; }
    .hamburger         { display:flex; }
    .pill-nav          { top:70px; padding:20px 16px; }  /* dropdown from 70px bar */
    .pill-menu > li > a{ font-size:1rem; padding:15px 8px; }
    .pill-menu .sub-menu { position:static; opacity:1; visibility:visible;
                           transform:none; box-shadow:none; border-radius:0;
                           padding:0 0 0 16px; background:transparent; }
    .pill-menu .sub-menu li a { font-size:.9rem; padding:10px 12px; }

    /* ── TOP BAR ── */
    .top-bar { display:none; }

    /* ── SECTION SPACING ── */
    .section-pad    { padding:52px 0; }
    .section-header { margin-bottom:28px; }
    .section-header h2 { font-size:1.65rem; }
    .section-header p  { font-size:.92rem; }

    /* ── INNER BANNER ── */
    .inner-banner        { min-height:240px; }
    .inner-banner__body  { padding:80px 0 56px; }
    .inner-banner__eyebrow { font-size:.85rem; }
    .breadcrumb          { font-size:.74rem; flex-wrap:wrap; gap:4px 6px; }

    /* ── HERO STATS BAR ── */
    .hero-stats           { flex-wrap:wrap; }
    .hero-stats__item     { flex:1 1 50%; min-width:140px;
                            border-right:none !important;
                            border-bottom:1px solid rgba(255,255,255,.12); }
    .hero-stats__item:nth-child(2) { border-right:none; }

    /* ── BUTTONS ── */
    .helpcta__actions  { flex-direction:column; align-items:stretch; gap:12px; }
    .helpcta__btn      { text-align:center; justify-content:center; }
    .ip-accent-strip__btns { flex-direction:column; align-items:center; gap:12px; }

    /* ── ABOUT SECTION ── */
    .about2__wrap    { grid-template-columns:1fr; gap:0; }
    .about2__visual  { display:none; }              /* photo collage hidden on mobile */
    .about2__card    { position:static; width:100%; margin-bottom:20px; }
    .about2__content { padding-top:0; }

    /* ── SPORTS HUB INTRO ── */
    .sh-intro__inner { flex-direction:column; align-items:stretch; gap:14px; }
    .sh-intro__cta   { width:100%; text-align:center; justify-content:center; display:flex; }

    /* ── SPORT POST EVENT BAR ── */
    .spf-event-bar { flex-direction:column; }
    .spf-event-bar__item { border-right:none;
                           border-bottom:1px solid var(--gray-border); }
    .spf-event-bar__item:last-child { border-bottom:none; }

    /* ── SPORT POST LAYOUT ── */
    .spf-layout  { grid-template-columns:1fr; }
    .spf-sidebar { position:static; }

    /* ── AWARDS ── */
    .spf-awards__grid { grid-template-columns:1fr; }

    /* ── BLOG SINGLE ── */
    .sp-layout  { grid-template-columns:1fr; }
    .sp-sidebar { position:static; }
    .sp-related__grid { grid-template-columns:repeat(2,1fr); }

    /* ── NEWSLETTER ── */
    .newsletter             { padding:60px 0; }
    .newsletter__inner      { text-align:center; align-items:center; gap:28px; }
    .newsletter__text       { min-width:0; }
    .newsletter__deco-heart { opacity:.8; font-size:2.4rem; }
    .newsletter__form       { min-width:0; width:100%; flex-direction:column; gap:12px; }
    .newsletter__form input {
        border-radius:var(--radius);
        background:rgba(255,255,255,.85);
        width:100%;
    }
    .newsletter .btn-yellow { width:100%; justify-content:center; border-radius:var(--radius); }

    /* ── FOOTER ── */
    .footer-logo-img        { height:80px; }
    .footer-logo-link       { padding:8px 16px; margin-bottom:16px; }
    .footer-bottom__inner   { flex-direction:column; text-align:center; gap:12px; }
    .footer-legal           { justify-content:center; flex-wrap:wrap; }

    /* ── SCROLL TOP ── */
    .scroll-top { bottom:16px; right:14px; width:40px; height:40px; }

    /* ── DONATE SECTION ── */
    .donate-cta__inner  { gap:24px; }
    .donate-form-card   { padding:28px 20px; gap:16px; }
    .donate-cta__content h2 { font-size:1.75rem; }
    .donate-tabs        { font-size:.85rem; }
}

/* ════════════════════════════════
   ≤ 560px — Small phone / mid-range Android
   ════════════════════════════════ */
@media (max-width:560px) {
    .nav-wrap        { height:64px; }
    .header-logo-img { height:50px; }
    .pill-nav        { top:64px; }
    .mobile-nav      { top:64px; }

    /* Shrink volunteer portrait rings so 2-col grid stays inside viewport */
    .vol-card__ring  { width:110px; height:110px; }

    .section-pad   { padding:40px 0; }
    .section-header h2 { font-size:1.45rem; }

    .inner-banner        { min-height:210px; }
    .inner-banner__body  { padding:70px 0 48px; }

    .hslide__h   { font-size:1.85rem; }
    .hslide__sub { font-size:.86rem; }
    .hslide__btns{ flex-direction:column; align-items:flex-start; max-width:260px; }
    .hslide__btns .btn { justify-content:center; width:100%; }
    .hslide__body { padding-bottom:190px; }
    .hslider__fixed-cta { bottom:68px; }
    .hslider__fixed-cta__inner .btn { width:100%; max-width:260px; }

    .hero-stats__item { flex:1 1 100%; text-align:center;
                        border-bottom:1px solid rgba(255,255,255,.12) !important; }
    .hero-stats__item:last-child { border-bottom:none !important; }
    .hero-stats__item strong { font-size:1.6rem; }

    .sp-posts-grid  { grid-template-columns:1fr; }
    .sp-related__grid { grid-template-columns:1fr; }

    .spf-awards__grid { grid-template-columns:1fr; }

    .contact-cards__grid { grid-template-columns:1fr; }
    .contact-form__row   { grid-template-columns:1fr; }

    .section-header { margin-bottom:20px; }
    .eyebrow-script { font-size:1rem; }

    /* Donations / CTA strip */
    .ip-accent-strip { padding:40px 0; }
    .ip-accent-strip__inner { text-align:center; }
    .ip-accent-strip__text h2 { font-size:1.4rem; }

    /* ── DONATE SECTION ── */
    .donate-form-card   { padding:22px 16px; gap:14px; max-width:100%; }
    .donate-form-card h3 { font-size:1.1rem; }
    .donate-amounts     { grid-template-columns:repeat(2,1fr); gap:8px; }
    .amount-btn         { padding:12px 6px; font-size:.85rem; }
    .amount-btn--custom { grid-column:span 2; }
    .donate-donor-row   { grid-template-columns:1fr; gap:10px; }
    .donate-impact-msg  { font-size:.8rem; }
    .donate-monthly-notice strong { font-size:.84rem; }
    .donate-submit      { padding:14px 20px; font-size:.95rem; }
    .donate-tab         { padding:9px 0; font-size:.82rem; }
}

/* ════════════════════════════════
   ≤ 400px — Very small phone
   ════════════════════════════════ */
@media (max-width:400px) {
    .header-logo-img { height:44px; max-width:160px; }
    .hamburger { padding:6px; }
    .mobile-nav { top:52px; }

    .container { padding-left:12px; padding-right:12px; }

    /* 1-column volunteer grid on tiny screens — avoids portrait overflow */
    .vol-grid      { grid-template-columns:1fr; gap:16px; }
    .vol-card__ring { width:140px; height:140px; }

    .section-pad   { padding:32px 0; }
    .section-header h2 { font-size:1.25rem; }

    .inner-banner__title { font-size:clamp(1.3rem,6vw,2rem); }
    .hslide__h { font-size:1.5rem; }

    .sp-award-card { flex-direction:column; text-align:center; }
    .spf-award-card { flex-direction:column; text-align:center; }

    .btn { padding:12px 20px; font-size:.85rem; }
    .hdr-donate-btn { display:none; }

    /* Sport post cards full width */
    .ip-sport-card { width:100%; }

    /* ── DONATE SECTION ── */
    .donate-form-card   { padding:18px 12px; gap:12px; }
    .donate-amounts     { gap:6px; }
    .amount-btn         { padding:11px 4px; font-size:.8rem; }
    .donate-custom-wrap input { font-size:.9rem; }
    .donate-donor-field input { font-size:.88rem; }
    .donate-submit      { padding:13px 16px; font-size:.9rem; }
}

/* ════════════════════════════════
   Touch device improvements
   ════════════════════════════════ */
@media (pointer:coarse) {
    /* Larger tap targets */
    .pill-menu > li > a  { padding:14px 16px; min-height:48px; }
    .btn                 { min-height:48px; padding:14px 28px; }
    .hamburger           { padding:10px; min-width:44px; min-height:44px; }
    .scroll-top          { width:48px; height:48px; }
    .faq__question       { min-height:56px; }
    .sp-post-card__link  { min-height:44px; display:inline-flex; align-items:center; }
    .spf-back__link      { min-height:44px; }
    .ip-sport-card__link { min-height:44px; }

    /* No hover transforms that feel janky on touch */
    .btn:hover           { transform:none; }
    .sp-post-card:hover  { transform:none; }
    .ip-sport-card:hover { transform:none; }
}

/* ════════════════════════════════════════════════════════════
   MUSIC PAGE — Register button on event cards
   ════════════════════════════════════════════════════════════ */
.music-reg-open--link {
    background:none; border:none; cursor:pointer; padding:0;
    color:var(--primary); font-size:.88rem; font-weight:600;
    display:inline-flex; align-items:center; gap:6px;
    transition:color var(--transition);
}
.music-reg-open--link:hover { color:var(--primary-dark); }

/* ════════════════════════════════════════════════════════════
   MUSIC SONGS DOWNLOAD SECTION
   ════════════════════════════════════════════════════════════ */
.music-downloads { background:var(--gray-light); }

.ms-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
    gap:28px;
    margin-top:16px;
}
.ms-card {
    background:var(--white); border-radius:var(--radius-lg);
    box-shadow:0 4px 20px rgba(0,0,0,.08);
    overflow:hidden; display:flex; flex-direction:column;
    transition:transform var(--transition), box-shadow var(--transition);
}
.ms-card:hover { transform:translateY(-4px); box-shadow:0 12px 36px rgba(0,0,0,.14); }

.ms-card__cover {
    position:relative; aspect-ratio:1; overflow:hidden;
    background:var(--hero-bg);
}
.ms-card__cover img { width:100%; height:100%; object-fit:cover; display:block; }
.ms-card__cover-ph {
    width:100%; height:100%;
    display:flex; align-items:center; justify-content:center;
    font-size:3rem; color:rgba(255,255,255,.3);
}
.ms-card__genre {
    position:absolute; top:12px; left:12px;
    background:var(--yellow); color:var(--dark);
    font-size:.7rem; font-weight:700; text-transform:uppercase;
    letter-spacing:.06em; padding:3px 10px;
    border-radius:var(--radius-pill);
}
.ms-card__body {
    padding:18px 16px 20px; display:flex; flex-direction:column; gap:6px; flex:1;
}
.ms-card__title { font-size:1rem; font-weight:700; color:var(--dark); margin:0; }
.ms-card__artist { font-size:.8rem; color:var(--primary); margin:0; }
.ms-card__desc { font-size:.78rem; color:var(--gray); margin:0; line-height:1.5; flex:1; }
.ms-card__dl {
    display:inline-flex; align-items:center; gap:8px;
    margin-top:10px; padding:10px 16px;
    background:var(--hero-bg); color:var(--white);
    border-radius:var(--radius-pill); font-size:.82rem; font-weight:600;
    text-decoration:none; transition:background var(--transition);
    align-self:flex-start;
}
.ms-card__dl:hover { background:var(--primary); }
.ms-card__dl--soon {
    background:var(--gray-border); color:var(--gray);
    cursor:default; pointer-events:none;
}
.ms-empty {
    text-align:center; padding:60px 20px; color:var(--gray);
}
.ms-empty i { font-size:3rem; color:var(--gray-border); display:block; margin-bottom:16px; }
.ms-empty h3 { margin-bottom:8px; color:var(--dark); }

/* ════════════════════════════════════════════════════════════
   MUSIC REGISTRATION MODAL
   ════════════════════════════════════════════════════════════ */
.music-reg-overlay {
    position:fixed; inset:0; z-index:9000;
    background:rgba(0,0,0,.62); backdrop-filter:blur(3px);
    display:flex; align-items:center; justify-content:center;
    padding:20px;
    opacity:0; pointer-events:none;
    transition:opacity .25s ease;
}
.music-reg-overlay.is-open {
    opacity:1; pointer-events:all;
}
.music-reg-modal {
    background:var(--white); border-radius:var(--radius-lg);
    width:100%; max-width:520px; max-height:90vh; overflow-y:auto;
    padding:36px 32px;
    transform:translateY(20px); transition:transform .25s ease;
    position:relative;
}
.music-reg-overlay.is-open .music-reg-modal { transform:translateY(0); }

.music-reg-modal__close {
    position:absolute; top:14px; right:14px;
    width:36px; height:36px; border-radius:50%;
    border:none; background:var(--gray-light); color:var(--dark);
    font-size:1rem; cursor:pointer; display:flex; align-items:center; justify-content:center;
    transition:background var(--transition);
}
.music-reg-modal__close:hover { background:var(--gray-border); }

.music-reg-modal__head { text-align:center; margin-bottom:24px; }
.music-reg-modal__icon {
    width:56px; height:56px; border-radius:50%;
    background:rgba(200,212,0,.15); color:var(--primary);
    font-size:1.4rem;
    display:flex; align-items:center; justify-content:center;
    margin:0 auto 12px;
}
.music-reg-modal__head h3 { margin:0 0 4px; font-size:1.25rem; color:var(--dark); }
.music-reg-modal__event-lbl { font-size:.85rem; color:var(--primary); font-weight:600; margin:0; }

.music-reg-modal__form { display:flex; flex-direction:column; gap:14px; }
.music-reg-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.music-reg-field { display:flex; flex-direction:column; gap:5px; }
.music-reg-field label { font-size:.8rem; font-weight:600; color:var(--dark); }
.music-reg-field label span { color:#E53E3E; }
.music-reg-field input,
.music-reg-field textarea {
    padding:11px 14px; border-radius:var(--radius);
    border:2px solid var(--gray-border); font-size:.9rem;
    outline:none; font-family:var(--font-body);
    transition:border-color var(--transition);
    resize:vertical;
}
.music-reg-field input:focus,
.music-reg-field textarea:focus { border-color:var(--primary); }

.music-reg-submit {
    width:100%; justify-content:center; padding:14px;
    font-size:.95rem; margin-top:4px;
}
.music-reg-result {
    text-align:center; font-size:.85rem; min-height:1.4em; margin:0;
    color:var(--primary);
}
.music-reg-result.is-error { color:#E53E3E; }

@media(max-width:560px) {
    .music-reg-modal   { padding:24px 16px; }
    .music-reg-row     { grid-template-columns:1fr; }
    .ms-grid           { grid-template-columns:1fr 1fr; gap:16px; }
}
@media(max-width:400px) {
    .ms-grid { grid-template-columns:1fr; }
}

/* ── DONATE PAGE ──────────────────────────────────────────── */

/* ── Cause banner (cause-specific pages) */
.dpf-banner {
    position:relative;
    min-height:420px;
    display:flex;
    align-items:flex-end;
    background:var(--banner-img,var(--hero-bg)) center/cover no-repeat;
}
.dpf-banner__overlay {
    position:absolute;
    inset:0;
    background:linear-gradient(to bottom, rgba(10,14,40,.55) 0%, rgba(10,14,40,.82) 100%);
}
.dpf-banner__body {
    position:relative;
    z-index:1;
    padding-bottom:60px;
    padding-top:80px;
}
.dpf-banner__title {
    font-size:clamp(1.9rem,4.5vw,3rem);
    color:#fff;
    font-weight:800;
    margin:12px 0 16px;
}
.dpf-banner__desc {
    color:rgba(255,255,255,.78);
    font-size:.95rem;
    max-width:600px;
    line-height:1.65;
    margin-bottom:24px;
}
.dpf-banner__prog-bar-wrap { max-width:560px; }
.dpf-banner__prog-bar {
    height:8px;
    background:rgba(255,255,255,.25);
    border-radius:100px;
    overflow:hidden;
    margin-bottom:10px;
}
.dpf-banner__prog-fill {
    height:100%;
    background:var(--yellow);
    border-radius:100px;
}
.dpf-banner__prog-labels {
    display:flex;
    justify-content:space-between;
    font-size:.82rem;
    color:rgba(255,255,255,.78);
}
.dpf-banner__prog-labels strong { color:#fff; }
.dpf-banner__pct { color:var(--yellow); font-weight:700; }

/* ── Form section */
.dpf-section { background:#f8f9fa; }

.dpf-form-wrap {
    max-width:680px;
    margin:0 auto;
}

.dpf-back-link {
    margin-bottom:20px;
}
.dpf-back-link a {
    color:var(--primary);
    font-size:.9rem;
    font-weight:600;
    display:inline-flex;
    align-items:center;
    gap:8px;
    transition:gap var(--transition);
}
.dpf-back-link a:hover { gap:12px; }

.dpf-card {
    background:#fff;
    border:1px solid var(--gray-border);
    border-radius:var(--radius-lg);
    padding:40px 44px;
    box-shadow:0 2px 24px rgba(0,0,0,.07);
}
.dpf-card__heading {
    font-size:1.3rem;
    font-weight:700;
    color:var(--dark);
    margin-bottom:6px;
    line-height:1.3;
}
.dpf-card__sub {
    font-size:.85rem;
    color:var(--gray);
    margin-bottom:28px;
}

/* Frequency tabs */
.dpf-freq {
    display:flex;
    border:2px solid var(--gray-border);
    border-radius:var(--radius);
    overflow:hidden;
    margin-bottom:28px;
}
.dpf-freq-btn {
    flex:1;
    padding:12px 16px;
    border:none;
    background:none;
    cursor:pointer;
    font-size:.9rem;
    font-weight:600;
    color:var(--gray);
    font-family:var(--font-body);
    transition:background var(--transition), color var(--transition);
}
.dpf-freq-btn.active { background:var(--hero-bg); color:#fff; }
.dpf-freq-btn:hover:not(.active) { background:var(--gray-light); color:var(--dark); }

/* Amount header */
.dpf-amounts-header {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:12px;
}
.dpf-amounts-label {
    font-size:.88rem;
    font-weight:700;
    color:var(--dark);
}
.dpf-amounts-label em { color:#E53E3E; font-style:normal; }
.dpf-currency-tag {
    font-size:.78rem;
    font-weight:600;
    background:var(--gray-light);
    border:1px solid var(--gray-border);
    border-radius:6px;
    padding:3px 10px;
    color:var(--gray);
}

/* Amount grid */
.dpf-amounts {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    margin-bottom:12px;
}
.dpf-amt {
    padding:14px 8px;
    border:2px solid var(--gray-border);
    border-radius:var(--radius);
    background:#fff;
    cursor:pointer;
    font-size:.9rem;
    font-weight:700;
    color:var(--dark);
    font-family:var(--font-body);
    text-align:center;
    transition:border-color var(--transition), background var(--transition), color var(--transition);
}
.dpf-amt:hover { border-color:var(--primary); color:var(--primary); }
.dpf-amt.active {
    background:var(--yellow);
    border-color:var(--yellow);
    color:var(--dark);
}

/* Custom amount */
.dpf-custom-input {
    width:100%;
    padding:13px 16px;
    border:2px solid var(--gray-border);
    border-radius:var(--radius);
    font-size:.95rem;
    font-family:var(--font-body);
    color:var(--dark);
    outline:none;
    transition:border-color var(--transition);
    margin-bottom:4px;
    box-sizing:border-box;
    display:block;
}
.dpf-custom-input:focus { border-color:var(--primary); }
.dpf-custom-input::placeholder { color:#bbb; }

/* Divider & section titles */
.dpf-divider { height:1px; background:var(--gray-border); margin:28px 0; }
.dpf-section-title {
    font-size:1.05rem;
    font-weight:700;
    color:var(--dark);
    margin-bottom:4px;
}
.dpf-section-sub {
    font-size:.82rem;
    color:var(--gray);
    margin-bottom:20px;
}

/* Name & fields */
.dpf-name-row {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    margin-bottom:14px;
}
.dpf-field {
    display:flex;
    flex-direction:column;
    gap:6px;
    margin-bottom:14px;
}
.dpf-field--email { margin-bottom:0; }
.dpf-name-row .dpf-field { margin-bottom:0; }
.dpf-field label {
    font-size:.82rem;
    font-weight:700;
    color:var(--dark);
}
.dpf-field label em { color:#E53E3E; font-style:normal; }
.dpf-field input {
    padding:12px 14px;
    border:1px solid var(--gray-border);
    border-radius:var(--radius);
    font-size:.9rem;
    font-family:var(--font-body);
    color:var(--dark);
    outline:none;
    transition:border-color var(--transition);
    background:#fff;
}
.dpf-field input:focus { border-color:var(--primary); box-shadow:0 0 0 3px rgba(43,45,126,.08); }

/* Summary */
.dpf-summary {
    border:1px solid var(--gray-border);
    border-radius:var(--radius);
    overflow:hidden;
    margin-bottom:24px;
}
.dpf-summary__row {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:13px 18px;
    font-size:.88rem;
    border-bottom:1px solid var(--gray-border);
    gap:12px;
}
.dpf-summary__row:last-child { border-bottom:none; }
.dpf-summary__row span { color:var(--gray); }
.dpf-summary__row strong { color:var(--dark); font-weight:600; text-align:right; }
.dpf-summary__row--total { background:var(--gray-light); }
.dpf-summary__row--total span { font-weight:700; color:var(--dark); }
.dpf-summary__row--total strong { font-size:1.05rem; color:var(--primary); font-weight:800; }

/* Submit button */
.dpf-submit-btn {
    width:100%;
    padding:17px;
    background:var(--yellow);
    color:var(--dark);
    border:none;
    border-radius:var(--radius);
    font-size:1rem;
    font-weight:800;
    cursor:pointer;
    font-family:var(--font-body);
    letter-spacing:.03em;
    transition:background var(--transition), transform var(--transition);
}
.dpf-submit-btn:hover { background:var(--yellow-dark); transform:translateY(-1px); }
.dpf-submit-btn:active { transform:none; }

/* WhatsApp confirm button override */
.dpf-whatsapp-btn {
    background:#25D366;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    text-decoration:none;
    border-radius:var(--radius-pill);
}
.dpf-whatsapp-btn:hover { background:#1ebe57; color:#fff; }

/* MoMo payment box */
.dpf-momo-box {
    background:var(--primary);
    border-radius:var(--radius);
    padding:20px 22px;
    display:flex;
    flex-direction:column;
    gap:14px;
    margin-bottom:20px;
}
.dpf-momo-box__row { display:flex; flex-direction:column; gap:4px; }
.dpf-momo-box__row > span { font-size:.75rem; color:rgba(255,255,255,.65); font-weight:600; }
.dpf-momo-box__row > strong,
.dpf-momo-box__row div strong { color:#fff; font-size:1rem; font-weight:800; }
.dpf-momo-box__row--amount > strong { font-size:1.3rem; color:var(--yellow); }

/* MoMo steps */
.dpf-momo-steps {
    margin:0 0 22px;
    padding-left:20px;
    display:flex;
    flex-direction:column;
    gap:9px;
}
.dpf-momo-steps li { font-size:.87rem; color:#444; line-height:1.5; }
.dpf-momo-steps strong { color:var(--primary); }

.dpf-error {
    text-align:center;
    color:#E53E3E;
    font-size:.83rem;
    min-height:1.2em;
    margin:10px 0 0;
}
.dpf-secure {
    text-align:center;
    font-size:.78rem;
    color:var(--gray);
    margin:12px 0 0;
}
.dpf-secure i { color:var(--primary); margin-right:4px; }

/* ── Donation tracker widget */
.dpf-tracker {
    background:var(--hero-bg);
    border-radius:var(--radius-lg);
    padding:32px 36px;
    margin-bottom:24px;
    color:#fff;
}
.dpf-tracker__top {
    margin-bottom:24px;
}
.dpf-tracker__title {
    font-size:1.25rem;
    font-weight:800;
    color:#fff;
    margin:0 0 8px;
    line-height:1.3;
}
.dpf-tracker__sub {
    font-size:.9rem;
    color:rgba(255,255,255,.75);
    margin:0 0 12px;
    line-height:1.55;
}
.dpf-tracker__secure {
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:.78rem;
    color:var(--yellow);
    font-weight:600;
}
.dpf-tracker__secure i { font-size:.75rem; }

.dpf-tracker__stats {
    display:grid;
    grid-template-columns:1fr auto 1fr;
    gap:0;
    background:rgba(255,255,255,.08);
    border-radius:var(--radius);
    padding:20px 24px;
    margin-bottom:20px;
    text-align:center;
}
.dpf-tracker__stat {
    display:flex;
    flex-direction:column;
    gap:4px;
}
.dpf-tracker__stat strong {
    font-size:1.35rem;
    font-weight:800;
    color:#fff;
    line-height:1.2;
}
.dpf-tracker__stat span {
    font-size:.75rem;
    color:rgba(255,255,255,.6);
    text-transform:uppercase;
    letter-spacing:.06em;
}
.dpf-tracker__stat--mid {
    border-left:1px solid rgba(255,255,255,.15);
    border-right:1px solid rgba(255,255,255,.15);
    padding:0 24px;
}

.dpf-tracker__bar-wrap { }
.dpf-tracker__bar {
    height:10px;
    background:rgba(255,255,255,.15);
    border-radius:var(--radius-pill);
    overflow:hidden;
    margin-bottom:8px;
}
.dpf-tracker__fill {
    height:100%;
    background:var(--yellow);
    border-radius:var(--radius-pill);
    transition:width .6s ease;
    min-width:2px;
}
.dpf-tracker__bar-labels {
    display:flex;
    justify-content:space-between;
    font-size:.75rem;
    color:rgba(255,255,255,.6);
}

/* ── Donate page responsive */
@media(max-width:768px) {
    .dpf-card { padding:32px 24px; }
    .dpf-banner { min-height:340px; }
}
@media(max-width:560px) {
    .dpf-card { padding:24px 16px; }
    .dpf-amounts { grid-template-columns:repeat(2,1fr); }
    .dpf-name-row { grid-template-columns:1fr; }
}
@media(max-width:360px) {
    .dpf-amounts { grid-template-columns:1fr; }
}

/* Bank transfer */
.dp-bank__inner {
    display:flex;
    gap:32px;
    align-items:flex-start;
    background:#fff;
    border-radius:var(--radius-lg);
    padding:40px;
    box-shadow:0 4px 24px rgba(0,0,0,.07);
    max-width:640px;
    margin:0 auto;
}
.dp-bank__icon {
    flex-shrink:0;
    width:64px;
    height:64px;
    background:var(--hero-bg);
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.6rem;
    color:#fff;
}
.dp-bank__content h3 {
    font-size:1.35rem;
    font-weight:700;
    margin-bottom:8px;
    color:var(--dark);
}
.dp-bank__content > p {
    font-size:.9rem;
    color:var(--text-muted);
    margin-bottom:24px;
}
.dp-bank__content a { color:var(--primary); }
.dp-bank__details {
    display:flex;
    flex-direction:column;
    gap:12px;
}
.dp-bank__row {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:12px 16px;
    background:var(--gray-light);
    border-radius:var(--radius);
    gap:16px;
}
.dp-bank__row span {
    font-size:.85rem;
    color:var(--text-muted);
    white-space:nowrap;
}
.dp-bank__row strong {
    font-size:.95rem;
    color:var(--dark);
    font-weight:700;
    text-align:right;
    word-break:break-all;
}

/* FAQ */
.dp-faq__list {
    max-width:720px;
    margin:48px auto 0;
    display:flex;
    flex-direction:column;
    gap:12px;
}
.faqp__item {
    border:2px solid var(--gray-border);
    border-radius:var(--radius-lg);
    overflow:hidden;
    transition:border-color var(--transition);
}
.faqp__item:has(.faqp__question[aria-expanded="true"]) {
    border-color:var(--primary);
}
.faqp__question {
    width:100%;
    background:none;
    border:none;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:18px 22px;
    font-size:.95rem;
    font-weight:600;
    color:var(--dark);
    text-align:left;
    font-family:var(--font-body);
    transition:color var(--transition);
}
.faqp__question:hover { color:var(--primary); }
.faqp__question i {
    flex-shrink:0;
    transition:transform .25s ease;
    font-size:.75rem;
    color:var(--primary);
}
.faqp__question[aria-expanded="true"] i { transform:rotate(-180deg); }
.faqp__answer {
    padding:0 22px 20px;
}
.faqp__answer p {
    font-size:.9rem;
    color:var(--text-muted);
    line-height:1.7;
    margin:0;
}

/* Donate page responsive */
@media(max-width:1024px) {
    .dp-stats__inner    { grid-template-columns:repeat(2,1fr); }
    .dp-methods__grid   { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:640px) {
    .dp-stats__inner    { grid-template-columns:1fr 1fr; gap:16px; }
    .dp-methods__grid   { grid-template-columns:1fr 1fr; gap:16px; }
    .dp-method-card     { padding:24px 16px; }
    .dp-bank__inner     { flex-direction:column; gap:20px; padding:28px 20px; align-items:center; text-align:center; }
    .dp-bank__row       { flex-direction:column; align-items:flex-start; gap:4px; }
    .dp-bank__row strong { text-align:left; }
}
@media(max-width:400px) {
    .dp-stats__inner    { grid-template-columns:1fr; }
    .dp-methods__grid   { grid-template-columns:1fr; }
}

/* ── PARTNERS STRIP ─────────────────────────────────────────── */
.partners-strip {
    padding:70px 0 80px;
    background:#f8f9fa;
    border-top:1px solid rgba(0,0,0,.06);
    border-bottom:1px solid rgba(0,0,0,.06);
    overflow:hidden;
}

.partners-strip__header {
    text-align:center;
    margin-bottom:48px;
}

.partners-strip__title {
    font-size:2rem;
    margin:8px 0 10px;
}

.partners-strip__sub {
    color:var(--gray);
    font-size:.95rem;
    max-width:480px;
    margin:0 auto;
}

/* Fade edges */
.partners-strip__marquee-wrap {
    position:relative;
}
.partners-strip__marquee-wrap::before,
.partners-strip__marquee-wrap::after {
    content:'';
    position:absolute;
    top:0; bottom:0;
    width:120px;
    z-index:2;
    pointer-events:none;
}
.partners-strip__marquee-wrap::before {
    left:0;
    background:linear-gradient(to right, #f8f9fa, transparent);
}
.partners-strip__marquee-wrap::after {
    right:0;
    background:linear-gradient(to left, #f8f9fa, transparent);
}

/* Scrolling track */
.partners-strip__track {
    display:flex;
    align-items:center;
    gap:36px;
    width:max-content;
    animation:partners-scroll 18s linear infinite;
}
.partners-strip__track:hover { animation-play-state:paused; }

@keyframes partners-scroll {
    from { transform:translateX(0); }
    to   { transform:translateX(-50%); }
}

.partners-strip__item {
    background:var(--white);
    border-radius:16px;
    padding:24px 36px;
    box-shadow:0 4px 20px rgba(0,0,0,.07);
    border:1.5px solid rgba(0,0,0,.05);
    flex-shrink:0;
    display:flex;
    align-items:center;
    justify-content:center;
}

.partners-strip__logo {
    max-width:200px;
    max-height:90px;
    width:auto;
    height:auto;
    object-fit:contain;
    display:block;
}

@media(max-width:640px) {
    .partners-strip__item  { padding:18px 24px; }
    .partners-strip__logo  { max-width:140px; max-height:70px; }
    .partners-strip__title { font-size:1.6rem; }
    .partners-strip__marquee-wrap::before,
    .partners-strip__marquee-wrap::after { width:60px; }
}

/* ── PROJECT DETAIL PAGE ─────────────────────────────────────── */
.proj-detail { background:#f8f9fa; }

.proj-detail__layout {
    display:grid;
    grid-template-columns:1fr 340px;
    gap:40px;
    align-items:start;
}

/* Tags row */
.proj-detail__tags {
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:24px;
}
.proj-detail__status,
.proj-detail__cat {
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 14px;
    border-radius:50px;
    font-size:.8rem;
    font-weight:700;
}
.proj-detail__cat {
    background:var(--primary-light);
    color:var(--primary);
}

/* Intro paragraph */
.proj-detail__intro {
    font-size:1.1rem;
    color:var(--dark);
    line-height:1.75;
    margin-bottom:28px;
    padding-bottom:28px;
    border-bottom:2px solid var(--gray-border);
}

/* Full content */
.proj-detail__content {
    font-size:.97rem;
    color:#374151;
    line-height:1.8;
}
.proj-detail__content h2,
.proj-detail__content h3 { color:var(--dark); margin:28px 0 10px; }
.proj-detail__content p  { margin-bottom:16px; }
.proj-detail__content ul,
.proj-detail__content ol { padding-left:24px; margin-bottom:16px; }
.proj-detail__content li { margin-bottom:6px; }

/* Back link */
.proj-detail__back {
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-top:20px;
    font-size:.85rem;
    font-weight:700;
    color:var(--gray);
    text-decoration:none;
    transition:color .2s, gap .2s;
}
.proj-detail__back:hover { color:var(--primary); gap:12px; }

/* Sidebar cards */
.proj-sidebar-card {
    background:#fff;
    border-radius:16px;
    padding:24px;
    box-shadow:0 4px 20px rgba(0,0,0,.07);
    margin-bottom:20px;
}
.proj-sidebar-card__title {
    font-size:.95rem;
    font-weight:800;
    color:var(--dark);
    margin:0 0 18px;
    display:flex;
    align-items:center;
    gap:8px;
}
.proj-sidebar-card__title i { color:var(--primary); }

/* Progress in sidebar */
.proj-sidebar-progress__top {
    display:flex;
    justify-content:space-between;
    font-size:.85rem;
    font-weight:700;
    color:var(--dark);
    margin-bottom:8px;
}
.proj-sidebar-progress__bar {
    background:#e5e7eb;
    border-radius:8px;
    height:10px;
    overflow:hidden;
    margin-bottom:12px;
}
.proj-sidebar-progress__fill {
    height:100%;
    background:linear-gradient(to right, var(--yellow), #a0af00);
    border-radius:8px;
    transition:width 1s ease;
}
.proj-sidebar-progress__note {
    font-size:.8rem;
    color:var(--gray);
    margin:0;
}

/* Details list */
.proj-sidebar-list {
    list-style:none;
    padding:0;
    margin:0;
    display:flex;
    flex-direction:column;
    gap:14px;
}
.proj-sidebar-list li {
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-size:.88rem;
    padding-bottom:14px;
    border-bottom:1px solid var(--gray-border);
}
.proj-sidebar-list li:last-child { border-bottom:none; padding-bottom:0; }
.proj-sidebar-list__label { color:var(--gray); font-weight:600; }
.proj-sidebar-list__val   { color:var(--dark); font-weight:700; }

/* CTA sidebar card */
.proj-sidebar-card--cta {
    background:var(--primary);
    text-align:center;
}
.proj-sidebar-card--cta h3 { color:#fff; font-size:1.1rem; margin:12px 0 8px; }
.proj-sidebar-card--cta p  { color:rgba(255,255,255,.75); font-size:.85rem; margin-bottom:20px; }
.proj-sidebar-card__cta-icon {
    font-size:2rem;
    color:var(--yellow);
    display:block;
    margin-bottom:4px;
}

/* Responsive */
@media(max-width:900px) {
    .proj-detail__layout { grid-template-columns:1fr; }
    .proj-detail__sidebar { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
    .proj-detail__back { margin-top:0; }
}
@media(max-width:560px) {
    .proj-detail__sidebar { grid-template-columns:1fr; }
}

/* ════════════════════════════════════════════════════════════
   MOBILE MONEY DONATION CARD
   ════════════════════════════════════════════════════════════ */
.donate-momo-card { padding:32px 28px; display:flex; flex-direction:column; gap:22px; }

/* Header */
.dmomo__header { text-align:center; }
.dmomo__network { display:inline-flex; align-items:center; gap:10px; margin-bottom:12px; }
.dmomo__network-badge {
    background:#FFD700; color:#1a1a1a;
    font-size:.75rem; font-weight:900; letter-spacing:.05em;
    padding:5px 14px; border-radius:6px;
}
.dmomo__network-label { font-weight:700; color:var(--primary); font-size:.9rem; }
.dmomo__header h3 { font-size:1.3rem; color:var(--dark); margin-bottom:6px; }
.dmomo__header p  { font-size:.85rem; color:var(--gray); }

/* Account details */
.dmomo__account {
    background:var(--primary);
    border-radius:var(--radius);
    padding:20px 22px;
    display:flex; flex-direction:column; gap:14px;
}
.dmomo__account-row { display:flex; flex-direction:column; gap:4px; }
.dmomo__account-lbl { font-size:.75rem; color:rgba(255,255,255,.65); font-weight:600; display:flex; align-items:center; gap:6px; }
.dmomo__account-val { color:#fff; font-size:1rem; font-weight:800; letter-spacing:.02em; }
.dmomo__number-wrap { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.dmomo__copy-btn {
    background:var(--yellow); color:var(--dark);
    border:none; border-radius:6px; cursor:pointer;
    font-size:.78rem; font-weight:700;
    padding:6px 14px; display:inline-flex; align-items:center; gap:6px;
    transition:background var(--transition);
}
.dmomo__copy-btn:hover { background:#b8c200; }
.dmomo__copy-btn.copied { background:#065F46; color:#fff; }

/* Steps */
.dmomo__steps { background:#f8f9fa; border-radius:var(--radius); padding:18px 20px; }
.dmomo__steps-title { font-size:.82rem; font-weight:700; color:var(--primary); margin-bottom:12px; display:flex; align-items:center; gap:6px; }
.dmomo__step-list { margin:0; padding-left:20px; display:flex; flex-direction:column; gap:8px; }
.dmomo__step-list li { font-size:.85rem; color:#444; line-height:1.5; }
.dmomo__step-list strong { color:var(--primary); }

/* WhatsApp confirm button */
.dmomo__whatsapp-btn {
    background:#25D366; color:#fff;
    display:flex; align-items:center; justify-content:center; gap:10px;
    border-radius:var(--radius-pill); font-weight:700; font-size:.9rem;
    padding:14px 20px; text-decoration:none;
    transition:background var(--transition), transform var(--transition);
}
.dmomo__whatsapp-btn:hover { background:#1ebe57; transform:translateY(-2px); color:#fff; }

/* ════════════════════════════════════════════════════════════
   WHATSAPP FLOATING BUTTON
   ════════════════════════════════════════════════════════════ */
.wa-float {
    position:fixed;
    bottom:28px;
    left:24px;
    z-index:9999;
    width:56px;
    height:56px;
    background:#25D366;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 4px 20px rgba(37,211,102,.45);
    text-decoration:none;
    transition:transform .25s ease, box-shadow .25s ease;
}
.wa-float:hover {
    transform:scale(1.12);
    box-shadow:0 8px 28px rgba(37,211,102,.55);
}
.wa-float__icon { width:28px; height:28px; display:block; }
.wa-float__tooltip {
    position:absolute;
    left:68px;
    background:#111;
    color:#fff;
    font-size:.78rem;
    font-weight:600;
    white-space:nowrap;
    padding:6px 12px;
    border-radius:6px;
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease;
}
.wa-float__tooltip::before {
    content:'';
    position:absolute;
    right:100%;
    top:50%;
    transform:translateY(-50%);
    border:6px solid transparent;
    border-right-color:#111;
}
.wa-float:hover .wa-float__tooltip { opacity:1; }
@media(max-width:480px) {
    .wa-float { bottom:20px; left:16px; width:50px; height:50px; }
    .wa-float__icon { width:24px; height:24px; }
    .wa-float__tooltip { display:none; }
}
