/* === Theme-aware tokens (fallbacks use calm blue/teal like site) === */
:root{
  --chcm-primary: var(--wp--preset--color--primary, #0b5fff);
  --chcm-accent:  var(--wp--preset--color--accent,  #22aa99);
  --chcm-orange:  #f57c00;
  --chcm-gray:    #6b7280;
  --chcm-base:    var(--wp--preset--color--base,    #ffffff);
  --chcm-ink:     var(--wp--preset--color--contrast,#111111);
  --chcm-muted:   var(--wp--preset--color--muted,   #f6f7fb);
  --chcm-radius:  16px;
}
.chcm *{box-sizing:border-box}
.container{max-width:1120px;margin:0 auto;padding:0 20px}
.pill{display:inline-block;padding:.35rem .75rem;border-radius:999px;background:linear-gradient(135deg, color-mix(in oklab, var(--chcm-orange) 22%, transparent), color-mix(in oklab, var(--chcm-primary) 14%, transparent));border:1px solid color-mix(in oklab, var(--chcm-orange) 38%, transparent);color:#fff;font-size:.8rem;letter-spacing:.02em}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border-radius:999px;font-weight:700;border:1px solid transparent;cursor:pointer;text-decoration:none;transition:transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 18px rgba(0,0,0,.08)}
.btn-primary{background:var(--chcm-base);color:var(--chcm-ink)}
.btn-outline{background:transparent;color:#fff;border-color:color-mix(in oklab, #fff 40%, transparent)}

/* === HERO SLIDER === */
.hero{position:relative;overflow:hidden;border-bottom-left-radius:24px;border-bottom-right-radius:24px}
.hero .slide{min-height:64vh;display:grid;place-items:center;position:absolute;inset:0;opacity:0;transition:opacity .6s ease}
.hero .slide.is-active{opacity:1;position:relative}
.hero .backdrop{position:absolute;inset:0;background:
  radial-gradient(1200px 400px at 10% 0%, color-mix(in oklab, var(--chcm-primary) 16%, transparent), transparent),
  linear-gradient(135deg, color-mix(in oklab, var(--chcm-orange) 18%, transparent), transparent 35%),
  linear-gradient(135deg, color-mix(in oklab, var(--chcm-primary) 20%, transparent), color-mix(in oklab, var(--chcm-accent) 18%, transparent)),
  url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 600"><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop stop-color="%230b5fff" stop-opacity="0.18"/><stop stop-color="%2322aa99" stop-opacity="0.12" offset="1"/></linearGradient></defs><g fill="url(%23g)" opacity="0.5"><circle cx="200" cy="180" r="140"/><circle cx="640" cy="420" r="180"/></g></svg>') center/cover no-repeat;
  filter:saturate(1.05)}
.hero .shade{position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.35));}
.hero .content{position:relative;color:#fff;text-align:left;padding:56px 0}
.hero h1{font-size:clamp(36px, 6vw, 56px);line-height:1.1;margin:12px 0}
.hero p.lead{font-size:clamp(16px,2.2vw,20px);line-height:1.8;max-width:840px;margin:0 0 20px}

.hero .nav{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:flex;gap:8px;z-index:5}
.hero .dot{width:10px;height:10px;border-radius:999px;background:color-mix(in oklab, var(--chcm-gray) 35%, #ffffff);border:1px solid rgba(255,255,255,.95);cursor:pointer}
.hero .dot.is-active{background:#fff}
.hero .arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:999px;background:rgba(255,255,255,.85);display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.15)}
.hero .arrow:hover{transform:translateY(-50%) scale(1.04)}
.hero .arrow.prev{left:14px}.hero .arrow.next{right:14px}

/* === REVEAL ON SCROLL === */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease, transform .6s ease}
.reveal.reveal--visible{opacity:1;transform:translateY(0)}

/* === VALUE CARDS === */
.section{padding:clamp(28px,4vw,48px) 0}
.grid{display:grid;grid-template-columns:repeat(1, minmax(0,1fr));gap:24px}
@media(min-width:720px){.grid{grid-template-columns:repeat(2, minmax(0,1fr))}}
@media(min-width:1040px){.grid{grid-template-columns:repeat(4, minmax(0,1fr))}}
/* Mobile refinements */
@media(max-width:480px){.hero .arrow{width:48px;height:48px}.hero .content{padding:36px 0}.hero .slide{min-height:70vh}.btn{padding:.7rem 1.1rem}.container{padding:0 16px}}
.card{background:var(--chcm-base);border:1px solid color-mix(in oklab, var(--chcm-ink) 12%, transparent);border-radius:var(--chcm-radius);padding:18px;box-shadow:0 10px 20px rgba(0,0,0,.04);transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease}
.card:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(0,0,0,.07);border-color:color-mix(in oklab, var(--chcm-orange) 32%, transparent)}
.icon{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:12px;background:linear-gradient(135deg, color-mix(in oklab, var(--chcm-primary) 12%, transparent), color-mix(in oklab, var(--chcm-orange) 14%, transparent));border:1px solid color-mix(in oklab, var(--chcm-primary) 40%, transparent);margin-bottom:.75rem;font-size:18px}
.icon svg{width:22px;height:22px;display:block;color:currentColor}

/* === IMAGE CAROUSEL === */
.carousel{position:relative;overflow:hidden;border-radius:var(--chcm-radius);border:1px solid color-mix(in oklab, var(--chcm-ink) 10%, transparent)}
.carousel-track{display:flex;transition:transform .6s ease}
.carousel .frame{min-width:100%;min-height:260px;background:linear-gradient(135deg, color-mix(in oklab, var(--chcm-orange) 14%, transparent), transparent 40%), linear-gradient(135deg, color-mix(in oklab, var(--chcm-primary) 12%, transparent), color-mix(in oklab, var(--chcm-accent) 12%, transparent));position:relative}
.carousel .frame::after{content:"";position:absolute;inset:0;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 400"><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop stop-color="%230b5fff" stop-opacity="0.18"/><stop stop-color="%2322aa99" stop-opacity="0.12" offset="1"/></linearGradient></defs><g fill="url(%23g)" opacity="0.7"><circle cx="140" cy="220" r="120"/><circle cx="640" cy="180" r="160"/></g></svg>') center/cover no-repeat;opacity:.7}
.carousel .nav{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:6px}
.carousel .dot{width:8px;height:8px;background:#fff;border:1px solid rgba(0,0,0,.15);border-radius:999px;opacity:.6;cursor:pointer}
.carousel .dot.is-active{opacity:1}
.carousel .arrow{position:absolute;top:50%;transform:translateY(-50%);background:#fff;width:40px;height:40px;border-radius:999px;box-shadow:0 8px 18px rgba(0,0,0,.15);display:grid;place-items:center;cursor:pointer}
.carousel .arrow.prev{left:8px}.carousel .arrow.next{right:8px}

/* === CTA === */
.cta{background:linear-gradient(135deg, color-mix(in oklab, var(--chcm-orange) 14%, transparent), color-mix(in oklab, var(--chcm-primary) 10%, transparent), color-mix(in oklab, var(--chcm-accent) 12%, transparent));border-radius:calc(var(--chcm-radius) * 1.25);padding:clamp(20px, 2vw, 32px);border:1px solid color-mix(in oklab, var(--chcm-primary) 35%, transparent)}
.cta h2, .cta p{color:#111}
.cta .btn-primary{background:var(--chcm-orange);color:#fff;border-color:color-mix(in oklab, var(--chcm-orange) 45%, transparent)}
.cta .btn-primary:hover{filter:brightness(1.05)}
.kicker{display:inline-block;font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;color:var(--chcm-gray)}
.updates-title{margin:.25rem 0 1rem;font-size:clamp(22px,2.6vw,28px)}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:.25rem 0 .35rem}
.chip{display:inline-block;padding:.25rem .6rem;border-radius:999px;background:color-mix(in oklab, var(--chcm-orange) 14%, transparent);border:1px solid color-mix(in oklab, var(--chcm-orange) 30%, transparent);font-size:.75rem}
.chip--muted{background:color-mix(in oklab, var(--chcm-gray) 12%, transparent);border-color:color-mix(in oklab, var(--chcm-gray) 30%, transparent)}
.impact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;background:color-mix(in oklab, var(--chcm-gray) 6%, transparent);border:1px solid color-mix(in oklab, var(--chcm-gray) 18%, transparent);border-radius:calc(var(--chcm-radius) * 1.1);padding:16px}
@media(min-width:840px){.impact{grid-template-columns:repeat(4,minmax(0,1fr));padding:20px 24px}}
.impact__item{text-align:center;padding:10px}
.impact__number{font-weight:800;font-size:clamp(22px,3vw,32px);color:var(--chcm-orange)}
.impact__label{color:var(--chcm-gray);font-size:.95rem}
.frame--thumb{min-height:140px;background:linear-gradient(135deg, color-mix(in oklab, var(--chcm-primary) 12%, transparent), color-mix(in oklab, var(--chcm-orange) 10%, transparent))}
.update__body{padding-top:.5rem}
.update__title{margin:.25rem 0 .25rem;}
.update__meta{margin:0;color:var(--chcm-gray);font-size:.9rem}

/* Floating donate button (inspired by persistent CTA patterns) */
.fab-donate{position:fixed;right:14px;bottom:14px;z-index:60;background:var(--chcm-orange);color:#fff;border-radius:999px;padding:.85rem 1.2rem;font-weight:800;box-shadow:0 14px 30px rgba(0,0,0,.18);text-decoration:none;border:1px solid color-mix(in oklab, var(--chcm-orange) 40%, transparent)}
.fab-donate:hover{filter:brightness(1.05)}
