/* Campaign Page — v2.6.0 */

.campaign-page { display: block; }
.campaign-page .section { padding: 4rem 0; }
.campaign-page .section-parchment { background: var(--color-parchment, #EDE4D3); }
.campaign-page .section-cream { background: var(--color-cream, #FAF8F5); }
.campaign-page .section-title { font-family: 'novantique', Georgia, serif; color: var(--color-brown, #2C1810); margin-bottom: 1.5rem; }
.campaign-page .section-eyebrow { font-size: .85rem; letter-spacing: .12em; text-transform: uppercase; color: var(--color-gold, #c9a962); margin-bottom: .5rem; }

/* HERO */
.campaign-hero { position: relative; min-height: 70vh; background-color: var(--color-parchment, #EDE4D3); background-size: cover; background-position: center; color: #fff; display: flex; align-items: flex-end; padding: 4rem 0 3rem; }
.campaign-hero.no-image { background: linear-gradient(135deg, #EDE4D3 0%, #FAF8F5 100%); }
.campaign-hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(44,24,16,.35) 0%, rgba(44,24,16,.7) 70%, rgba(44,24,16,.92) 100%); }
.campaign-hero.no-image .campaign-hero-overlay { display: none; }
.campaign-hero-inner { position: relative; z-index: 2; }

/* Force light text on image hero — overrides theme's default h1/h2 colors */
.campaign-hero.has-image .campaign-hero-h1,
.campaign-hero.has-image .campaign-hero-subhead,
.campaign-hero.has-image .campaign-hero-tagline { color: #fff; text-shadow: 0 2px 12px rgba(0,0,0,.4); }
.campaign-hero.has-image .campaign-hero-eyebrow { color: var(--color-gold, #c9a962); text-shadow: 0 2px 8px rgba(0,0,0,.5); }

/* Brown text on no-image hero */
.campaign-hero.no-image .campaign-hero-h1,
.campaign-hero.no-image .campaign-hero-subhead,
.campaign-hero.no-image .campaign-hero-tagline { color: var(--color-brown, #2C1810); }
.campaign-hero.no-image .campaign-hero-eyebrow { color: var(--color-gold-dark, #a88736); }

.campaign-hero-eyebrow { letter-spacing: .14em; text-transform: uppercase; font-size: .9rem; margin-bottom: .75rem; font-weight: 600; }
.campaign-hero-h1 { font-family: 'novantique', Georgia, serif; font-size: clamp(2rem, 5vw, 3.75rem); line-height: 1.05; margin-bottom: 1rem; }
.campaign-hero-subhead { font-size: clamp(1.1rem, 2vw, 1.5rem); margin-bottom: 1rem; opacity: .98; }
.campaign-hero-tagline { font-size: 1.05rem; max-width: 60ch; margin-bottom: 2rem; opacity: .95; }
.campaign-hero-ctas { display: flex; flex-wrap: wrap; gap: 1rem; }
.campaign-hero.has-image .btn-outline-light { border-color: rgba(255,255,255,.85); color: #fff; }
.campaign-hero.has-image .btn-outline-light:hover { background: #fff; color: var(--color-brown, #2C1810); }

/* MATCH BANNER */
.campaign-match-banner { background: var(--color-brown, #2C1810); color: #fff; padding: 1.5rem 0; position: relative; z-index: 5; }
.campaign-match-banner.is-sticky.is-stuck { position: fixed; top: 0; left: 0; right: 0; z-index: 100; box-shadow: 0 4px 12px rgba(0,0,0,.2); }
.campaign-match-headline { font-family: 'novantique', Georgia, serif; font-size: 1.5rem; margin: 0 0 .25rem; color: var(--color-gold, #c9a962); }
.campaign-match-body { margin: 0 0 1rem; opacity: .9; }
.campaign-match-bar { background: rgba(255,255,255,.15); height: 14px; border-radius: 999px; overflow: hidden; margin: .5rem 0; }
.campaign-match-bar-fill { background: var(--color-gold, #c9a962); height: 100%; transition: width .6s ease; }
.campaign-match-stats { font-size: .95rem; margin: .5rem 0 0; }
.campaign-match-stats .sep { opacity: .4; margin: 0 .5rem; }
.campaign-match-countdown { font-size: .9rem; margin: .25rem 0 0; opacity: .85; }
.campaign-match-ended { margin: 0; font-size: 1.1rem; }

/* STORY/HISTORY bodies */
.campaign-story-body, .campaign-history-body { font-size: 1.1rem; line-height: 1.7; color: var(--color-brown, #2C1810); }
.campaign-story-body p, .campaign-history-body p { margin-bottom: 1.25rem; }

/* PRESS FEATURE (NPS-style validation block, embedded in story body) */
.campaign-press-feature { margin: 2.5rem 0 0; padding: 1.25rem 1.5rem; background: var(--color-cream, #FAF8F5); border-left: 4px solid var(--color-gold, #c9a962); border-radius: 0 8px 8px 0; }
.campaign-press-feature a { display: flex; align-items: center; gap: 1.25rem; color: var(--color-brown, #2C1810); text-decoration: none; width: 100%; }
.campaign-press-feature img { width: 64px; height: auto; flex-shrink: 0; }
.campaign-press-feature-text { display: block; }
.campaign-press-feature-text strong { display: block; color: var(--color-brown, #2C1810); font-family: 'novantique', Georgia, serif; font-size: 1.15rem; margin-bottom: .15rem; }
.campaign-press-feature-text em { display: block; color: var(--color-teal, #2d7d85); font-size: .95rem; font-style: normal; }
.campaign-press-feature a:hover .campaign-press-feature-text em { text-decoration: underline; }
@media (max-width: 600px) {
    .campaign-press-feature a { flex-direction: column; align-items: flex-start; gap: .75rem; }
    .campaign-press-feature img { width: 56px; }
}

/* HISTORY-BODY FIGURES (inline period art) */
.campaign-history-body .lead-figure { margin: 0 0 2rem; padding: 0; }
.campaign-history-body .lead-figure img { width: 100%; height: auto; border-radius: 8px; box-shadow: 0 4px 16px rgba(44,24,16,.12); display: block; }
.campaign-history-body .lead-figure figcaption { text-align: center; font-size: .9rem; color: #6b5640; margin-top: .5rem; font-style: italic; }
.campaign-history-body .inline-figure { float: right; max-width: 320px; margin: .25rem 0 1.25rem 1.75rem; }
.campaign-history-body .inline-figure img { width: 100%; height: auto; border-radius: 6px; box-shadow: 0 2px 8px rgba(44,24,16,.1); display: block; }
.campaign-history-body .inline-figure figcaption { font-size: .82rem; color: #6b5640; margin-top: .35rem; font-style: italic; text-align: center; }
@media (max-width: 768px) {
    .campaign-history-body .inline-figure { float: none; max-width: 100%; margin: 1.5rem 0; }
}

/* TIMELINE */
.campaign-timeline { list-style: none; padding: 0; margin: 2rem 0 0; border-left: 3px solid var(--color-gold, #c9a962); }
.campaign-timeline-item { padding: .75rem 0 1rem 1.5rem; position: relative; }
.campaign-timeline-item::before { content: ''; position: absolute; left: -8px; top: 1.1rem; width: 13px; height: 13px; border-radius: 50%; background: var(--color-gold, #c9a962); }
.campaign-timeline-date { display: block; font-family: 'novantique', Georgia, serif; color: #a88736; font-weight: 600; }
.campaign-timeline-label { display: block; color: var(--color-brown, #2C1810); }
.campaign-timeline-description { margin: .25rem 0 0; opacity: .85; }

/* WHY IT MATTERS */
.campaign-why-card { background: #fff; border: 1px solid var(--color-parchment, #EDE4D3); border-radius: 12px; padding: 1.75rem; height: 100%; box-shadow: 0 2px 8px rgba(44,24,16,.04); }
.campaign-why-card-title { font-family: 'novantique', Georgia, serif; color: var(--color-teal, #2d7d85); font-size: 1.4rem; margin-bottom: 1rem; }
.campaign-why-card-list { padding-left: 1.1rem; margin: 0; }
.campaign-why-card-list li { margin-bottom: .5rem; line-height: 1.5; }

/* SCOPE */
.campaign-scope-list { padding-left: 1.25rem; font-size: 1.05rem; }
.campaign-scope-list li { margin-bottom: .65rem; line-height: 1.55; }

/* EXAMPLES GRID */
.campaign-examples-grid-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.5rem; margin-top: 2rem; }
.campaign-example-card { background: #fff; border: 1px solid var(--color-parchment, #EDE4D3); border-radius: 12px; overflow: hidden; transition: transform .2s, box-shadow .2s; }
.campaign-example-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(44,24,16,.08); }
.campaign-example-card-link { display: block; color: inherit; text-decoration: none; }
.campaign-example-card-image { aspect-ratio: 16/10; overflow: hidden; }
.campaign-example-card-image img { width: 100%; height: 100%; object-fit: cover; }
.campaign-example-card-body { padding: 1.25rem; }
.campaign-example-card-title { font-family: 'novantique', Georgia, serif; color: var(--color-teal, #2d7d85); font-size: 1.2rem; margin: 0 0 .5rem; }
.campaign-example-card-description { margin: 0; font-size: .95rem; line-height: 1.5; }

/* SINGLE EXAMPLE EMBED */
.campaign-example-frame { position: relative; aspect-ratio: 16 / 9; background: #2C1810; cursor: pointer; border-radius: 8px; overflow: hidden; max-width: 980px; margin: 0 auto; }
.campaign-example-frame:focus-visible { outline: 3px solid var(--color-gold, #c9a962); outline-offset: 4px; }
.campaign-example-thumb { width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.campaign-example-play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1.25rem; background: rgba(0,0,0,.35); }
.campaign-example-frame iframe { width: 100%; height: 100%; border: 0; }
.campaign-example-caption { text-align: center; max-width: 720px; margin: 1rem auto 0; font-style: italic; color: var(--color-brown, #2C1810); }

/* DONATE */
.campaign-donate-tiers { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; padding: 0; list-style: none; margin: 2rem 0; }
.campaign-donate-tier { background: #fff; border: 1px solid var(--color-parchment, #EDE4D3); border-radius: 8px; padding: 1rem 1.5rem; text-align: center; min-width: 180px; }
.campaign-donate-tier-amount { display: block; font-family: 'novantique', Georgia, serif; color: #a88736; font-size: 1.5rem; font-weight: 600; }
.campaign-donate-tier-caption { display: block; font-size: .85rem; opacity: .8; margin-top: .25rem; }
.campaign-donate-howto { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; margin: 2.5rem 0; }
.campaign-donate-howto h3 { font-family: 'novantique', Georgia, serif; color: var(--color-teal, #2d7d85); font-size: 1.25rem; margin-bottom: .5rem; }
.campaign-donate-address { font-style: normal; line-height: 1.5; }

/* PLEDGE FORM */
.campaign-pledge-form-wrap { background: #fff; border: 1px solid var(--color-parchment, #EDE4D3); border-radius: 12px; padding: 2rem; margin-top: 2rem; }
.campaign-pledge-intro { margin-bottom: 1.5rem; }
.campaign-pledge-form label { display: block; font-size: .9rem; margin-bottom: 1rem; }
.campaign-pledge-form label > span { display: block; margin-bottom: .25rem; font-weight: 600; color: var(--color-brown, #2C1810); }
.campaign-pledge-form input[type=text], .campaign-pledge-form input[type=email], .campaign-pledge-form input[type=tel], .campaign-pledge-form textarea { width: 100%; padding: .65rem .9rem; border: 1px solid var(--color-parchment, #EDE4D3); border-radius: 6px; font-size: 1rem; font-family: inherit; }
.campaign-pledge-form input:focus, .campaign-pledge-form textarea:focus { outline: none; border-color: var(--color-gold, #c9a962); box-shadow: 0 0 0 3px rgba(201,169,98,.25); }
.campaign-pledge-form .form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; }
.campaign-pledge-form fieldset { border: 0; padding: 0; margin-bottom: 1rem; }
.campaign-pledge-form legend { font-weight: 600; margin-bottom: .5rem; }
.campaign-pledge-form .radio { display: inline-flex; align-items: center; gap: .35rem; margin-right: 1rem; font-weight: 400; }
.campaign-honeypot { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.campaign-pledge-status { margin-top: 1rem; min-height: 1.25rem; font-weight: 600; }
.campaign-pledge-status.is-success { color: var(--color-teal, #2d7d85); }
.campaign-pledge-status.is-error { color: #b94a48; }

/* INTEREST */
.campaign-interest-form { background: #fff; border: 1px solid var(--color-parchment, #EDE4D3); border-radius: 12px; padding: 2rem; max-width: 620px; margin: 0 auto; }

/* PARTNERS */
.campaign-partners-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 2.5rem; }
.campaign-partner img { max-height: 70px; max-width: 200px; width: auto; height: auto; object-fit: contain; opacity: .85; transition: opacity .2s; }
.campaign-partner a:hover img { opacity: 1; }
.campaign-partner-name-text { font-family: 'novantique', Georgia, serif; color: var(--color-brown, #2C1810); font-size: 1.1rem; }

/* PDF */
.campaign-pdf-link { display: inline-flex; align-items: center; gap: .5rem; padding: 1rem 1.75rem; border: 2px solid var(--color-teal, #2d7d85); color: var(--color-teal, #2d7d85); border-radius: 8px; text-decoration: none; font-weight: 600; transition: all .2s; }
.campaign-pdf-link:hover { background: var(--color-teal, #2d7d85); color: #fff; }
.campaign-pdf-icon { font-size: 1.1rem; }

/* FAQ */
.campaign-faq-list { margin-top: 2rem; }
.campaign-faq-item { background: #fff; border: 1px solid var(--color-parchment, #EDE4D3); border-radius: 8px; margin-bottom: .75rem; overflow: hidden; }
.campaign-faq-q { padding: 1.1rem 1.25rem; font-weight: 600; cursor: pointer; list-style: none; color: var(--color-brown, #2C1810); }
.campaign-faq-q::-webkit-details-marker { display: none; }
.campaign-faq-q::after { content: '+'; float: right; color: var(--color-gold, #c9a962); font-size: 1.4rem; line-height: 1; }
.campaign-faq-item[open] .campaign-faq-q::after { content: '−'; }
.campaign-faq-a { padding: 0 1.25rem 1.25rem; line-height: 1.6; }

/* FOOTER CTA */
.campaign-footer-cta { padding: 4rem 0 3rem; }
.campaign-share { list-style: none; padding: 0; margin: 1.5rem 0 0; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }
.campaign-share a { color: var(--color-teal, #2d7d85); text-decoration: none; }
.campaign-share a:hover { text-decoration: underline; }

/* SITEWIDE BANNER */
.lct-sitewide-banner { background: var(--color-brown, #2C1810); color: #fff; padding: .65rem 1rem; text-align: center; position: relative; z-index: 200; }
.lct-sitewide-banner a { color: var(--color-gold, #c9a962); font-weight: 600; text-decoration: none; margin-left: .5rem; }
.lct-sitewide-banner a:hover { text-decoration: underline; }
.lct-sitewide-banner-close { position: absolute; right: .75rem; top: 50%; transform: translateY(-50%); background: none; border: 0; color: #fff; font-size: 1.2rem; cursor: pointer; padding: .25rem .5rem; opacity: .7; }
.lct-sitewide-banner-close:hover { opacity: 1; }

/* HOME SPOTLIGHT */
.lct-home-spotlight { padding: 3rem 0; background: var(--color-parchment, #EDE4D3); }
.lct-home-spotlight-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 2rem; align-items: center; background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 16px rgba(44,24,16,.06); }
.lct-home-spotlight-image img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4/3; }
.lct-home-spotlight-body { padding: 1.5rem 2rem 1.5rem 0; }
.lct-home-spotlight-eyebrow { color: var(--color-gold, #c9a962); letter-spacing: .12em; text-transform: uppercase; font-size: .8rem; }
.lct-home-spotlight-title { font-family: 'novantique', Georgia, serif; color: var(--color-brown, #2C1810); font-size: 1.6rem; margin: .25rem 0 .75rem; }
.lct-home-spotlight-bar { background: var(--color-parchment, #EDE4D3); height: 10px; border-radius: 999px; overflow: hidden; margin: .75rem 0; }
.lct-home-spotlight-bar-fill { background: var(--color-gold, #c9a962); height: 100%; }
.lct-home-spotlight-stats { font-size: .9rem; opacity: .8; margin: .25rem 0 1rem; }

@media (max-width: 768px) {
    .campaign-hero { min-height: 60vh; }
    .campaign-page .section { padding: 2.5rem 0; }
    .campaign-match-banner.is-sticky.is-stuck.unstick-mobile { position: relative; }
    .lct-home-spotlight-card { grid-template-columns: 1fr; }
    .lct-home-spotlight-body { padding: 1.5rem; }
}
