@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@600;700;800&family=DM+Sans:wght@400;500;600;700;800&family=Fredoka:wght@400;500;600;700&display=swap');
:root { --paper:#fffaf7; --white:#fffefa; --ink:#19204b; --blue:#0aa7df; --pink:#e81994; --yellow:#f5c545; --green:#16a769; --purple:#612ca4; --muted:#5d6674; --line:#dce0e4; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.55 'DM Sans',Arial,sans-serif; }
button,input { font:inherit; }
button { cursor:pointer; }
a { color:inherit; }
:focus-visible { outline:3px solid var(--pink); outline-offset:4px; }
.skip-link { position:absolute; z-index:20; top:-6rem; left:1rem; padding:.7rem 1rem; background:var(--ink); color:#fff; }
.skip-link:focus { top:1rem; }
.container { width:min(100% - 64px,1180px); margin-inline:auto; }
h1,h2,h3,h4,p,figure { margin-top:0; }
.site-header { position:relative; z-index:5; background:var(--white); border-bottom:1px solid #e6e6e5; }
.nav-row { min-height:84px; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.wordmark { text-decoration:none; display:flex; align-items:center; gap:10px; white-space:nowrap; }
.wordmark-symbol { width:48px; height:48px; border-radius:50%; background:var(--blue); color:#fff; display:grid; place-items:center; font-size:31px; line-height:1; transform:rotate(-13deg); }
.wordmark-text { display:block; line-height:1; }
.wordmark-text strong { font-size:21px; letter-spacing:-.06em; }
.wordmark-text em { font-style:normal; background:linear-gradient(90deg,var(--pink),var(--purple),var(--blue)); color:transparent; -webkit-background-clip:text; background-clip:text; }
.wordmark-text small { display:block; margin-top:5px; letter-spacing:.17em; font-size:8px; font-weight:800; }
.site-header nav { display:flex; align-items:center; gap:30px; font-size:13px; font-weight:800; }
.site-header nav a { text-decoration:none; }.site-header nav a:hover { text-decoration:underline; text-underline-offset:5px; }
.nav-button { border-radius:100px; background:var(--ink); color:#fff; padding:12px 18px; }.nav-button span { margin-left:16px; }
.nav-button:hover { background:var(--purple); text-decoration:none !important; }
.hero { overflow:hidden; background:radial-gradient(circle at 12% 18%,#ffe2f2 0,transparent 23%),radial-gradient(circle at 92% 17%,#d3f3fe 0,transparent 27%),var(--paper); }
.hero-grid { min-height:650px; display:grid; grid-template-columns:1.07fr .93fr; gap:36px; align-items:center; padding-block:62px 52px; }
.hero-copy { z-index:1; }.eyebrow { color:#994676; text-transform:uppercase; letter-spacing:.15em; font-size:12px; font-weight:800; margin:0 0 22px; }
.eyebrow-dot { width:8px; height:8px; border-radius:50%; display:inline-block; background:var(--pink); margin-right:8px; }
h1,h2 { font-family:'Fraunces',Georgia,serif; font-weight:500; line-height:1.07; letter-spacing:-.055em; }
h1 { font-size:clamp(58px,6.4vw,88px); margin:0 0 27px; }
h1 em,h2 em { font-weight:500; background:linear-gradient(95deg,var(--pink),var(--purple) 55%,var(--blue)); color:transparent; -webkit-background-clip:text; background-clip:text; }
.hero-lead { color:#505a69; max-width:570px; font-size:17px; line-height:1.68; margin:0 0 30px; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px; }.hero-actions > span { color:#717682; font:italic 15px Georgia,serif; }
.button { display:inline-flex; justify-content:center; align-items:center; gap:30px; min-height:54px; border:0; border-radius:100px; padding:14px 22px; text-decoration:none; font-weight:800; transition:transform .2s,background .2s; }
.button:hover { transform:translateY(-2px); }.button-dark { background:var(--ink); color:#fff; }.button-dark:hover { background:var(--purple); }
.hero-values { margin-top:74px; display:flex; flex-wrap:wrap; gap:24px; font-size:12px; font-weight:800; color:#596279; }.hero-values span { display:flex; align-items:center; gap:7px; }.hero-values b { color:var(--pink); font-size:17px; }
.hero-visual { min-height:535px; position:relative; display:grid; place-items:center; isolation:isolate; }.visual-halo { position:absolute; width:89%; aspect-ratio:1; background:#cdeff5; border-radius:50%; right:0; top:3%; box-shadow:0 0 0 25px rgba(232,25,148,.05); }
.hero-poster { position:relative; z-index:1; background:#fff; border:7px solid #fff; border-radius:22px; box-shadow:0 22px 60px rgba(34,33,71,.18); width:min(77%,410px); overflow:hidden; transform:rotate(3deg); margin:0; }.hero-poster img { width:100%; height:470px; display:block; object-fit:cover; object-position:center top; }
.visual-note { position:absolute; z-index:2; display:grid; place-content:center; text-align:center; width:115px; height:115px; border:2px solid var(--ink); border-radius:50%; background:#fff; color:var(--ink); font:italic 16px/1.15 Georgia,serif; box-shadow:5px 5px 0 rgba(25,32,75,.14); }.visual-note span { color:var(--pink); }.note-one { top:6%; right:0; transform:rotate(12deg); }.note-two { bottom:5%; left:1%; transform:rotate(-12deg); background:#fff3c9; }
.ribbon { background:var(--ink); color:#fff; padding:13px 0; }.ribbon .container { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:11px; font-weight:800; letter-spacing:.19em; }.ribbon i { font-size:20px; font-style:normal; color:var(--yellow); line-height:1; }
.explore-section { padding:98px 0 108px; background:#fff; }.section-rule { border-top:1px solid var(--line); padding-top:16px; display:flex; justify-content:space-between; color:#717987; font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }.section-rule span:last-child { font-size:25px; line-height:.6; color:var(--pink); }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:35px; margin:35px 0 44px; }.section-heading .eyebrow { margin-bottom:15px; }h2 { font-size:clamp(47px,5.6vw,70px); margin:0; }.section-heading > p { color:var(--muted); max-width:330px; line-height:1.7; margin:0 0 6px; }
.service-finder { background:#f1f6f8; border:1px solid #dbe9ed; border-radius:18px; padding:24px; display:flex; justify-content:space-between; align-items:end; gap:25px; }.service-finder fieldset { border:0; padding:0; margin:0; min-width:0; }.service-finder legend,.search-group label { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:#647184; font-weight:800; margin-bottom:12px; }
.filters { display:flex; flex-wrap:wrap; gap:8px; }.filter { border:1px solid #cad9e1; border-radius:100px; background:#fff; color:var(--ink); font-size:12px; font-weight:800; padding:10px 14px; white-space:nowrap; }.filter:hover { border-color:var(--purple); }.filter.active { background:var(--ink); border-color:var(--ink); color:#fff; }
.search-group { width:270px; flex:0 0 270px; }.search-box { position:relative; }.search-box span { position:absolute; font-size:26px; left:13px; top:2px; color:#6f7d8a; }.search-box input { width:100%; height:43px; border:1px solid #cbd9e0; background:#fff; border-radius:10px; padding:10px 12px 10px 42px; color:var(--ink); font-size:13px; }.search-box input::placeholder { color:#8a96a0; }
.results-bar { min-height:68px; display:flex; justify-content:space-between; align-items:center; gap:10px; color:#687782; font-size:13px; }.results-bar p { margin:0; }.results-bar button { border:0; background:none; color:var(--ink); font-weight:800; text-decoration:underline; text-underline-offset:4px; }
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }.service-card { min-height:304px; border:1px solid #e0e4e8; border-radius:17px; background:#fff; padding:24px; display:flex; flex-direction:column; transition:transform .2s,box-shadow .2s; }.service-card:hover { transform:translateY(-3px); box-shadow:0 15px 28px rgba(31,38,86,.08); }.service-card[hidden] { display:none !important; }
.card-icon { width:50px; height:50px; border-radius:50%; display:grid; place-items:center; font-size:27px; margin-bottom:22px; }.card-icon.pink { background:#ffe3f2; color:#be0b78; }.card-icon.blue { background:#d9f3fd; color:#067ea8; }.card-icon.yellow { background:#fff0bc; color:#a47d08; }.card-icon.mint { background:#daf6e9; color:#19825a; }.card-icon.purple { background:#ebe2f8; color:#6a319e; }
.card-type { text-transform:uppercase; letter-spacing:.12em; color:#976382; font-size:10px; font-weight:800; margin-bottom:7px; }.service-card h3 { font:500 26px/1.15 'Fraunces',Georgia,serif; letter-spacing:-.035em; margin:0 0 11px; }.service-card p { color:#5c6875; font-size:13px; line-height:1.58; margin:0 0 17px; }.card-foot { margin-top:auto; border-top:1px solid #e3e6e9; padding-top:13px; }.service-action { color:var(--ink); background:none; border:0; padding:4px 0; font-size:13px; font-weight:800; }.service-action span { margin-left:8px; }.service-action:hover { text-decoration:underline; text-underline-offset:4px; }
.empty-state { border-radius:16px; padding:50px 20px; background:#f5f6fa; text-align:center; }.empty-state[hidden] { display:none; }.empty-state > span { color:var(--pink); font-size:36px; }.empty-state h3 { font:500 29px Georgia,serif; margin:10px 0; }.empty-state p { color:var(--muted); }.empty-state .button { margin-top:8px; }
.programme-note { margin-top:25px; border-left:4px solid var(--pink); padding:15px 19px; display:flex; gap:13px; align-items:start; background:#fff6fb; border-radius:0 10px 10px 0; }.programme-note span { color:var(--pink); font-size:22px; line-height:1; }.programme-note p { color:#596375; font-size:13px; margin:0; }.programme-note strong { color:var(--ink); }
.gallery-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; margin:100px 0 22px; }.gallery-heading .eyebrow { margin-bottom:11px; }.gallery-heading h3 { font:500 45px/1.1 'Fraunces',Georgia,serif; letter-spacing:-.045em; margin:0; }.gallery-controls { display:flex; align-items:center; gap:9px; }.gallery-controls span { color:#637083; font-size:13px; font-weight:800; margin-right:10px; white-space:nowrap; }.gallery-controls button { width:40px; height:40px; background:#fff; border:1px solid #cfd8de; border-radius:50%; font-size:19px; color:var(--ink); }.gallery-controls button:hover { background:var(--ink); color:#fff; }
.gallery { display:grid; grid-template-columns:1fr .8fr; align-items:center; background:#f3f4f8; border-radius:20px; overflow:hidden; margin:0; }.gallery-image { background:#151622; min-height:460px; height:460px; display:grid; place-items:center; overflow:hidden; }.gallery-image img { width:100%; height:100%; object-fit:contain; }.gallery figcaption { padding:45px; }.gallery figcaption > span { text-transform:uppercase; color:#a33d8b; letter-spacing:.14em; font-weight:800; font-size:11px; }.gallery h4 { font:500 37px/1.1 'Fraunces',Georgia,serif; letter-spacing:-.04em; margin:14px 0 18px; }.gallery figcaption > p { color:#5c6777; max-width:350px; }.gallery figcaption a { display:inline-block; margin:13px 0 45px; font-size:13px; font-weight:800; text-underline-offset:4px; }.gallery .gallery-hint { border-top:1px solid #d5d9e3; padding-top:17px; font-size:12px; color:#79818f; margin:0; }
.contact-section { padding:100px 0; background:radial-gradient(circle at 12% 74%,#ffe0f3 0,transparent 34%),linear-gradient(120deg,#e2f4fa,#f7f5e7); }.contact-grid { display:grid; grid-template-columns:1fr .82fr; gap:12%; align-items:center; }.contact-copy > p:not(.eyebrow) { font-size:17px; line-height:1.7; color:#515d6c; max-width:535px; margin:25px 0 0; }.contact-quote { border-top:1px solid #b8c8cf; padding-top:19px; margin-top:62px; font:italic 18px Georgia,serif; color:#4b597d; }.contact-quote span { color:var(--pink); }.contact-card { background:#fff; border-radius:19px; padding:36px; box-shadow:10px 10px 0 rgba(34,40,91,.12); }.contact-card-top { display:flex; justify-content:space-between; color:#a64b85; font-size:11px; letter-spacing:.14em; font-weight:800; }.contact-card-top span:last-child { color:var(--ink); font-size:23px; line-height:1; }.contact-card h3 { font:500 31px/1.15 'Fraunces',Georgia,serif; letter-spacing:-.04em; margin:35px 0 12px; }.contact-card p { color:#626c79; font-size:14px; line-height:1.6; }.contact-card .button { margin:16px 0 19px; }.contact-card .privacy-note { border-top:1px solid #e1e4e8; padding-top:15px; margin:0; font-size:12px; }
.site-footer { background:var(--ink); color:#fff; padding:42px 0; }.footer-row { display:flex; justify-content:space-between; gap:30px; align-items:start; }.footer-brand { text-decoration:none; font-size:22px; font-weight:800; letter-spacing:-.05em; }.footer-brand span { color:#f5c545; }.site-footer p { color:#b8c3db; font-size:13px; margin:5px 0 0; }.footer-links { display:flex; gap:25px; flex-wrap:wrap; font-size:13px; font-weight:700; }.footer-links a { text-decoration:none; }.footer-links a:hover { text-decoration:underline; text-underline-offset:5px; }
@media (max-width:1080px) { .hero-grid { min-height:600px; } .hero-poster img { height:410px; } .hero-visual { min-height:475px; } .hero-values { margin-top:45px; } .service-finder { display:block; }.search-group { width:100%; margin-top:18px; } }
@media (max-width:760px) { .container { width:min(100% - 36px,1180px); }.nav-row { min-height:70px; }.wordmark-symbol { width:39px; height:39px; font-size:25px; }.wordmark-text strong { font-size:17px; }.wordmark-text small { font-size:6px; }.site-header nav { gap:0; }.site-header nav a:not(.nav-button) { display:none; }.nav-button { padding:9px 12px; font-size:12px; }.nav-button span { margin-left:5px; }.hero-grid { display:flex; flex-direction:column; align-items:stretch; padding:50px 0 40px; gap:15px; }.hero-copy { padding:0; }h1 { font-size:clamp(54px,11.3vw,76px); }.hero-lead { font-size:16px; }.hero-values { margin-top:35px; gap:12px 18px; }.hero-visual { min-height:450px; max-width:520px; width:100%; margin-inline:auto; }.hero-poster img { height:390px; }.ribbon .container { justify-content:center; gap:10px; font-size:9px; }.ribbon span:last-child,.ribbon i:last-of-type { display:none; }.explore-section { padding:74px 0 80px; }.section-heading { display:block; margin:28px 0 33px; }.section-heading > p { margin-top:19px; }h2 { font-size:clamp(45px,9.5vw,64px); }.service-finder { padding:18px; }.filter { font-size:11px; padding:9px 11px; }.service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.service-card { min-height:315px; }.gallery-heading { margin-top:75px; }.gallery-heading h3 { font-size:36px; }.gallery { display:block; }.gallery-image { height:450px; min-height:0; }.gallery figcaption { padding:30px; }.gallery figcaption a { margin-bottom:24px; }.contact-section { padding:70px 0 80px; }.contact-grid { display:block; }.contact-copy > p:not(.eyebrow) { font-size:15px; }.contact-quote { margin:37px 0; }.contact-card { padding:28px; box-shadow:7px 7px 0 rgba(34,40,91,.12); }.footer-row { display:block; }.footer-links { margin-top:25px; } }
@media (max-width:560px) { .service-grid { grid-template-columns:1fr; }.service-card { min-height:285px; }.gallery-heading { align-items:start; }.gallery-heading h3 { font-size:32px; }.gallery-controls span { margin-right:0; }.gallery-controls button { width:34px; height:34px; }.gallery-image { height:370px; }.visual-note { width:87px; height:87px; font-size:12px; }.hero-visual { min-height:420px; }.hero-poster { width:74%; }.hero-poster img { height:350px; } }
@media (max-width:380px) { .nav-button { font-size:0; }.nav-button span { font-size:16px; margin:0; }.gallery-heading { display:block; }.gallery-controls { margin-top:15px; }.hero-actions > span { display:none; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.button,.service-card { transition:none; } }

/* Cover artwork and client/event page */
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.cover { background:radial-gradient(circle at 6% 30%,#ffe0f4 0,transparent 33%),radial-gradient(circle at 96% 70%,#d9f3ff 0,transparent 36%),#fffaf7; padding:27px 0 0; }
.cover-frame { width:min(100% - 36px,650px); margin:0 auto; background:#fff; box-shadow:0 15px 44px rgba(28,27,72,.12); }
.cover-frame img { display:block; width:100%; height:auto; }
.cover-next { min-height:76px; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.cover-next p { margin:0; text-transform:uppercase; letter-spacing:.14em; color:#765a82; font-size:11px; font-weight:800; }
.cover-next a { color:var(--ink); font-size:13px; font-weight:800; text-underline-offset:5px; white-space:nowrap; }
.cover-next a span { margin-left:9px; }
.events-promo { margin-top:25px; padding:32px 36px; border-radius:17px; display:flex; justify-content:space-between; align-items:center; gap:30px; background:linear-gradient(105deg,#fae8f4,#e4f4fb); }
.events-promo span { color:#ae4487; font-size:11px; letter-spacing:.14em; font-weight:800; }
.events-promo h3 { font:500 31px/1.2 'Fraunces',Georgia,serif; letter-spacing:-.04em; margin:7px 0; }
.events-promo p { color:#576272; font-size:13px; margin:0; max-width:570px; }
.events-promo .button { flex-shrink:0; }
.site-header nav a[aria-current="page"] { text-decoration:underline; text-underline-offset:6px; text-decoration-color:var(--pink); }
.impact-hero { overflow:hidden; background:radial-gradient(circle at 12% 20%,#ffe3f3 0,transparent 30%),#fffaf7; }
.impact-hero-grid { min-height:545px; padding-block:75px; display:grid; grid-template-columns:1fr .85fr; gap:9%; align-items:center; }
.impact-hero h1 { font-size:clamp(54px,5.5vw,76px); }
.impact-hero-grid > div:first-child > p:not(.eyebrow) { color:#566272; max-width:580px; font-size:17px; line-height:1.7; }
.impact-actions { display:flex; align-items:center; flex-wrap:wrap; gap:25px; margin-top:25px; }.impact-actions > a:last-child { color:var(--ink); font-weight:800; font-size:13px; text-underline-offset:5px; }
.impact-graphic { height:415px; position:relative; background:#dff3f9; border-radius:49% 51% 47% 53%; box-shadow:0 0 0 19px rgba(232,25,148,.06); }
.impact-circle { position:absolute; display:grid; place-content:center; text-align:center; border-radius:50%; font:italic 24px/1.15 'Fraunces',Georgia,serif; color:var(--ink); border:2px solid var(--ink); box-shadow:6px 6px 0 rgba(31,38,75,.12); }
.circle-one { background:#fff1ba; width:165px; height:165px; left:12%; top:7%; transform:rotate(-13deg); }.circle-two { background:#ffddec; width:172px; height:172px; right:10%; top:29%; transform:rotate(10deg); }.circle-three { background:#d9efd9; width:145px; height:145px; left:19%; bottom:6%; transform:rotate(-6deg); }.impact-spark { position:absolute; right:13%; top:5%; color:var(--pink); font-size:60px; }
.event-section { background:#fff; padding:96px 0; }.event-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; }
.event-card { min-height:370px; border:1px solid #e0e4e8; border-radius:18px; padding:30px; display:flex; flex-direction:column; background:#fff; }.event-card:nth-child(2) { background:#fff8fb; }
.event-status { font-size:11px; letter-spacing:.13em; font-weight:800; color:#a34585; }.event-symbol { width:65px; height:65px; border-radius:50%; display:grid; place-items:center; font-size:39px; margin:28px 0 17px; }.event-symbol.cyan { background:#d8f3fc; color:#0a95c9; }.event-symbol.magenta { background:#ffe3f1; color:#d91a85; }
.event-card h3 { font:500 31px/1.15 'Fraunces',Georgia,serif; letter-spacing:-.04em; margin:0 0 13px; }.event-card p { color:#5a6573; line-height:1.65; margin-bottom:23px; }.event-footer { border-top:1px solid #e1e4e8; padding-top:16px; margin-top:auto; color:#526078; font-size:12px; font-weight:800; display:flex; justify-content:space-between; }.event-footer span { color:var(--pink); }
.upcoming { margin-top:18px; padding:29px 34px; border-radius:16px; background:linear-gradient(100deg,#e8f8fb,#f7f6ed); display:flex; align-items:center; justify-content:space-between; gap:20px; }.upcoming h3 { font:500 29px 'Fraunces',Georgia,serif; letter-spacing:-.04em; margin:7px 0 8px; }.upcoming p { color:#596574; max-width:780px; margin:0; font-size:14px; }.upcoming-mark { color:var(--pink); font:76px Georgia,serif; flex-shrink:0; }
.client-section { background:#eef3f3; padding:100px 0; }.client-grid { display:grid; grid-template-columns:1fr .85fr; gap:10%; align-items:center; }.client-grid > div:first-child > p:not(.eyebrow) { color:#586574; line-height:1.7; font-size:16px; max-width:540px; margin:22px 0 30px; }
.client-placeholder { display:flex; align-items:center; gap:17px; border:1px dashed #b8c3ca; border-radius:13px; padding:21px; background:#fff; max-width:510px; }.client-placeholder > span { width:48px; height:48px; border-radius:50%; background:#fce4f1; color:var(--pink); display:grid; place-items:center; font-size:27px; flex-shrink:0; }.client-placeholder strong { font-size:14px; }.client-placeholder p { color:#727d88; font-size:12px; margin:4px 0 0; }
.client-contact { background:#fff; padding:36px; border-radius:19px; box-shadow:9px 9px 0 rgba(25,32,75,.1); }.client-contact-icon { font-size:35px; color:var(--pink); }.client-contact .eyebrow { margin:27px 0 12px; }.client-contact h3 { font:500 34px/1.13 'Fraunces',Georgia,serif; letter-spacing:-.04em; margin:0 0 15px; }.client-contact > p:not(.eyebrow) { color:#5c6876; font-size:14px; line-height:1.65; }.client-contact .button { margin:19px 0; }.client-contact .privacy-note { padding-top:15px; border-top:1px solid var(--line); font-size:12px !important; margin:0; }
@media (max-width:760px) { .cover { padding-top:14px; }.cover-next { min-height:68px; }.cover-next p { font-size:9px; }.cover-next a { font-size:12px; }.events-promo { display:block; padding:26px; }.events-promo .button { margin-top:23px; }.impact-hero-grid { display:block; padding-block:60px; }.impact-hero-grid > div:first-child > p:not(.eyebrow) { font-size:15px; }.impact-graphic { width:100%; max-width:470px; margin:45px auto 0; height:370px; }.event-section,.client-section { padding:75px 0; }.event-grid { grid-template-columns:1fr; }.event-card { min-height:325px; }.client-grid { display:block; }.client-contact { margin-top:42px; padding:27px; }.upcoming-mark { font-size:52px; } }
@media (max-width:430px) { .cover-next { display:block; padding-block:16px; }.cover-next a { display:inline-block; margin-top:7px; }.impact-graphic { height:310px; }.circle-one { width:130px; height:130px; }.circle-two { width:138px; height:138px; }.circle-three { width:120px; height:120px; }.impact-circle { font-size:19px; }.upcoming { padding:25px; }.upcoming-mark { display:none; } }

.event-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.event-card:nth-child(3) { background:#f5fbfd; }
.event-name-panel { display:grid; grid-template-columns:.8fr 1fr; gap:40px; align-items:center; margin-top:20px; padding:30px 34px; border-radius:17px; background:#f5f4fa; }
.event-name-panel h3 { font:500 30px/1.15 'Fraunces',Georgia,serif; letter-spacing:-.04em; margin:8px 0 11px; }
.event-name-panel p { color:#626b79; font-size:13px; line-height:1.6; margin:0; }
.event-name-panel ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:9px; }
.event-name-panel li { background:#fff; border:1px solid #dedce8; border-radius:100px; padding:9px 14px; font-weight:800; font-size:12px; color:var(--ink); }
.sponsors-heading { margin:88px 0 28px; padding-top:18px; border-top:1px solid var(--line); }
.sponsors-heading .eyebrow { margin-bottom:10px; }
.sponsors-heading h3 { font:500 47px/1.1 'Fraunces',Georgia,serif; letter-spacing:-.045em; margin:0 0 11px; }
.sponsors-heading > p:last-child { color:#616c78; font-size:14px; max-width:660px; margin:0; }
.sponsor-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.sponsor-card { display:flex; flex-direction:column; align-items:center; justify-content:space-between; gap:13px; min-height:185px; margin:0; padding:14px; border:1px solid #e1e4e9; border-radius:15px; background:#fff; }
.sponsor-card.dark { background:#171719; color:#fff; border-color:#171719; }
.sponsor-card img { display:block; width:100%; height:120px; object-fit:contain; }
.sponsor-card figcaption { text-align:center; font-size:14px; font-weight:800; line-height:1.35; }
@media (max-width:1080px) { .event-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.sponsor-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:760px) { .event-grid { grid-template-columns:1fr; }.event-name-panel { display:block; padding:26px; }.event-name-panel ul { margin-top:22px; }.sponsor-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.sponsors-heading { margin-top:70px; }.sponsors-heading h3 { font-size:39px; } }
@media (max-width:430px) { .sponsor-card { min-height:155px; padding:10px; }.sponsor-card img { height:95px; }.sponsor-card figcaption { font-size:12px; } }

/* ImaGenius family of brands */
.brands-section { padding:92px 0 105px; background:#fff; }
.brands-section .section-heading { margin-bottom:34px; }
.brand-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.brand-card { overflow:hidden; border:1px solid #e0e3e8; border-radius:19px; background:#fff; }
.brand-art { min-height:240px; padding:25px; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; position:relative; }
.azura-brand .brand-art { color:#fff; background:linear-gradient(135deg,#083b67 0%,#1296bd 46%,#f53292 100%); }
.indy-brand .brand-art { color:#3c185e; background:linear-gradient(125deg,#f7bbf0 0%,#d5c0ff 55%,#a8ebee 100%); }
.brand-monogram { position:absolute; inset:auto 22px 15px auto; font:700 110px/1 'Fraunces',Georgia,serif; opacity:.13; pointer-events:none; }
.brand-wordmark { font:700 clamp(38px,5vw,68px)/1.05 'Fraunces',Georgia,serif; letter-spacing:-.065em; }
.indy-brand .brand-wordmark { font-size:clamp(33px,4vw,55px); }
.brand-wordmark small { display:block; font-size:.62em; letter-spacing:.02em; }
.brand-art-caption { margin-top:12px; font-size:12px; font-weight:800; letter-spacing:.21em; }
.brand-details { padding:28px 32px 33px; }
.brand-kicker { margin:0 0 10px; color:#9b3982; text-transform:uppercase; letter-spacing:.13em; font-size:12px; font-weight:800; }
.brand-details h3 { font:600 31px/1.15 'Fraunces',Georgia,serif; letter-spacing:-.04em; margin:0 0 10px; }
.brand-details > p:not(.brand-kicker) { max-width:450px; color:#536171; line-height:1.6; min-height:3.2em; margin:0 0 22px; }
.brand-details a { display:inline-flex; align-items:center; gap:10px; font-weight:800; text-underline-offset:5px; }
@media (max-width:760px) { .brands-section { padding:72px 0 80px; }.brand-grid { grid-template-columns:1fr; }.brand-art { min-height:195px; }.brand-details { padding:25px; }.brand-details > p:not(.brand-kicker) { min-height:0; } }

.brand-art { height:310px; min-height:0; padding:0; background:#fff !important; }
.brand-art img { display:block; width:100%; height:100%; object-fit:contain; }
.indy-brand .brand-art { background:#38145d !important; }
@media (max-width:760px) { .brand-art { height:300px; } }

/* Upcoming Christmas coffee morning */
.upcoming-event { display:grid; grid-template-columns:minmax(220px,.65fr) minmax(0,1fr); gap:38px; align-items:center; background:linear-gradient(115deg,#fff7f4,#eff8f2); padding:30px; }
.upcoming-flyer { display:block; width:100%; max-width:325px; margin-inline:auto; border-radius:10px; overflow:hidden; box-shadow:0 12px 30px rgba(25,32,75,.16); }
.upcoming-flyer img { display:block; width:100%; height:auto; }
.upcoming-info h3 { font-size:clamp(29px,3vw,40px); line-height:1.15; margin:12px 0 16px; }
.upcoming-info > p { font-size:16px; line-height:1.65; }
.event-details { margin:24px 0; border-top:1px solid #d9e3dd; }
.event-details > div { display:grid; grid-template-columns:85px 1fr; gap:12px; padding:12px 0; border-bottom:1px solid #d9e3dd; }
.event-details dt { font-weight:800; color:#28533b; }
.event-details dd { margin:0; color:var(--ink); font-weight:700; }
.upcoming-flyer-link { font-weight:800; text-underline-offset:5px; }
.upcoming-info .event-activities { margin:0 0 22px; font-size:14px; line-height:1.65; }
.event-actions { display:flex; align-items:center; flex-wrap:wrap; gap:17px 23px; }
@media (max-width:760px) { .upcoming-event { grid-template-columns:1fr; gap:24px; padding:22px; }.upcoming-flyer { max-width:300px; }.event-details > div { grid-template-columns:74px 1fr; } }

.training-illustration { width:112px; height:112px; object-fit:contain; align-self:flex-start; margin:-8px 0 14px; }

.service-illustration { width:112px; height:112px; object-fit:contain; align-self:flex-start; margin:-8px 0 14px; }

.wordmark-symbol { background:#fff; transform:none; border-radius:0; }
.wordmark-symbol img { width:100%; height:100%; object-fit:contain; }

.brand-links { display:flex; flex-direction:column; align-items:flex-start; gap:13px; }
.brand-socials { display:flex; flex-wrap:wrap; gap:9px 15px; font-size:14px; }
.brand-socials a { font-weight:700; }

.cic-socials { display:flex; flex-wrap:wrap; gap:9px 16px; align-items:center; margin-top:20px; font-size:14px; }
.cic-socials span { flex-basis:100%; font-weight:800; }
.cic-socials a { font-weight:700; text-underline-offset:4px; }

.contact-address { margin:16px 0 0; font-size:16px; font-weight:800; overflow-wrap:anywhere; }
.contact-address a { text-underline-offset:4px; }
.footer-links a { overflow-wrap:anywhere; }

/* Upcoming events calendar */
.calendar-hero { padding:88px 0 94px; background:radial-gradient(circle at 15% 25%,#fce1f2,transparent 32%),radial-gradient(circle at 88% 70%,#d9f4fd,transparent 30%),#fffaf7; }
.calendar-hero h1 { margin-bottom:18px; }
.calendar-hero p:last-child { max-width:650px; color:#526071; font-size:18px; line-height:1.7; }
.calendar-section { padding:68px 0 96px; background:#fff; }
.calendar-layout { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(240px,.6fr); gap:30px; margin-top:36px; align-items:start; }
.calendar-card { padding:34px; background:#f8f9fc; border:1px solid #e4e6ed; border-radius:20px; }
.calendar-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; flex-wrap:wrap; }
.calendar-heading .eyebrow { margin-bottom:7px; }
.calendar-heading h2 { font-size:clamp(34px,4vw,50px); margin:0; }
.calendar-switch { display:flex; gap:6px; padding:5px; border-radius:100px; background:#e9eaf1; }
.calendar-switch button { border:0; border-radius:100px; padding:9px 15px; background:transparent; color:var(--ink); font-size:13px; font-weight:800; }
.calendar-switch button[aria-pressed="true"] { background:var(--ink); color:#fff; }
.calendar-month { font:600 22px 'Fraunces',Georgia,serif; margin:28px 0 13px; }
.calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.calendar-days > span,.calendar-days > a { min-height:48px; display:flex; align-items:center; justify-content:center; border-radius:9px; background:#fff; font-weight:700; text-decoration:none; }
.calendar-days .calendar-weekday { background:transparent; min-height:27px; color:#697284; font-size:12px; }
.calendar-days .calendar-empty { background:transparent; }
.calendar-days .calendar-event-day { background:#e81994; color:#fff; gap:4px; box-shadow:0 4px 0 #92235f; }
.calendar-event-day:hover { background:#ae1470; }
.calendar-note { margin:20px 0 0; color:#47566a; font-size:14px; line-height:1.5; }
.calendar-aside { padding:33px; min-height:300px; border-radius:20px; background:linear-gradient(140deg,#ffecae,#fce3f2); }
.calendar-aside > span { color:#e81994; font-size:50px; line-height:1; }
.calendar-aside h3 { font:600 31px/1.2 'Fraunces',Georgia,serif; margin:16px 0 12px; }
.calendar-aside p { color:#4f5b68; font-size:14px; line-height:1.65; }
.calendar-aside a { font-weight:800; text-underline-offset:5px; }
.event-list-section { padding:93px 0 110px; background:#f9f6f7; }
.event-list-section h2 { font-size:clamp(45px,5vw,64px); margin-bottom:32px; }
.upcoming-list { display:grid; gap:21px; }
.upcoming-list-card { display:grid; grid-template-columns:90px minmax(0,1fr); gap:27px; padding:32px; background:#fff; border:1px solid #e8e5e6; border-radius:20px; scroll-margin-top:24px; }
.event-month-badge { width:84px; height:90px; border-radius:13px; display:flex; align-items:center; justify-content:center; flex-direction:column; background:#2b2050; color:#fff; }
.event-month-badge span { font-size:13px; font-weight:800; letter-spacing:.17em; }
.event-month-badge strong { font:600 29px 'Fraunces',Georgia,serif; }
.christmas-card .event-month-badge { background:#075b3b; }
.upcoming-list-card h3 { font:600 clamp(26px,3vw,38px)/1.16 'Fraunces',Georgia,serif; margin:8px 0 13px; }
.upcoming-list-card p { max-width:750px; color:#566272; line-height:1.65; margin:0 0 15px; }
.upcoming-list-card .event-meta { color:var(--ink); margin-bottom:0; }
.event-meta span { margin:0 8px; }
.christmas-card { grid-template-columns:90px minmax(0,1fr) 160px; }
.christmas-thumb { width:160px; height:200px; object-fit:cover; border-radius:12px; align-self:center; }
.christmas-card .event-actions { margin-top:20px; }
.christmas-card .event-actions > a:not(.button) { font-weight:800; text-underline-offset:4px; }
@media (max-width:960px) { .calendar-layout { grid-template-columns:1fr; }.calendar-aside { min-height:0; }.christmas-card { grid-template-columns:90px minmax(0,1fr); }.christmas-thumb { display:none; } }
@media (max-width:760px) { .site-header nav a.events-nav { display:inline; margin-right:11px; font-size:11px; }.calendar-hero { padding:70px 0; }.calendar-section,.event-list-section { padding:65px 0; }.calendar-card { padding:20px; }.calendar-days { gap:3px; }.calendar-days > span,.calendar-days > a { min-height:40px; font-size:13px; }.calendar-days .calendar-weekday { font-size:10px; }.upcoming-list-card,.christmas-card { grid-template-columns:1fr; gap:16px; padding:23px; }.event-month-badge { width:70px; height:70px; }.event-month-badge strong { font-size:23px; } }
@media (max-width:430px) { .site-header nav a.events-nav { margin-right:5px; font-size:10px; }.calendar-switch button { padding:8px 10px; }.calendar-days > span,.calendar-days > a { min-height:35px; } }

/* ImaGenius colour and event artwork refresh */
:root { --paper:#fffaf1; --white:#fffefa; --ink:#21183f; --blue:#05b9ec; --pink:#f50094; --yellow:#ffdd32; --green:#14ad70; --purple:#7b28b7; --line:#e8dce6; }
h1,h2,h3,h4,.events-promo h3,.event-card h3,.upcoming h3,.upcoming-list-card h3,.calendar-month,.calendar-aside h3,.sponsors-heading h3,.brand-details h3,.client-contact h3 { font-family:'Fredoka',Arial,sans-serif; font-weight:600; letter-spacing:-.025em; }
h1 em,h2 em { font-style:normal; letter-spacing:-.025em; }
.site-header { border-bottom:4px solid var(--ink); box-shadow:0 5px 0 rgba(245,0,148,.1); }
.site-header nav a[aria-current="page"] { text-decoration-color:var(--pink); text-decoration-thickness:3px; }
.button-dark,.nav-button { background:var(--ink); border:2px solid var(--ink); box-shadow:4px 4px 0 var(--pink); }
.button-dark:hover,.nav-button:hover { background:var(--purple); box-shadow:4px 4px 0 var(--yellow); }
.eyebrow,.event-status { letter-spacing:.12em; }
.cover { background:radial-gradient(#f5a9d0 1.5px,transparent 1.5px) 0 0/20px 20px,linear-gradient(120deg,#fff2c3,#f2e6fc 50%,#d9f8ff); }
.cover-frame { border:5px solid var(--ink); box-shadow:12px 12px 0 var(--pink); }
.ribbon { background:var(--ink); }
.explore-section { background:linear-gradient(180deg,#fffdf8,#fff1f9); }
.section-heading h2 { line-height:1.08; }
.service-card,.brand-card,.event-card { border:2px solid var(--ink); box-shadow:5px 5px 0 rgba(33,24,63,.14); }
.service-card:hover,.event-card:hover { box-shadow:7px 7px 0 rgba(245,0,148,.32); }
.events-promo { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(250px,.8fr); gap:28px; margin-top:32px; padding:34px; background:#f0c4ff; border:3px solid var(--ink); border-radius:20px; box-shadow:9px 9px 0 var(--ink); position:relative; overflow:hidden; }
.events-promo::before { content:""; position:absolute; width:270px; height:270px; right:-45px; top:-55px; border-radius:50%; background:radial-gradient(var(--yellow) 2px,transparent 2px) 0 0/13px 13px; opacity:.7; pointer-events:none; }
.events-promo-copy { position:relative; z-index:1; }
.events-promo span { color:#662078; }
.events-promo h3 { font-size:clamp(32px,3.1vw,45px); line-height:1.07; max-width:490px; margin:9px 0 12px; }
.events-promo p { max-width:470px; font-size:15px; color:#35234c; }
.events-promo .button { margin-top:24px; }
.events-promo-art { display:grid; grid-template-rows:1fr 1fr; gap:10px; transform:rotate(2deg); z-index:1; }
.events-promo-art img { display:block; width:100%; height:130px; object-fit:cover; border:3px solid var(--ink); border-radius:12px; box-shadow:4px 4px 0 #fff; }
.impact-hero { background:radial-gradient(circle at 15% 28%,#ffe0f4 0,transparent 35%),radial-gradient(circle at 90% 75%,#c9f3ff 0,transparent 35%),#fffdf8; }
.event-section { background:#fff9e8; }
.event-card { overflow:hidden; }
.event-card-image { display:block; width:calc(100% + 60px); height:170px; object-fit:cover; margin:23px -30px 23px; border-block:3px solid var(--ink); }
.event-footer-link { text-decoration:none; }
.event-footer-link:hover { text-decoration:underline; }
.upcoming-event { border:3px solid var(--ink); box-shadow:7px 7px 0 #f4c642; }
.sponsor-card { border:2px solid var(--ink); }
.calendar-hero { position:relative; overflow:hidden; padding:72px 0; background:radial-gradient(var(--yellow) 2px,transparent 2px) right 40px top 50px/17px 17px no-repeat,linear-gradient(115deg,#f6d4ff 0%,#ffeef9 48%,#d8f9ff 100%); }
.calendar-hero-grid { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:40px; align-items:center; }
.calendar-hero h1 { font-size:clamp(62px,6.2vw,90px); line-height:1.02; }
.calendar-hero-grid > div:first-child > p:not(.eyebrow) { max-width:560px; margin-bottom:25px; color:#35304b; font-size:18px; line-height:1.7; }
.calendar-hero-art { display:grid; gap:15px; transform:rotate(2deg); }
.calendar-hero-art img { display:block; width:100%; height:214px; object-fit:cover; border:4px solid var(--ink); border-radius:15px; box-shadow:8px 8px 0 #f50094; }
.calendar-hero-art img:last-child { transform:translateX(-18px) rotate(-2deg); box-shadow:8px 8px 0 #05b9ec; }
.calendar-section { background:#fffdf7; }
.calendar-card { background:#f5efff; border:3px solid var(--ink); box-shadow:7px 7px 0 #9e4dd2; }
.calendar-switch { background:#e9d6f7; border:2px solid var(--ink); }
.calendar-switch button[aria-pressed="true"] { background:#f50094; }
.calendar-days > span:not(.calendar-weekday):not(.calendar-empty),.calendar-days > a { border:1px solid #d4c7e2; }
.calendar-days .calendar-event-day { background:#f50094; border-color:var(--ink); box-shadow:3px 3px 0 var(--ink); }
.calendar-aside { overflow:hidden; padding:0; border:3px solid var(--ink); box-shadow:7px 7px 0 var(--yellow); background:#ffe7a0; }
.calendar-aside > img { display:block; width:100%; height:210px; object-fit:cover; border-bottom:3px solid var(--ink); }
.calendar-aside-copy { padding:25px 28px 30px; }
.calendar-aside-copy > span { color:#e81994; font-size:40px; line-height:1; }
.calendar-aside h3 { margin:8px 0 10px; }
.event-list-section { background:linear-gradient(180deg,#fff1f8,#fff9df); }
.upcoming-list-card { border:3px solid var(--ink); box-shadow:8px 8px 0 rgba(33,24,63,.19); grid-template-columns:90px minmax(0,1fr) minmax(210px,.54fr); align-items:center; }
.halloween-card { background:#f8e7ff; }
.christmas-card { background:#f5fff0; }
.event-month-badge { border:2px solid var(--ink); box-shadow:4px 4px 0 var(--pink); }
.event-feature-image { width:100%; height:245px; object-fit:cover; border:3px solid var(--ink); border-radius:12px; box-shadow:5px 5px 0 var(--pink); }
.christmas-card .event-feature-image { box-shadow:5px 5px 0 #ebb631; }
@media (max-width:960px) { .calendar-hero-grid { grid-template-columns:1fr; }.calendar-hero-art { grid-template-columns:1fr 1fr; }.calendar-hero-art img { height:180px; }.calendar-hero-art img:last-child { transform:none; }.upcoming-list-card { grid-template-columns:75px minmax(0,1fr); }.event-feature-image { grid-column:1 / -1; height:auto; max-height:300px; object-fit:contain; background:#fff; }.christmas-card .event-feature-image { display:block; } }
@media (max-width:760px) { .events-promo { grid-template-columns:1fr; padding:24px; }.events-promo-art { grid-template-columns:1fr 1fr; grid-template-rows:auto; }.events-promo-art img { height:130px; }.event-card-image { width:calc(100% + 60px); }.calendar-hero-art img { height:150px; }.calendar-hero h1 { font-size:clamp(56px,11vw,74px); }.calendar-aside > img { height:230px; } }
@media (max-width:540px) { .calendar-hero-art { grid-template-columns:1fr; }.calendar-hero-art img { height:160px; }.calendar-hero-art img:last-child { display:none; }.events-promo-art img { height:95px; }.upcoming-list-card { grid-template-columns:1fr; }.event-feature-image { grid-column:auto; }.calendar-days > span,.calendar-days > a { font-size:12px; } }

/* Colourful headings, illustrated service cards, and comic year planner */
.site-header { background:#35155d; color:#fff; border-bottom-color:#f50094; box-shadow:0 6px 0 #ffdd32; }
.wordmark-symbol { background:#fff; border:2px solid #fff; }
.wordmark-symbol img { width:100%; height:100%; object-fit:contain; }
.wordmark-text em { background:linear-gradient(90deg,#ffdd32 5%,#44d8ff 85%); color:transparent; -webkit-background-clip:text; background-clip:text; }
.site-header nav a[aria-current="page"] { text-decoration-color:#ffdd32; }
.site-header .nav-button { background:#f50094; border-color:#fff; color:#fff; box-shadow:4px 4px 0 #ffdd32; }
.site-header .nav-button:hover { background:#a61f89; }
.section-rule { border-top:3px solid var(--ink); color:#5e278f; }
.section-rule span:last-child { color:#f50094; transform:rotate(-12deg); }
.section-heading h2,.contact-copy h2,.impact-hero h1,.calendar-heading h2,.event-list-section h2 { text-wrap:balance; }
.eyebrow { color:#692291; font-weight:800; }
.gallery-heading h3,.gallery h4,.contact-card h3,.event-name-panel h3,.sponsors-heading h3 { font-family:'Fredoka',Arial,sans-serif; font-weight:600; letter-spacing:-.025em; }
.gallery-heading h3 { color:#512184; }
.service-finder { background:#eddcff; border:3px solid var(--ink); box-shadow:6px 6px 0 #ffdd32; }
.service-finder legend,.search-group label { color:#3e1f69; }
.filter { border:2px solid #6c3b97; }
.filter.active { background:#f50094; border-color:var(--ink); box-shadow:2px 2px 0 var(--ink); }
.illustration-note { color:#675675; font-size:12px; line-height:1.45; margin:-7px 0 18px; }
.service-grid { gap:19px; }
.service-card { padding:24px; min-height:450px; overflow:hidden; background:#50267c; border:3px solid var(--ink); border-radius:17px; color:#fff; box-shadow:6px 6px 0 #f50094; }
.service-card:nth-child(3n+2) { background:#692895; box-shadow:6px 6px 0 #05b9ec; }
.service-card:nth-child(3n) { background:#38206f; box-shadow:6px 6px 0 #ffdd32; }
.service-card:hover { box-shadow:8px 8px 0 #ffdd32; }
.service-media { position:relative; height:175px; margin:-24px -24px 22px; overflow:hidden; border-bottom:3px solid var(--ink); background:#ddd; }
.service-photo { display:block; width:100%; height:100%; object-fit:cover; }
.service-icon-wrap { position:absolute; right:15px; bottom:11px; width:66px; height:66px; border:3px solid var(--ink); border-radius:17px; background:#fff; display:grid; place-items:center; transform:rotate(7deg); box-shadow:3px 3px 0 #ffdd32; }
.service-icon-wrap img { display:block; width:52px; height:52px; object-fit:contain; }
.card-type { display:inline-block; align-self:flex-start; padding:5px 9px; background:#ffdd32; border-radius:5px; color:#261247; letter-spacing:.06em; font-size:10px; font-weight:800; }
.service-card h3 { font:600 28px/1.12 'Fredoka',Arial,sans-serif; letter-spacing:-.02em; color:#ffdd32; margin:8px 0 12px; }
.service-card p { color:#fff; font-size:14px; line-height:1.55; }
.card-foot { border-top:1px solid rgba(255,255,255,.43); padding-top:16px; }
.service-action { background:#fff; color:#4b176e; padding:8px 16px; border-radius:100px; border:2px solid #fff; }
.service-action:hover { background:#ffdd32; border-color:#ffdd32; text-decoration:none; }
.gallery { border:3px solid var(--ink); box-shadow:7px 7px 0 #05b9ec; }
.events-promo h3,.event-card h3,.upcoming h3,.brand-details h3,.upcoming-info h3,.client-contact h3 { font-family:'Fredoka',Arial,sans-serif; font-weight:600; letter-spacing:-.025em; }
.contact-section { background:radial-gradient(#f9b0d9 2px,transparent 2px) right 20px top 25px/18px 18px no-repeat,linear-gradient(125deg,#fce2f3,#e9dbff 53%,#d8f8fc); }
.contact-card { border:3px solid var(--ink); box-shadow:9px 9px 0 #ffdd32; }

.year-planner { margin-top:34px; border:4px solid var(--ink); border-radius:18px; background:#dff5ff; overflow:hidden; box-shadow:10px 10px 0 #f50094; }
.year-planner-banner { min-height:185px; position:relative; display:flex; align-items:center; justify-content:center; padding:30px 150px; text-align:center; overflow:hidden; color:#fff; background:radial-gradient(#ffdd32 2px,transparent 2px) right -5px top -8px/17px 17px,linear-gradient(115deg,#57219e,#a131c8 55%,#ed1895); border-bottom:4px solid var(--ink); }
.year-planner-banner::before { content:""; position:absolute; left:-36px; bottom:-48px; width:195px; height:195px; background:#05b9ec; border:4px solid var(--ink); transform:rotate(27deg); opacity:.8; }
.year-planner-banner > div { position:relative; z-index:1; }
.year-planner-banner p { margin:0 0 3px; font-size:12px; font-weight:800; letter-spacing:.22em; }
.year-planner-banner h2 { margin:0; font-size:clamp(54px,7vw,94px); line-height:1; color:#ffdd32; text-shadow:3px 4px 0 var(--ink); }
.year-planner-banner h2 em { display:block; font-size:.56em; color:#fff; background:none; -webkit-text-fill-color:#fff; text-shadow:2px 3px 0 var(--ink); }
.year-sticker { position:absolute; z-index:2; top:27px; left:34px; padding:10px 15px; transform:rotate(-9deg); background:#ffdd32; border:3px solid var(--ink); border-radius:100px; color:var(--ink); font:800 13px 'Fredoka',Arial,sans-serif; box-shadow:3px 3px 0 #fff; }
.year-burst { position:absolute; right:42px; bottom:18px; font-size:89px; line-height:1; color:#05c8f4; -webkit-text-stroke:3px var(--ink); transform:rotate(15deg); }
.year-planner-intro { margin:0; padding:16px 22px; color:#2c1d4b; background:#fff9c9; font-size:14px; font-weight:700; text-align:center; border-bottom:3px solid var(--ink); }
.year-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; padding:23px; background:radial-gradient(#abd7e9 1px,transparent 1px) 0 0/20px 20px,#dff5ff; }
.mini-month { min-width:0; padding:12px; background:#fff; border:2px solid var(--ink); border-radius:11px; box-shadow:4px 4px 0 #8e72b4; }
.mini-month:nth-child(4n+2) { box-shadow:4px 4px 0 #ffb432; }
.mini-month:nth-child(4n+3) { box-shadow:4px 4px 0 #f50094; }
.mini-month.has-event { background:#fff8da; border-width:3px; box-shadow:4px 4px 0 #f50094; }
.mini-month-title { width:100%; padding:3px 5px 5px; display:flex; align-items:center; justify-content:space-between; border:0; border-bottom:2px solid var(--ink); background:transparent; color:#3f2074; text-align:left; font:600 21px/1.1 'Fredoka',Arial,sans-serif; }
.mini-month-title:hover,.mini-month-title[aria-pressed="true"] { color:#c60077; }
.mini-month-title[aria-pressed="true"] { text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:4px; }
.mini-month-title span { font-size:16px; }
.mini-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:2px; margin-top:9px; text-align:center; font-size:11px; font-weight:700; line-height:1.7; font-variant-numeric:tabular-nums; }
.mini-days > span,.mini-days > a { min-width:0; height:20px; display:grid; place-items:center; }
.mini-days .mini-weekday { color:#a6257e; font-weight:800; }
.mini-event-day { color:#fff; background:#f50094; border-radius:50%; text-decoration:none; font-weight:800; }
.mini-event-day:hover { background:#912060; }
.mini-event-tag { display:block; margin-top:10px; padding:5px; border-radius:5px; color:#fff; background:#592399; text-align:center; font-size:10px; font-weight:800; letter-spacing:.03em; }
.calendar-layout { margin-top:46px; }
.calendar-card { scroll-margin-top:25px; }
.calendar-month { color:#56238e; }
.calendar-note { font-weight:700; }
.calendar-switch button[aria-pressed="true"] { background:#f50094; }
@media (max-width:1000px) { .year-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.mini-month-title { font-size:19px; } }
@media (max-width:760px) { .nav-row { flex-wrap:wrap; gap:6px 12px; padding-block:10px 7px; }.site-header nav { width:100%; display:flex; gap:17px; overflow-x:auto; white-space:nowrap; padding:4px 0 9px; scrollbar-width:thin; }.site-header nav a:not(.nav-button),.site-header nav a.events-nav { display:inline-flex; flex:none; font-size:12px; margin:0; }.site-header .nav-button { flex:none; padding:7px 12px; }.year-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:15px; }.year-planner-banner { min-height:165px; padding:40px 30px 25px; }.year-sticker { top:13px; left:15px; font-size:10px; padding:5px 9px; }.year-burst { right:12px; bottom:13px; font-size:50px; }.year-planner-banner::before { width:110px; height:110px; }.year-planner-banner p { font-size:10px; }.year-planner-banner h2 { font-size:clamp(52px,13vw,78px); }.year-planner-intro { font-size:12px; }.service-card { min-height:450px; } }
@media (max-width:430px) { .mini-month { padding:8px; }.mini-month-title { font-size:16px; }.mini-days { font-size:10px; gap:1px; }.mini-days > span,.mini-days > a { height:18px; }.mini-event-tag { font-size:8px; }.year-burst { opacity:.65; }.service-card { min-height:425px; }.site-header .nav-button { font-size:12px; }.site-header .nav-button span { font-size:12px; } }

/* New ImaGenius flyers and confirmed Halloween event */
.poster-spotlight { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:30px; align-items:center; margin:55px 0 65px; padding:35px; border:3px solid var(--ink); border-radius:20px; background:radial-gradient(#ffd944 2px,transparent 2px) right 22px top 16px/18px 18px,linear-gradient(120deg,#e6d6ff,#f8c9eb); box-shadow:8px 8px 0 #05b9ec; }
.poster-spotlight-copy h3,.indy-showcase-heading h3 { font:600 clamp(34px,4vw,51px)/1.06 'Fredoka',Arial,sans-serif; letter-spacing:-.025em; margin:0 0 16px; }
.poster-spotlight-copy h3 em,.indy-showcase-heading h3 em { font-style:normal; color:#dc007e; }
.poster-spotlight-copy > p:not(.eyebrow) { max-width:420px; color:#4b3b64; font-size:15px; line-height:1.65; }
.poster-spotlight .button { margin-top:12px; }
.poster-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.poster-pair a,.indy-poster-grid a,.halloween-flyers a { min-width:0; display:flex; flex-direction:column; text-decoration:none; color:var(--ink); font-size:13px; font-weight:800; text-align:center; }
.poster-pair img { width:100%; height:310px; display:block; object-fit:contain; background:#fff; border:3px solid var(--ink); border-radius:10px; box-shadow:4px 4px 0 #f50094; }
.poster-pair a span,.indy-poster-grid a span,.halloween-flyers a span { margin-top:13px; text-decoration:underline; text-underline-offset:4px; }
.poster-pair a:hover img,.indy-poster-grid a:hover img,.halloween-flyers a:hover img { transform:translateY(-3px); }
.indy-showcase { margin-top:65px; padding:34px; border:3px solid var(--ink); border-radius:20px; background:radial-gradient(#efb6ee 2px,transparent 2px) 0 0/22px 22px,#f6e7ff; box-shadow:8px 8px 0 #ffdd32; }
.indy-showcase-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:25px; }
.indy-showcase-heading h3 { margin-bottom:0; }
.indy-showcase-heading > p { color:#55416c; max-width:310px; margin:0; font-size:14px; }
.indy-gallery-group + .indy-gallery-group { margin-top:38px; }
.indy-gallery-group h4 { margin:0 0 16px; font:600 clamp(23px,2.5vw,30px)/1.2 'Fredoka',Arial,sans-serif; color:#3b165f; }
.indy-poster-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.indy-poster-grid a { padding:14px 14px 18px; border:3px solid var(--ink); border-radius:14px; background:#fff; box-shadow:5px 5px 0 #ef128e; }
.indy-poster-grid a:nth-child(2) { box-shadow:5px 5px 0 #05b9ec; }
.indy-poster-grid a:nth-child(3) { box-shadow:5px 5px 0 #ffdd32; }
.indy-poster-grid img { display:block; width:100%; height:320px; object-fit:contain; }
.brand-video-panel { display:grid; grid-template-columns:minmax(0,1fr) 225px; gap:25px; align-items:center; margin-top:35px; padding:25px 30px; color:#fff; background:#3b165f; border:3px solid var(--ink); border-radius:15px; }
.brand-video-panel h4 { margin:10px 0 12px; font:600 clamp(26px,3vw,38px)/1.1 'Fredoka',Arial,sans-serif; color:#ffdd32; }
.brand-video-panel p { color:#fff; max-width:460px; margin:0; }
.brand-video-panel .event-status { color:#ffacd9; }
.brand-video-panel video { display:block; width:100%; max-height:320px; background:#000; border:2px solid #fff; border-radius:10px; }
.channel-section { padding:85px 0; background:linear-gradient(110deg,#fff1bf,#f7d5fa 45%,#d4f6ff); }
.channel-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); align-items:center; gap:8%; }
.channel-art { display:block; max-width:440px; border:4px solid var(--ink); border-radius:17px; overflow:hidden; box-shadow:9px 9px 0 #f50094; }
.channel-art img { display:block; width:100%; height:auto; }
.channel-grid h2 { margin:0 0 20px; }
.channel-grid p:not(.eyebrow) { color:#493b62; font-size:17px; line-height:1.65; max-width:500px; }
.channel-grid .button { margin-top:12px; }
.calendar-days .calendar-event-day.halloween-day,.mini-days .mini-event-day.halloween-day { background:#f27a08; color:#21183f; }
.calendar-days .calendar-event-day.halloween-day:hover,.mini-days .mini-event-day.halloween-day:hover { background:#ffdd32; }
.halloween-card .event-month-badge { background:#ef7a11; color:#21183f; }
.just-vibez-mark { display:block; width:150px; height:57px; margin-bottom:11px; overflow:hidden; border-radius:8px; border:2px solid var(--ink); background:#000; }
.just-vibez-mark img { display:block; width:100%; height:100%; object-fit:cover; }
.ticket-note { font-size:13px; }
.event-feature-link { display:block; align-self:center; }
.halloween-card .event-feature-image { object-fit:contain; background:#150b2b; box-shadow:5px 5px 0 #ef7a11; }
.halloween-card .event-actions { margin-top:22px; }
.halloween-card .event-actions > a:not(.button) { font-weight:800; text-underline-offset:4px; }
.halloween-flyers { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; padding:16px 24px 36px; margin:-20px 25px 12px; background:#fff; border:3px solid var(--ink); border-top:0; border-radius:0 0 18px 18px; }
.halloween-flyers a { align-items:center; }
.halloween-flyers img { display:block; width:100%; max-width:410px; height:355px; object-fit:contain; background:#170b28; border:3px solid var(--ink); border-radius:10px; box-shadow:5px 5px 0 #f27a08; }
@media (max-width:960px) { .poster-spotlight { grid-template-columns:1fr; }.indy-poster-grid img { height:280px; }.event-feature-link { grid-column:1/-1; justify-self:center; width:min(100%,440px); }.halloween-flyers img { height:330px; } }
@media (max-width:760px) { .poster-spotlight { padding:23px; margin:45px 0 55px; }.poster-pair img { height:255px; }.indy-showcase { padding:22px; margin-top:45px; }.indy-showcase-heading { display:block; }.indy-showcase-heading > p { margin-top:12px; }.indy-poster-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.indy-poster-grid img { height:255px; }.brand-video-panel { grid-template-columns:1fr; }.brand-video-panel video { width:min(100%,270px); margin-inline:auto; }.channel-grid { grid-template-columns:1fr; }.channel-art { width:min(100%,380px); margin-inline:auto; }.channel-grid > div { margin-top:35px; }.halloween-flyers { margin:-20px 12px 20px; padding:20px 14px 25px; gap:14px; }.halloween-flyers img { height:260px; } }
@media (max-width:490px) { .poster-pair { gap:9px; }.poster-pair img { height:215px; }.poster-pair a,.indy-poster-grid a,.halloween-flyers a { font-size:11px; }.indy-poster-grid { grid-template-columns:1fr; gap:12px; }.indy-poster-grid a { padding:8px; font-size:14px; }.indy-poster-grid img { height:390px; }.indy-gallery-group + .indy-gallery-group { margin-top:32px; }.halloween-flyers { grid-template-columns:1fr; }.halloween-flyers img { height:auto; max-height:400px; }.channel-section { padding:70px 0; } }

/* Programme artwork, print partner, and upcoming charity projects */
.youth-flyer-spotlight { display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,.72fr); gap:32px; align-items:center; margin:55px 0 60px; padding:32px; background:radial-gradient(#f4b2df 2px,transparent 2px) right 18px top 18px/22px 22px,linear-gradient(125deg,#f9e5ff,#d3f4ff); border:3px solid var(--ink); border-radius:20px; box-shadow:8px 8px 0 #ffdd32; }
.youth-flyer-copy h3 { margin:0 0 16px; font:600 clamp(33px,4vw,49px)/1.08 'Fredoka',Arial,sans-serif; letter-spacing:-.025em; }
.youth-flyer-copy h3 em { color:#dc007e; font-style:normal; }
.youth-flyer-copy > p:not(.eyebrow) { max-width:520px; color:#493b62; line-height:1.6; }
.youth-flyer-copy .button { margin-top:15px; }
.youth-flyer-art { display:block; justify-self:center; width:min(100%,330px); border:3px solid var(--ink); border-radius:14px; background:#fff; overflow:hidden; box-shadow:5px 5px 0 #05b9ec; }
.youth-flyer-art img { display:block; width:100%; height:430px; object-fit:contain; }
.print-partner { display:flex; align-items:center; gap:28px; margin:0 0 25px; padding:22px 28px; background:linear-gradient(110deg,#fff,#e2f8ff); border:2px solid var(--ink); border-radius:16px; box-shadow:5px 5px 0 #f50094; }
.print-partner img { display:block; flex:none; width:140px; height:140px; object-fit:contain; background:#fff; border-radius:10px; }
.print-partner .eyebrow { margin:0 0 7px; }
.print-partner h4 { margin:0 0 8px; font:600 29px/1.1 'Fredoka',Arial,sans-serif; }
.print-partner p:last-child { margin:0; color:#4c5365; line-height:1.5; }
.sponsor-card.soloarts img { height:120px; }
.charity-projects { padding:90px 0 105px; background:linear-gradient(180deg,#fffdf8,#e9f7ff); }
.calendar-hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px 22px; }
.calendar-hero-actions > a:not(.button) { color:var(--ink); font-size:15px; font-weight:800; text-underline-offset:5px; }
.charity-projects-heading { max-width:840px; margin:35px 0 34px; }
.charity-projects-heading h2 { margin:0 0 16px; font:600 clamp(43px,5vw,65px)/1.08 'Fredoka',Arial,sans-serif; letter-spacing:-.03em; }
.charity-projects-heading h2 em { color:#d90087; font-style:normal; }
.charity-projects-heading > p:last-child { margin:0; color:#50506a; font-size:17px; line-height:1.6; }
.charity-project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px; }
.charity-project-card { min-width:0; overflow:hidden; background:#fff; border:3px solid var(--ink); border-radius:20px; box-shadow:7px 7px 0 #ffdd32; }
.charity-project-card:nth-child(2) { box-shadow:7px 7px 0 #f50094; }
.charity-project-media { position:relative; aspect-ratio:16/9; background:#dfd0ed; overflow:hidden; border-bottom:3px solid var(--ink); }
.charity-project-media img { display:block; width:100%; height:100%; object-fit:cover; }
.charity-project-media span { position:absolute; left:16px; bottom:15px; padding:8px 12px; background:#fff; border:2px solid var(--ink); border-radius:6px; box-shadow:3px 3px 0 #ffdd32; font-size:14px; font-weight:800; }
.charity-project-body { padding:26px 28px 30px; }
.project-kicker { margin:0 0 9px; color:#a50070; font-size:12px; font-weight:900; letter-spacing:.08em; }
.charity-project-body h3 { margin:0 0 14px; font:600 clamp(28px,3vw,38px)/1.12 'Fredoka',Arial,sans-serif; }
.charity-project-body > p:not(.project-kicker) { color:#4d5263; font-size:16px; line-height:1.65; }
.charity-project-body > p a { color:#6d278d; font-weight:800; }
.project-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:21px; }
.project-actions a { display:inline-flex; align-items:center; padding:11px 14px; border:2px solid var(--ink); border-radius:100px; color:var(--ink); background:#ffdd32; text-decoration:none; font-size:14px; font-weight:800; }
.project-actions a:nth-child(2) { background:#d9f4ff; }
.project-actions a:hover { transform:translateY(-2px); }
@media (max-width:760px) { .youth-flyer-spotlight { grid-template-columns:1fr; padding:24px; }.youth-flyer-art img { height:450px; }.print-partner { align-items:flex-start; gap:17px; padding:18px; }.print-partner img { width:90px; height:90px; }.print-partner h4 { font-size:24px; }.charity-projects { padding:70px 0 85px; }.charity-project-grid { grid-template-columns:1fr; }.charity-project-body { padding:23px; } }
@media (max-width:430px) { .print-partner { flex-direction:column; }.charity-project-media span { font-size:12px; }.youth-flyer-art { width:100%; }.youth-flyer-art img { height:400px; } }

/* Distinct, playful headings and cards for the ages 9–25 pathway */
.service-group-heading { grid-column:1/-1; border-radius:20px; padding:23px 29px; }
.service-group-heading[hidden] { display:none; }
.service-group-heading span { display:inline-block; padding:5px 13px; border:2px solid var(--ink); border-radius:100px; background:#ffdd32; color:#21144c; font-size:14px; font-weight:800; }
.service-group-heading h3 { margin:9px 0 0; font:800 clamp(34px,4vw,54px)/1.04 'Baloo 2','Fredoka',sans-serif; letter-spacing:-.03em; }
.service-group-heading h3 em { font-style:normal; color:#cf007a; }
.service-group-heading p { margin:5px 0 0; color:#382554; font-size:17px; }
.youth-group-heading { display:flex; justify-content:space-between; align-items:center; gap:25px; margin:0 0 6px; background:radial-gradient(#f3bce6 2px,transparent 2px) right 14px top 14px/19px 19px,linear-gradient(105deg,#d7f6ff,#ffe5f4 72%,#fff5c4); border:3px solid var(--ink); box-shadow:6px 6px 0 #f50094; }
.youth-heading-image { display:block; width:240px; height:145px; flex:none; object-fit:cover; border:3px solid var(--ink); border-radius:17px; transform:rotate(3deg); box-shadow:5px 5px 0 #ffdd32; }
.partner-group-heading { margin:18px 0 5px; padding:17px 4px 9px; border-top:3px solid var(--ink); border-radius:0; }
.partner-group-heading span { background:#def1ff; }
.partner-group-heading h3 { font:700 clamp(29px,3vw,40px)/1.08 'Fredoka',sans-serif; }
.partner-group-heading h3 em { color:#6a2a95; }
.service-card[data-tags~="young"] { background:#fdecfa; border-color:#281452; color:#281452; box-shadow:6px 6px 0 #05b9ec; }
.service-card[data-tags~="young"]:nth-of-type(3n) { background:#e4f8ff; box-shadow:6px 6px 0 #f50094; }
.service-card[data-tags~="young"]:nth-of-type(3n+2) { background:#fff5ce; box-shadow:6px 6px 0 #8d45b8; }
.service-card[data-tags~="young"] h3 { color:#572080; font:800 31px/1.05 'Baloo 2','Fredoka',sans-serif; letter-spacing:-.025em; }
.service-card[data-tags~="young"] p { color:#33294e; font-size:15px; line-height:1.55; }
.service-card[data-tags~="young"] .card-type { background:#ee168e; color:#fff; font-size:12px; letter-spacing:.03em; }
.service-card[data-tags~="young"] .card-foot { border-color:#b39eca; }
.service-card[data-tags~="young"] .service-action { background:#fff; border-color:#572080; }
.youth-flyer-copy h3 { font-family:'Baloo 2','Fredoka',sans-serif; font-weight:800; line-height:1.03; }

/* The supplied scheme flyer leads; its illustrations stay within the story. */
.featured-scheme,.outreach-project { grid-column:1/-1; display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1fr); }
.featured-scheme .scheme-flyer { aspect-ratio:auto; min-height:590px; background:#fffaf4; border-right:3px solid var(--ink); border-bottom:0; }
.featured-scheme .scheme-flyer img { object-fit:contain; }
.featured-scheme .charity-project-body { align-self:center; padding:34px 40px; }
.featured-scheme .charity-project-body h3,.outreach-project .charity-project-body h3 { font-family:'Baloo 2','Fredoka',sans-serif; font-weight:800; line-height:1.06; }
.scheme-supporting-art { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; margin:24px 0 28px; }
.scheme-supporting-art figure { margin:0; min-width:0; }
.scheme-supporting-art img { display:block; width:100%; aspect-ratio:1.45; object-fit:cover; border-radius:12px; border:2px solid var(--ink); }
.scheme-supporting-art figcaption { margin-top:6px; color:#5b3c77; font-size:13px; font-weight:800; }
.outreach-project { grid-template-columns:minmax(280px,.85fr) minmax(0,1fr); }
.outreach-project .charity-project-media { aspect-ratio:auto; min-height:390px; border-right:3px solid var(--ink); border-bottom:0; }
.outreach-project .charity-project-body { align-self:center; padding:35px 42px; }
@media (max-width:900px) { .featured-scheme,.outreach-project { display:block; }.featured-scheme .scheme-flyer { display:block; min-height:0; border-right:0; border-bottom:3px solid var(--ink); padding:18px; }.featured-scheme .scheme-flyer img { width:min(100%,500px); height:auto; margin:auto; }.outreach-project .charity-project-media { height:300px; min-height:0; border-right:0; border-bottom:3px solid var(--ink); }.featured-scheme .charity-project-body,.outreach-project .charity-project-body { padding:27px; } }
@media (max-width:760px) { .youth-heading-image { width:170px; height:125px; } }
@media (max-width:560px) { .service-group-heading { padding:18px; }.service-group-heading h3 { font-size:37px; }.service-group-heading p { font-size:16px; }.youth-group-heading { display:block; }.youth-heading-image { width:100%; max-width:330px; height:160px; margin-top:18px; transform:rotate(0); }.partner-group-heading { padding:16px 0 5px; }.scheme-supporting-art { grid-template-columns:1fr; }.featured-scheme .scheme-flyer { padding:10px; }.featured-scheme .charity-project-body,.outreach-project .charity-project-body { padding:22px; } }

/* Completed St Vincent & the Grenadines relief project */
.service-story-link { display:block; width:max-content; max-width:100%; margin-top:10px; color:#ffdd32; font-size:13px; font-weight:800; text-underline-offset:4px; }
.relief-project { margin:96px 0 90px; scroll-margin-top:25px; }
.relief-project .section-rule { margin-bottom:27px; }
.relief-feature { display:grid; grid-template-columns:minmax(0,.88fr) minmax(0,1fr); align-items:stretch; gap:22px; }
.relief-feature-photo { display:block; min-height:485px; overflow:hidden; border:3px solid var(--ink); border-radius:20px; box-shadow:7px 7px 0 #ffdd32; background:#28144f; }
.relief-feature-photo img { display:block; width:100%; height:100%; max-height:590px; object-fit:cover; object-position:center top; }
.relief-story { padding:34px 39px; border:3px solid var(--ink); border-radius:20px; background:radial-gradient(#f1b2dd 2px,transparent 2px) right 15px top 17px/20px 20px,linear-gradient(125deg,#d7f5ff,#fbe2f5 75%,#fff2bf); }
.relief-story .eyebrow { margin:0 0 12px; }
.relief-story h2 { margin:0 0 19px; font:700 clamp(39px,4.2vw,58px)/1.02 'Fredoka',Arial,sans-serif; letter-spacing:-.03em; }
.relief-story h2 em { color:#c90080; font-style:normal; }
.relief-story > p:not(.eyebrow) { color:#37334c; font-size:17px; line-height:1.65; margin:0 0 15px; }
.relief-outcome { display:flex; align-items:center; flex-wrap:wrap; gap:9px 18px; margin-top:23px; padding-top:19px; border-top:2px solid #8b66a8; }
.relief-outcome strong { padding:8px 15px; border-radius:100px; background:#1e194b; color:#fff; font:700 19px/1.1 'Fredoka',Arial,sans-serif; }
.relief-outcome span { color:#362850; font-size:15px; font-weight:800; }
.relief-gallery-heading { margin:53px 0 21px; }
.relief-gallery-heading .eyebrow { margin:0 0 7px; }
.relief-gallery-heading h3 { margin:0 0 8px; font:700 clamp(34px,3.8vw,49px)/1.08 'Fredoka',Arial,sans-serif; }
.relief-gallery-heading > p:last-child { color:#5d576c; font-size:16px; margin:0; }
.relief-photo-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.relief-photo-grid figure,.relief-context-grid figure { min-width:0; margin:0; padding:8px; border:2px solid var(--ink); border-radius:15px; background:#fff; box-shadow:4px 4px 0 #05b9ec; }
.relief-photo-grid figure:nth-child(even) { box-shadow:4px 4px 0 #f50094; }
.relief-photo-grid a { display:block; overflow:hidden; border-radius:9px; }
.relief-photo-grid img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.relief-photo-grid figcaption,.relief-context-grid figcaption { padding:10px 4px 3px; color:#322456; font-size:14px; line-height:1.35; font-weight:800; }
.relief-context-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0 0; }
.relief-context-grid figure { box-shadow:none; background:#f8f5fc; border-color:#ded7e8; }
.relief-context-grid img { display:block; width:100%; height:180px; object-fit:cover; border-radius:9px; }
.relief-supporters { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:25px; align-items:center; margin-top:37px; padding:26px; border:3px solid var(--ink); border-radius:19px; background:#f9f0ff; box-shadow:6px 6px 0 #ffdd32; }
.relief-supporters h3 { margin:0 0 10px; font:700 clamp(29px,3vw,39px)/1.08 'Fredoka',Arial,sans-serif; }
.relief-supporters p:last-child { margin:0; color:#514862; font-size:16px; line-height:1.55; }
.relief-supporter-logos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.relief-supporter-logos figure { display:grid; grid-template-rows:105px auto; min-width:0; margin:0; padding:10px; border-radius:13px; background:#fff; }
.relief-supporter-logos img { width:100%; height:100%; object-fit:contain; }
.relief-supporter-logos figcaption { align-self:end; margin-top:7px; color:#3c3456; text-align:center; font-size:13px; font-weight:800; }
@media (max-width:960px) { .relief-feature,.relief-supporters { grid-template-columns:1fr; }.relief-feature-photo { min-height:0; }.relief-feature-photo img { max-height:460px; }.relief-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.relief-supporter-logos { max-width:680px; } }
@media (max-width:560px) { .relief-project { margin:70px 0; }.relief-story { padding:24px; }.relief-story h2 { font-size:39px; }.relief-feature-photo img { height:auto; max-height:none; }.relief-photo-grid { gap:12px; }.relief-photo-grid figcaption,.relief-context-grid figcaption { font-size:13px; }.relief-context-grid { grid-template-columns:1fr; }.relief-supporters { padding:18px; }.relief-supporter-logos { grid-template-columns:repeat(2,minmax(0,1fr)); } }
