/* Home page only */
.hero { position: relative; min-height: 100svh; padding-top: var(--header-height); display: flex; align-items: center; overflow: hidden; isolation: isolate; background: #031122; }
.hero-image { position: absolute; z-index: -5; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-overlay { position: absolute; z-index: -4; inset: 0; background: linear-gradient(90deg, rgba(2,13,28,.97) 0%, rgba(3,24,50,.88) 43%, rgba(2,17,39,.42) 72%, rgba(2,12,28,.25) 100%), linear-gradient(180deg, rgba(0,8,20,.2), rgba(0,10,25,.5)); }
.hero-grid-pattern { position: absolute; z-index: -3; inset: 0; opacity: .1; background-image: linear-gradient(rgba(255,255,255,.35) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.35) 1px, transparent 1px); background-size: 58px 58px; mask-image: linear-gradient(90deg, #000, transparent 75%); }
.hero-content { padding-top: 60px; padding-bottom: 118px; }
.hero-copy { max-width: 760px; }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; color: #92def6; font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .15em; }
.eyebrow span { width: 34px; height: 2px; border-radius: 999px; background: #65d9ff; box-shadow: 0 0 14px #65d9ff; }
.hero h1 { margin-top: 22px; max-width: 850px; font-size: clamp(3rem, 6.4vw, 6.6rem); letter-spacing: -.065em; }
.hero h1 em { color: #66dcff; font-style: normal; text-shadow: 0 0 34px rgba(37,188,240,.32); }
.hero-lead { max-width: 690px; margin-top: 25px; color: #bed0dd; font-size: clamp(.95rem, 1.35vw, 1.13rem); }
.hero-actions { margin-top: 32px; }
.hero-signals { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 9px; }
.hero-signals span { padding: 7px 11px; border: 1px solid rgba(255,255,255,.12); border-radius: 999px; background: rgba(255,255,255,.045); color: #9eb8c9; font-size: .66rem; font-weight: 700; }
.hero-enter { opacity: 1; transform: none; }
.hero-ticker { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; overflow: hidden; border-top: 1px solid rgba(255,255,255,.1); border-bottom: 1px solid rgba(255,255,255,.08); background: rgba(2,12,26,.68); backdrop-filter: blur(12px); }
.hero-ticker-track { width: max-content; min-height: 54px; display: flex; align-items: center; gap: 22px; color: #b7cfdd; font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .13em; animation: ticker 28s linear infinite; }
.hero-ticker-track b { color: #3ed2ff; }

.about-section { background: linear-gradient(135deg, #f8fcfe, #eaf5fb); }
.about-grid { display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: 86px; }
.about-visual { position: relative; min-height: 560px; }
.about-image-main { position: absolute; inset: 0 55px 55px 0; overflow: hidden; border-radius: 30px; box-shadow: var(--shadow-light); }
.about-image-main img { width: 100%; height: 100%; object-fit: cover; }
.about-image-secondary { position: absolute; right: 0; bottom: 0; width: 48%; aspect-ratio: 1.2; padding: 8px; overflow: hidden; border-radius: 22px; background: #fff; box-shadow: 0 18px 48px rgba(15,60,92,.18); }
.about-image-secondary img { width: 100%; height: 100%; object-fit: cover; border-radius: 16px; }
.about-badge { position: absolute; left: -22px; bottom: 22px; width: 180px; padding: 19px; border-radius: 18px; background: var(--navy-900); color: #fff; box-shadow: 0 18px 44px rgba(4,25,45,.28); }
.about-badge strong, .about-badge span { display: block; }
.about-badge strong { color: #64dbff; font-family: var(--font-heading); font-size: 1.15rem; }
.about-badge span { margin-top: 4px; color: #a9c3d3; font-size: .7rem; line-height: 1.45; }
.about-copy h2, .steam-stars-copy h2, .contact-intro h2, .sponsor-heading h2 { max-width: 760px; margin-top: 13px; font-size: clamp(2.15rem, 4.4vw, 4.45rem); }
.about-copy > p { margin-top: 20px; color: #536e82; font-size: .9rem; }
.about-stats { margin: 30px 0 22px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.about-stats div { min-height: 116px; padding: 17px; display: flex; flex-direction: column; justify-content: center; border: 1px solid rgba(10,76,117,.1); border-radius: 16px; background: rgba(255,255,255,.72); }
.about-stats strong { color: var(--blue-600); font-family: var(--font-heading); font-size: 2rem; line-height: 1; }
.about-stats span { margin-top: 8px; color: #5d7486; font-size: .66rem; font-weight: 700; line-height: 1.35; }

.services-section { background: linear-gradient(180deg, #06162b 0%, #04101f 100%); }
.service-grid { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.service-card { position: relative; min-height: 350px; padding: 29px; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line-dark); border-radius: 24px; background: rgba(255,255,255,.04); box-shadow: 0 22px 58px rgba(0,0,0,.14); transition: transform .32s, border-color .32s, background .32s; }
.service-card::after { content: ""; position: absolute; width: 170px; height: 170px; right: -90px; bottom: -95px; border-radius: 50%; background: radial-gradient(circle, rgba(2,166,221,.22), transparent 70%); }
.service-card:hover { transform: translateY(-8px); border-color: rgba(101,217,255,.35); background: rgba(255,255,255,.065); }
.service-number { position: absolute; right: 21px; top: 18px; color: rgba(255,255,255,.2); font-family: var(--font-heading); font-size: 2rem; font-weight: 800; }
.service-icon { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 17px; background: var(--gradient); color: #fff; font-family: var(--font-heading); font-size: .8rem; font-weight: 800; box-shadow: 0 14px 30px rgba(2,115,187,.23); }
.service-card h3 { margin-top: 25px; font-size: 1.35rem; }
.service-card p { margin-top: 15px; color: #9bb2c2; font-size: .82rem; }
.service-card a { position: relative; z-index: 1; margin-top: auto; padding-top: 24px; color: #66dbff; font-size: .7rem; font-weight: 800; }
.service-card a span { transition: transform .2s; }
.service-card a:hover span { display: inline-block; transform: translate(3px,-3px); }

.courses-section { background: linear-gradient(180deg, #f7fbfd, #edf6fa); }
.course-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.course-card { overflow: hidden; border: 1px solid rgba(13,77,117,.11); border-radius: 24px; background: #fff; box-shadow: 0 20px 55px rgba(15,58,88,.09); transition: transform .35s, box-shadow .35s; }
.course-card:hover { transform: translateY(-9px); box-shadow: 0 28px 68px rgba(15,58,88,.16); }
.course-media { width: 100%; overflow: hidden; background: #f8fbfd; }
.course-media img { width: 100%; height: auto; object-fit: contain; object-position: center; }
.course-body { padding: 24px; }
.course-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--blue-600); font-size: .61rem; font-weight: 800; text-transform: uppercase; letter-spacing: .09em; }
.course-meta span:last-child { color: #71899a; }
.course-body h3 { margin-top: 13px; font-size: 1.35rem; }
.course-body > p { min-height: 76px; margin-top: 14px; color: #627b8e; font-size: .78rem; }
.course-body footer { margin-top: 19px; padding-top: 17px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid #e4edf2; }
.course-body footer strong { color: var(--ink); font-size: .68rem; }
.course-body footer a { color: var(--blue-600); font-size: .68rem; font-weight: 800; }

.steam-stars-section { background: #fff; }
.steam-stars-grid { display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: 72px; }
.steam-image-wrap { display: flex; align-items: center; justify-content: center; overflow: visible; }
.steam-image-wrap img { width: auto; height: auto; max-width: 100%; object-fit: contain; object-position: center; }
.steam-stars-copy > p { margin: 22px 0 26px; color: #5c7487; font-size: .9rem; }
.colorful-kicker { color: #c08700; }
.steam-disciplines { margin-bottom: 29px; display: flex; flex-wrap: wrap; gap: 8px; }
.steam-disciplines span { padding: 8px 12px; border: 1px solid #d7e7ef; border-radius: 999px; background: #f5fafc; color: #24526f; font-size: .65rem; font-weight: 800; }

.stories-section { background: linear-gradient(180deg, #06162b, #04101f); }
.story-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.story-card { --story-accent: #0878c4; overflow: hidden; border: 1px solid transparent; border-radius: 20px; background: #fff; box-shadow: 0 20px 55px rgba(0,0,0,.16); transition: transform .35s, box-shadow .35s; }
.story-card:hover { transform: translateY(-6px); box-shadow: 0 28px 68px rgba(0,0,0,.24); }
.story-card--accent-2 { --story-accent: #7c6cf0; }
.story-card--accent-3 { --story-accent: #12b3a1; }
.story-card-link { height: 100%; display: flex; align-items: flex-start; gap: 14px; padding: 20px; }
.story-photo { flex: 0 0 104px; width: 104px; height: 104px; overflow: hidden; border-radius: 16px; background: linear-gradient(180deg, #d9f0fa, #bfe4f5); }
.story-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; transition: transform .65s cubic-bezier(.22,.7,.2,1); }
.story-card:hover .story-photo img { transform: scale(1.035); }
.story-body { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.story-quote-icon { width: 26px; height: 20px; color: var(--story-accent); }
.story-quote { margin-top: 6px; overflow: hidden; color: #435a6b; font-size: .76rem; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; }
.story-accent-bar { margin-top: 12px; width: 26px; height: 3px; border-radius: 999px; background: var(--story-accent); }
.story-label { margin-top: 10px; display: block; color: var(--story-accent); font-size: .58rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }
.story-body h3 { margin-top: 4px; color: #0a2137; font-size: 1.02rem; }
.story-meta { margin-top: 3px; color: #74889b; font-size: .68rem; }
.stories-all-link { margin-top: 17px; display: inline-flex; align-items: center; gap: 8px; color: #fff; font-size: .7rem; font-weight: 800; }
.stories-all-link span { color: #65d9ff; font-size: 1rem; }

.projects-section { background: linear-gradient(180deg, #f7fbfd, #edf6fa); }
.project-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px; }
.project-card { grid-column: span 6; overflow: hidden; border: 1px solid rgba(13,77,117,.11); border-radius: 24px; background: #fff; box-shadow: 0 18px 52px rgba(15,58,88,.08); transition: transform .35s, box-shadow .35s; }
.project-card:nth-child(2), .project-card:nth-child(3) { grid-column: span 3; }
.project-card:hover { transform: translateY(-8px); box-shadow: 0 28px 68px rgba(15,58,88,.15); }
.project-card-link { height: 100%; display: flex; flex-direction: column; }
.project-media { position: relative; aspect-ratio: 1.48; overflow: hidden; background: #dcebf2; }
.project-card:nth-child(2) .project-media, .project-card:nth-child(3) .project-media { aspect-ratio: 1.05; }
.project-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(2,12,26,.56)); }
.project-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.22,.7,.2,1); }
.project-card:hover .project-media img { transform: scale(1.035); }
.project-number { position: absolute; z-index: 2; right: 15px; top: 15px; width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; background: rgba(3,18,35,.56); color: #fff; font-family: var(--font-heading); font-size: .66rem; font-weight: 800; backdrop-filter: blur(9px); }
.project-body { padding: 23px; display: flex; flex: 1; flex-direction: column; }
.project-meta-line { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #6f8798; font-size: .59rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.project-meta-line span { color: var(--blue-600); }
.project-body h3 { margin-top: 10px; font-size: 1.18rem; line-height: 1.25; }
.project-card-featured .project-body h3 { font-size: 1.42rem; }
.project-body p { margin-top: 12px; color: #617a8d; font-size: .72rem; }
.project-link { margin-top: auto; padding-top: 19px; display: inline-flex; align-items: center; gap: 7px; color: #536f83; font-size: .7rem; font-weight: 800; }
.project-link b { color: var(--cyan-500); }
.projects-all-link { margin-top: 17px; display: inline-flex; align-items: center; gap: 8px; color: var(--blue-600); font-size: .7rem; font-weight: 800; }
.projects-all-link span { color: var(--cyan-500); font-size: 1rem; }
.home-content-empty { padding: 28px; border: 1px dashed rgba(105,211,247,.26); border-radius: 18px; color: #9bb3c3; text-align: center; font-size: .76rem; }
.home-content-empty[hidden] { display: none; }
.home-content-empty-light { border-color: #c9dce7; color: #617b8e; background: rgba(255,255,255,.55); }

.contact-section { background: #04101f; }
.contact-shell { position: relative; padding: 66px; display: grid; grid-template-columns: .95fr 1.05fr; gap: 72px; overflow: hidden; border: 1px solid rgba(120,213,247,.15); border-radius: var(--radius-lg); background: linear-gradient(135deg, #071b33 0%, #0a3157 66%, #0a4774 100%); box-shadow: var(--shadow-dark); }
.contact-shell::before { content: ""; position: absolute; width: 540px; height: 540px; right: -220px; top: -310px; border-radius: 50%; background: radial-gradient(circle, rgba(45,198,247,.34), transparent 68%); }
.contact-intro, .contact-form { position: relative; z-index: 2; }
.contact-intro p { margin-top: 21px; color: #a7becc; font-size: .88rem; }
.contact-links { margin-top: 30px; display: grid; gap: 10px; }
.contact-links a { padding: 16px 18px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid rgba(255,255,255,.11); border-radius: 14px; background: rgba(255,255,255,.045); transition: background .22s, border-color .22s, transform .22s; }
.contact-links a:hover { transform: translateX(4px); border-color: rgba(94,215,255,.3); background: rgba(255,255,255,.075); }
.contact-links span { color: #67ddff; font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .09em; }
.contact-links strong { color: #fff; font-family: var(--font-heading); font-size: .75rem; text-align: right; }
.contact-form { padding: 28px; border: 1px solid rgba(255,255,255,.11); border-radius: 22px; background: rgba(2,16,31,.4); backdrop-filter: blur(12px); }
.contact-form label { display: block; }
.contact-form label > span { display: block; margin-bottom: 7px; color: #c8d9e4; font-size: .66rem; font-weight: 800; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; margin-bottom: 14px; padding: 13px 14px; border: 1px solid rgba(255,255,255,.12); border-radius: 12px; outline: 0; background: rgba(255,255,255,.07); color: #fff; transition: border-color .2s, background .2s, box-shadow .2s; }
.contact-form textarea { resize: vertical; min-height: 120px; }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: #7f9aac; }
.contact-form select { color-scheme: dark; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: rgba(93,218,255,.65); background: rgba(255,255,255,.1); box-shadow: 0 0 0 3px rgba(2,166,221,.12); }

.sponsors-section { background: #fff; }
.sponsor-heading { max-width: 790px; margin: 0 auto 48px; text-align: center; }
.sponsor-heading .section-kicker { justify-content: center; }
.sponsor-heading h2 { margin-inline: auto; }
.sponsor-heading p { max-width: 650px; margin: 18px auto 0; color: #667f91; font-size: .86rem; }
.sponsor-marquee { position: relative; overflow: hidden; isolation: isolate; padding: 8px 0; mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
.sponsor-marquee::before,.sponsor-marquee::after { content:""; position:absolute; z-index:2; top:0; bottom:0; width:76px; pointer-events:none; }
.sponsor-marquee::before { left:0; background:linear-gradient(90deg,#fff,rgba(255,255,255,0)); }
.sponsor-marquee::after { right:0; background:linear-gradient(270deg,#fff,rgba(255,255,255,0)); }
.sponsor-marquee-track { width:max-content; display:flex; will-change:transform; animation:sponsorMarquee 42s linear infinite; }
.sponsor-marquee:hover .sponsor-marquee-track,.sponsor-marquee:focus-within .sponsor-marquee-track { animation-play-state:paused; }
.sponsor-marquee-group { flex:0 0 auto; display:flex; gap:18px; padding-right:18px; }
.sponsor-logo { width:220px; height:132px; padding:24px; display:flex; align-items:center; justify-content:center; overflow:hidden; border:1px solid rgba(10,71,108,.11); border-radius:8px; background:#fff; box-shadow:0 14px 36px rgba(18,61,91,.08); flex-shrink:0; }
.sponsor-logo img { width:auto; height:auto; max-width:90%; max-height:90%; display:block; object-fit:contain; object-position:center; }
.sponsor-logo:is(a) { transition:transform .25s,border-color .25s,box-shadow .25s; }
.sponsor-logo:is(a):hover { transform:translateY(-4px); border-color:rgba(2,166,221,.48); box-shadow:0 20px 44px rgba(18,61,91,.14); }

@keyframes ticker { to { transform: translateX(-50%); } }
@keyframes sponsorMarquee { to { transform:translateX(-50%); } }

@media (max-width: 1080px) {
  .about-grid, .steam-stars-grid { gap: 52px; }
  .service-grid { grid-template-columns: repeat(2,1fr); }
  .course-body > p { min-height: 96px; }
}

@media (max-width: 980px) {
  .about-grid, .steam-stars-grid, .contact-shell { grid-template-columns: 1fr; gap: 44px; }
  .about-visual { min-height: 500px; }
  .course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .course-card:last-child { grid-column: 1 / -1; width: calc(50% - 12px); justify-self: center; }
  .story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-grid { grid-template-columns: 1fr 1fr; }
  .project-card-featured { grid-column: 1 / -1; }
  .project-card-featured .project-media { aspect-ratio: 1.75; }
  .steam-image-wrap { order: 2; }
  .steam-stars-copy { order: 1; }
  .contact-shell { padding: 48px; }
  .sponsor-logo { width:205px; height:124px; }
}

@media (max-width: 680px) {
  .hero { min-height: 92svh; }
  .hero-image { object-position: 68% center; }
  .hero-overlay { background: linear-gradient(90deg, rgba(2,14,31,.97), rgba(3,25,54,.86) 64%, rgba(2,17,39,.48)), linear-gradient(180deg, rgba(0,10,25,.25), rgba(0,10,25,.45)); }
  .hero-content { padding-top: 40px; padding-bottom: 118px; }
  .hero h1 { font-size: clamp(1.8rem, 8.4vw, 2.8rem); }
  .hero-lead { font-size: .9rem; }
  .hero-actions { flex-direction: column; }
  .hero-actions .button { width: 100%; }
  .hero-ticker-track { min-height: 48px; }
  .about-copy h2, .steam-stars-copy h2, .contact-intro h2, .sponsor-heading h2 { font-size: clamp(1.95rem, 9.8vw, 3rem); }
  .about-visual { min-height: 410px; }
  .about-image-main { inset: 0 22px 52px 0; }
  .about-image-secondary { width: 49%; }
  .about-badge { left: -6px; bottom: 10px; width: 155px; padding: 15px; }
  .about-stats, .story-grid, .project-grid { grid-template-columns: 1fr; }
  .service-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
  .service-card { min-height: 0; padding: 16px; border-radius: 16px; }
  .service-number { right: 14px; top: 12px; font-size: 1.2rem; }
  .service-icon { width: 38px; height: 38px; border-radius: 11px; font-size: .6rem; }
  .service-card h3 { margin-top: 14px; font-size: .92rem; }
  .service-card p { margin-top: 8px; font-size: .66rem; line-height: 1.4; }
  .service-card a { padding-top: 14px; font-size: .6rem; }
  .course-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
  .course-card:last-child { grid-column: 1 / -1; width: calc(50% - 5px); justify-self: center; }
  .course-body { padding: 12px; }
  .course-meta { font-size: .52rem; }
  .course-body h3 { margin-top: 8px; font-size: .82rem; }
  .course-body > p { min-height: 0; margin-top: 6px; font-size: .62rem; }
  .course-body footer { margin-top: 10px; padding-top: 10px; flex-direction: column; align-items: flex-start; gap: 6px; }
  .story-card { max-width: 430px; width: 100%; margin-inline: auto; }
  .project-card-featured { grid-column: auto; }
  .project-card-featured .project-media, .project-media { aspect-ratio: 1.25; }
  .contact-shell { padding: 36px 22px; border-radius: 24px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .contact-form { padding: 20px; }
  .contact-links a { align-items: flex-start; flex-direction: column; gap: 4px; }
  .contact-links strong { text-align: left; }
  .sponsor-heading { margin-bottom:34px; }
  .sponsor-marquee { margin-inline:-12px; padding:6px 0; }
  .sponsor-marquee-group { gap:12px; padding-right:12px; }
  .sponsor-logo { width:172px; height:108px; padding:18px; }
  .sponsor-marquee-track { animation-duration:32s; }
}

@media (prefers-reduced-motion: reduce) { .sponsor-marquee { overflow-x:auto; mask-image:none; } .sponsor-marquee::before,.sponsor-marquee::after { display:none; } .sponsor-marquee-track { animation:none; } .sponsor-marquee-track > .sponsor-marquee-group:last-child { display:none; } }

.reviews-home { overflow:hidden; background:#eef7fb; }
.reviews-home__heading { display:grid; grid-template-columns:1fr 240px; align-items:end; gap:56px; margin-bottom:37px; }
.reviews-home__heading:has(.reviews-home__score[hidden]) { grid-template-columns:1fr; }
.reviews-home__heading h2 { max-width:730px; margin-top:13px; font-size:3.6rem; line-height:1.08; letter-spacing:0; }
.reviews-home__score { border-left:2px solid #0aa6dc; background:#fff; box-shadow:0 14px 32px rgba(17,62,89,.07); }
.reviews-home__score a { display:block; padding:19px; color:inherit; text-decoration:none; transition:background .2s,transform .2s; }
.reviews-home__score a:hover { background:#f8fcfe; transform:translateY(-2px); }
.reviews-home__score a:focus-visible { outline:3px solid #0aa6dc; outline-offset:3px; }
.reviews-home__score strong { display:block; color:#082b45; font-family:var(--font-heading); font-size:2.3rem; line-height:1; }
.reviews-home__score a > span,.review-card__stars { color:#078cc0; font-size:.88rem; letter-spacing:.08em; }
.reviews-home__score p { margin:7px 0 0; color:#60798c; font-size:.62rem; line-height:1.45; }
.review-carousel__viewport { overflow:hidden; }
.review-carousel__track { display:flex; gap:17px; transition:transform .55s cubic-bezier(.22,.7,.2,1); }
.review-carousel__slide { flex:0 0 calc((100% - 34px) / 3); }
.review-card { min-height:315px; display:flex; flex-direction:column; padding:25px; border:1px solid #d5e5ed; border-radius:8px; background:#fff; box-shadow:0 16px 36px rgba(18,62,89,.07); }
.review-card__meta { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#5f798b; font-size:.6rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.review-card blockquote { margin:23px 0; color:#173e57; font-family:var(--font-heading); font-size:1.03rem; font-weight:600; line-height:1.52; }
.review-card footer { display:flex; align-items:center; gap:11px; margin-top:auto; }
.review-card__avatar { width:34px; height:34px; display:grid; flex:0 0 auto; place-items:center; border-radius:50%; background:#0a6092; color:#fff; font-size:.67rem; font-weight:800; }
.review-card footer strong,.review-card footer small { display:block; }
.review-card footer strong { color:#123950; font-size:.7rem; }
.review-card footer small { margin-top:2px; color:#71899a; font-size:.6rem; }
.review-carousel__controls { display:flex; align-items:center; gap:8px; margin-top:20px; }
.review-carousel__controls button { width:39px; height:39px; display:grid; place-items:center; border:1px solid #bbd4e2; border-radius:5px; background:#fff; color:#075e94; font-size:1rem; transition:background .2s,color .2s,border-color .2s; }
.review-carousel__controls button:hover { border-color:#075e94; background:#075e94; color:#fff; }
.review-carousel__controls p { margin:0 0 0 auto; color:#668194; font-size:.65rem; }
.reviews-home__footer { display:flex; align-items:center; gap:19px; margin-top:30px; }
.reviews-home__footer p { margin:0 auto 0 0; color:#668194; font-size:.72rem; }
.reviews-home__footer .text-link,.review-source { color:#075e94; font-size:.7rem; font-weight:800; }
.review-source { padding:8px 11px; border:1px solid #c5dce8; border-radius:5px; background:#fff; }
@media (max-width:980px) { .reviews-home__heading { grid-template-columns:1fr; gap:24px; }.reviews-home__score { width:230px; }.review-carousel__slide { flex-basis:calc((100% - 17px) / 2); }.reviews-home__heading h2 { font-size:3.1rem; } }
@media (max-width:680px) { .reviews-home__heading h2 { font-size:2.25rem; }.review-carousel__slide { flex-basis:100%; }.review-card { min-height:276px; }.reviews-home__footer { align-items:flex-start; flex-direction:column; gap:13px; }.reviews-home__footer p { margin:0; }.review-carousel__controls { flex-wrap:wrap; }.review-carousel__controls p { width:100%; margin:4px 0 0; } }

@media (max-width: 980px) {
  .project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-card, .project-card:nth-child(2), .project-card:nth-child(3) { grid-column: auto; }
  .project-card:first-child { grid-column: 1 / -1; }
  .project-card:first-child .project-media { aspect-ratio: 1.8; }
  .project-card:nth-child(2) .project-media, .project-card:nth-child(3) .project-media { aspect-ratio: 1.35; }
}
@media (max-width: 680px) {
  .story-grid, .project-grid { grid-template-columns: 1fr; }
  .project-card:first-child { grid-column: auto; }
  .project-card:first-child .project-media, .project-card:nth-child(2) .project-media, .project-card:nth-child(3) .project-media, .project-media { aspect-ratio: 1.35; }
  .project-body p { font-size: .75rem; }
}

.impact-section{padding:88px 0}.impact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px}.impact-grid article{padding:30px;border:1px solid #dce8ed;border-radius:14px;background:#fff}.impact-grid strong{display:block;color:#063b58;font-size:2.6rem}.impact-grid span{display:block;margin-top:7px;color:#617b8a;font-size:.78rem}.contact-form-message{margin-top:12px;color:#c7dce6;font-size:.75rem}.contact-honeypot{position:absolute!important;left:-9999px!important;opacity:0!important}.contact-form button:disabled{opacity:.65;cursor:wait}@media(max-width:760px){.impact-grid{grid-template-columns:1fr}}

/* Relationship groups requested for partner/client clarity */
.partner-group{margin-top:1.5rem}.partner-group h3{margin:0 0 .8rem;font-size:1.05rem}.partner-logo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem}.partner-logo-grid .sponsor-logo{min-height:96px;display:flex;align-items:center;justify-content:center}.partner-group-note{max-width:760px}.impact-grid:has(> :only-child){grid-template-columns:minmax(220px,420px);justify-content:center}.impact-grid:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,minmax(220px,380px));justify-content:center}

/* Owner-managed impact statistics */
.impact-section { background:linear-gradient(180deg,#fff 0%,#f4fafd 100%); }
.impact-section[hidden] { display:none; }
.impact-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.impact-card { min-height:218px; padding:26px; display:flex; flex-direction:column; border:1px solid #d7e6ee; border-radius:20px; background:#fff; box-shadow:0 16px 42px rgba(18,61,91,.07); transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease; }
.impact-card:hover { transform:translateY(-6px); border-color:#9bd9ee; box-shadow:0 24px 54px rgba(18,61,91,.12); }
.impact-card__icon { width:48px; height:48px; display:grid; place-items:center; border-radius:14px; background:#eaf7fc; color:#087eaa; }
.impact-card__icon svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.impact-card__value { margin-top:24px; display:flex; align-items:baseline; gap:5px; color:#082b45; font-family:var(--font-heading); }
.impact-card__value strong { font-size:clamp(2.15rem,4vw,3.35rem); line-height:.95; letter-spacing:-.04em; }
.impact-card__value span { font-size:1rem; font-weight:800; }
.impact-card p { margin-top:11px; color:#4e6d81; font-size:.76rem; font-weight:700; line-height:1.5; }
.impact-card small { margin-top:7px; color:#7a91a0; font-size:.64rem; }
.impact-card--google { color:inherit; text-decoration:none; }
.impact-card--google .impact-card__icon { background:#fff7db; color:#a97900; }
.impact-card--google small { display:inline-flex; align-items:center; gap:6px; color:#087eaa; font-weight:800; }
@media (max-width:980px) { .impact-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px) { .impact-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }.impact-card { min-height:150px; padding:12px 8px; border-radius:14px; }.impact-card__icon { width:32px; height:32px; border-radius:9px; }.impact-card__icon svg { width:16px; height:16px; }.impact-card__value { margin-top:10px; gap:2px; }.impact-card__value strong { font-size:1.35rem; }.impact-card__value span { font-size:.62rem; }.impact-card p { margin-top:6px; font-size:.58rem; line-height:1.3; }.impact-card small { margin-top:4px; font-size:.5rem; } }
@media (prefers-reduced-motion:reduce) { .impact-card { transition:none; }.impact-card:hover { transform:none; } }
