* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background: linear-gradient(135deg, #A3C1DA 0%, #6CAAD4 100%);
    min-height: 100vh;
    padding: 20px;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
}

h1 {
    text-align: center;
    color: white;
    margin-bottom: 30px;
    font-size: 2.5em;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}

.description {
    background: white;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
    padding: 0;
    margin-bottom: 30px;
    line-height: 1.6;
    color: #333;
    overflow: hidden;
    position: relative;
}

/* inner padding wrapper so heading banner bleeds edge-to-edge */
.description-body {
    padding: 25px 30px;
}

.description p {
    margin-bottom: 15px;
}

.description p:last-child {
    margin-bottom: 0;
    font-weight: bold;
    color: #A51C30;
    font-size: 1.1em;
}

.content-wrapper {
    display: flex;
    gap: 20px;
    align-items: stretch;
    margin-top: 30px;
}

.leaderboard-container {
    flex: 2;
    display: flex;
}

.right-column {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.leaderboard {
    background: white;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
    overflow-y: auto;
    max-height: none;
    flex-grow: 1;
}

.leaderboard::-webkit-scrollbar {
    width: 10px;
}

.leaderboard::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 0 15px 15px 0;
}

.leaderboard::-webkit-scrollbar-thumb {
    background: #A51C30;
    border-radius: 5px;
}

.leaderboard::-webkit-scrollbar-thumb:hover {
    background: #8B1728;
}

.college-item {
    display: flex;
    align-items: center;
    padding: 15px 20px;
    border-bottom: 1px solid #e0e0e0;
    transition: background-color 0.2s;
}

.college-item:hover {
    background-color: #f5f5f5;
}

.college-item:last-child {
    border-bottom: none;
}

.college-item.top-1 {
    background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%);
    border: 5px solid #DAA520;
    font-size: 1.1em;
    padding: 20px;
}

.college-item.top-1:hover {
    background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%);
}

.college-item.top-1 .logo {
    width: 60px;
    height: 60px;
    font-size: 1.4em;
    /* box-shadow: 0 4px 8px rgba(0,0,0,0.2); */
}

.college-item.top-1 .college-name {
    font-weight: bold;
}

.college-item.top-1 .rank {
    font-size: 1.3em;
}

.college-item.top-1 .amount {
    font-size: 1.4em;
    color: #A51C30;
}

.college-item.top-5 {
    background: linear-gradient(135deg, #E8E8E8 0%, #C0C0C0 100%);
    /* border: 2px solid #A9A9A9; */
    padding: 18px 20px;
}

.college-item.top-5:hover {
    background: linear-gradient(135deg, #E8E8E8 0%, #C0C0C0 100%);
}

.college-item.top-5 .logo {
    width: 55px;
    height: 55px;
    font-size: 1.3em;
    /* box-shadow: 0 2px 4px rgba(0,0,0,0.15); */
}

.college-item.top-5 .college-name {
    font-weight: 600;
}

.college-item.top-5 .amount {
    font-size: 1.3em;
}

.secondary-goals {
    flex: 0 0 auto;
    background: white;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
    padding: 25px;
}

.secondary-goals h2 {
    color: #A51C30;
    margin-bottom: 20px;
    font-size: 1.5em;
    border-bottom: 3px solid #0072CE;
    padding-bottom: 10px;
}

.secondary-goals ul {
    list-style: none;
    padding: 0;
}

.secondary-goals li {
    padding: 12px 0;
    border-bottom: 1px solid #e0e0e0;
    color: #333;
    font-size: 1.05em;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.secondary-goals li:last-child {
    border-bottom: none;
}

.secondary-goals li .goal-text {
    display: flex;
    align-items: center;
    margin-bottom: 5px;
}

.secondary-goals li .goal-text:before {
    content: "🏆";
    margin-right: 10px;
    font-size: 1.2em;
}

.secondary-goals li .prize {
    font-size: 0.9em;
    color: #0072CE;
    font-weight: 600;
    font-style: italic;
    padding-left: 32px;
}

.donate-button {
    display: block;
    width: fit-content;
    margin: 20px auto 0;
    padding: 15px 40px;
    background: #0072CE;
    color: white;
    text-decoration: none;
    font-size: 1.2em;
    font-weight: bold;
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.2);
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
}

.donate-button:hover {
    background: #005BA8;
    box-shadow: 0 6px 12px rgba(0,0,0,0.3);
    transform: translateY(-2px);
}

.donate-button:active {
    transform: translateY(0);
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.instagram-feed {
    flex: 1 1 auto;
    background: white;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
    padding: 25px;
    margin-top: 20px;
    display: flex;
    flex-direction: column;
}

.instagram-feed h2 {
    color: #A51C30;
    margin-bottom: 20px;
    font-size: 1.5em;
    border-bottom: 3px solid #0072CE;
    padding-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.instagram-feed h2:before {
    content: "📸";
    font-size: 1.2em;
}

.feed-container {
    flex: 1;
    overflow-y: auto;
    padding-right: 10px;
}

.feed-container::-webkit-scrollbar {
    width: 8px;
}

.feed-container::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}

.feed-container::-webkit-scrollbar-thumb {
    background: #A51C30;
    border-radius: 4px;
}

.feed-container::-webkit-scrollbar-thumb:hover {
    background: #8B1728;
}

.feed-placeholder {
    text-align: center;
    padding: 40px 20px;
    color: #666;
    font-style: italic;
}

.feed-placeholder p {
    margin-bottom: 15px;
}

.hashtag {
    color: #0072CE;
    font-weight: bold;
    font-style: normal;
}

.rank {
    font-weight: bold;
    color: #A51C30;
    min-width: 40px;
    font-size: 1.1em;
}

.logo {
    width: 50px;
    height: 50px;
    /* background: #A51C30; */
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: bold;
    font-size: 1.2em;
    margin: 0 15px;
}

.college-name {
    flex: 1;
    font-size: 1.1em;
    color: #333;
}

.amount {
    font-weight: bold;
    font-size: 1.2em;
    color: #0072CE;
}

/* Mobile Responsive Styles */
@media (max-width: 768px) {
    body {
        padding: 10px;
    }

    .container {
        max-width: 100%;
    }

    h1 {
        font-size: 1.8em;
        margin-bottom: 20px;
    }

    .description {
        padding: 0;
        font-size: 0.95em;
    }

    .donate-button {
        padding: 12px 30px;
        font-size: 1em;
    }

    .content-wrapper {
        flex-direction: column;
        gap: 15px;
        margin-top: 20px;
    }

    .leaderboard-container {
        width: 100%;
    }

    .right-column {
        width: 100%;
    }

    .leaderboard {
        max-height: 500px;
        border-radius: 15px 0 0 15px;
    }

    .college-item {
        padding: 12px 15px;
        font-size: 0.9em;
    }

    .college-item.top-1 {
        padding: 15px;
        font-size: 1em;
    }

    .college-item.top-5 {
        padding: 14px 15px;
    }

    .rank {
        min-width: 30px;
        font-size: 1em;
    }

    .logo {
        width: 40px;
        height: 40px;
        margin: 0 10px;
        font-size: 1em;
    }

    .college-item.top-1 .logo {
        width: 50px;
        height: 50px;
    }

    .college-item.top-5 .logo {
        width: 45px;
        height: 45px;
    }

    .college-name {
        font-size: 0.95em;
    }

    .amount {
        font-size: 1em;
    }

    .college-item.top-1 .amount {
        font-size: 1.2em;
    }

    .college-item.top-5 .amount {
        font-size: 1.1em;
    }

    .secondary-goals,
    .instagram-feed {
        padding: 20px;
    }

    .secondary-goals h2,
    .instagram-feed h2 {
        font-size: 1.3em;
    }

    .secondary-goals li {
        font-size: 0.95em;
    }

    .feed-container {
        max-height: 300px;
    }
}

/* Extra small mobile devices */
@media (max-width: 480px) {
    h1 {
        font-size: 1.5em;
    }

    .description {
        padding: 0;
        font-size: 0.9em;
    }

    .college-item {
        padding: 10px;
        flex-wrap: nowrap;
    }

    .rank {
        min-width: 25px;
        font-size: 0.9em;
    }

    .logo {
        width: 35px;
        height: 35px;
        margin: 0 8px;
        font-size: 0.9em;
    }

    .college-item.top-1 .logo {
        width: 45px;
        height: 45px;
    }

    .college-item.top-5 .logo {
        width: 40px;
        height: 40px;
    }

    .college-name {
        font-size: 0.85em;
    }

    .amount {
        font-size: 0.9em;
        white-space: nowrap;
    }

    .secondary-goals li .goal-text,
    .secondary-goals li .prize {
        font-size: 0.9em;
    }

    .secondary-goals li .prize {
        padding-left: 28px;
    }
}
/* ── OVERALL GOAL BANNER ────────────────────────────────── */
.goal-banner {
    padding: 16px 20px 14px;
    background: linear-gradient(135deg, #1a1a2e 0%, #2d1a2e 100%);
    border-radius: 0;
}
.goal-banner-top {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 8px;
}
.goal-label {
    font-weight: 700;
    font-size: 0.85rem;
    color: #ccc;
}
.goal-amounts {
    font-size: 0.95rem;
    color: #ccc;
}
.goal-raised {
    font-weight: 800;
    font-size: 1.15rem;
    color: #fff;
}
.goal-sep {
    color: #666;
}
.goal-target {
    color: #aaa;
}
.goal-track {
    position: relative;
    height: 10px;
    background: rgba(255,255,255,0.12);
    border-radius: 5px;
    overflow: hidden;
}
.goal-fill {
    height: 100%;
    background: linear-gradient(90deg, #c8102e, #ff4d6d);
    border-radius: 5px;
    transition: width 0.6s ease;
}
.goal-pct {
    margin-top: 5px;
    font-size: 0.75rem;
    color: #aaa;
    text-align: right;
}

/* ── COLLEGE PROGRESS BAR (full-row background) ─────────── */
.college-middle {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}
.college-middle .college-name {
    flex: unset;
}

/* The row itself becomes the bar container */
.college-item {
    position: relative;
    overflow: hidden;  /* clip the pseudo bar */
}

/* Full-width background bar via pseudo-element */
.college-item::after {
    content: '';
    position: absolute;
    inset: 0;
    width: var(--bar-pct, 0%);
    background: rgba(0, 114, 206, 0.13);  /* default: blue tint */
    pointer-events: none;
    transition: width 0.6s ease;
    z-index: 0;
}

/* Push all direct children above the bar */
.college-item > * {
    position: relative;
    z-index: 1;
}

/* Tint colours per row type */
.college-item.top-1::after {
    background: rgba(165, 28, 48, 0.18);
}
.college-item.top-5::after {
    background: rgba(0, 0, 0, 0.08);
}


/* ── BASE ── */
/* body font intentionally left to fundrace.css */

/* ── LOGO ── */
/* ── SITE HEADER ── */
.site-header {
    margin-bottom: 2rem;
}

.site-header-inner {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    justify-content: center;
    gap: 2rem;
}

.site-header-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 1.5rem 0;
    flex-shrink: 0;
}

.header-cambridge {
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700;
    font-size: clamp(2.4rem, 5.5vw, 4.2rem);
    letter-spacing: 0.12em;
    color: #1a1f3a;
    line-height: 1;
    /* text-shadow: 0 2px 8px rgba(0,0,0,0.15); */
}

.header-rule {
    width: 100%;
    height: 3px;
    background: #CC2936;
    margin: 0.3rem 0 0.2rem;
}

.header-fundrace {
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 900;
    font-size: clamp(4rem, 11vw, 7.5rem);
    letter-spacing: 0.02em;
    line-height: 0.88;
    /* text-shadow: 0 3px 12px rgba(0,0,0,0.18); */
}

.header-fund { color: #CC2936; }
.header-race { color: #1a1f3a; }

.header-tagline {
    font-size: 0.9rem;
    font-weight: 500;
    color: rgba(26,31,58,0.5);
    margin-top: 0.7rem;
}

/* Bridge SVG: matches the height of the text block */
.header-bridge {
    display: block;
    width: auto;
    height: 100%;
    /* viewBox is 240×125 (bridge only), so constrain by height */
    max-height: 220px;
    align-self: stretch;
    flex-shrink: 0;
}

/* On mobile: stack vertically, bridge centred below */
@media (max-width: 640px) {
    .site-header-inner {
        flex-direction: column;
        align-items: center;
    }
    .site-header-text {
        text-align: center;
        padding: 1.5rem 1rem 0;
    }
    .header-rule {
        width: clamp(200px, 70vw, 360px);
        margin: 0.3rem auto 0.2rem;
    }
    .header-bridge {
        max-height: 130px;
        width: auto;
    }
}

h1 { display: none; }
.logo-tagline { display: none; }

/* ── TIMELINE ── */
.timeline-section {
    margin: 1.8rem 0 0.5rem;
}
.timeline-label {
    font-weight: 700;
    font-size: 0.8rem;
    color: #888;
    margin-bottom: 1.2rem;
}
.timeline {
    display: flex;
    align-items: flex-start;
    position: relative;
}
/* continuous connecting line */
.timeline::before {
    content: '';
    position: absolute;
    top: 9px;
    left: 10px;
    right: 10px;
    height: 2px;
    background: linear-gradient(to right, #e8d0d3, #c8102e 30%, #c8102e 70%, #e8d0d3);
    z-index: 0;
}
.timeline-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    z-index: 1;
}
.timeline-dot {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    border: 3px solid #c8102e;
    flex-shrink: 0;
    margin-bottom: 0.6rem;
}
.timeline-item.highlight .timeline-dot {
    background: #c8102e;
    box-shadow: 0 0 0 4px rgba(200,16,46,0.15);
}
.timeline-date {
    font-weight: 700;
    font-size: 0.85rem;
    color: #c8102e;
    text-align: center;
    margin-bottom: 0.2rem;
}
.timeline-event {
    font-size: 0.8rem;
    color: #555;
    text-align: center;
    line-height: 1.35;
    max-width: 88px;
}

/* ── ABOUT CARD (shared base) ── */
.about-card {
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 10px;
    padding: 0;
    position: relative;
    overflow: hidden;
    margin: 2.5rem 0;
}

/* Cards without a heading banner keep their own internal padding */
/* .wintercomfort-card {
     banner handles top; wc-inner handles internal spacing 
} */
.about-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 4px;
    height: 100%;
    background: #c8102e;
}

.about-card p {
    font-size: 0.95rem;
    color: #444;
    line-height: 1.65;
    margin: 0 0 0.75rem;
}

/* ── WINTERCOMFORT CARD — branded ── */

/* Override the card's red left-stripe with Wintercomfort navy */
.wintercomfort-card::before { background: #222f5c; }

/* Hero banner: logo on solid navy left, skyline photo on the right */
.wc-banner {
    margin: 0;
    height: 140px;
    overflow: hidden;
    border-radius: 10px 10px 0 0;
    display: flex;
}
/* Left panel: solid Wintercomfort navy */
.wc-banner-left {
    flex-shrink: 0;
    width: 220px;
    background: #222f5c;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 1.5rem;
}
.wc-banner-logo {
    width: 100%;
    height: auto;
    max-height: 90px;
    object-fit: contain;
    display: block;
}
/* Right panel: skyline photo */
.wc-banner-right {
    flex: 1;
    position: relative;
    overflow: hidden;
}
.wc-banner img.wc-skyline {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    display: block;
}
/* fade from navy into the photo */
.wc-banner-right::before {
    content: '';
    position: absolute;
    inset: 0;
    width: 60px;
    background: linear-gradient(to right, #222f5c, transparent);
    z-index: 1;
    pointer-events: none;
}

/* h2 hidden — logo acts as the heading */
.wintercomfort-card h2 { display: none; }

@media (max-width: 640px) {
    .wc-banner { height: 100px; margin: 0; }
    .wc-banner-left { width: 160px; padding: 0 1rem; }
    .description-body { padding: 16px; }
    .about-card-body { padding: 1.2rem 1rem; }
    .card-heading-banner { padding: 0.65rem 1rem; }
}

/* split: text left | stats right */
.wintercomfort-card .wc-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    align-items: start;
    padding: 1.8rem 2rem;  /* inner padding since card itself is padding:0 */
}
.wc-text {
    padding-right: 2rem;
    border-right: 1px solid #d0d5e8;
}
.wc-text p:last-child { margin-bottom: 0; }
.wc-stats {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    padding-left: 2rem;
}
@media (max-width: 640px) {
    .wintercomfort-card .wc-inner { grid-template-columns: 1fr; }
    .wc-text {
        border-right: none;
        border-bottom: 1px solid #d0d5e8;
        padding-right: 0;
        padding-bottom: 1.5rem;
        margin-bottom: 1.5rem;
    }
    .wc-stats { padding-left: 0; }
    .wc-banner { height: 100px; }
}
.stat-block {
    background: #eef0f8;
    border: 1px solid #c5cbdf;
    border-radius: 8px;
    padding: 0.85rem 1.1rem;
    display: flex;
    align-items: center;
    gap: 1rem;
}
.stat-number {
    font-weight: 900;
    font-size: 2.2rem;
    color: #222f5c;
    line-height: 1;
    flex-shrink: 0;
    min-width: 3.2rem;
}
.stat-label {
    font-weight: 700;
    font-size: 0.95rem;
    color: #222f5c;
    display: block;
}
.stat-desc {
    font-size: 0.8rem;
    color: #555;
    line-height: 1.35;
}

/* ── BOTTOM SPLIT SECTION ── */
.bottom-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    margin: 2.5rem 0;
}
@media (max-width: 640px) {
    .bottom-split { grid-template-columns: 1fr; }
}
/* override margin on cards inside the split */
.bottom-split .about-card {
    margin: 0;
}

/* ── HELP US CARD ── */
.signup-card::before { background: #1a7a3f; } /* green accent for CTA */


.signup-intro {
    font-size: 0.95rem;
    color: #444;
    line-height: 1.65;
    margin-bottom: 1.1rem;
}
.signup-perks {
    list-style: none;
    padding: 0;
    margin: 0 0 1.4rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.signup-perks li {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    font-size: 0.9rem;
    color: #444;
    line-height: 1.45;
}
.signup-perks li::before {
    content: '✓';
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 900;
    color: #1a7a3f;
    font-size: 1rem;
    flex-shrink: 0;
    margin-top: 0.05rem;
}
.signup-btn-placeholder {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: #1a7a3f;
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    padding: 0.7rem 1.4rem;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    opacity: 0.5;
    pointer-events: none;
}
.signup-btn-placeholder::after {
    content: '(link coming soon)';
    font-size: 0.7rem;
    font-weight: 500;
    text-transform: none;
    opacity: 0.85;
}
.signup-spots {
    margin-top: 0.9rem;
    font-size: 0.78rem;
    color: #888;
    font-style: italic;
}

/* ── ORGANISERS CARD ── */

/* outer wrapper: students (2/3) | red divider | Wintercomfort rep (1/3) */
.organiser-layout {
    display: grid;
    grid-template-columns: 2fr 2px 1fr;
    gap: 0;
    align-items: start;
}

/* left side: two students stacked */
.organiser-students {
    padding-right: 1.5rem;
}
.organiser-avatars-row {
    display: flex;
    gap: 0;
    margin-bottom: 0.9rem;
}
.organiser {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.45rem;
    padding: 0 0.75rem;
}
.organiser + .organiser {
    border-left: 1px solid #e8e8e8;
}
.organiser-avatar {
    max-width: 60px;
    height: 80px;
    border-radius: 5px;
    background: linear-gradient(135deg, #c8102e, #1a1a2e);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 900;
    font-size: 1.15rem;
}
.organiser-avatar-james {
    height: 80px;
    border-radius: 5px;
    background: linear-gradient(135deg, #c8102e, #1a1a2e);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 900;
    font-size: 1.15rem;
}
.organiser .name {
    font-weight: 700;
    font-size: 0.9rem;
    color: #1a1a2e;
    line-height: 1.1;
}
.organiser .role {
    font-size: 0.68rem;
    color: #c8102e;
    font-weight: 600;
}
.organiser-shared-bio {
    font-size: 0.85rem;
    color: #555;
    line-height: 1.6;
    margin: 0;
    text-align:left;
}

/* the red dividing line */
.organiser-main-divider {
    background: #c8102e;
    align-self: stretch;
    flex-shrink: 0;
    opacity: 0.6;
}

/* right side: Wintercomfort rep */
.organiser-rep {
    padding-left: 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.45rem;
}

@media (max-width: 820px) {
    .organiser-layout { grid-template-columns: 1fr; }
    .organiser-main-divider { display: none; }
    .organiser-students { padding-right: 0; }
    .organiser-rep {
        padding-left: 0;
        padding-top: 1.5rem;
        border-top: 1px solid #d0d5e8;
        margin-top: 0.5rem;
    }
}

/* Photo+name alongside WC logo — horizontal row */
.rep-inner-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 1rem;
}

/* Wintercomfort logo badge — navy pill matching the banner colour */
.rep-wc-logo-badge {
    background: #1a1f3a;
    border-radius: 6px;
    padding: 0.45rem 0.9rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.rep-wc-logo-img {
    height: 30px;
    width: auto;
    display: block;
}
.organiser-contact {
    font-size: 0.82rem;
    color: #0084ff!important;
    line-height: 1.55;
    margin-top: 0.5rem;
    text-align: center;
}

.funds-notice {
    margin-top: 1.1rem;
    padding: 0.65rem 0.9rem;
    background: #f0f4ff;
    border-left: 3px solid #3a5bd9;
    border-radius: 0 6px 6px 0;
    font-size: 0.83rem;
    color: #3a5bd9;
    font-weight: 600;
}

.coming-soon-block {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 320px;
    border: 2px dashed #ddd;
    border-radius: 14px;
    margin: 2rem 0;
    background: linear-gradient(135deg, #fafafa 0%, #f5f0f1 100%);
    text-align: center;
    padding: 3rem 2rem;
}
.coming-soon-block .cs-flag { font-size: 3rem; margin-bottom: 1rem; }
.coming-soon-block h2 {
    font-weight: 900;
    font-size: 3rem;
    color: #1a1a2e;
    margin: 0 0 0.5rem;
}
.coming-soon-block h2 span { color: #c8102e; }
.coming-soon-block p { color: #888; font-size: 1rem; margin: 0; }
.coming-soon-block .cs-date {
    margin-top: 1.5rem;
    background: #1a1a2e;
    color: #fff;
    font-weight: 700;
    font-size: 1.1rem;
    padding: 0.5rem 1.5rem;
    border-radius: 4px;
}

/* ── SECTION HEADING — shared class for Mission / Help Us! / About the Organisers ── */
.section-heading {
    margin: 0;
    font-weight: 700;
    font-size: 1.5rem;
    color: #fff;
}

/* ── SIGNUP NOTICE (green card, replaces italic disclaimer) ── */
.signup-notice {
    margin-top: 1rem;
    padding: 0.65rem 0.9rem;
    background: #f0faf4;
    border-left: 3px solid #1a7a3f;
    border-radius: 0 6px 6px 0;
    font-size: 0.83rem;
    color: #1a7a3f;
    font-weight: 600;
    line-height: 1.45;
}

/* ── COLLEGES NEEDING FUNDRACERS ── */
.colleges-needed {
    margin-top: 0.75rem;
    padding: 0.6rem 0.85rem;
    background: #f7faf8;
    border: 1px solid #c5dece;
    border-radius: 6px;
    font-size: 0.78rem;
    color: #444;
    line-height: 1.55;
}
.colleges-needed-label {
    display: block;
    font-weight: 700;
    font-size: 0.75rem;
    color: #1a7a3f;
    margin-bottom: 0.3rem;
}

/* ── WINTERCOMFORT LEARN MORE BUTTON ── */
.wc-learn-more-wrap {
    margin-top: 1.2rem;
    display: flex;
    justify-content: center;
}
.wc-learn-more-btn {
    display: inline-block;
    padding: 0.55rem 1.5rem;
    background: #5BBB3E;
    color: #fff;
    font-weight: 700;
    font-size: 1.2rem;
    text-decoration: none;
    border-radius: 6px;
    transition: background 0.2s, transform 0.15s;
}
.wc-learn-more-btn:hover {
    background: #4aa52f;
    transform: translateY(-1px);
}

/* ── CARD HEADING BANNERS ── */

/* Shared banner strip used by description, about-cards */
.card-heading-banner {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.75rem 1.8rem;
    background: #1a1a2e;
    color: #fff;
    border-radius: 0;  /* parent clips to card's border-radius */
}

/* Mission banner: Cambridge red accent */
.description .card-heading-banner {
    background: #1a1a2e;
    border-bottom: 3px solid #c8102e;
}

/* Help Us banner: green accent */
.signup-card .card-heading-banner {
    background: #1a1a2e;
    border-bottom: 3px solid #1a7a3f;
}

/* About the Organisers banner: blue accent */
.organisers-card .card-heading-banner {
    background: #1a1a2e;
    border-bottom: 3px solid #c8102e;
}

/* about-card body padding — same as before but now heading is outside */
.about-card-body {
    padding: 1.8rem 2rem;
}



/* ── WINTERCOMFORT LINK CLASS ── */
a.wc-link {
    color: #222f5c;
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px solid rgba(34,47,92,0.3);
    transition: border-color 0.2s, color 0.2s;
}
a.wc-link:hover {
    color: #3a4f99;
    border-bottom-color: #3a4f99;
}
