/* Partner tiles, community impact, and the shared REBLX footer composition. */
.partner-section{background:var(--paper);padding-bottom:5vw}
.partner-logo-grid{gap:1.2vw;padding-top:7.4vw;align-items:stretch}
.partner-logo-grid a{display:grid;place-items:center;isolation:isolate;height:auto;aspect-ratio:1.36;padding:clamp(20px,3vw,56px);background:#ededee;transition:background .25s}
.partner-logo-grid a:hover{background:#e3e8ec;transform:none}
.partner-logo-grid img{width:100%;height:100%;max-width:220px;max-height:100px;object-fit:contain;object-position:center;mix-blend-mode:normal}
.partner-logo-grid img[src$="public-health.png"]{mix-blend-mode:multiply}

.impact-section{background:var(--blue);color:var(--paper);padding:7vw var(--first-gutter) 0;overflow:hidden;scroll-margin-top:0}
.impact-section .editorial-heading{color:var(--paper)}
.impact-section [data-scroll-letters] .intro-word{--reveal-color:#f6f6f6}
.impact-section [data-scroll-letters] .intro-word.is-blue{--reveal-color:#afd0e4}
.impact-section [data-scroll-letters] .intro-letter{color:#80a3b9}
.impact-section [data-scroll-letters] .intro-letter.lit{color:var(--reveal-color)}
.impact-section [data-scroll-letters] .intro-stop{--reveal-color:#f6f6f6}
.impact-section .section-label{background:var(--paper);color:var(--blue)}
.impact-section .value-symbol,.impact-section .value-path li:after{background:var(--paper)}
.impact-section .about-description strong{color:#b9d9eb}
.impact-section .round-inquiry{background:var(--paper);color:var(--blue)}
.impact-section .round-inquiry:hover{background:#d8e8f2}
.impact-section :is(a,button):focus-visible{outline-color:white}
.impact-section .about-photo{background:#d9e4eb}
.impact-section .about-photo:after{background:linear-gradient(180deg,#034e7c00,#034e7c18)}
.impact-photo--featured img{object-position:35% 50%}
.impact-photo--outreach img{object-position:49% 50%}
.impact-photo--meals img{object-position:26% 50%}
.impact-photo--giving img{object-position:58% 50%}
.impact-marquee{margin:6vw calc(-1 * var(--first-gutter)) 0;padding:0 0 3.6vw;overflow:hidden}
.impact-marquee-track{display:flex;width:max-content;animation:impact-drift 42s linear infinite;will-change:transform}
.impact-marquee-set{display:flex;align-items:center;gap:3.5vw;padding-right:3.5vw;flex-shrink:0}
.impact-marquee-set>span:first-child{font-family:"Inter Display",Arial,sans-serif;font-size:clamp(50px,8.6vw,172px);font-weight:700;letter-spacing:-.035em;line-height:1.15;white-space:nowrap}
.marquee-square{width:1.8vw;height:1.8vw;min-width:12px;min-height:12px;background:#afd0e4;flex-shrink:0}
@keyframes impact-drift{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

.partners-footer{padding:6vw var(--first-gutter) 0;background:var(--paper);color:#0b0d0e}
.partners-footer .footer-top-block{display:flex;justify-content:space-between;gap:6vw;align-items:flex-start}
.footer-summary{max-width:min(43vw,500px);font-size:clamp(20px,2.1vw,32px);font-weight:500;line-height:1.3;letter-spacing:.005em;text-transform:uppercase}
.footer-summary strong{font-weight:700;color:var(--blue)}
.partners-footer .footer-link-block{display:grid;grid-template-columns:1fr 1fr;gap:32px;width:38%;max-width:450px}
.partners-footer .footer-link-column{display:flex;flex-direction:column;gap:13px}
.partners-footer .footer-link-column h2{font:500 12px/1.4 "Inter Display",sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);margin-bottom:6px}
.partners-footer .footer-link-column a{font:600 16px/1.4 "Inter Display",sans-serif;letter-spacing:.005em;text-transform:uppercase;align-self:flex-start}
.partners-footer a{transition:color .2s}
.partners-footer a:hover{color:var(--blue)}
.partners-footer .footer-contact-block{display:flex;align-items:center;justify-content:space-between;gap:3vw;margin-top:48px}
.footer-action-block{display:flex;gap:12px}
.footer-circle{width:50px;height:50px;display:grid;place-items:center;border:1px solid #a2adb4;border-radius:50%;background:transparent;color:var(--blue);padding:13px;transition:background .2s,border-color .2s}
.footer-social-icon{display:flex}
.footer-circle svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.footer-circle:hover{background:#e3eaf0;border-color:var(--blue)}
.footer-contact-info{display:flex;gap:clamp(24px,3.2vw,60px)}
.footer-contact-info>div{display:flex;flex-direction:column;gap:8px}
.footer-contact-info span{font:500 12px/1.4 "Inter Display",sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--blue)}
.footer-contact-info a{font:500 15px/1.4 "Inter Display",sans-serif;letter-spacing:.005em}
.footer-brand{display:block;margin-top:15vw;position:relative}
.footer-brand img{width:100%;height:auto;filter:brightness(0)}
.partners-footer .footer-bottom-block{display:flex;justify-content:space-between;gap:28px;margin-top:48px;padding:24px 0;border-top:1px solid #cbd1d5;font-size:14px;line-height:1.5}
.partners-footer .footer-bottom-block a{color:var(--blue)}
.inquiry-interest{border:0;margin:0;padding:0;min-width:0}

@media(max-width:991px){
 .partner-logo-grid{gap:14px;padding-top:8vw}
 .partner-logo-grid a{height:auto;padding:22px;aspect-ratio:1.28}
 .partner-logo-grid img{max-height:86px}
 .impact-section{padding-top:70px}
 .impact-section .editorial-heading{max-width:80%}
 .partners-footer .footer-contact-block{align-items:flex-start;flex-direction:column;gap:30px}
 .footer-contact-info{justify-content:space-between;width:100%}
 .footer-summary{max-width:46%;font-size:23px}
 .partners-footer .footer-link-block{width:45%}
 .partners-footer .footer-link-column a{font-size:16px}
}
@media(max-width:600px){
 .partner-section{padding-bottom:48px}
 .partner-logo-grid{padding-top:25px;gap:10px}
 .partner-logo-grid a{aspect-ratio:1.3;padding:20px}
 .partner-logo-grid img{max-height:72px}
 .impact-section{padding-top:50px}
 .impact-section .editorial-heading{max-width:100%}
 .impact-section .section-label{margin-top:28px;margin-bottom:18px}
 .impact-layout{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
 .impact-photo--featured{grid-column:1 / -1;aspect-ratio:4 / 3}
 .impact-photo--featured img{object-position:35% 50%}
 .impact-section .about-copy{padding-bottom:20px}
 .impact-section .value-path h3{font-size:15px}
 .impact-marquee{margin-top:38px;padding-bottom:24px}
 .impact-marquee-set{gap:24px;padding-right:24px}
 .partners-footer{padding-top:48px}
 .partners-footer .footer-top-block{flex-direction:column;gap:35px}
 .footer-summary{max-width:100%;font-size:22px}
 .partners-footer .footer-link-block{width:100%;gap:30px}
 .partners-footer .footer-link-column a{font-size:16px}
 .partners-footer .footer-contact-block{margin-top:35px}
 .footer-contact-info{flex-wrap:wrap;gap:26px 30px}
 .footer-contact-info>div:first-child{width:100%}
 .footer-contact-info a{font-size:16px}
 .footer-brand{margin-top:60px}
 .partners-footer .footer-bottom-block{flex-direction:column;margin-top:28px;gap:12px;padding:22px 0;font-size:14px}
}
@media(prefers-reduced-motion:reduce){
 .impact-marquee-track{animation:none;transform:none;will-change:auto;width:100%}
 .impact-marquee-set{padding:0 var(--first-gutter);width:100%}
 .impact-marquee-set>span:first-child{white-space:normal;font-size:clamp(36px,7vw,120px)}
 .impact-marquee-set:nth-child(2),.marquee-square{display:none}
 .partner-logo-grid a,.footer-circle,.partners-footer a{transition:none}
}

/* Body copy keeps neutral letters until its scroll progression reaches them. */
.about-description p,.partner-copy>p,.service-scroll .service-description p{font-weight:500}
.footer-summary{font-weight:700}
.footer-summary .intro-letter.is-emphasis{font-weight:700}
[data-reveal-copy] .intro-word{--reveal-color:#000}
[data-reveal-copy] .intro-letter.is-emphasis{--reveal-color:var(--blue);font-weight:600}
.impact-section [data-reveal-copy] .intro-word{--reveal-color:#f6f6f6}
.impact-section [data-reveal-copy] .intro-letter.is-emphasis{--reveal-color:#b9d9eb}
@media(prefers-reduced-motion:reduce){
 .impact-section [data-scroll-letters] .intro-letter{color:var(--reveal-color)}
}

/* Phone section labels lead their headline; desktop composition stays intact. */
@media(max-width:600px) {
 .about-section,.service-intro,.impact-section { display:flex; flex-direction:column; }
 .about-section>.section-label,.service-intro>.section-label,.impact-section>.section-label,
 .partner-section>.section-label { position:static; align-self:flex-start; margin:0 0 20px; }
 .about-section>.section-label,.service-intro>.section-label,.impact-section>.section-label { order:-1; }
 .about-section>.editorial-heading,.service-intro>.editorial-heading,.impact-section>.editorial-heading { margin-bottom:30px; }
}

@media(max-width:600px) {
 #about>.editorial-heading { margin-bottom:48px; }
 #about .about-description>.round-inquiry { margin-left:0; margin-right:auto; }
}

/* Fixed square tiles: image intrinsic dimensions cannot resize grid tracks. */
.partner-layout > * { min-width:0; }
.partner-logo-grid { min-width:0; width:100%; grid-auto-rows:auto; }
.partner-logo-grid a { position:relative; width:100%; height:auto; min-height:0; aspect-ratio:1; padding:0; overflow:hidden; }
.partner-logo-grid img { position:absolute; inset:15%; width:70%; height:70%; max-width:none; max-height:none; object-fit:contain; }

/* Section labels lead the headline at every viewport size. */
.about-section>.section-label,.service-intro>.section-label,
.impact-section>.section-label,.partner-section>.section-label {
 position:static; margin:0 0 20px; align-self:flex-start;
}
.about-section>.editorial-heading,.service-intro>.editorial-heading,
.impact-section>.editorial-heading { margin-bottom:36px; }
/* Direct-select services: preserve the composition without a scroll runway. */
.service-scroll { height:auto; padding-top:20px; }
.service-scroll .service-showcase { position:relative; top:auto; }
.service-scroll .service-choice.is-active:after { transform:scaleX(1); }
@media(max-width:767px) {
 .service-scroll .service-showcase { height:auto; grid-template-rows:auto auto; }
 .service-scroll .service-detail { height:auto; grid-template-rows:auto auto; }
 .service-scroll .service-media { aspect-ratio:4/3; }
}

.partner-logo-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }

.partner-logo-grid a img.partner-mark { filter:grayscale(1); opacity:.42; mix-blend-mode:normal; transition:filter .8s ease,opacity .8s ease; }
.partner-logo-grid a:has(.partner-mark--white) { background:#ededee; }
.partner-logo-grid a.is-color img.partner-mark { filter:none; opacity:1; }
@media(prefers-reduced-motion:reduce) { .partner-logo-grid a img.partner-mark { transition:none; } }

/* White logo assets stay readable on the shared grey tiles. */
.partner-logo-grid a img.partner-mark--white,
.partner-logo-grid a.is-color img.partner-mark--white { filter:brightness(0); }

/* Scroll-in photo covers; the continuous gallery remains untouched. */
.about-photo.photo-covered::before { content:""; position:absolute; inset:0; z-index:3; background:var(--blue); pointer-events:none; transform:scaleY(1); transform-origin:center top; transition:transform 1.1s cubic-bezier(.76,0,.24,1); }
.about-photo.photo-covered.photo-revealed::before { transform:scaleY(0); }
@media(prefers-reduced-motion:reduce) { .about-photo.photo-covered::before { display:none; } }

/* Quiet geometric texture in the space beside the section headings. */
.about-section,.service-intro,.impact-section { position:relative; }
.headline-texture { position:absolute; right:var(--first-gutter); top:7vw; width:clamp(100px,17vw,260px); display:grid; grid-template-columns:repeat(7,1fr); gap:clamp(9px,1.3vw,20px); pointer-events:none; }
.headline-texture i { display:block; width:clamp(3px,.35vw,6px); aspect-ratio:1; background:#c8cdd1; transition:background-color 1s ease,transform 1s ease; }
.headline-texture i.is-blue { background:var(--blue); transform:scale(1.35); }
.impact-section .headline-texture i { background:#ffffff35; }
.impact-section .headline-texture i.is-blue { background:#a9d6f0; }
.partner-copy .headline-texture { position:relative; inset:auto; margin-top:32px; width:70%; }
@media(max-width:767px) { .headline-texture { display:none; } }
@media(prefers-reduced-motion:reduce) { .headline-texture i { transition:none; } }

.headline-texture { aspect-ratio:1; grid-template-columns:repeat(9,1fr); grid-template-rows:repeat(9,1fr); gap:0; place-items:center; }

.partner-section>.headline-texture { position:absolute; top:7vw; right:var(--first-gutter); margin:0; width:clamp(100px,17vw,260px); }
.partner-section .partner-logo-grid { padding-top:clamp(160px,23vw,350px); }
@media(max-width:767px) { .partner-section .partner-logo-grid { padding-top:0; } }

/* Compact texture with fewer, more legible squares. */
.headline-texture,.partner-section>.headline-texture { width:clamp(90px,11vw,160px); grid-template-columns:repeat(5,1fr); grid-template-rows:repeat(5,1fr); }
.headline-texture i { width:clamp(6px,.6vw,9px); }
.partner-section .partner-logo-grid { padding-top:clamp(120px,16vw,230px); }
@media(max-width:767px) { .partner-section .partner-logo-grid { padding-top:0; } }

/* Align each compact pattern with the headline's text block. */
.headline-texture,.partner-section>.headline-texture { width:clamp(96px,10vw,144px); }
.headline-texture i { width:clamp(6px,.55vw,8px); background:#cdd1d4; }
.headline-texture i.is-blue { background:var(--blue); }
.partner-section .partner-logo-grid { padding-top:clamp(150px,18vw,260px); }
@media(max-width:767px) { .partner-section .partner-logo-grid { padding-top:0; } }

/* Give the About values row a little more room above it. */
#about .value-path { margin-top:40px; }

.partner-section > .headline-texture { transform:translateY(20px); }

/* Shared blue/black shading on every photographic surface. */
.about-photo::after,.impact-section .about-photo::after,
.reference-photo::after,.service-media::after,.community-track figure::after {
 content:"";position:absolute;inset:0;background:var(--media-shade);pointer-events:none;z-index:1;
}

/* Center the About values in the space above its paragraph. */
#about .about-copy { display:grid; grid-template-rows:minmax(220px,1fr) auto; align-content:stretch; gap:24px; }
#about .value-path { margin:0; align-self:center; transform:translateY(24px); }
@media(max-width:600px) {
 #about .about-copy { grid-template-rows:180px auto; gap:28px; }
 #about .value-path { transform:translateY(12px); }
}

/* Keep intrinsic photo dimensions from expanding the grid at any breakpoint. */
.about-layout,.about-layout>* { min-width:0; }
.about-photo { width:100%; max-width:100%; min-width:0; }
.about-photo img { position:absolute; inset:0; display:block; width:100%; height:100%; max-width:100%; object-fit:cover; }
html,body { overflow-x:clip; }
.community-window { overflow-x:clip; }

/* Even phone spacing: headline → values → paragraph. */
@media(max-width:600px) {
 #about>.editorial-heading { margin-bottom:25px; }
 #about .about-copy { grid-template-rows:auto auto; gap:25px; padding-top:0; }
 #about .value-path { margin:0; transform:none; align-self:start; }
 #about .about-description p { margin-top:0; }
}

.about-photo.photo-covered::before { transition-delay:var(--photo-delay,0ms); }
.impact-section .about-photo.photo-covered::before { background:#034e7c; }

/* Bring the service choices closer to their headline on phones only. */
@media(max-width:600px) {
 .service-intro>.editorial-heading { margin-bottom:16px; }
 .service-scroll { padding-top:0; }
}

@media(max-width:600px) {
 .impact-section .about-description { flex-direction:column; align-items:flex-start; }
 .impact-section .about-description>.round-inquiry { margin-left:0; margin-right:auto; align-self:flex-start; }
}

/* Fine-tune phone Services positioning. */
@media(max-width:600px) {
 .service-intro { padding-top:45px; }
 .service-intro>.section-label { margin-bottom:15px; }
 .service-intro>.editorial-heading { margin-bottom:31px; }
}

/* Bring service copy closer to its video on phones. */
@media(max-width:600px) {
 .service-scroll .service-detail { gap:17px; }
}
@media(max-width:600px) and (max-height:739px) {
 .service-scroll .service-detail { gap:13px; }
}

/* Keep the Impact action below its copy and give mobile footer links room. */
@media(max-width:600px){
 .impact-section .about-description{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;justify-items:start}
 .impact-section .about-description>p{width:100%;min-width:0;margin:0}
 .impact-section .about-description>.round-inquiry{display:grid;position:relative;margin:0;width:44px;height:44px;justify-self:start;background:var(--paper);color:var(--blue)}
 .partners-footer .footer-link-block{gap:36px}
 .partners-footer .footer-link-column{gap:19px}
 .partners-footer .footer-link-column a{font-size:14px;line-height:1.5;letter-spacing:.015em}
 .partners-footer .footer-link-column h2{font-size:11px;margin-bottom:8px}
}

/* Preserve multitone artwork and give horizontal marks more room. */
.partner-logo-grid img { left:9%; right:9%; width:82%; }
.partner-logo-grid a img.partner-mark--original { mix-blend-mode:multiply; }
