:root {
  --ink: #25113e;
  --ink-soft: #5b4a6c;
  --purple: #5f2a93;
  --purple-deep: #2f0e55;
  --magenta: #e5007e;
  --pink: #ff3f91;
  --coral: #ff766f;
  --peach: #ffae72;
  --teal: #05aebd;
  --aqua: #5ed8dd;
  --cream: #fffaf8;
  --lavender: #f8f3ff;
  --rose: #fff2f7;
  --white: #fff;
  --border: rgba(66, 30, 87, .12);
  --shadow: 0 22px 70px rgba(55, 15, 82, .12);
  --shadow-soft: 0 12px 38px rgba(55, 15, 82, .09);
  --radius-sm: 14px;
  --radius: 24px;
  --radius-lg: 38px;
  --container: 1180px;
  --header-height: 86px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.65;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }

.container { width: min(var(--container), calc(100% - 40px)); margin-inline: auto; }
.section { position: relative; padding: 96px 0; }
.section-sm { padding: 64px 0; }
.section-tint { background: linear-gradient(180deg, #fff 0%, #fff5fa 100%); }
.section-purple { color: #fff; background: radial-gradient(circle at 10% 15%, rgba(255, 65, 151, .33), transparent 30%), linear-gradient(135deg, #260b45, #5b1d86 58%, #9d236d); }
.eyebrow { display: inline-flex; gap: 8px; align-items: center; margin-bottom: 14px; color: var(--magenta); font-size: .78rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow::before { width: 26px; height: 2px; content: ""; border-radius: 999px; background: linear-gradient(90deg, var(--magenta), var(--peach)); }
.section-title { max-width: 760px; margin: 0 0 18px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.2rem, 5vw, 4.25rem); line-height: 1.05; letter-spacing: -.035em; }
.section-title.small { font-size: clamp(1.9rem, 4vw, 3rem); }
.section-copy { max-width: 690px; margin: 0; color: var(--ink-soft); font-size: 1.05rem; }
.section-purple .section-copy { color: rgba(255,255,255,.8); }
.text-gradient { color: transparent; background: linear-gradient(100deg, var(--magenta), var(--coral), var(--purple)); -webkit-background-clip: text; background-clip: text; }

.skip-link { position: fixed; z-index: 9999; top: 12px; left: 12px; transform: translateY(-160%); padding: 10px 16px; color: #fff; border-radius: 10px; background: var(--purple-deep); }
.skip-link:focus { transform: none; }

.site-banner { display: none; position: relative; z-index: 1001; padding: 10px 48px 10px 20px; color: #fff; text-align: center; background: linear-gradient(90deg, var(--purple-deep), var(--magenta), var(--coral)); }
.site-banner.is-visible { display: block; }
.site-banner a { font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.site-banner button { position: absolute; top: 50%; right: 16px; color: #fff; border: 0; background: transparent; transform: translateY(-50%); }

.site-header { position: sticky; z-index: 1000; top: 0; height: var(--header-height); border-bottom: 1px solid rgba(73, 31, 93, .08); background: rgba(255, 250, 248, .88); backdrop-filter: blur(18px); }
.header-inner { display: flex; height: 100%; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 11px; min-width: 238px; }
.brand img { width: 58px; height: 58px; object-fit: contain; }
.brand-copy strong { display: block; font-family: Georgia, "Times New Roman", serif; font-size: 1.24rem; line-height: 1; }
.brand-copy span { display: block; margin-top: 4px; color: var(--magenta); font-size: .7rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.main-nav { display: flex; align-items: center; gap: 6px; }
.main-nav a { position: relative; padding: 12px 13px; color: #3d2851; border-radius: 999px; font-size: .93rem; font-weight: 700; }
.main-nav a:hover, .main-nav a[aria-current="page"] { color: var(--magenta); background: #fff1f7; }
.main-nav .nav-donate { padding: 12px 20px; color: #fff; box-shadow: 0 10px 25px rgba(229, 0, 126, .25); background: linear-gradient(100deg, var(--magenta), var(--coral), var(--peach)); }
.main-nav .nav-donate:hover, .main-nav .nav-donate[aria-current="page"] { color: #fff; background: linear-gradient(100deg, #c8006e, var(--magenta), var(--coral)); }
.menu-toggle { display: none; width: 48px; height: 48px; border: 1px solid var(--border); border-radius: 50%; background: #fff; }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { display: block; width: 20px; height: 2px; margin: 4px auto; content: ""; border-radius: 9px; background: var(--ink); transition: .2s ease; }
.menu-open .menu-toggle span { opacity: 0; }
.menu-open .menu-toggle::before { transform: translateY(6px) rotate(45deg); }
.menu-open .menu-toggle::after { transform: translateY(-6px) rotate(-45deg); }

.hero { position: relative; min-height: 730px; overflow: hidden; border-bottom-right-radius: 80px; border-bottom-left-radius: 80px; background: #fff; }
.hero-media { position: absolute; inset: 0; background-image: linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.91) 31%, rgba(255,255,255,.18) 58%, rgba(255,255,255,0) 100%), url('../images/hero.webp'); background-position: center; background-size: cover; }
.hero::after { position: absolute; right: -7%; bottom: -170px; width: 55%; height: 290px; content: ""; border-radius: 50%; filter: blur(40px); opacity: .28; background: linear-gradient(90deg, var(--magenta), var(--purple), var(--teal)); }
.hero-inner { position: relative; z-index: 2; display: flex; min-height: 650px; align-items: center; padding: 75px 0 118px; }
.hero-content { max-width: 650px; }
.hero h1 { margin: 0 0 24px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(3rem, 7vw, 6.1rem); line-height: .94; letter-spacing: -.055em; }
.hero p { max-width: 580px; margin: 0 0 34px; color: #5b4968; font-size: clamp(1rem, 2vw, 1.18rem); }
.hero-actions, .button-row { display: flex; flex-wrap: wrap; gap: 14px; }
.btn { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 9px; padding: 13px 22px; border: 1px solid transparent; border-radius: 999px; font-weight: 800; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { color: #fff; box-shadow: 0 15px 35px rgba(199, 0, 103, .24); background: linear-gradient(105deg, var(--purple), var(--magenta), var(--coral)); }
.btn-primary:hover { box-shadow: 0 18px 42px rgba(199, 0, 103, .34); }
.btn-secondary { color: var(--magenta); border-color: rgba(229,0,126,.3); background: rgba(255,255,255,.9); }
.btn-secondary:hover { background: #fff2f8; }
.btn-light { color: var(--purple-deep); background: #fff; }
.btn-ghost { color: #fff; border-color: rgba(255,255,255,.3); background: rgba(255,255,255,.08); }
.hero-badge { display: inline-flex; align-items: center; gap: 10px; margin-top: 32px; padding: 10px 14px; color: var(--purple); border: 1px solid rgba(97, 42, 147, .12); border-radius: 999px; background: rgba(255,255,255,.75); backdrop-filter: blur(8px); }
.hero-badge span:first-child { display: grid; width: 29px; height: 29px; color: #fff; border-radius: 50%; background: linear-gradient(135deg, var(--magenta), var(--peach)); place-items: center; }
.floating-dot { position: absolute; z-index: 2; width: 18px; height: 18px; border-radius: 50%; opacity: .5; animation: float 8s ease-in-out infinite; }
.dot-one { top: 20%; left: 46%; background: var(--pink); }
.dot-two { top: 36%; left: 54%; width: 12px; height: 12px; animation-delay: -3s; background: var(--teal); }
.dot-three { top: 16%; right: 7%; width: 26px; height: 26px; animation-delay: -5s; background: var(--peach); }
@keyframes float { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-24px) scale(1.08); } }

.impact-strip { position: relative; z-index: 5; margin-top: -76px; }
.impact-grid { display: grid; grid-template-columns: repeat(4, 1fr); overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow); background: rgba(255,255,255,.95); backdrop-filter: blur(14px); }
.impact-item { display: flex; align-items: center; gap: 16px; padding: 28px 24px; border-right: 1px solid var(--border); }
.impact-item:last-child { border-right: 0; }
.impact-icon { display: grid; flex: 0 0 54px; width: 54px; height: 54px; color: #fff; border-radius: 50%; box-shadow: 0 10px 24px rgba(94, 26, 135, .18); background: linear-gradient(135deg, var(--magenta), var(--peach)); place-items: center; }
.impact-item:nth-child(2) .impact-icon { background: linear-gradient(135deg, var(--purple), var(--pink)); }
.impact-item:nth-child(3) .impact-icon { background: linear-gradient(135deg, var(--teal), var(--aqua)); }
.impact-item:nth-child(4) .impact-icon { background: linear-gradient(135deg, var(--coral), var(--peach)); }
.impact-number { display: block; font-family: Georgia, "Times New Roman", serif; font-size: 1.8rem; font-weight: 700; line-height: 1; }
.impact-label { display: block; margin-top: 5px; color: var(--ink-soft); font-size: .86rem; line-height: 1.3; }

.card-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 44px; }
.service-card, .content-card { position: relative; overflow: hidden; padding: 28px; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-soft); background: #fff; transition: .25s ease; }
.service-card:hover, .content-card:hover { transform: translateY(-7px); box-shadow: var(--shadow); }
.service-card::after { position: absolute; right: -46px; bottom: -58px; width: 130px; height: 130px; content: ""; border-radius: 50%; opacity: .12; background: linear-gradient(135deg, var(--magenta), var(--teal)); }
.service-card img { width: 74px; height: 74px; margin-bottom: 20px; object-fit: contain; }
.service-card h3, .content-card h3 { margin: 0 0 9px; font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; }
.service-card p, .content-card p { margin: 0; color: var(--ink-soft); }
.card-link { display: inline-flex; align-items: center; gap: 6px; margin-top: 16px; color: var(--magenta); font-weight: 800; }

.split { display: grid; grid-template-columns: 1.03fr .97fr; align-items: center; gap: 72px; }
.media-card { position: relative; overflow: hidden; border-radius: var(--radius-lg); box-shadow: var(--shadow); background: #fff; }
.media-card img { width: 100%; min-height: 510px; object-fit: cover; }
.media-card::after { position: absolute; inset: auto 0 0; height: 40%; content: ""; background: linear-gradient(transparent, rgba(38, 11, 69, .3)); }
.quote-card { position: absolute; right: -28px; bottom: 30px; z-index: 2; max-width: 320px; padding: 24px; color: #fff; border-radius: 22px; box-shadow: var(--shadow); background: linear-gradient(135deg, rgba(54, 14, 90, .96), rgba(217, 0, 119, .92)); backdrop-filter: blur(10px); }
.quote-card strong { display: block; margin-top: 10px; }
.check-list { display: grid; gap: 15px; margin: 28px 0; padding: 0; list-style: none; }
.check-list li { display: flex; align-items: flex-start; gap: 12px; color: var(--ink-soft); }
.check-list span { display: grid; flex: 0 0 26px; width: 26px; height: 26px; color: #fff; border-radius: 50%; background: linear-gradient(135deg, var(--teal), var(--purple)); place-items: center; }

.story-band { overflow: hidden; border-radius: var(--radius-lg); background: linear-gradient(135deg, #fff1f7, #f7f4ff 60%, #edffff); }
.story-grid { display: grid; grid-template-columns: .78fr 1.22fr; align-items: center; }
.story-portrait { min-height: 430px; background-image: linear-gradient(90deg, transparent, rgba(255,241,247,.5)), url('../images/counseling.webp'); background-position: center; background-size: cover; }
.story-copy { padding: 58px; }
.story-copy blockquote { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.45rem, 3vw, 2.4rem); line-height: 1.35; }
.story-copy cite { display: block; margin-top: 20px; color: var(--magenta); font-style: normal; font-weight: 800; }

.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 42px; }
.blog-card { overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-soft); background: #fff; }
.blog-card-image { aspect-ratio: 16 / 10; overflow: hidden; background: #f4eef8; }
.blog-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.blog-card:hover .blog-card-image img { transform: scale(1.045); }
.blog-card-body { padding: 24px; }
.post-meta { display: flex; flex-wrap: wrap; gap: 8px 15px; margin-bottom: 11px; color: var(--magenta); font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.blog-card h3 { margin: 0 0 10px; font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; line-height: 1.2; }
.blog-card p { margin: 0; color: var(--ink-soft); font-size: .95rem; }

.event-band { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 28px; padding: 32px; color: #fff; border-radius: var(--radius-lg); background: linear-gradient(105deg, var(--purple-deep), var(--purple), var(--magenta), var(--coral)); box-shadow: var(--shadow); }
.event-date { display: grid; width: 76px; height: 76px; text-align: center; border: 1px solid rgba(255,255,255,.3); border-radius: 22px; background: rgba(255,255,255,.14); place-content: center; }
.event-date strong { font-size: 1.7rem; line-height: 1; }
.event-date span { font-size: .72rem; letter-spacing: .15em; }
.event-band h3 { margin: 0 0 4px; font-family: Georgia, "Times New Roman", serif; font-size: 1.6rem; }
.event-band p { margin: 0; color: rgba(255,255,255,.78); }

.cta-panel { position: relative; overflow: hidden; padding: 68px; color: #fff; border-radius: 44px; background: radial-gradient(circle at 85% 15%, rgba(0, 199, 211, .38), transparent 30%), linear-gradient(135deg, #2c0a4d, #761581 58%, #d50075); }
.cta-panel::before { position: absolute; top: -100px; right: -80px; width: 360px; height: 360px; content: ""; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; }
.cta-panel::after { position: absolute; right: 150px; bottom: -190px; width: 430px; height: 430px; content: ""; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; }
.cta-panel > * { position: relative; z-index: 2; }
.cta-panel h2 { max-width: 700px; margin: 0 0 15px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.2rem, 5vw, 4rem); line-height: 1.05; }
.cta-panel p { max-width: 720px; color: rgba(255,255,255,.8); }

.page-hero { position: relative; min-height: 530px; overflow: hidden; display: flex; align-items: center; border-bottom-right-radius: 72px; border-bottom-left-radius: 72px; background: #fff; }
.page-hero .page-bg { position: absolute; inset: 0; background-position: center; background-size: cover; }
.page-hero .page-bg::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.93) 35%, rgba(255,255,255,.22) 66%, transparent 100%); }
.page-hero .container { position: relative; z-index: 2; }
.page-hero-copy { max-width: 660px; padding: 80px 0 100px; }
.page-hero h1 { margin: 0 0 20px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(3rem, 7vw, 5.5rem); line-height: .98; letter-spacing: -.05em; }
.page-hero p { color: var(--ink-soft); font-size: 1.13rem; }

.notice-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 24px; padding: 28px 32px; border: 1px solid rgba(229,0,126,.18); border-radius: var(--radius); background: linear-gradient(105deg, #fff2f8, #fff 55%, #f0ffff); box-shadow: var(--shadow-soft); }
.notice-icon { display: grid; width: 62px; height: 62px; color: #fff; border-radius: 18px; background: linear-gradient(135deg, var(--magenta), var(--coral)); place-items: center; }
.notice-card h2, .notice-card h3 { margin: 0 0 5px; font-family: Georgia, "Times New Roman", serif; }
.notice-card p { margin: 0; color: var(--ink-soft); }

.contact-panel { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-top: 30px; }
.contact-box { display: flex; align-items: center; gap: 18px; padding: 24px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-soft); }
.contact-box-icon { display: grid; flex: 0 0 52px; width: 52px; height: 52px; color: #fff; border-radius: 16px; background: linear-gradient(135deg, var(--purple), var(--magenta)); place-items: center; }
.contact-box strong { display: block; margin-bottom: 3px; }
.contact-box span, .contact-box a { color: var(--ink-soft); }

.partner-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 38px; }
.partner-option { padding: 34px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-soft); }
.partner-option .number { display: grid; width: 46px; height: 46px; margin-bottom: 20px; color: #fff; border-radius: 14px; font-weight: 800; background: linear-gradient(135deg, var(--purple), var(--magenta), var(--coral)); place-items: center; }
.partner-option h3 { margin: 0 0 8px; font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; }
.partner-option p { color: var(--ink-soft); }

.form-shell { display: grid; grid-template-columns: .8fr 1.2fr; gap: 28px; align-items: start; }
.form-sidebar, .site-form { padding: 34px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-soft); }
.site-form { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.form-field { display: grid; gap: 7px; }
.form-field.full { grid-column: 1 / -1; }
.form-field label { color: #463154; font-size: .9rem; font-weight: 800; }
.form-field input, .form-field textarea, .form-field select { width: 100%; padding: 14px 15px; color: var(--ink); border: 1px solid rgba(72,37,92,.18); border-radius: 13px; outline: none; background: #fffdfd; transition: .2s ease; }
.form-field input:focus, .form-field textarea:focus, .form-field select:focus { border-color: var(--magenta); box-shadow: 0 0 0 4px rgba(229,0,126,.08); }
.form-field textarea { min-height: 145px; resize: vertical; }
.hp-field { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; }
.form-status { grid-column: 1 / -1; display: none; padding: 12px 14px; border-radius: 12px; }
.form-status.success { display: block; color: #12683a; background: #e8fff1; }
.form-status.error { display: block; color: #8b173e; background: #fff0f5; }

.event-list { display: grid; gap: 18px; margin-top: 35px; }
.event-card { display: grid; grid-template-columns: 110px 1fr auto; align-items: center; gap: 24px; padding: 26px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-soft); }
.event-card-date { padding: 16px; color: #fff; text-align: center; border-radius: 18px; background: linear-gradient(145deg, var(--purple), var(--magenta)); }
.event-card-date strong { display: block; font-size: 2rem; line-height: 1; }
.event-card-date span { font-size: .75rem; letter-spacing: .13em; text-transform: uppercase; }
.event-card h3 { margin: 0 0 6px; font-family: Georgia, "Times New Roman", serif; font-size: 1.4rem; }
.event-card p { margin: 0; color: var(--ink-soft); }

.prose { max-width: 820px; margin-inline: auto; }
.prose h2, .prose h3 { font-family: Georgia, "Times New Roman", serif; line-height: 1.2; }
.prose h2 { margin-top: 2em; font-size: 2rem; }
.prose h3 { margin-top: 1.7em; font-size: 1.4rem; }
.prose p, .prose li { color: #4e3f59; font-size: 1.04rem; }
.prose img { margin: 28px 0; border-radius: 24px; }
.post-header { padding: 70px 0 42px; text-align: center; }
.post-header h1 { max-width: 900px; margin: 0 auto 18px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.8rem, 6vw, 5rem); line-height: 1.03; }
.post-featured { width: min(1050px, calc(100% - 40px)); max-height: 580px; margin: 0 auto 58px; border-radius: 32px; object-fit: cover; box-shadow: var(--shadow); }

.site-footer { position: relative; overflow: hidden; padding: 78px 0 24px; color: #fff; background: #280b47; }
.site-footer::after { position: absolute; right: -130px; bottom: -250px; width: 560px; height: 560px; content: ""; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; }
.footer-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1.3fr .85fr .85fr .85fr; gap: 38px; }
.footer-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.footer-brand img { width: 62px; }
.footer-brand strong { display: block; font-family: Georgia, "Times New Roman", serif; font-size: 1.4rem; }
.footer-brand span { color: #ff7bb6; font-size: .7rem; font-weight: 800; letter-spacing: .16em; }
.site-footer p, .site-footer a { color: rgba(255,255,255,.72); }
.site-footer h4 { margin: 0 0 18px; font-size: .9rem; letter-spacing: .12em; text-transform: uppercase; }
.footer-links { display: grid; gap: 10px; }
.footer-links a:hover { color: #fff; }
.footer-bottom { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 54px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.58); font-size: .85rem; }

.chat-launcher { position: fixed; z-index: 1100; right: 22px; bottom: 22px; display: grid; width: 62px; height: 62px; color: #fff; border: 0; border-radius: 50%; box-shadow: 0 18px 44px rgba(103, 15, 120, .35); background: linear-gradient(135deg, var(--purple), var(--magenta), var(--coral)); place-items: center; }
.chat-panel { position: fixed; z-index: 1101; right: 22px; bottom: 96px; display: none; overflow: hidden; width: min(390px, calc(100vw - 28px)); border: 1px solid var(--border); border-radius: 26px; box-shadow: 0 28px 90px rgba(39, 5, 61, .28); background: #fff; }
.chat-panel.is-open { display: block; animation: chatIn .25s ease; }
@keyframes chatIn { from { opacity: 0; transform: translateY(16px) scale(.97); } to { opacity: 1; transform: none; } }
.chat-head { display: flex; align-items: center; justify-content: space-between; padding: 19px 20px; color: #fff; background: linear-gradient(105deg, var(--purple-deep), var(--magenta)); }
.chat-head strong { display: block; }
.chat-head span { display: block; color: rgba(255,255,255,.75); font-size: .78rem; }
.chat-close { color: #fff; border: 0; background: transparent; }
.chat-messages { display: grid; max-height: 310px; min-height: 180px; gap: 10px; overflow-y: auto; padding: 18px; background: #fffafd; }
.chat-message { max-width: 82%; padding: 10px 12px; border-radius: 14px; color: var(--ink); background: #f1eafd; }
.chat-message.visitor { justify-self: end; color: #fff; background: linear-gradient(135deg, var(--purple), var(--magenta)); }
.chat-message small { display: block; margin-top: 4px; opacity: .65; }
.chat-form { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 14px; border-top: 1px solid var(--border); }
.chat-form input { min-width: 0; padding: 11px 13px; border: 1px solid var(--border); border-radius: 12px; outline: none; }
.chat-form button { width: 44px; color: #fff; border: 0; border-radius: 12px; background: var(--magenta); }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .72s ease, transform .72s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
.delay-1 { transition-delay: .08s; }
.delay-2 { transition-delay: .16s; }
.delay-3 { transition-delay: .24s; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

@media (max-width: 1050px) {
  .brand { min-width: 0; }
  .brand-copy { display: none; }
  .main-nav a { padding-inline: 10px; }
  .impact-grid { grid-template-columns: repeat(2, 1fr); }
  .impact-item:nth-child(2) { border-right: 0; }
  .impact-item:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
  .card-grid { grid-template-columns: repeat(2, 1fr); }
  .split { gap: 42px; }
  .footer-grid { grid-template-columns: 1.4fr 1fr 1fr; }
  .footer-grid > div:last-child { grid-column: 2 / -1; }
}

@media (max-width: 820px) {
  :root { --header-height: 72px; }
  .container { width: min(100% - 28px, var(--container)); }
  .section { padding: 72px 0; }
  .menu-toggle { display: block; }
  .main-nav { position: fixed; inset: var(--header-height) 12px auto; display: grid; padding: 16px; border: 1px solid var(--border); border-radius: 22px; box-shadow: var(--shadow); visibility: hidden; opacity: 0; transform: translateY(-10px); background: #fff; transition: .2s ease; }
  .menu-open .main-nav { visibility: visible; opacity: 1; transform: none; }
  .main-nav a { padding: 13px 14px; }
  .brand img { width: 48px; height: 48px; }
  .hero { min-height: 720px; border-radius: 0 0 44px 44px; }
  .hero-media { background-image: linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.86) 55%, rgba(255,255,255,.2) 100%), url('../images/hero.webp'); background-position: 68% center; }
  .hero-inner { align-items: flex-start; padding-top: 74px; }
  .hero-content { max-width: 590px; }
  .hero h1 { font-size: clamp(3.2rem, 13vw, 5.5rem); }
  .impact-strip { margin-top: -55px; }
  .split, .story-grid, .form-shell { grid-template-columns: 1fr; }
  .split .media-card { order: -1; }
  .media-card img { min-height: 380px; }
  .quote-card { right: 18px; bottom: 18px; }
  .story-portrait { min-height: 340px; }
  .story-copy { padding: 38px 28px; }
  .blog-grid, .partner-options { grid-template-columns: 1fr 1fr; }
  .event-band, .notice-card { grid-template-columns: auto 1fr; }
  .event-band .btn, .notice-card .btn { grid-column: 1 / -1; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:last-child { grid-column: auto; }
  .page-hero { min-height: 480px; border-radius: 0 0 44px 44px; }
  .page-hero .page-bg::after { background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.79) 70%, rgba(255,255,255,.35)); }
  .page-hero-copy { padding-top: 60px; }
  .event-card { grid-template-columns: 90px 1fr; }
  .event-card .btn { grid-column: 1 / -1; }
}

@media (max-width: 580px) {
  .section { padding: 60px 0; }
  .hero { min-height: 760px; }
  .hero h1 { font-size: 3.4rem; }
  .hero p { font-size: 1rem; }
  .hero-actions .btn { width: 100%; }
  .impact-grid { grid-template-columns: 1fr; border-radius: 28px; }
  .impact-item { border-right: 0; border-bottom: 1px solid var(--border); }
  .impact-item:last-child { border-bottom: 0; }
  .card-grid, .blog-grid, .partner-options, .contact-panel, .footer-grid { grid-template-columns: 1fr; }
  .site-form { grid-template-columns: 1fr; padding: 24px; }
  .form-field.full { grid-column: auto; }
  .media-card img { min-height: 320px; }
  .quote-card { position: relative; right: auto; bottom: auto; max-width: none; margin: -30px 16px 16px; }
  .event-band, .notice-card { grid-template-columns: 1fr; padding: 25px; }
  .cta-panel { padding: 44px 24px; border-radius: 30px; }
  .page-hero h1 { font-size: 3.2rem; }
  .event-card { grid-template-columns: 1fr; }
  .event-card-date { width: 82px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
  .chat-panel { right: 14px; bottom: 88px; }
  .chat-launcher { right: 14px; bottom: 14px; }
}


/* Additional production components */
.hero-media { transform: translateY(var(--hero-shift, 0)); transition: transform .08s linear; }
.icon-svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.service-card .generated-icon { width: 76px; height: 76px; margin-bottom: 20px; object-fit: contain; border-radius: 22px; }
.service-card h3, .content-card h3 { margin: 0 0 9px; font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; line-height: 1.2; }
.service-card p, .content-card p { margin: 0; color: var(--ink-soft); }
.card-link { display: inline-flex; margin-top: 16px; color: var(--magenta); font-weight: 800; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.kicker-panel { padding: 34px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-soft); }
.kicker-panel h3 { margin: 0 0 10px; font-family: Georgia, "Times New Roman", serif; font-size: 1.6rem; }
.kicker-panel p { margin: 0; color: var(--ink-soft); }
.mini-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 32px; }
.mini-card { padding: 24px; border: 1px solid var(--border); border-radius: 20px; background: #fff; box-shadow: var(--shadow-soft); }
.mini-card strong { display: block; margin-bottom: 6px; font-family: Georgia, "Times New Roman", serif; font-size: 1.2rem; }
.mini-card span { color: var(--ink-soft); }
.empty-state { padding: 36px; color: var(--ink-soft); text-align: center; border: 1px dashed rgba(75,36,94,.25); border-radius: var(--radius); background: rgba(255,255,255,.75); }
.loading-card { min-height: 240px; border-radius: var(--radius); background: linear-gradient(100deg,#f7eff8 20%,#fff 42%,#f7eff8 64%); background-size: 300% 100%; animation: shimmer 1.35s infinite; }
@keyframes shimmer { from { background-position: 100% 0; } to { background-position: 0 0; } }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; color: var(--magenta); font-size: .83rem; font-weight: 800; }
.breadcrumbs span { opacity: .5; }
.inline-note { padding: 18px 20px; color: #5a365f; border-left: 4px solid var(--magenta); border-radius: 0 14px 14px 0; background: #fff2f8; }
.donation-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 28px; }
.donation-contact .contact-box { min-height: 128px; }
.donation-form-intro { max-width: 760px; margin-bottom: 32px; }
.donation-widget { width: 100%; min-width: 0; overflow: clip; }
.donation-widget iframe { display: block; width: 100%; max-width: 100%; border: 0; }
.mission-values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 38px; }
.value-card { padding: 30px; color: #fff; border-radius: 26px; background: linear-gradient(135deg, var(--purple-deep), var(--purple)); box-shadow: var(--shadow-soft); }
.value-card:nth-child(2) { background: linear-gradient(135deg, #8e156f, var(--magenta)); }
.value-card:nth-child(3) { background: linear-gradient(135deg, #006d7a, var(--teal)); }
.value-card h3 { margin: 0 0 8px; font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; }
.value-card p { margin: 0; color: rgba(255,255,255,.8); }
.blog-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 34px; }
.blog-search { width: min(420px, 100%); padding: 13px 16px; border: 1px solid var(--border); border-radius: 999px; outline: none; background: #fff; }
.blog-search:focus { border-color: var(--magenta); box-shadow: 0 0 0 4px rgba(229,0,126,.08); }
.pagination { display: flex; justify-content: center; gap: 8px; margin-top: 34px; }
.pagination button { min-width: 42px; min-height: 42px; border: 1px solid var(--border); border-radius: 12px; background: #fff; }
.pagination button[aria-current="page"] { color:#fff; background: var(--purple); }
.site-form button:disabled { opacity: .65; cursor: wait; }
.site-form .consent { grid-column: 1/-1; display: flex; gap: 10px; color: var(--ink-soft); font-size: .88rem; }
.site-form .consent input { width: auto; margin-top: 5px; }
.hours-table { width: 100%; border-collapse: collapse; margin-top: 18px; }
.hours-table td { padding: 10px 0; border-bottom: 1px solid var(--border); }
.hours-table td:last-child { text-align: right; color: var(--ink-soft); }
.admin-preview { overflow: hidden; border-radius: 28px; border: 1px solid var(--border); box-shadow: var(--shadow); }
.admin-preview img { width:100%; }
@media (max-width: 820px) {
  .mini-grid, .mission-values { grid-template-columns: 1fr; }
  .donation-contact { grid-template-columns: 1fr; }
}

/* V1.1 newsletter, accessibility, and mobile refinements */
:focus-visible {
  outline: 3px solid rgba(229, 0, 126, .45);
  outline-offset: 3px;
}

.newsletter-panel {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 44px;
  align-items: center;
  margin-bottom: 64px;
  padding: 40px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 32px;
  background:
    radial-gradient(circle at 8% 12%, rgba(255,118,111,.25), transparent 30%),
    linear-gradient(120deg, rgba(255,255,255,.11), rgba(255,255,255,.045));
  box-shadow: 0 20px 60px rgba(15, 1, 28, .22);
  backdrop-filter: blur(14px);
}
.newsletter-copy .eyebrow { color: #ffb8d5; }
.newsletter-copy h2 {
  margin: 0 0 12px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.8rem, 3.5vw, 3rem);
  line-height: 1.08;
}
.newsletter-copy p { margin: 0; color: rgba(255,255,255,.76); }
.newsletter-form { min-width: 0; }
.newsletter-fields {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr) auto;
  gap: 12px;
  align-items: end;
}
.newsletter-fields label { display: grid; min-width: 0; gap: 7px; color: rgba(255,255,255,.88); font-size: .82rem; font-weight: 800; }
.newsletter-fields label span { padding-left: 4px; }
.newsletter-fields label small { font-weight: 600; opacity: .7; }
.newsletter-fields input {
  width: 100%;
  min-width: 0;
  min-height: 50px;
  padding: 12px 14px;
  color: var(--ink);
  border: 1px solid rgba(255,255,255,.26);
  border-radius: 14px;
  outline: none;
  background: rgba(255,255,255,.96);
}
.newsletter-fields input:focus { border-color: #ff8abd; box-shadow: 0 0 0 4px rgba(255,255,255,.12); }
.newsletter-fields .btn { min-width: 122px; white-space: nowrap; }
.newsletter-consent {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-top: 13px;
  color: rgba(255,255,255,.68);
  font-size: .78rem;
  line-height: 1.45;
}
.newsletter-consent input { flex: 0 0 auto; width: 17px; height: 17px; margin-top: 2px; accent-color: var(--magenta); }
.newsletter-form .form-status { margin-top: 12px; }
.newsletter-form .form-status.success { color: #d8ffe8; background: rgba(26,154,85,.28); }
.newsletter-form .form-status.error { color: #fff; background: rgba(170,23,67,.35); }

.subscription-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
  background: radial-gradient(circle at 10% 10%, #ffe2ef, transparent 34%), radial-gradient(circle at 90% 85%, #dffcff, transparent 32%), var(--cream);
}
.subscription-card {
  width: min(620px, 100%);
  padding: clamp(28px, 6vw, 54px);
  text-align: center;
  border: 1px solid var(--border);
  border-radius: 32px;
  box-shadow: var(--shadow);
  background: #fff;
}
.subscription-card > img { width: 110px; margin: 0 auto 18px; }
.subscription-card .eyebrow { justify-content: center; }
.subscription-card h1 { margin: 0 0 14px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 6vw, 3.5rem); line-height: 1.05; }
.subscription-card p { color: var(--ink-soft); }
.subscription-card .button-row { justify-content: center; margin-top: 26px; }

@media (max-width: 1050px) {
  .newsletter-panel { grid-template-columns: 1fr; gap: 28px; }
}

@media (max-width: 820px) {
  .site-header { isolation: isolate; }
  .main-nav {
    position: absolute;
    top: calc(100% + 10px);
    right: 14px;
    left: 14px;
    max-height: calc(100vh - var(--header-height) - 28px);
    overflow-y: auto;
  }
  .main-nav .nav-donate { text-align: center; }
  .newsletter-panel { padding: 30px; border-radius: 26px; }
  .newsletter-fields { grid-template-columns: 1fr 1fr; }
  .newsletter-fields .btn { grid-column: 1 / -1; width: 100%; }
  .site-footer { padding-top: 56px; }
}

@media (max-width: 580px) {
  .container { width: min(100% - 24px, var(--container)); }
  .site-banner { padding: 10px 44px 10px 12px; font-size: .86rem; text-align: left; }
  .header-inner { gap: 12px; }
  .brand { max-width: calc(100% - 62px); }
  .brand img { width: 46px; height: 46px; }
  .hero { min-height: 700px; }
  .hero-inner { min-height: 620px; padding: 54px 0 100px; }
  .hero h1 { font-size: clamp(2.75rem, 14.5vw, 3.55rem); line-height: .97; }
  .hero-badge { align-items: flex-start; border-radius: 20px; }
  .section-title, .section-title.small { overflow-wrap: anywhere; }
  .page-hero { min-height: 430px; }
  .page-hero-copy { padding: 48px 0 72px; }
  .page-hero h1 { font-size: clamp(2.65rem, 13vw, 3.3rem); overflow-wrap: anywhere; }
  .contact-box { align-items: flex-start; padding: 20px; }
  .contact-box a, .contact-box span { overflow-wrap: anywhere; }
  .newsletter-panel { margin-bottom: 48px; padding: 24px; }
  .newsletter-fields { grid-template-columns: 1fr; }
  .newsletter-fields .btn { grid-column: auto; }
  .footer-grid { gap: 30px; }
  .chat-panel {
    right: 10px;
    bottom: 84px;
    width: calc(100vw - 20px);
    max-height: calc(100dvh - 110px);
    border-radius: 22px;
  }
  .chat-messages { max-height: min(310px, 46dvh); }
  .chat-launcher { width: 56px; height: 56px; }
  .post-featured { width: calc(100% - 24px); margin-bottom: 38px; border-radius: 22px; }
}

@media (max-width: 390px) {
  .hero h1 { font-size: 2.65rem; }
  .btn { width: 100%; padding-inline: 16px; }
  .event-band, .notice-card, .service-card, .content-card, .partner-option, .site-form, .form-sidebar { padding: 20px; }
  .impact-item { padding: 22px 18px; }
  .newsletter-panel { padding: 20px; }
  .subscription-card .button-row .btn { width: 100%; }
}

/* Marketing campaign overlays */
:root { --marketing-top-height: 0px; }
.site-header { top: var(--marketing-top-height); }
body.marketing-modal-open { overflow: hidden; }
.marketing-top,
.marketing-bottom,
.marketing-corner,
.marketing-modal-card {
  --campaign-bg: linear-gradient(105deg, var(--purple-deep), var(--purple), var(--magenta), var(--coral));
  --campaign-ink: #fff;
  --campaign-muted: rgba(255,255,255,.82);
  --campaign-button-bg: #fff;
  --campaign-button-ink: var(--purple-deep);
  color: var(--campaign-ink);
  background: var(--campaign-bg);
}
.theme-light { --campaign-bg: linear-gradient(120deg,#fff,#fff4f8 65%,#effdff); --campaign-ink: var(--ink); --campaign-muted: var(--ink-soft); --campaign-button-bg: linear-gradient(105deg,var(--purple),var(--magenta),var(--coral)); --campaign-button-ink:#fff; }
.theme-dark { --campaign-bg: radial-gradient(circle at 88% 8%,rgba(229,0,126,.32),transparent 28%),linear-gradient(125deg,#1f0638,#3d0b5a 55%,#621769); }
.theme-teal { --campaign-bg: linear-gradient(120deg,#006b78,#0098a5,#05aebd); }
.theme-urgent { --campaign-bg: linear-gradient(120deg,#9c2045,#d73558,#ff766f); }
.marketing-top {
  position: sticky;
  z-index: 1200;
  top: 0;
  width: 100%;
  box-shadow: 0 8px 28px rgba(37,17,62,.18);
  animation: campaignSlideDown .34s ease both;
}
.marketing-top-inner,
.marketing-bottom-inner {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  min-height: 56px;
  padding: 10px 46px 10px 12px;
  position: relative;
}
.marketing-top .marketing-copy,
.marketing-bottom .marketing-copy { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 15px; min-width: 0; }
.marketing-top .marketing-kicker,
.marketing-bottom .marketing-kicker { font-size: .68rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; opacity: .76; }
.marketing-top .marketing-headline,
.marketing-bottom .marketing-headline { font-family: Georgia,"Times New Roman",serif; font-size: 1.05rem; line-height: 1.25; }
.marketing-top p,
.marketing-bottom p { margin: 0; color: var(--campaign-muted); font-size: .88rem; }
.marketing-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 15px;
  border-radius: 999px;
  color: var(--campaign-button-ink);
  background: var(--campaign-button-bg);
  font-size: .82rem;
  font-weight: 850;
  box-shadow: 0 7px 20px rgba(35,6,56,.16);
  transition: transform .18s ease, box-shadow .18s ease;
}
.marketing-action:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(35,6,56,.22); }
.marketing-close {
  position: absolute;
  z-index: 3;
  top: 10px;
  right: 10px;
  display: grid;
  width: 32px;
  height: 32px;
  padding: 0;
  place-items: center;
  color: currentColor;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 50%;
  background: rgba(255,255,255,.1);
  font-size: 1.25rem;
  line-height: 1;
}
.theme-light .marketing-close { border-color: var(--border); background:#fff; }
.marketing-bottom {
  position: fixed;
  z-index: 1150;
  right: 16px;
  bottom: 16px;
  left: 16px;
  border-radius: 22px;
  box-shadow: 0 20px 70px rgba(36,8,54,.28);
  animation: campaignSlideUp .34s ease both;
}
.marketing-bottom-inner { min-height: 72px; justify-content: flex-start; padding: 13px 54px 13px 18px; }
.marketing-bottom .marketing-copy { justify-content: flex-start; }
.marketing-bottom .marketing-image { width: 64px; height: 54px; flex: 0 0 auto; object-fit: cover; border-radius: 12px; }
.marketing-corner {
  position: fixed;
  z-index: 1140;
  left: 18px;
  bottom: 18px;
  width: min(390px, calc(100vw - 36px));
  padding: 22px;
  border-radius: 24px;
  box-shadow: 0 22px 70px rgba(36,8,54,.3);
  animation: campaignSlideUp .34s ease both;
}
.marketing-corner .marketing-image { width: 100%; max-height: 175px; margin-bottom: 16px; object-fit: cover; border-radius: 17px; }
.marketing-corner .marketing-kicker { display: block; margin-bottom: 6px; font-size: .68rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; opacity: .75; }
.marketing-corner .marketing-headline { display: block; padding-right: 28px; font-family: Georgia,"Times New Roman",serif; font-size: 1.35rem; line-height: 1.15; }
.marketing-corner p { margin: 8px 0 16px; color: var(--campaign-muted); }
.marketing-modal {
  position: fixed;
  z-index: 1300;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(24,5,38,.62);
  backdrop-filter: blur(9px);
  animation: campaignFade .22s ease both;
}
.marketing-modal-card {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(180px,.72fr) minmax(0,1.28fr);
  width: min(820px,100%);
  max-height: calc(100dvh - 36px);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 32px;
  box-shadow: 0 35px 110px rgba(17,2,29,.45);
  animation: campaignPop .3s ease both;
}
.marketing-modal-card > .marketing-image { width: 100%; height: 100%; min-height: 420px; object-fit: cover; }
.marketing-modal-card > .marketing-copy { align-self: center; padding: clamp(28px,5vw,52px); overflow-y: auto; }
.marketing-modal .marketing-kicker { display:block; margin-bottom:8px; font-size:.72rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase; opacity:.76; }
.marketing-modal h2 { margin:0 0 13px; font-family:Georgia,"Times New Roman",serif; font-size:clamp(2rem,5vw,3.5rem); line-height:1.02; }
.marketing-modal p { margin:0 0 24px; color:var(--campaign-muted); font-size:1.02rem; }
.marketing-modal-card:not(:has(.marketing-image)) { grid-template-columns:1fr; width:min(650px,100%); }
.marketing-modal .marketing-close { top:14px; right:14px; }
.is-closing { animation: campaignFadeOut .18s ease both !important; }
@keyframes campaignSlideDown { from { opacity:0; transform:translateY(-100%); } to { opacity:1; transform:none; } }
@keyframes campaignSlideUp { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:none; } }
@keyframes campaignFade { from { opacity:0; } to { opacity:1; } }
@keyframes campaignPop { from { opacity:0; transform:translateY(20px) scale(.97); } to { opacity:1; transform:none; } }
@keyframes campaignFadeOut { to { opacity:0; transform:translateY(12px); } }

/* Fundraising and archived event pages */
.fundraising-meter { padding: 34px; border: 1px solid var(--border); border-radius: 30px; background:#fff; box-shadow:var(--shadow-soft); }
.fundraising-meter-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:16px; }
.fundraising-meter-head strong { display:block; font-family:Georgia,"Times New Roman",serif; font-size:clamp(2rem,5vw,3.8rem); line-height:1; }
.fundraising-meter-head span { color:var(--ink-soft); }
.meter-track { height:18px; overflow:hidden; border-radius:999px; background:#efe7f2; }
.meter-fill { height:100%; min-width:12px; border-radius:inherit; background:linear-gradient(90deg,var(--purple),var(--magenta),var(--coral),var(--teal)); }
.milestone-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:28px; }
.milestone-card { padding:26px; border:1px solid var(--border); border-radius:22px; background:#fff; box-shadow:var(--shadow-soft); }
.milestone-card strong { display:block; color:var(--magenta); font-family:Georgia,"Times New Roman",serif; font-size:1.7rem; }
.gala-details { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:32px; }
.gala-detail { padding:24px; border:1px solid var(--border); border-radius:22px; background:#fff; box-shadow:var(--shadow-soft); }
.gala-detail span { display:block; color:var(--magenta); font-size:.72rem; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.gala-detail strong { display:block; margin-top:7px; font-family:Georgia,"Times New Roman",serif; font-size:1.2rem; line-height:1.35; }
.source-note { margin-top:24px; color:var(--ink-soft); font-size:.84rem; }

/* Donor and donation pages */
.donor-hero .page-hero-copy,
.donation-hero .page-hero-copy { max-width:none; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); gap:28px; align-items:end; }
.donor-hero .breadcrumbs,
.donation-hero .breadcrumbs { grid-column:1/-1; }
.donor-hero h1,
.donation-hero h1 { max-width:10.5ch; }
.donor-hero p,
.donation-hero p { max-width:620px; }
.donor-hero-panel,
.donation-summary,
.donation-widget-card,
.donor-card,
.donor-photo-card { border:1px solid var(--border); border-radius:28px; background:#fff; box-shadow:var(--shadow-soft); }
.donor-hero-panel { padding:28px; display:grid; gap:18px; align-self:start; background:linear-gradient(160deg,#fff,#fff8fc 60%,#f5f2ff); }
.donor-hero-panel strong,
.donation-summary strong { display:block; font-family:Georgia,"Times New Roman",serif; font-size:1.38rem; line-height:1.2; }
.donor-hero-panel p,
.donation-summary p { margin:0; color:var(--ink-soft); }
.donor-hero-badges { display:flex; flex-wrap:wrap; gap:10px; }
.donor-chip { display:inline-flex; align-items:center; min-height:34px; padding:7px 13px; border-radius:999px; color:var(--purple); background:#f4edf8; font-size:.8rem; font-weight:800; }
.donor-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.donor-card { padding:26px; display:grid; gap:12px; }
.donor-card .card-icon { display:grid; place-items:center; width:52px; height:52px; border-radius:16px; color:#fff; background:linear-gradient(135deg,var(--purple),var(--magenta),var(--coral)); box-shadow:0 10px 20px rgba(95,42,147,.16); }
.donor-card h3 { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:1.55rem; line-height:1.12; }
.donor-card p { margin:0; color:var(--ink-soft); }
.donor-card .card-link { margin-top:4px; }
.donor-split { display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:32px; align-items:center; }
.donor-photo-card { overflow:hidden; }
.donor-photo-card img { width:100%; min-height:470px; object-fit:cover; }
.donor-photo-card .quote-card { right:22px; bottom:22px; }
.donor-list { display:grid; gap:14px; margin:24px 0 0; padding:0; list-style:none; }
.donor-list li { display:flex; align-items:flex-start; gap:12px; color:var(--ink-soft); }
.donor-list span { display:grid; flex:0 0 26px; width:26px; height:26px; border-radius:50%; color:#fff; background:linear-gradient(135deg,var(--teal),var(--purple)); place-items:center; }
.donation-shell { display:grid; grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr); gap:28px; align-items:start; }
.donation-summary { position:sticky; top:104px; padding:28px; background:linear-gradient(160deg,#fff,#f8f4ff 60%,#fef7fb); }
.donation-summary .button-row { margin-top:18px; }
.donation-widget-card { padding:28px; }
.donation-widget-card > header { display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; margin-bottom:18px; }
.donation-widget-card h2,
.donation-widget-card h3 { margin:0; font-family:Georgia,"Times New Roman",serif; }
.donation-widget-card p { margin:6px 0 0; color:var(--ink-soft); }
.donation-widget { min-height:720px; }
.donation-widget iframe { width:100%; min-height:720px; border:0; border-radius:22px; background:#fff; }
.donation-widget-note { margin-top:16px; color:var(--ink-soft); font-size:.93rem; }
.donation-support-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.donation-support-grid article { padding:22px; border:1px solid var(--border); border-radius:22px; background:linear-gradient(160deg,#fff,#fbf8fd); box-shadow:var(--shadow-soft); }
.donation-support-grid span { display:block; color:var(--magenta); font-size:.68rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.donation-support-grid h3 { margin:8px 0 8px; font-family:Georgia,"Times New Roman",serif; font-size:1.25rem; }
.donation-support-grid p { margin:0; color:var(--ink-soft); }

@media (max-width: 820px) {
  .marketing-top-inner { align-items:flex-start; justify-content:flex-start; padding-block:12px; }
  .marketing-top .marketing-copy { justify-content:flex-start; }
  .marketing-top p { flex-basis:100%; }
  .marketing-bottom { right:10px; bottom:10px; left:10px; }
  .marketing-bottom-inner { align-items:flex-start; }
  .marketing-bottom .marketing-copy { display:grid; gap:7px; }
  .marketing-bottom .marketing-image { display:none; }
  .marketing-modal-card { grid-template-columns:1fr; overflow-y:auto; }
  .marketing-modal-card > .marketing-image { min-height:190px; max-height:230px; }
  .marketing-modal-card > .marketing-copy { overflow:visible; }
  .milestone-grid,.gala-details { grid-template-columns:1fr; }
  .donor-hero .page-hero-copy,
  .donation-hero .page-hero-copy,
  .donation-shell,
  .donor-split { grid-template-columns:1fr; }
  .donation-summary { position:static; }
  .donor-photo-card img,
  .donation-widget iframe { min-height:340px; }
  .donation-support-grid,
  .donor-grid { grid-template-columns:1fr; }
}
@media (max-width: 580px) {
  .marketing-top-inner { width:100%; padding-right:46px; }
  .marketing-top .marketing-copy { gap:5px 10px; }
  .marketing-top .marketing-action { width:100%; margin-top:4px; }
  .marketing-bottom-inner { width:100%; }
  .marketing-bottom .marketing-headline { font-size:1rem; }
  .marketing-bottom p { font-size:.82rem; }
  .marketing-corner { left:10px; bottom:78px; width:calc(100vw - 20px); padding:18px; }
  .marketing-modal { padding:10px; }
  .marketing-modal-card { max-height:calc(100dvh - 20px); border-radius:24px; }
  .marketing-modal-card > .marketing-copy { padding:27px 22px; }
  .fundraising-meter { padding:24px; }
  .fundraising-meter-head { align-items:flex-start; flex-direction:column; }
  .donor-hero-panel,
  .donation-summary,
  .donation-widget-card { padding:22px; border-radius:22px; }
  .donor-photo-card .quote-card { left:16px; right:16px; bottom:16px; max-width:none; }
}
@media (prefers-reduced-motion: reduce) {
  .marketing-top,.marketing-bottom,.marketing-corner,.marketing-modal,.marketing-modal-card,.is-closing { animation:none !important; }
}

/* Current campaign and partnership feature blocks */
.campaign-highlight-section { padding-top: 0; }
.campaign-highlight {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(240px, .6fr);
  align-items: center;
  gap: 34px;
  padding: 38px 42px;
  border: 1px solid rgba(95,42,147,.13);
  border-radius: 32px;
  background: radial-gradient(circle at 95% 10%, rgba(0,199,211,.16), transparent 38%), linear-gradient(135deg,#fff,#fff5fa 55%,#f7efff);
  box-shadow: var(--shadow-soft);
}
.campaign-highlight h2 { margin: 4px 0 10px; font-family: Georgia,"Times New Roman",serif; font-size: clamp(2rem,4vw,3.2rem); line-height: 1.04; }
.campaign-highlight p { max-width: 740px; margin: 0; color: var(--ink-soft); }
.campaign-highlight-actions { display: grid; justify-items: start; gap: 4px; padding-left: 30px; border-left: 1px solid var(--border); }
.campaign-highlight-actions strong { font-family: Georgia,"Times New Roman",serif; font-size: clamp(3rem,6vw,5rem); line-height: .9; color: var(--magenta); }
.campaign-highlight-actions span { margin-bottom: 14px; color: var(--ink-soft); font-size: .74rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.partner-path-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.partner-path-grid article { position: relative; overflow: hidden; min-height: 250px; padding: 30px; border: 1px solid var(--border); border-radius: 26px; background: #fff; box-shadow: var(--shadow-soft); }
.partner-path-grid article::after { position: absolute; right: -55px; bottom: -70px; width: 170px; height: 170px; content: ""; border-radius: 50%; background: linear-gradient(135deg,rgba(213,0,117,.11),rgba(0,199,211,.12)); }
.partner-path-grid article > * { position: relative; z-index: 1; }
.partner-path-grid article > span { color: var(--magenta); font-size: .72rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.partner-path-grid h2 { margin: 8px 0 10px; font-family: Georgia,"Times New Roman",serif; font-size: 1.55rem; line-height: 1.12; }
.partner-path-grid p { color: var(--ink-soft); }
@media (max-width: 850px) {
  .campaign-highlight { grid-template-columns: 1fr; padding: 32px; }
  .campaign-highlight-actions { padding: 22px 0 0; border-top: 1px solid var(--border); border-left: 0; }
  .partner-path-grid { grid-template-columns: 1fr; }
}
@media (max-width: 580px) {
  .campaign-highlight { padding: 27px 22px; border-radius: 25px; }
  .campaign-highlight-actions .btn { width: 100%; }
}

/* V4 public homepage and blog refinements */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.section-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:28px}.section-heading-row .section-title{margin-bottom:12px}.section-heading-row .btn{flex:0 0 auto}.home-updates-section{overflow:hidden;background:linear-gradient(180deg,#fffaf8 0%,#fff 55%,#fff5fa 100%)}.home-updates-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,.7fr);gap:26px;align-items:stretch;margin-top:40px}.home-latest-posts{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr);gap:20px;min-width:0}.home-featured-post{overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:30px;background:#fff;box-shadow:var(--shadow-soft)}.home-featured-image{display:block;aspect-ratio:16/10;overflow:hidden;background:#f4eef8}.home-featured-image img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.home-featured-post:hover .home-featured-image img{transform:scale(1.035)}.home-featured-copy{padding:28px}.home-featured-copy h3{margin:10px 0 12px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.6rem,3vw,2.35rem);line-height:1.08}.home-featured-copy p{margin:0 0 16px;color:var(--ink-soft)}.home-compact-posts{display:grid;gap:20px}.home-compact-post{overflow:hidden;border:1px solid var(--border);border-radius:24px;background:#fff;box-shadow:var(--shadow-soft)}.home-compact-image{display:block;aspect-ratio:16/9;overflow:hidden;background:#f4eef8}.home-compact-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.home-compact-post:hover img{transform:scale(1.04)}.home-compact-post>div{padding:20px}.home-compact-post h3{margin:8px 0 12px;font-family:Georgia,"Times New Roman",serif;font-size:1.15rem;line-height:1.2}.home-event-panel{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:100%;padding:30px;color:#fff;border-radius:30px;background:radial-gradient(circle at 92% 10%,rgba(255,174,114,.42),transparent 28%),linear-gradient(150deg,var(--purple-deep),var(--purple) 58%,#9f276e);box-shadow:0 22px 60px rgba(57,15,87,.2)}.home-event-panel::after{position:absolute;right:-45px;bottom:-55px;width:180px;height:180px;content:"";border:1px solid rgba(255,255,255,.15);border-radius:50%;box-shadow:0 0 0 24px rgba(255,255,255,.04),0 0 0 48px rgba(255,255,255,.03)}.home-event-panel>*{position:relative;z-index:1}.home-event-panel .eyebrow{color:#ffc4dd}.home-event-panel h3{margin:18px 0 12px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.05}.home-event-panel p{color:rgba(255,255,255,.79)}.home-event-panel ul{display:grid;gap:9px;margin:8px 0 26px;padding:0;list-style:none}.home-event-panel li::before{margin-right:8px;content:"✓";color:#88f3f4;font-weight:900}.home-event-panel .btn{align-self:flex-start;margin-top:auto}.home-event-kicker{display:flex;align-items:center;justify-content:space-between;gap:15px;color:rgba(255,255,255,.75);font-size:.75rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.home-event-kicker time{display:grid;width:70px;height:70px;place-items:center;color:var(--purple-deep);border-radius:20px;background:#fff;font-size:1.55rem;line-height:1}.home-event-kicker time strong{font-size:.68rem;letter-spacing:.12em}.home-event-details{display:grid;gap:8px;margin:8px 0 24px;color:rgba(255,255,255,.78);font-size:.88rem}.home-event-details span{padding-left:18px;position:relative}.home-event-details span::before{position:absolute;left:0;top:.58em;width:7px;height:7px;content:"";border-radius:50%;background:var(--aqua)}.home-event-all{margin-top:14px;color:#fff;font-weight:800}.event-panel-loading,.featured-loading{min-height:280px;border-radius:24px;background:linear-gradient(90deg,rgba(255,255,255,.08),rgba(255,255,255,.2),rgba(255,255,255,.08));background-size:220% 100%;animation:loadingShimmer 1.4s linear infinite}.blog-page-hero{min-height:500px}.blog-index-section{background:linear-gradient(180deg,#fffaf8,#fff 30%)}.blog-index-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.blog-featured-slot{margin-top:42px}.blog-featured-slot[hidden]{display:none}.featured-blog-card{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);overflow:hidden;border:1px solid var(--border);border-radius:34px;background:#fff;box-shadow:var(--shadow)}.featured-blog-image{min-height:460px;overflow:hidden;background:#f4eef8}.featured-blog-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.featured-blog-card:hover .featured-blog-image img{transform:scale(1.035)}.featured-blog-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(30px,5vw,58px)}.featured-blog-copy h2{margin:12px 0 16px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,4vw,3.5rem);line-height:1.02}.featured-blog-copy p{margin:0 0 24px;color:var(--ink-soft);font-size:1.05rem}.featured-blog-copy .btn{align-self:flex-start}.blog-browser{margin-top:70px;padding:clamp(24px,4vw,42px);border:1px solid var(--border);border-radius:32px;background:rgba(255,255,255,.86);box-shadow:var(--shadow-soft);backdrop-filter:blur(12px)}.blog-browser-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.blog-browser-heading h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.8rem,3vw,2.7rem)}.blog-search-wrap{position:relative;display:block;width:min(420px,100%)}.blog-search-wrap .icon-svg{position:absolute;top:50%;left:16px;width:19px;height:19px;color:var(--purple);transform:translateY(-50%);pointer-events:none}.blog-search-wrap .blog-search{width:100%;padding-left:46px}.blog-category-chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}.blog-category-chips button{min-height:40px;padding:8px 15px;color:var(--ink-soft);border:1px solid var(--border);border-radius:999px;background:#fff;font-size:.84rem;font-weight:800;transition:.18s ease}.blog-category-chips button:hover,.blog-category-chips button.is-active{color:#fff;border-color:transparent;background:linear-gradient(105deg,var(--purple),var(--magenta));box-shadow:0 8px 20px rgba(95,42,147,.16)}.blog-results-summary{min-height:24px;margin-top:18px;color:var(--ink-soft);font-size:.9rem}.enhanced-blog-grid{margin-top:18px}.enhanced-blog-grid .blog-card{display:flex;flex-direction:column}.enhanced-blog-grid .blog-card-body{display:flex;flex:1;flex-direction:column}.enhanced-blog-grid .blog-card-body .card-link{margin-top:auto;padding-top:18px}.blog-empty-state{grid-column:1/-1;display:grid;gap:4px}.blog-empty-state strong{font-size:1.1rem}.related-posts-section{background:#fff8fb}.related-posts-grid{margin-top:34px}.post-meta{display:flex;flex-wrap:wrap;gap:8px 14px}.post-meta span{position:relative}.post-meta span+span::before{position:absolute;left:-8px;content:"•";color:#c6b7cf}.prose{font-size:1.08rem}.prose>p:first-child{font-size:1.18rem;color:#43334f}.prose h2{scroll-margin-top:120px}
@media(max-width:1050px){.home-updates-layout{grid-template-columns:1fr}.home-event-panel{min-height:420px}.featured-blog-card{grid-template-columns:1fr}.featured-blog-image{min-height:360px}.blog-browser-heading,.blog-index-intro,.section-heading-row{align-items:flex-start;flex-direction:column}.blog-browser-heading .blog-search-wrap{width:100%}}
@media(max-width:820px){.home-latest-posts{grid-template-columns:1fr}.home-compact-posts{grid-template-columns:1fr 1fr}.blog-page-hero{min-height:450px}.featured-blog-image{min-height:300px}.blog-browser{margin-top:46px;padding:24px}.enhanced-blog-grid{grid-template-columns:1fr 1fr}}
@media(max-width:580px){.section-heading-row .btn,.blog-index-intro .btn{width:100%}.home-compact-posts,.enhanced-blog-grid{grid-template-columns:1fr}.home-featured-copy{padding:22px}.home-event-panel{min-height:390px;padding:24px}.featured-blog-card{border-radius:25px}.featured-blog-image{min-height:230px}.featured-blog-copy{padding:26px}.blog-browser{padding:18px;border-radius:24px}.blog-category-chips{display:grid;grid-template-columns:1fr 1fr}.blog-category-chips button{width:100%}.related-posts-grid{grid-template-columns:1fr}}
@keyframes loadingShimmer{to{background-position:-220% 0}}

.blog-category-chips button span{display:inline-grid;place-items:center;min-width:1.65rem;height:1.65rem;padding:0 .4rem;border-radius:999px;background:rgba(95,42,147,.09);font-size:.72rem;font-weight:800;color:var(--purple)}
.blog-category-chips button.is-active span{background:rgba(255,255,255,.22);color:inherit}

/* Modern visual system refresh */
:root {
  --ink: #152238;
  --ink-soft: #5c6879;
  --purple: #4f46e5;
  --purple-deep: #27315f;
  --magenta: #d94b7d;
  --pink: #ed7ca1;
  --coral: #ef866f;
  --peach: #f3b77d;
  --teal: #168a96;
  --aqua: #85cdd0;
  --cream: #f7f9fc;
  --lavender: #f1f4fb;
  --rose: #fff4f7;
  --white: #fff;
  --border: #e2e8f0;
  --shadow: 0 22px 60px rgba(32, 48, 78, .12);
  --shadow-soft: 0 8px 28px rgba(32, 48, 78, .08);
  --radius-sm: 10px;
  --radius: 18px;
  --radius-lg: 26px;
  --display: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --header-height: 78px;
}

body { color: var(--ink); background: var(--cream); line-height: 1.65; }
h1, h2, h3, h4, .section-title, .hero h1, .page-hero h1, .post-header h1,
.quote-card, .story-copy blockquote, .campaign-highlight h2, .partner-path-grid h2,
.donor-card h3, .donation-step-list h3, .donor-hero-panel strong { font-family: var(--display); }
.container { width: min(var(--container), calc(100% - 48px)); }
.section { padding: 88px 0; }
.section-sm { padding: 56px 0; }
.section-tint { background: #f1f4f8; }
.section-purple { background: var(--purple-deep); }
.eyebrow { margin-bottom: 12px; color: var(--magenta); font-size: .72rem; letter-spacing: .14em; }
.eyebrow::before { width: 22px; height: 2px; background: var(--magenta); }
.section-title { font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1.08; letter-spacing: -.045em; }
.section-title.small { font-size: clamp(1.75rem, 3.2vw, 2.7rem); }
.section-copy { color: var(--ink-soft); font-size: 1rem; }
.text-gradient { color: var(--magenta); background: none; }

.site-header { height: var(--header-height); border-bottom-color: #e5eaf1; background: rgba(247,249,252,.92); backdrop-filter: blur(16px); }
.header-inner { gap: 24px; }
.brand { min-width: 250px; gap: 10px; }
.brand img { width: 50px; height: 50px; }
.brand-copy strong { font-family: var(--display); font-size: 1rem; font-weight: 800; letter-spacing: -.02em; }
.brand-copy span { margin-top: 3px; color: var(--magenta); font-size: .62rem; letter-spacing: .16em; }
.main-nav { gap: 3px; }
.main-nav a { padding: 10px 12px; color: #46536a; border-radius: 10px; font-size: .86rem; font-weight: 750; }
.main-nav a:hover, .main-nav a[aria-current="page"] { color: var(--purple); background: #e9edff; }
.main-nav .nav-donate { padding: 10px 17px; color: #fff; box-shadow: 0 8px 20px rgba(79,70,229,.22); background: var(--purple); }
.main-nav .nav-donate:hover, .main-nav .nav-donate[aria-current="page"] { color: #fff; background: #3f38bd; }
.menu-toggle { border-color: var(--border); border-radius: 12px; }

.hero { min-height: 690px; border-radius: 0; }
.hero-media { background-image: linear-gradient(90deg, rgba(247,249,252,.98) 0%, rgba(247,249,252,.93) 32%, rgba(247,249,252,.25) 63%, rgba(247,249,252,0) 100%), url('../images/hero.webp'); }
.hero::after { display: none; }
.hero-inner { min-height: 610px; padding: 74px 0 100px; }
.hero h1 { max-width: 650px; font-size: clamp(3rem, 6vw, 5.4rem); line-height: .98; letter-spacing: -.065em; }
.hero p { color: #5c6879; font-size: 1.05rem; }
.btn { min-height: 48px; padding: 12px 18px; border-radius: 11px; font-size: .9rem; font-weight: 800; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.btn-primary { box-shadow: 0 10px 24px rgba(79,70,229,.2); background: var(--purple); }
.btn-primary:hover { box-shadow: 0 13px 30px rgba(79,70,229,.28); background: #423bd0; }
.btn-secondary { color: var(--purple); border-color: #cdd5ff; background: #fff; }
.btn-secondary:hover { color: var(--purple-deep); background: #f2f4ff; }
.btn-light { color: var(--purple-deep); background: #fff; }
.btn-ghost { color: #fff; border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.1); }
.hero-badge { margin-top: 28px; padding: 9px 13px; color: var(--purple-deep); border-color: #dfe4f0; border-radius: 11px; background: rgba(255,255,255,.78); }
.hero-badge span:first-child { width: 27px; height: 27px; background: var(--magenta); }
.floating-dot { opacity: .2; }

.impact-strip { margin-top: -62px; }
.impact-grid { border-color: var(--border); border-radius: 20px; box-shadow: var(--shadow); background: rgba(255,255,255,.96); }
.impact-item { padding: 24px 20px; }
.impact-icon { width: 46px; height: 46px; flex-basis: 46px; border-radius: 12px; box-shadow: none; background: var(--purple); }
.impact-item:nth-child(2) .impact-icon, .impact-item:nth-child(3) .impact-icon, .impact-item:nth-child(4) .impact-icon { background: var(--purple); }
.impact-number { font-family: var(--display); font-size: 1.45rem; }
.impact-label { color: var(--ink-soft); font-size: .8rem; }

.service-card, .content-card, .donor-card, .partner-option, .form-sidebar, .site-form, .contact-box,
.event-card, .notice-card, .mini-card, .kicker-panel, .fundraising-meter, .milestone-card, .gala-detail,
.blog-card, .featured-blog-card, .home-featured-post, .home-compact-post, .blog-browser { border-color: var(--border); border-radius: 18px; box-shadow: var(--shadow-soft); }
.service-card:hover, .content-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.service-card::after, .partner-path-grid article::after { opacity: .45; }
.service-card h3, .content-card h3, .event-card h3, .blog-card h3, .featured-blog-copy h2, .blog-browser-heading h2 { font-family: var(--display); letter-spacing: -.03em; }
.card-link { color: var(--purple); }
.media-card, .donor-photo-card { border-radius: 22px; box-shadow: var(--shadow); }
.quote-card { border-radius: 16px; box-shadow: 0 14px 34px rgba(32,48,78,.2); background: rgba(39,49,95,.94); }
.check-list span, .donor-list span { background: var(--teal); }
.story-band { border-radius: 22px; background: #eef2f8; }
.event-band { border-radius: 18px; box-shadow: var(--shadow); background: var(--purple-deep); }
.event-date { border-radius: 12px; background: rgba(255,255,255,.12); }
.cta-panel { padding: 58px; border-radius: 22px; background: var(--purple-deep); }
.cta-panel::before, .cta-panel::after { opacity: .35; }

.page-hero { min-height: 490px; border-radius: 0; }
.page-hero .page-bg::after { background: linear-gradient(90deg, rgba(247,249,252,.98) 0%, rgba(247,249,252,.92) 38%, rgba(247,249,252,.3) 72%, transparent 100%); }
.page-hero-copy { padding: 72px 0 88px; }
.page-hero h1 { font-size: clamp(2.8rem, 6vw, 4.9rem); line-height: 1; letter-spacing: -.06em; }
.page-hero p { color: var(--ink-soft); font-size: 1.05rem; }
.breadcrumbs { color: var(--purple); font-size: .76rem; }
.donor-hero-panel, .donation-summary, .donation-widget-card { border-color: var(--border); border-radius: 18px; box-shadow: var(--shadow-soft); background: rgba(255,255,255,.92); }
.donor-hero-panel { padding: 25px; }
.donor-chip { color: var(--purple-deep); background: #eef1ff; }
.donor-card { padding: 24px; }
.donor-card .card-icon { width: 46px; height: 46px; border-radius: 12px; box-shadow: none; background: var(--purple); }
.donor-split { gap: 48px; }
.form-sidebar, .site-form { padding: 28px; }
.form-field input, .form-field textarea, .form-field select, .blog-search, .chat-form input { border-color: #dbe2eb; border-radius: 10px; background: #fbfcfe; }
.form-field input:focus, .form-field textarea:focus, .form-field select:focus, .blog-search:focus { border-color: var(--purple); box-shadow: 0 0 0 4px rgba(79,70,229,.1); }
.contact-box-icon { width: 46px; height: 46px; flex-basis: 46px; border-radius: 12px; background: var(--purple); }

.site-footer { padding: 66px 0 22px; background: #1f2a44; }
.site-footer::after { opacity: .35; }
.footer-brand strong { font-family: var(--display); font-size: 1.1rem; }
.footer-brand span { color: #f39db9; font-size: .62rem; }
.newsletter-panel { padding: 34px; border-color: rgba(255,255,255,.14); border-radius: 20px; background: rgba(255,255,255,.07); box-shadow: none; }
.newsletter-copy h2 { font-family: var(--display); font-size: clamp(1.7rem, 3vw, 2.5rem); letter-spacing: -.04em; }
.chat-launcher { width: 56px; height: 56px; border-radius: 14px; box-shadow: 0 14px 30px rgba(32,48,78,.24); background: var(--purple); }
.chat-panel { border-color: var(--border); border-radius: 18px; box-shadow: 0 24px 70px rgba(32,48,78,.24); }
.chat-head { background: var(--purple-deep); }
.chat-form button { border-radius: 10px; background: var(--purple); }

/* Focused one-click donation page */
.donation-hero .page-hero-copy { display: block; max-width: 980px; }
.donation-hero-content { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); gap: 54px; align-items: center; }
.donation-hero h1 { max-width: 9ch; }
.donation-simple-section { background: #fff; }
.donation-simple-shell { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 72px; align-items: start; }
.donation-step-list { display: grid; gap: 0; border-top: 1px solid var(--border); }
.donation-step-list article { display: grid; grid-template-columns: 48px 1fr; gap: 18px; padding: 22px 0; border-bottom: 1px solid var(--border); }
.donation-step-number { color: var(--magenta); font-size: .78rem; font-weight: 900; letter-spacing: .12em; }
.donation-step-list h3 { margin: 0 0 5px; font-size: 1.12rem; letter-spacing: -.02em; }
.donation-step-list p { margin: 0; color: var(--ink-soft); font-size: .94rem; }

@media (max-width: 820px) {
  :root { --header-height: 72px; }
  .container { width: min(100% - 28px, var(--container)); }
  .hero { min-height: 690px; }
  .hero-media { background-image: linear-gradient(180deg, rgba(247,249,252,.97), rgba(247,249,252,.84) 62%, rgba(247,249,252,.32)), url('../images/hero.webp'); background-position: 68% center; }
  .page-hero .page-bg::after { background: linear-gradient(180deg, rgba(247,249,252,.97), rgba(247,249,252,.8) 72%, rgba(247,249,252,.35)); }
  .donation-hero-content, .donation-simple-shell { grid-template-columns: 1fr; gap: 30px; }
  .donation-hero h1 { max-width: 12ch; }
  .donation-simple-shell { gap: 38px; }
}
@media (max-width: 580px) {
  .container { width: min(100% - 24px, var(--container)); }
  .hero h1 { font-size: clamp(2.7rem, 14vw, 3.5rem); }
  .hero-actions .btn { width: 100%; }
  .page-hero h1 { font-size: clamp(2.7rem, 13vw, 3.4rem); }
  .donation-hero-content { gap: 24px; }
  .donation-step-list article { grid-template-columns: 38px 1fr; }
  .cta-panel { padding: 42px 24px; }
}

/* Balance pass: less containerized, more editorial */
.hero h1 { max-width: 600px; font-size: clamp(2.9rem, 5.6vw, 5rem); }
.hero p { max-width: 540px; }
.hero-media { background-image: linear-gradient(90deg, rgba(247,249,252,.99) 0%, rgba(247,249,252,.95) 35%, rgba(247,249,252,.38) 62%, rgba(247,249,252,0) 100%), url('../images/hero.webp'); }
.page-hero .page-bg::after { background: linear-gradient(90deg, rgba(247,249,252,.99) 0%, rgba(247,249,252,.95) 38%, rgba(247,249,252,.55) 64%, rgba(247,249,252,.18) 100%); }
.donation-hero .page-bg::after { background: linear-gradient(90deg, rgba(247,249,252,.99) 0%, rgba(247,249,252,.97) 42%, rgba(247,249,252,.64) 65%, rgba(247,249,252,.2) 100%); }

.impact-grid { overflow: visible; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
.impact-item { padding: 20px 18px; border-right: 0; }
.impact-item + .impact-item { border-left: 1px solid var(--border); }
.impact-icon, .impact-item:nth-child(2) .impact-icon, .impact-item:nth-child(3) .impact-icon, .impact-item:nth-child(4) .impact-icon { width: 38px; height: 38px; flex-basis: 38px; color: var(--purple); border: 1px solid #d9defc; border-radius: 10px; box-shadow: none; background: #eef0ff; }
.impact-icon .icon-svg { width: 19px; height: 19px; }

.service-card, .content-card { padding: 24px 4px; border: 0; border-top: 1px solid var(--border); border-radius: 0; box-shadow: none; background: transparent; }
.service-card::after { display: none; }
.service-card:hover, .content-card:hover { transform: none; box-shadow: none; background: rgba(255,255,255,.4); }
.service-card img, .service-card .generated-icon { width: 58px; height: 58px; margin-bottom: 18px; border-radius: 15px; }
.card-grid { gap: 18px 30px; }
.campaign-highlight { border: 0; border-radius: 20px; box-shadow: none; background: #eef2f8; }
.campaign-highlight-actions { border-left-color: #d8e0ea; }

.donor-hero-panel, .donation-summary { padding: 18px 0 18px 24px; border: 0; border-left: 3px solid var(--magenta); border-radius: 0; box-shadow: none; background: rgba(255,255,255,.5); }
.donor-hero-panel .donor-hero-badges { padding-top: 2px; }
.donor-card { padding: 24px 4px; border: 0; border-top: 1px solid var(--border); border-radius: 0; box-shadow: none; background: transparent; }
.donor-card .card-icon { width: 42px; height: 42px; border: 1px solid #d9defc; border-radius: 10px; box-shadow: none; color: var(--purple); background: #eef0ff; }
.donor-card .card-icon .icon-svg { width: 19px; height: 19px; }
.donor-photo-card { border-radius: 18px; box-shadow: var(--shadow-soft); }
.donation-contact .contact-box { border: 0; border-top: 1px solid var(--border); border-radius: 0; box-shadow: none; background: transparent; }

.home-featured-post, .home-compact-post { border: 0; border-radius: 0; box-shadow: none; background: transparent; }
.home-featured-image { border-radius: 18px; }
.home-featured-copy { padding: 24px 0 0; }
.home-compact-post { border-top: 1px solid var(--border); }
.home-compact-image { display: none; }
.home-compact-post > div { padding: 20px 0; }
.home-event-panel { border-radius: 18px; box-shadow: none; }
.blog-card { border-radius: 16px; box-shadow: var(--shadow-soft); }

.newsletter-panel { box-shadow: none; }
.cta-panel { box-shadow: none; }

@media (max-width: 820px) {
  .impact-item + .impact-item { border-left: 0; }
  .impact-item:nth-child(odd) { border-left: 0; }
  .impact-item { border-bottom: 1px solid var(--border); }
  .impact-item:last-child { border-bottom: 0; }
  .donor-hero-panel, .donation-summary { padding: 18px 0 18px 20px; }
  .home-compact-image { display: block; }
  .home-compact-post { border-top: 1px solid var(--border); }
}
