:root {
    --gold: #b5a064;
    --gold-light: #d4c68a;
    --cream: #f5f0e1;
    --paper: #fffdf7;
    --black: #0a0a0a;
    --green: #4e821d;
    --ink-soft: rgba(10,10,10,.64);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 5rem; }
body { background: var(--paper); color: var(--black); font-family: 'DM Sans',sans-serif; line-height: 1.6; overflow-wrap: anywhere; }
h1, h2, h3 { font-family: 'Oswald',sans-serif; font-weight: 700; line-height: .98; }
a { color: inherit; }
.eyebrow { color: var(--gold); font-size: .73rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }

.button {
    min-height: 52px;
    padding: .9rem 1.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    border: 1px solid transparent;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .08em;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    transition: transform .2s ease,background-color .2s ease,color .2s ease;
}
.button:hover, .button:focus-visible { transform: translateY(-2px); }
.button--gold { background: var(--gold); color: var(--black); }
.button--gold:hover, .button--gold:focus-visible { background: var(--gold-light); }
.button--outline { border-color: rgba(245,240,225,.5); color: var(--cream); }
.button--outline:hover, .button--outline:focus-visible { background: var(--cream); color: var(--black); }
.button--dark { background: var(--black); color: var(--cream); }

.sponsors-hero {
    min-height: min(900px,96vh);
    padding: 8.5rem clamp(1.25rem,6vw,6rem) 3.5rem;
    display: grid;
    grid-template-columns: minmax(0,1.04fr) minmax(380px,.8fr);
    align-items: stretch;
    gap: clamp(2rem,5vw,5rem);
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 12% 88%,rgba(78,130,29,.18),transparent 34%),
        linear-gradient(135deg,#070807,#11150f 70%,#101a0b);
    color: var(--cream);
}
.sponsors-hero::before { content: ''; width: 32rem; height: 32rem; position: absolute; left: -18rem; bottom: -20rem; border: 1px solid rgba(212,198,138,.17); border-radius: 50%; box-shadow: 0 0 0 6rem rgba(181,160,100,.035),0 0 0 12rem rgba(181,160,100,.02); pointer-events: none; }
.sponsors-hero__copy { max-width: 880px; align-self: center; position: relative; z-index: 1; }
.sponsors-hero h1 { margin: .9rem 0 1.6rem; font-size: clamp(5rem,10vw,9.5rem); letter-spacing: -.025em; }
.sponsors-hero h1 span { color: var(--gold); }
.sponsors-hero__copy > p { max-width: 680px; color: rgba(245,240,225,.78); font-size: clamp(1rem,1.5vw,1.17rem); }
.hero-actions { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: .8rem; }
.sponsors-hero__visual { min-width: 0; min-height: 590px; position: relative; overflow: hidden; border: 1px solid rgba(245,240,225,.23); box-shadow: 22px 22px 0 rgba(181,160,100,.12); }
.sponsors-hero__visual::after { content: ''; position: absolute; inset: 38% 0 0; background: linear-gradient(transparent,rgba(4,6,3,.9)); pointer-events: none; }
.sponsors-hero__visual img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 54% center; }
.sponsors-hero__visual figcaption { position: absolute; z-index: 1; right: 1.5rem; bottom: 1.5rem; left: 1.5rem; color: var(--cream); }
.sponsors-hero__visual figcaption span,.sponsors-hero__visual figcaption strong { display: block; }
.sponsors-hero__visual figcaption span { color: var(--gold-light); font-size: .68rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.sponsors-hero__visual figcaption strong { margin-top: .25rem; font: 700 clamp(2rem,4vw,3.5rem)/1 'Oswald',sans-serif; text-transform: uppercase; }

.section { padding: clamp(5rem,9vw,8rem) clamp(1.25rem,6vw,6rem); }
.section-inner { width: 100%; max-width: 1280px; margin: auto; }
.sponsor-intro { background: var(--black); color: var(--cream); }
.sponsor-intro__grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(300px,.9fr); align-items: center; gap: clamp(2.5rem,7vw,7rem); }
.sponsor-intro h2 { margin-top: .7rem; max-width: 760px; font-size: clamp(3.5rem,7vw,6.4rem); }
.sponsor-intro__grid > div:last-child { display: grid; gap: 1rem; }
.sponsor-intro p { max-width: 620px; color: rgba(245,240,225,.7); font-size: 1.03rem; }

.partners-section { background: var(--cream); }
.section-heading { margin-bottom: 3rem; display: grid; grid-template-columns: minmax(0,1.15fr) minmax(280px,.85fr); align-items: end; gap: clamp(2rem,6vw,6rem); }
.section-heading h2 { margin-top: .65rem; font-size: clamp(4rem,8vw,7rem); }
.section-heading p { max-width: 520px; color: var(--ink-soft); }
.sponsor-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: stretch; gap: 1rem; }
.sponsor-loading,.sponsor-error { grid-column: 1/-1; padding: 2rem; border-left: 5px solid var(--gold); background: var(--paper); color: var(--ink-soft); }

.sponsor-card { min-width: 0; height: 100%; overflow: hidden; display: flex; flex-direction: column; background: var(--paper); border: 1px solid rgba(10,10,10,.1); box-shadow: 0 14px 36px rgba(40,35,20,.07); transition: transform .22s ease,box-shadow .22s ease; }
.sponsor-card:hover,.sponsor-card:focus-within { transform: translateY(-4px); box-shadow: 0 22px 46px rgba(40,35,20,.12); }
.sponsor-card__logo { height: 210px; padding: 1.75rem; position: relative; display: grid; place-items: center; background: #fff; border-bottom: 1px solid rgba(10,10,10,.09); }
.sponsor-card__logo img { width: auto; height: auto; max-width: 100%; max-height: 100%; display: block; object-fit: scale-down; }
.sponsor-card__logo--wide { padding: 2.25rem 1.5rem; }
.sponsor-card__logo--square img { max-width: 158px; max-height: 158px; }
.sponsor-card--text-only .sponsor-card__copy { min-height: 510px; }
.sponsor-card__copy { min-height: 390px; padding: 1.5rem; display: flex; flex: 1; flex-direction: column; align-items: flex-start; }
.sponsor-card__label { color: #756327; font-size: .66rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.sponsor-card h3 { margin: .65rem 0 .9rem; font-size: clamp(2rem,3vw,2.65rem); }
.sponsor-card__description { width: 100%; margin-bottom: 1.4rem; }
.sponsor-card__description p { display: -webkit-box; overflow: hidden; color: var(--ink-soft); font-size: .88rem; -webkit-box-orient: vertical; -webkit-line-clamp: 6; line-clamp: 6; }
.sponsor-card__description.is-expanded p { display: block; overflow: visible; }
.sponsor-card__more { margin-top: .75rem; padding: 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: #756327; cursor: pointer; font: inherit; font-size: .7rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.sponsor-card__more:hover,.sponsor-card__more:focus-visible { color: var(--black); }
.sponsor-card a { width: 100%; margin-top: auto; padding-top: 1rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid rgba(10,10,10,.12); color: var(--black); font-size: .7rem; font-weight: 800; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }
.sponsor-card a span { color: #756327; font-size: 1rem; }
.sponsor-card a:hover,.sponsor-card a:focus-visible { color: #756327; }

.impact-section { background: var(--black); color: var(--cream); }
.section-heading--light p { color: rgba(245,240,225,.68); }
.impact-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.impact-grid article { min-height: 310px; padding: 1.6rem; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; border: 1px solid rgba(245,240,225,.16); border-top: 5px solid var(--gold); background: linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.035)); }
.impact-grid article::after { content: attr(data-number); position: absolute; right: -.1rem; top: -.7rem; color: rgba(245,240,225,.045); font: 700 8rem/1 'Oswald',sans-serif; }
.impact-grid h3 { position: relative; z-index: 1; margin-bottom: .75rem; font-size: 2.35rem; }
.impact-grid p { position: relative; z-index: 1; color: rgba(245,240,225,.7); font-size: .92rem; }

@media (min-width: 761px) {
    .impact-grid h3 {
        min-height: 2em;
        display: flex;
        align-items: flex-end;
    }

    .impact-grid p { min-height: 4.8rem; }
}

.partner-cta { padding: clamp(4rem,8vw,7rem) clamp(1.25rem,8vw,9rem); background: var(--gold); }
.partner-cta__inner { width: 100%; max-width: 1280px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 3rem; }
.partner-cta .eyebrow { color: rgba(10,10,10,.58); }
.partner-cta h2 { margin: .55rem 0 .8rem; font-size: clamp(4rem,9vw,8rem); }
.partner-cta p { max-width: 680px; color: rgba(10,10,10,.66); }
.partner-cta .button { flex: 0 0 auto; }
footer { padding: 3rem 1.25rem; background: var(--black); color: rgba(245,240,225,.6); text-align: center; }

@media (max-width: 1080px) {
    .sponsors-hero { min-height: auto; padding: 8.5rem 2rem 4rem; grid-template-columns: minmax(0,1fr) minmax(300px,.75fr); gap: 2rem; }
    .sponsors-hero__visual { min-height: 520px; }
    .section { padding: 5rem 2rem; }
    .sponsor-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .sponsor-card__copy { min-height: 390px; }
}

@media (min-width: 1081px) {
    .sponsor-card h3 { min-height: 3em; }
}

@media (min-width: 761px) and (max-width: 1080px) {
    .sponsor-card h3 { min-height: 2em; }
}

@media (max-width: 760px) {
    .sponsors-hero { padding: 7rem 1.1rem 2.25rem; grid-template-columns: 1fr; }
    .sponsors-hero h1 { font-size: clamp(4rem,18vw,5.8rem); }
    .hero-actions { display: grid; }
    .button { width: 100%; }
    .sponsors-hero__visual { min-height: 0; aspect-ratio: 4/3; box-shadow: 10px 10px 0 rgba(181,160,100,.12); }
    .sponsors-hero__visual figcaption { right: 1rem; bottom: 1rem; left: 1rem; }
    .section { padding: 3.75rem 1.1rem; }
    .sponsor-intro__grid,.section-heading { grid-template-columns: 1fr; gap: 1.25rem; }
    .sponsor-intro h2,.section-heading h2,.partner-cta h2 { font-size: clamp(3rem,15vw,4.6rem); }
    .sponsor-grid,.impact-grid { grid-template-columns: 1fr; }
    .sponsor-card__logo { height: 200px; padding: 1.5rem; }
    .sponsor-card__logo--wide { padding: 2rem 1.25rem; }
    .sponsor-card__copy,.sponsor-card--text-only .sponsor-card__copy { min-height: 0; }
    .impact-grid article { min-height: 270px; }
    .partner-cta { padding: 3.75rem 1.1rem; }
    .partner-cta__inner { align-items: stretch; flex-direction: column; gap: 1.5rem; }
}

@media (max-width: 430px) {
    .sponsors-hero__visual { aspect-ratio: 1/1.05; }
    .sponsors-hero__visual figcaption strong { font-size: 1.9rem; }
    .sponsor-card__logo { height: 185px; padding: 1.35rem; }
    .sponsor-card__logo--wide { padding: 1.75rem 1rem; }
    .sponsor-card__copy { padding: 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { scroll-behavior: auto !important; transition: none !important; }
}
