:root {
  --turquoise: #00bdcd;
  --turquoise-deep: #06bdcd;
  --navy: #143980;
  --logo-navy: #233d7d;
  --ink: #191c3d;
  --white: #fff;
  --blue-pale: #f1f7f8;
  --line: rgba(20, 57, 128, .2);
  --space-1: .5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2rem;
  --space-5: 3rem;
  --space-6: 4rem;
  --space-7: 6rem;
  --ease: cubic-bezier(.2, 0, 0, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: auto; }
body { margin: 0; color: var(--ink); background: var(--white); font-family: Montserrat; font-size: 1rem; line-height: 1.6; }
body, button, input, textarea { font-kerning: normal; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.shell { width: min(1180px, calc(100% - 3rem)); margin-inline: auto; }
.skip-link { position: fixed; left: 1rem; top: -4rem; z-index: 1000; padding: .65rem 1rem; color: var(--white); background: var(--navy); }
.skip-link:focus { top: 1rem; }

.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.96); border-bottom: 1px solid transparent; transition: border-color 180ms var(--ease), box-shadow 180ms var(--ease); }
.site-header.is-scrolled { border-color: var(--line); box-shadow: 0 4px 20px rgba(20,57,128,.06); }
.header-inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: block; width: 164px; }
.brand img { width: 100%; height: auto; }
.site-nav { display: flex; align-items: center; gap: clamp(1rem, 2.3vw, 2rem); font: 600 .72rem/1 Montserrat; letter-spacing: .08em; text-transform: uppercase; }
.site-nav a:not(.nav-cta) { text-decoration: none; padding-block: .85rem; border-bottom: 2px solid transparent; transition: color 150ms var(--ease), border-color 150ms var(--ease); }
.site-nav a:not(.nav-cta):hover, .site-nav a:not(.nav-cta):focus-visible { color: var(--turquoise); border-bottom-color: var(--turquoise); }
.nav-cta { display: inline-flex; align-items: center; gap: .55rem; padding: .85rem 1rem; color: var(--white); background: var(--turquoise); text-decoration: none; transition: background 150ms var(--ease), transform 150ms var(--ease); }
.nav-cta:hover, .nav-cta:focus-visible { background: var(--navy); transform: translateY(-1px); }
.menu-toggle { display: none; border: 0; background: transparent; color: var(--navy); font: 600 .72rem/1 Montserrat; text-transform: uppercase; letter-spacing: .08em; }
.menu-toggle__icon { display: inline-flex; flex-direction: column; gap: 4px; width: 22px; margin-left: .55rem; vertical-align: middle; }
.menu-toggle__icon i { display: block; height: 2px; background: currentColor; transition: transform 180ms var(--ease); }

.hero { padding: clamp(3.25rem, 8vw, 7rem) 0 clamp(2.5rem, 5vw, 4rem); background: var(--blue-pale); }
.hero-grid { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); align-items: center; gap: clamp(2rem, 6vw, 7rem); }
.hero-copy { padding-block: 1rem; }
.eyebrow { display: flex; align-items: center; gap: .7rem; margin: 0 0 1.35rem; color: var(--turquoise); font: 600 .72rem/1.2 Montserrat; letter-spacing: .09em; text-transform: uppercase; }
.eyebrow span { width: 28px; height: 2px; background: currentColor; }
.eyebrow--dark { color: var(--turquoise); }
.eyebrow--light { color: #7ceaf0; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { text-wrap: balance; font-family: Montserrat; }
h1 { max-width: 9ch; margin-bottom: 1.35rem; color: var(--navy); font-size: clamp(3rem, 7vw, 6rem); font-weight: 700; line-height: 1.02; letter-spacing: -.04em; }
h2 { margin-bottom: 1.25rem; color: var(--navy); font-size: clamp(2rem, 4.2vw, 3.7rem); font-weight: 600; line-height: 1.08; letter-spacing: -.035em; }
h3 { margin-bottom: .5rem; color: var(--navy); font-size: 1.15rem; font-weight: 600; line-height: 1.25; }
.hero-lede { max-width: 49ch; margin-bottom: 2rem; font-size: clamp(1.08rem, 1.7vw, 1.28rem); line-height: 1.55; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.4rem; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: .7rem; min-height: 48px; padding: .9rem 1.5rem; border: 1px solid transparent; border-radius: 4px; font: 600 .72rem/1.1 Montserrat; letter-spacing: .08em; text-align: center; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: background 150ms var(--ease), border-color 150ms var(--ease), color 150ms var(--ease), transform 150ms var(--ease); }
.button:hover, .button:focus-visible { transform: translateY(-2px); }
.button--primary { color: var(--white); background: var(--turquoise); border-color: var(--turquoise); }
.button--primary:hover, .button--primary:focus-visible { color: var(--white); background: var(--navy); border-color: var(--navy); }
.button--light { color: var(--navy); background: var(--white); }
.button--light:hover, .button--light:focus-visible { color: var(--white); background: var(--turquoise); }
.button--full { width: 100%; }
.text-link { display: inline-flex; align-items: center; gap: .6rem; color: var(--navy); font: 600 .75rem/1.2 Montserrat; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; border-bottom: 1px solid var(--turquoise); padding-bottom: .35rem; }
.text-link:hover, .text-link:focus-visible { color: var(--turquoise); }
.hero-note { display: flex; align-items: center; gap: .6rem; margin: 2.5rem 0 0; color: var(--logo-navy); font-size: .82rem; }
.signal-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--turquoise); box-shadow: 0 0 0 5px rgba(0,189,205,.16); }
.hero-media { position: relative; min-height: 500px; }
.hero-media::after { position: absolute; right: -14px; bottom: -14px; z-index: 0; width: 36%; height: 42%; border-right: 2px solid var(--turquoise); border-bottom: 2px solid var(--turquoise); content: ''; }
.hero-media img { position: relative; z-index: 1; width: 100%; height: 100%; min-height: 500px; object-fit: cover; }
.hero-caption { position: absolute; right: 0; bottom: 0; left: 0; z-index: 2; display: flex; justify-content: space-between; padding: 1rem 1.2rem; color: var(--white); background: linear-gradient(transparent, rgba(20,57,128,.85)); font: 600 .65rem/1.2 Montserrat; letter-spacing: .1em; }

.proof-strip { color: var(--white); background: var(--navy); }
.proof-grid { display: grid; grid-template-columns: 1.35fr repeat(3, 1fr); }
.proof-intro, .proof-item { min-height: 136px; display: flex; align-items: center; }
.proof-intro { flex-direction: column; align-items: flex-start; justify-content: center; padding-right: 2rem; }
.proof-kicker { color: #7ceaf0; font: 600 .72rem/1.2 Montserrat; letter-spacing: .1em; text-transform: uppercase; }
.proof-intro p { max-width: 18ch; margin: .55rem 0 0; font: 500 1.1rem/1.25 Montserrat; }
.proof-item { gap: .8rem; padding: 1.5rem 1.25rem; border-left: 1px solid rgba(255,255,255,.22); }
.proof-item strong { color: var(--white); font: 600 clamp(2.2rem, 4.5vw, 4rem)/1 Montserrat; letter-spacing: -.06em; }
.proof-item span { color: rgba(255,255,255,.78); font-size: .84rem; line-height: 1.25; }
.proof-item--accent strong { color: #7ceaf0; }

.section { padding: clamp(4.5rem, 9vw, 8rem) 0; }
.program-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(3rem, 9vw, 9rem); }
.section-intro { max-width: 42ch; }
.section-intro h2 { max-width: 10ch; }
.section-lede { margin-bottom: 2rem; max-width: 39ch; }
.text-link--dark { color: var(--navy); }
.program-points { border-top: 1px solid var(--line); }
.program-point { display: grid; grid-template-columns: 52px 1fr; gap: 1rem; padding: 1.5rem 0; border-bottom: 1px solid var(--line); }
.point-number { color: var(--turquoise); font: 600 .78rem/1.2 Montserrat; }
.program-point p { max-width: 53ch; margin-bottom: 0; color: #514b4c; }

.section--blue { color: var(--white); background: var(--navy); }
.section--blue h2 { color: var(--white); max-width: 10ch; }
.eligibility-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem, 10vw, 10rem); }
.eligibility-copy { max-width: 48ch; padding-top: 2.3rem; }
.eligibility-copy > p:first-child { color: rgba(255,255,255,.86); font-size: 1.15rem; }
.check-list { margin: 2rem 0; padding: 0; list-style: none; }
.check-list li { display: flex; gap: .9rem; padding: .9rem 0; border-bottom: 1px solid rgba(255,255,255,.2); }
.check-list span { color: #7ceaf0; font: 500 1.4rem/1 Montserrat; }
.pending-note { color: #697071; font-size: .8rem; line-height: 1.45; }
.section--blue .pending-note { color: rgba(255,255,255,.57); }

.about { background: var(--blue-pale); }
.about-grid { display: grid; grid-template-columns: .62fr 1fr .75fr; align-items: center; gap: clamp(1.5rem, 4vw, 4rem); }
.about-media { overflow: hidden; }
.about-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms var(--ease); }
.about-media--tall { height: 470px; }
.about-media--wide { height: 300px; align-self: end; }
.about-copy { max-width: 48ch; padding: 1rem 0; }
.about-copy h2 { max-width: 12ch; }
.about-copy p { max-width: 47ch; }
.about-signature { display: flex; align-items: center; gap: 1rem; margin-top: 2.5rem; color: var(--navy); font: 600 .78rem/1.2 Montserrat; text-transform: uppercase; }
.about-signature span:nth-child(2) { color: var(--turquoise); font-size: 1.4rem; }

.results-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 3.5rem; }
.results-heading h2 { margin-bottom: 0; }
.results-heading > p, .results-heading-actions > p { max-width: 39ch; margin: 0; color: #697071; font-size: .86rem; }
.results-layout { display: grid; grid-template-columns: 1fr 1.25fr; gap: 2px; background: var(--navy); }
.results-primary { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: var(--white); }
.result-large { display: flex; flex-direction: column; justify-content: space-between; min-height: 250px; padding: 2rem; background: var(--turquoise); }
.result-large--navy { color: var(--white); background: var(--navy); }
.result-large strong { font: 600 clamp(3.6rem, 7vw, 6.7rem)/.9 Montserrat; letter-spacing: -.07em; }
.result-large span { font: 600 1rem/1.2 Montserrat; }
.growth-panel { min-height: 250px; padding: 2rem; color: var(--white); background: var(--navy); }
.growth-label { display: flex; justify-content: space-between; color: #7ceaf0; font: 600 .72rem/1.2 Montserrat; letter-spacing: .08em; }
.growth-label small { color: rgba(255,255,255,.6); font: 400 .78rem/1 Montserrat; letter-spacing: 0; }
.growth-bars { display: flex; align-items: stretch; gap: 1rem; height: 150px; margin: 2rem 0 1rem; padding-bottom: .8rem; border-bottom: 1px solid rgba(255,255,255,.25); }
.growth-bar { display: flex; min-width: 0; flex: 1; flex-direction: column; justify-content: flex-end; }
.growth-bars i { display: flex; flex: 1; height: var(--height); align-items: center; justify-content: center; background: var(--turquoise); transform-origin: bottom; }
.growth-bars.is-ready i { transform: scaleY(0); }
.growth-bars.is-visible i { animation: grow-bar 800ms var(--ease) both; }
.growth-bar i { flex: 0 0 auto; }
.growth-bar:nth-child(2) i { animation-delay: 80ms; }
.growth-bar:nth-child(3) i { animation-delay: 160ms; }
.growth-bar:nth-child(4) i { animation-delay: 240ms; }
.growth-bar:nth-child(5) i { animation-delay: 320ms; }
.growth-bar span { color: var(--navy); font: 700 .62rem/1.2 Montserrat; text-align: center; white-space: nowrap; }
.growth-values { display: flex; gap: 3rem; }.growth-values div { display: flex; align-items: baseline; gap: .6rem; }.growth-values strong { color: #7ceaf0; font: 600 1.7rem/1 Montserrat; }.growth-values span { color: rgba(255,255,255,.75); font-size: .9rem; }
.source-note { margin: 1.2rem 0 0; color: #697071; font-size: .75rem; }
@keyframes grow-bar { from { transform: scaleY(0); } to { transform: scaleY(1); } }

.section--ink { color: var(--white); background: var(--ink); }
.section--ink h2 { color: var(--white); }
.stories-head { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 3rem; }.stories-head > p { max-width: 30ch; margin: 0; color: rgba(255,255,255,.65); }
.story-grid { display: grid; grid-template-columns: 1.35fr .65fr; align-items: end; gap: 1rem; }.story-card { position: relative; margin: 0; overflow: hidden; background: var(--navy); }.story-card--large { height: 450px; }.story-card:not(.story-card--large) { height: 345px; }.story-card img { width: 100%; height: 100%; object-fit: cover; opacity: 1; transition: none; }.story-card figcaption { position: absolute; right: 0; bottom: 0; left: 0; display: flex; flex-direction: column; gap: .4rem; padding: 3rem 1.5rem 1.3rem; background: linear-gradient(transparent, rgba(0,0,0,.8)); }.story-card figcaption span { color: #7ceaf0; font: 600 .66rem/1.2 Montserrat; letter-spacing: .08em; text-transform: uppercase; }.story-card figcaption strong { font: 600 clamp(1.1rem, 2vw, 1.65rem)/1.15 Montserrat; }.video-section { display: grid; grid-template-columns: .8fr 1.2fr; gap: 3rem; align-items: start; margin-top: 4rem; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,.25); }.video-intro { display: grid; grid-template-columns: 36px 1fr; gap: .9rem; }.video-mark { display: grid; width: 30px; height: 30px; place-items: center; color: var(--ink); background: #7ceaf0; border-radius: 50%; font-size: .7rem; }.video-intro p { margin: 0; font: 600 1rem/1.2 Montserrat; }.video-intro small { grid-column: 2; margin-top: -.65rem; color: rgba(255,255,255,.55); }.video-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }.video-link { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 0; color: var(--white); border-top: 1px solid rgba(255,255,255,.4); font: 600 .78rem/1.25 Montserrat; text-decoration: none; }.video-link b { color: #7ceaf0; font-size: 1.1rem; }.video-link:hover, .video-link:focus-visible { color: #7ceaf0; }

.apply { background: var(--blue-pale); }.apply-grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(3rem, 10vw, 10rem); align-items: start; }.apply-copy { max-width: 42ch; }.apply-copy h2 { max-width: 10ch; }.apply-copy > p:not(.pending-note):not(.eyebrow) { font-size: 1.1rem; }.application-form { padding: clamp(1.5rem, 4vw, 3rem); background: var(--white); border-top: 4px solid var(--turquoise); box-shadow: 0 4px 22px rgba(20,57,128,.08); }.form-row { display: flex; flex-direction: column; gap: .45rem; margin-bottom: 1.25rem; }.form-row label { color: var(--navy); font: 600 .72rem/1.2 Montserrat; letter-spacing: .04em; }.form-row input, .form-row textarea { width: 100%; padding: .8rem .9rem; color: var(--ink); background: var(--white); border: 1px solid #a8b4b8; border-radius: 4px; outline: 0; resize: vertical; transition: border-color 150ms var(--ease), box-shadow 150ms var(--ease); }.form-row input:focus, .form-row textarea:focus { border-color: var(--turquoise); box-shadow: 0 0 0 3px rgba(0,189,205,.18); }.form-row input:invalid:not(:placeholder-shown), .form-row textarea:invalid:not(:placeholder-shown) { border-color: #9c2b2b; }.form-status { min-height: 1.4em; margin: .85rem 0 0; color: var(--navy); font-size: .86rem; }

.site-footer { padding: 3rem 0; color: rgba(255,255,255,.78); background: var(--navy); }.footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 2rem; }.footer-brand { color: var(--white); font: 700 1.1rem/1 Montserrat; text-decoration: none; letter-spacing: -.03em; }.footer-grid p { max-width: 28ch; margin: 1rem 0 0; font-size: .86rem; }.footer-links, .footer-meta { display: flex; flex-direction: column; align-items: flex-start; gap: .7rem; font-size: .82rem; }.footer-links a { text-decoration: none; }.footer-links a:hover, .footer-links a:focus-visible { color: #7ceaf0; }.footer-meta { justify-content: space-between; align-items: flex-end; color: rgba(255,255,255,.55); font-size: .7rem; text-align: right; }
.footer-support { display: flex; flex-direction: column; gap: 1rem; color: rgba(255,255,255,.6); font: 600 .72rem/1.2 Montserrat; letter-spacing: .08em; text-transform: uppercase; }.support-logos { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }.support-logos a { display: grid; min-width: 62px; height: 32px; place-items: center; padding: .25rem .45rem; background: rgba(255,255,255,.94); }.support-logos img { width: auto; max-width: 86px; height: 23px; object-fit: contain; }

.inner-hero { padding: clamp(4.5rem, 9vw, 8rem) 0; color: var(--white); background: var(--navy); }.inner-hero--portfolio { background: var(--logo-navy); }.inner-hero--contact { background: var(--ink); }.inner-hero-grid { display: grid; grid-template-columns: 1fr .55fr; gap: 4rem; align-items: end; }.inner-hero h1 { max-width: 12ch; margin-bottom: 1.5rem; color: var(--white); }.inner-hero p:not(.eyebrow) { max-width: 52ch; margin: 0; color: rgba(255,255,255,.78); font-size: 1.15rem; }.inner-hero-mark { display: flex; flex-direction: column; align-items: flex-end; padding-bottom: .4rem; border-bottom: 2px solid var(--turquoise); }.inner-hero-mark strong { color: #7ceaf0; font: 600 clamp(4rem, 9vw, 8rem)/.85 Montserrat; letter-spacing: -.08em; }.inner-hero-mark span { margin-top: 1rem; color: rgba(255,255,255,.75); font: 600 .8rem/1.3 Montserrat; letter-spacing: .08em; text-align: right; text-transform: uppercase; }
.portfolio-heading { display: flex; align-items: end; justify-content: space-between; gap: 3rem; margin-bottom: 3.5rem; }.portfolio-heading h2 { max-width: 14ch; margin-bottom: 0; }.portfolio-heading > p { max-width: 38ch; margin: 0; color: #697071; font-size: .9rem; }.startup-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }.startup-logo { display: grid; min-height: 125px; place-items: center; padding: 1.3rem; background: var(--white); transition: background 180ms var(--ease), transform 180ms var(--ease); }.startup-logo img { width: 100%; max-width: 120px; height: 54px; object-fit: contain; }.startup-logo:hover, .startup-logo:focus-visible { position: relative; z-index: 1; background: var(--blue-pale); transform: scale(1.04); }.portfolio-cta { padding-block: clamp(3rem, 6vw, 5rem); }.portfolio-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }.portfolio-cta h2 { max-width: 11ch; margin-bottom: 0; color: var(--white); }.portfolio-cta .eyebrow { margin-bottom: 1rem; }
.apply-page-section, .contact-section { background: var(--blue-pale); }.check-list--dark { color: var(--ink); }.check-list--dark li { border-color: var(--line); }.check-list--dark span { color: var(--turquoise); }.form-row select { width: 100%; padding: .8rem .9rem; color: var(--ink); background: var(--white); border: 1px solid #a8b4b8; border-radius: 4px; }.contact-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(3rem, 9vw, 9rem); align-items: start; }.contact-grid h2 { max-width: 11ch; }.contact-grid > div > p:not(.eyebrow) { max-width: 45ch; }.contact-facts { display: grid; gap: 1rem; margin-top: 2.5rem; border-top: 1px solid var(--line); }.contact-facts div { padding-top: 1rem; border-bottom: 1px solid var(--line); }.contact-facts span { color: var(--turquoise); font: 600 .7rem/1.2 Montserrat; letter-spacing: .08em; text-transform: uppercase; }.contact-facts p { margin: .35rem 0 1rem; }.contact-facts a { color: var(--navy); text-decoration: none; }

:focus-visible { outline: 2px solid var(--turquoise); outline-offset: 3px; }
@media (max-width: 900px) { .site-nav { gap: 1rem; }.hero-grid { gap: 3rem; }.proof-grid { grid-template-columns: 1.2fr repeat(3, 1fr); }.proof-item { flex-direction: column; align-items: flex-start; justify-content: center; gap: .4rem; }.about-grid { grid-template-columns: .8fr 1.2fr; }.about-media--wide { grid-column: 1 / -1; height: 270px; }.video-section { gap: 2rem; }.startup-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 720px) { .shell { width: min(100% - 2rem, 560px); }.header-inner { min-height: 68px; }.brand { width: 142px; }.menu-toggle { display: flex; align-items: center; }.site-nav { position: absolute; top: 100%; right: 0; left: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: .5rem 1rem 1rem; background: var(--white); border-bottom: 1px solid var(--line); box-shadow: 0 12px 20px rgba(20,57,128,.08); }.site-nav.is-open { display: flex; }.site-nav a:not(.nav-cta), .nav-cta { padding: 1rem; border-bottom: 1px solid var(--line); }.nav-cta { justify-content: space-between; margin-top: .5rem; border: 0; }.hero-grid, .program-grid, .eligibility-grid, .apply-grid, .contact-grid { grid-template-columns: 1fr; gap: 2.5rem; }.hero-media, .hero-media img { min-height: 340px; }.hero-media::after { right: -8px; bottom: -8px; }.proof-grid { grid-template-columns: 1fr 1fr; }.proof-intro { grid-column: 1 / -1; min-height: 105px; padding: 1.5rem 0; border-bottom: 1px solid rgba(255,255,255,.2); }.proof-item { min-height: 130px; padding: 1.35rem .75rem; }.proof-item:nth-child(3) { border-left: 0; }.section-intro h2, .eligibility-grid h2, .about-copy h2, .apply-copy h2 { max-width: 14ch; }.eligibility-copy { padding-top: 0; }.about-grid { grid-template-columns: 1fr 1fr; align-items: start; }.about-copy { grid-column: 1 / -1; grid-row: 1; }.about-media--tall { height: 360px; }.about-media--wide { grid-column: 1 / -1; height: 220px; }.results-heading { display: block; }.results-heading > p, .results-heading-actions > p { margin-top: 1.5rem; }.results-layout { grid-template-columns: 1fr; }.result-large { min-height: 190px; }.growth-panel { min-height: 235px; }.stories-head { display: block; }.stories-head > p { margin-top: 1.2rem; }.story-grid { grid-template-columns: 1fr; }.story-card--large, .story-card:not(.story-card--large) { height: 310px; }.video-section { grid-template-columns: 1fr; gap: 1.5rem; margin-top: 3rem; }.video-list { grid-template-columns: 1fr; }.inner-hero-grid, .portfolio-cta-inner { grid-template-columns: 1fr; display: grid; gap: 2rem; }.inner-hero-mark { align-items: flex-start; }.inner-hero-mark span { text-align: left; }.portfolio-heading { display: block; }.portfolio-heading > p { margin-top: 1.5rem; }.startup-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.startup-logo { min-height: 110px; }.footer-grid { grid-template-columns: 1fr 1fr; }.footer-meta { align-items: flex-start; text-align: left; } }
@media (max-width: 420px) { h1 { font-size: 2.85rem; }.hero-actions { align-items: flex-start; flex-direction: column; }.results-primary { grid-template-columns: 1fr; }.result-large { min-height: 155px; }.footer-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }

/* Industrial print direction: hard rules, deliberate type, zero ornament. */
:root {
  --paper: #ffffff;
  --paper-deep: #ffffff;
  --carbon: #191c3d;
  --muted-carbon: #51514e;
  --accent: #00bdcd;
  --accent-dark: #007f89;
  --rule: #191c3d;
  --mono: Montserrat;
  --display: Montserrat;
  --body: Montserrat;
}

html { background: var(--paper); }
body { color: var(--carbon); background: var(--paper); font-family: var(--body); }
body::before { position: fixed; inset: 0; z-index: -1; opacity: .035; pointer-events: none; content: ""; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E"); }
*, *::before, *::after { border-radius: 0 !important; box-shadow: none !important; }
.shell { width: min(1280px, calc(100% - 3rem)); }
.site-header { background: var(--paper); border-bottom: 2px solid var(--rule); box-shadow: none; }
.site-header.is-scrolled { border-color: var(--rule); box-shadow: none; }
.header-inner { min-height: 84px; }
.brand { width: 155px; filter: grayscale(1) contrast(1.3); }
.site-nav { gap: 0; font: 600 .68rem/1 var(--mono); letter-spacing: .08em; }
.site-nav a:not(.nav-cta) { padding: 1.05rem 1rem; border: 0; border-left: 1px solid var(--rule); color: var(--carbon); }
.site-nav a:not(.nav-cta):hover, .site-nav a:not(.nav-cta):focus-visible, .site-nav a[aria-current="page"] { color: var(--paper); background: var(--carbon); border-color: var(--rule); }
.nav-cta { margin-left: .5rem; padding: 1.05rem 1.1rem; color: var(--carbon); background: var(--accent); border: 2px solid var(--rule); font: 600 .68rem/1 var(--mono); }
.nav-cta:hover, .nav-cta:focus-visible { color: var(--paper); background: var(--carbon); border-color: var(--rule); transform: none; }
.menu-toggle { font-family: var(--mono); }

.hero { padding: clamp(3rem, 7vw, 6rem) 0 0; background: var(--paper); border-bottom: 0; }
.hero-grid { grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); gap: 0; align-items: stretch; }
.hero-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 5vw, 5rem) clamp(1rem, 4vw, 4rem) clamp(3rem, 6vw, 6rem) 0; border-right: 2px solid var(--rule); }
.eyebrow { margin-bottom: 1.5rem; color: var(--carbon); font: 600 .67rem/1.2 var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.eyebrow span { width: 24px; height: 2px; background: var(--accent); }
.eyebrow--dark { color: var(--carbon); }.eyebrow--light { color: var(--paper); }
h1, h2, h3 { font-family: var(--display); text-transform: uppercase; }
h1 { max-width: 8ch; margin-bottom: 1.5rem; color: var(--carbon); font-size: clamp(3.1rem, 7vw, 8.6rem); line-height: .88; letter-spacing: -.055em; }
h2 { margin-bottom: 1.5rem; color: var(--carbon); font-size: clamp(2.2rem, 5vw, 5.4rem); line-height: .9; letter-spacing: -.055em; }
h3 { font-size: 1rem; line-height: 1.05; letter-spacing: -.02em; }
.hero-lede { max-width: 41ch; margin-bottom: 2.25rem; color: var(--muted-carbon); font: 400 1.08rem/1.55 var(--body); }
.hero-actions { gap: 1rem; }.button { min-height: 52px; padding: 1rem 1.25rem; border: 2px solid var(--rule); font: 600 .68rem/1 var(--mono); letter-spacing: .1em; }.button:hover, .button:focus-visible { transform: none; }.button--primary { color: var(--carbon); background: var(--accent); border-color: var(--rule); }.button--primary:hover, .button--primary:focus-visible { color: var(--paper); background: var(--carbon); border-color: var(--rule); }.button--light { color: var(--paper); background: var(--carbon); border-color: var(--paper); }.button--light:hover, .button--light:focus-visible { color: var(--carbon); background: var(--accent); border-color: var(--carbon); }
.text-link { gap: .5rem; color: var(--carbon); border-bottom: 2px solid var(--accent); font: 600 .68rem/1 var(--mono); letter-spacing: .1em; }.text-link:hover, .text-link:focus-visible { color: var(--accent-dark); }.hero-note { margin-top: 2.5rem; color: var(--muted-carbon); font: 500 .68rem/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase; }.signal-dot { width: 9px; height: 9px; background: var(--accent); box-shadow: none; }
.hero-media { min-height: 630px; border-left: 0; }.hero-media::after { right: -1px; bottom: -1px; width: 35%; height: 35%; border: 0; border-right: 8px solid var(--accent); border-bottom: 8px solid var(--accent); }.hero-media img { min-height: 630px; filter: none; }.hero-caption { right: 0; bottom: 0; left: 0; padding: .8rem 1rem; color: var(--paper); background: var(--carbon); font: 600 .62rem/1.2 var(--mono); letter-spacing: .1em; }

.proof-strip { background: var(--carbon); border-bottom: 2px solid var(--rule); }.proof-grid { grid-template-columns: 1.3fr repeat(3, 1fr); }.proof-intro, .proof-item { min-height: 145px; }.proof-intro { padding-right: 2rem; border-right: 1px solid var(--paper); }.proof-kicker { color: var(--accent); font: 600 .67rem/1.2 var(--mono); letter-spacing: .13em; }.proof-intro p { margin-top: .7rem; font: 400 1rem/1.2 var(--mono); text-transform: uppercase; }.proof-item { gap: .7rem; padding: 1.4rem; border-left: 1px solid var(--paper); }.proof-item strong { color: var(--paper); font: 400 clamp(2.7rem, 5vw, 5rem)/.85 var(--display); letter-spacing: -.07em; }.proof-item span { color: var(--paper); font: 500 .65rem/1.3 var(--mono); letter-spacing: .05em; text-transform: uppercase; }.proof-item--accent strong { color: var(--accent); }

.section { padding: clamp(4rem, 9vw, 9rem) 0; border-bottom: 2px solid var(--rule); }.program { background: var(--paper); }.program-grid { grid-template-columns: .75fr 1.25fr; gap: 0; }.section-intro { padding-right: clamp(2rem, 7vw, 7rem); border-right: 2px solid var(--rule); }.section-intro h2 { max-width: 9ch; }.section-lede { color: var(--muted-carbon); font-size: 1rem; }.program-points { border-top: 2px solid var(--rule); }.program-point { grid-template-columns: 75px 1fr; gap: 1.25rem; padding: 1.6rem 1.5rem; border-bottom: 1px solid var(--rule); }.point-number { color: var(--accent-dark); font: 600 .7rem/1 var(--mono); letter-spacing: .1em; }.program-point p { color: var(--muted-carbon); font-size: .95rem; }
.section--blue { color: var(--paper); background: var(--carbon); border-color: var(--rule); }.section--blue h2 { color: var(--paper); }.eligibility-grid { grid-template-columns: 1fr 1fr; gap: 0; }.eligibility-grid > div:first-child { padding-right: clamp(2rem, 8vw, 8rem); border-right: 2px solid var(--paper); }.eligibility-copy { padding: 0 0 0 clamp(2rem, 8vw, 8rem); }.eligibility-copy > p:first-child { color: var(--paper); font: 400 1.1rem/1.55 var(--body); }.check-list li { padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.6); font: 400 .9rem/1.35 var(--mono); }.check-list span { color: var(--accent); font-family: var(--mono); }.section--blue .pending-note { color: #a8a8a3; }
.about { background: var(--paper-deep); }.about-grid { grid-template-columns: .62fr 1fr .75fr; gap: 2px; background: var(--rule); }.about-media, .about-copy { background: var(--paper-deep); }.about-media--tall { height: 520px; }.about-media--wide { height: 300px; }.about-media img { filter: none; }.about-copy { padding: 2rem clamp(1.5rem, 4vw, 4rem); }.about-copy h2 { max-width: 11ch; }.about-copy p { color: var(--muted-carbon); }.about-signature { padding-top: 1rem; border-top: 2px solid var(--rule); font: 600 .68rem/1.2 var(--mono); letter-spacing: .08em; }.about-signature span:nth-child(2) { color: var(--accent-dark); }
.results { background: var(--paper); }.results-heading { align-items: start; padding-bottom: 2rem; border-bottom: 2px solid var(--rule); }.results-heading h2 { max-width: 9ch; }.results-heading > p, .results-heading-actions > p { max-width: 42ch; color: var(--muted-carbon); font: 400 .75rem/1.45 var(--mono); }.results-layout { background: var(--rule); }.results-primary { background: var(--paper); }.result-large { min-height: 280px; padding: 1.5rem; background: var(--accent); }.result-large--navy { background: var(--paper); color: var(--carbon); }.result-large strong { font: 400 clamp(4rem, 8vw, 8rem)/.8 var(--display); }.result-large span { font: 600 .72rem/1.3 var(--mono); letter-spacing: .05em; text-transform: uppercase; }.growth-panel { min-height: 280px; background: var(--carbon); }.growth-label { color: var(--accent); font: 600 .67rem/1.2 var(--mono); }.growth-label small { color: var(--paper); font: 400 .67rem/1 var(--mono); }.growth-bars { height: 130px; margin-top: 2.5rem; border-bottom-color: var(--paper); }.growth-bars i { background: var(--accent); }.growth-values strong { color: var(--accent); font: 400 2.1rem/1 var(--display); }.growth-values span { color: var(--paper); font: 600 .72rem/1.3 var(--mono); letter-spacing: .05em; text-transform: uppercase; }.source-note { color: var(--muted-carbon); font: 400 .65rem/1.45 var(--mono); }
.section--ink { color: var(--paper); background: var(--carbon); border-color: var(--rule); }.section--ink h2 { color: var(--paper); }.stories-head { padding-bottom: 2rem; border-bottom: 2px solid var(--paper); }.stories-head > p { color: var(--paper); font: 400 .75rem/1.45 var(--mono); }.story-grid { gap: 2px; background: var(--rule); }.story-card { background: var(--carbon); }.story-card img { filter: none; opacity: 1; }.story-card figcaption { padding: 4rem 1.5rem 1.2rem; background: var(--carbon); }.story-card figcaption span { color: var(--accent); font: 600 .64rem/1.2 var(--mono); }.story-card figcaption strong { font: 400 1.2rem/1.1 var(--display); text-transform: uppercase; }.video-section { margin-top: 4rem; padding-top: 2rem; border-top: 2px solid var(--paper); }.video-intro p, .video-intro small { font-family: var(--mono); text-transform: uppercase; }.video-mark { color: var(--carbon); background: var(--accent); }.video-link { border-top: 1px solid var(--paper); font: 600 .7rem/1.25 var(--mono); text-transform: uppercase; }.video-link:hover, .video-link:focus-visible { color: var(--accent); }
.apply { background: var(--paper-deep); }.apply-grid { gap: 0; }.apply-copy { padding-right: clamp(2rem, 8vw, 8rem); border-right: 2px solid var(--rule); }.apply-copy > p:not(.pending-note):not(.eyebrow) { color: var(--muted-carbon); }.application-form { padding: 2rem; background: var(--paper); border: 2px solid var(--rule); border-top: 8px solid var(--accent); }.form-row { gap: .5rem; margin-bottom: 1.25rem; }.form-row label { color: var(--carbon); font: 600 .65rem/1.2 var(--mono); letter-spacing: .09em; text-transform: uppercase; }.form-row input, .form-row textarea, .form-row select { padding: .85rem; color: var(--carbon); background: var(--paper); border: 1px solid var(--rule); font: 400 .9rem/1.4 var(--body); }.form-row input:focus, .form-row textarea:focus, .form-row select:focus { border-color: var(--accent-dark); box-shadow: 0 0 0 2px var(--accent) !important; }.form-status { color: var(--accent-dark); font: 400 .7rem/1.4 var(--mono); }
.site-footer { padding: 3.5rem 0; color: var(--paper); background: var(--carbon); border-top: 2px solid var(--rule); }.footer-brand { color: var(--paper); font: 400 1.35rem/1 var(--display); letter-spacing: -.04em; }.footer-grid p { color: #a8a8a3; font: 400 .75rem/1.4 var(--mono); }.footer-links, .footer-meta { font: 500 .68rem/1.3 var(--mono); }.footer-links a:hover, .footer-links a:focus-visible { color: var(--accent); }.footer-support { color: var(--paper); font: 600 .65rem/1.2 var(--mono); }.support-logos a { background: var(--paper); border: 1px solid var(--paper); }.support-logos img { filter: grayscale(1); }
.inner-hero { padding: clamp(4rem, 9vw, 9rem) 0; background: var(--carbon); border-bottom: 2px solid var(--rule); }.inner-hero--portfolio { background: var(--paper-deep); color: var(--carbon); }.inner-hero--portfolio h1, .inner-hero--portfolio p:not(.eyebrow) { color: var(--carbon); }.inner-hero--portfolio .eyebrow { color: var(--carbon); }.inner-hero--portfolio .inner-hero-mark { border-color: var(--carbon); }.inner-hero--portfolio .inner-hero-mark strong { color: var(--accent-dark); }.inner-hero-grid { grid-template-columns: 1fr .45fr; }.inner-hero h1 { font-size: clamp(3rem, 7vw, 7.8rem); }.inner-hero p:not(.eyebrow) { font: 400 1rem/1.55 var(--mono); }.inner-hero-mark { border-bottom: 2px solid var(--accent); }.inner-hero-mark strong { font: 400 clamp(4rem, 10vw, 9rem)/.8 var(--display); }.inner-hero-mark span { font: 600 .68rem/1.35 var(--mono); }.portfolio-section { background: var(--paper); }.portfolio-heading > p { font: 400 .75rem/1.5 var(--mono); }.startup-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; background: var(--rule); border-color: var(--rule); }.startup-logo { min-height: 135px; background: var(--paper); }.startup-logo img { filter: grayscale(1) contrast(1.1); }.startup-logo:hover, .startup-logo:focus-visible { background: var(--accent); transform: none; }.portfolio-cta { background: var(--carbon); }.portfolio-cta h2 { color: var(--paper); }.portfolio-cta .eyebrow { color: var(--accent); }.apply-page-section, .contact-section { background: var(--paper-deep); }.check-list--dark li { border-color: var(--rule); font-family: var(--mono); }.contact-facts { border-color: var(--rule); }.contact-facts div { border-color: var(--rule); }.contact-facts span { font-family: var(--mono); }.contact-facts a { font-family: var(--mono); }

@media (max-width: 900px) { .hero-copy { padding-right: 2rem; }.hero-media, .hero-media img { min-height: 500px; }.startup-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 720px) { .shell { width: min(100% - 2rem, 560px); }.site-nav { padding: .5rem 1rem 1rem; background: var(--paper); border-bottom: 2px solid var(--rule); box-shadow: none; }.site-nav a:not(.nav-cta), .nav-cta { padding: 1rem; border-bottom: 1px solid var(--rule); border-left: 0; }.nav-cta { margin: .5rem 0 0; border: 2px solid var(--rule); }.hero-grid { display: block; }.hero-copy { padding: 3rem 0; border-right: 0; }.hero-media, .hero-media img { min-height: 350px; }.proof-grid { grid-template-columns: 1fr 1fr; }.proof-intro { border-right: 0; }.proof-item { border-left: 1px solid var(--paper); }.proof-item:nth-child(3) { border-left: 0; }.program-grid, .eligibility-grid, .apply-grid, .contact-grid { display: block; }.section-intro, .eligibility-grid > div:first-child, .apply-copy { padding-right: 0; padding-bottom: 2.5rem; border-right: 0; border-bottom: 2px solid var(--rule); }.eligibility-copy { padding: 2.5rem 0 0; }.about-grid { grid-template-columns: 1fr 1fr; }.about-copy { grid-column: 1 / -1; grid-row: 1; }.about-media--tall { height: 350px; }.results-primary { grid-template-columns: 1fr; }.results-heading { display: block; }.growth-panel { min-height: 230px; }.story-grid { grid-template-columns: 1fr; }.video-section { display: block; }.video-list { grid-template-columns: 1fr; margin-top: 2rem; }.application-form { margin-top: 2.5rem; padding: 1.25rem; }.inner-hero-grid, .portfolio-cta-inner { display: block; }.inner-hero-mark { align-items: flex-start; margin-top: 3rem; }.inner-hero-mark span { text-align: left; }.portfolio-heading { display: block; }.portfolio-heading > p { margin-top: 1.5rem; }.startup-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.startup-logo { min-height: 105px; }.footer-grid { grid-template-columns: 1fr 1fr; }.footer-support { grid-column: 1 / -1; padding-top: 1.5rem; border-top: 1px solid var(--paper); } }

/* Watermelon hero treatment, recolored for ACELERATEC. */
:root {
  --hero-ink: #191c3d;
  --hero-blue: #1f4387;
  --hero-mid: #326db6;
  --hero-cyan: #3da9bd;
}
body { background: var(--hero-ink); }
.site-header {
  background: rgba(25, 28, 61, .88);
  border-bottom: 0;
  color: var(--paper);
}
.site-header.is-scrolled { background: rgba(25, 28, 61, .96); border-bottom: 1px solid rgba(255,255,255,.14); }
.brand { width: 263px; filter: grayscale(1) brightness(0) invert(1); }
.site-nav { gap: clamp(1rem, 2.4vw, 2rem); font: 400 .82rem/1 var(--body); letter-spacing: 0; text-transform: none; }
.site-nav a:not(.nav-cta) { padding: .5rem 0; color: rgba(255,255,255,.78); border-left: 0; }
.site-nav a:not(.nav-cta):hover, .site-nav a:not(.nav-cta):focus-visible, .site-nav a[aria-current="page"] { color: var(--paper); background: transparent; }
.nav-cta { width: 250px; justify-content: center; box-sizing: border-box; margin-left: 1rem; padding: .75rem 1.2rem; color: var(--hero-ink); background: var(--paper); border: 1px solid var(--paper); font: 400 .82rem/1 var(--body); letter-spacing: 0; text-transform: none; }
.nav-cta:hover, .nav-cta:focus-visible { color: var(--hero-ink); background: var(--accent); border-color: var(--accent); }
.menu-toggle { color: var(--paper); }
.site-header.is-scrolled {
  background: rgba(255,255,255,.82);
  color: var(--hero-ink);
  border-bottom-color: rgba(25,28,61,.14);
}
.site-header.is-scrolled .brand { filter: none; }
.site-header.is-scrolled .site-nav a:not(.nav-cta) { color: var(--hero-ink); }
.site-header.is-scrolled .site-nav a:not(.nav-cta):hover,
.site-header.is-scrolled .site-nav a:not(.nav-cta):focus-visible,
.site-header.is-scrolled .site-nav a[aria-current="page"] { color: var(--hero-blue); }
.site-header.is-scrolled .menu-toggle { color: var(--hero-ink); }
.site-header.is-scrolled .nav-cta { color: #ffffff; background: var(--hero-ink); border-color: var(--hero-ink); }
.site-header.is-scrolled .nav-cta:hover,
.site-header.is-scrolled .nav-cta:focus-visible { color: var(--hero-ink); background: var(--hero-cyan); border-color: var(--hero-cyan); }

.hero {
  position: relative;
  display: flex;
  /* Column, so .hero-grid's `flex: 1` grows its height. As a row it grew the
     width instead, which overrode the .shell width on that element and let the
     buttons and logos run to the viewport edge on phones. */
  flex-direction: column;
  /* One full screen below the sticky header: 84px is .header-inner's height,
     and svh (not vh) keeps mobile browser chrome from resizing the hero mid-scroll. */
  min-height: calc(100svh - 84px);
  overflow: hidden;
  /* Nothing inside the hero sets its own min-height any more, so this padding
     sits inside the border-box min-height above instead of stacking on top of
     it — which is what used to leave a screenful of empty navy under the logos. */
  padding: clamp(1.5rem, 2.8vw, 2.25rem) 0;
  color: var(--paper);
  /* Both glows are centred on the bottom edge, so each reads as a half-circle
     rising out of it: the navy is the wider halo, the cyan the core inside it. */
  background:
    radial-gradient(ellipse 64% 50% at 50% 100%, rgba(0, 189, 205, .58), transparent 68%),
    radial-gradient(ellipse 95% 72% at 50% 100%, rgba(20, 57, 128, .9), transparent 68%),
    linear-gradient(180deg, #191c3d 0%, #1c2146 58%, #191c3d 100%);
  border-bottom: 0;
}
.hero::before {
  position: absolute;
  inset: 30% -10% 0;
  opacity: .22;
  pointer-events: none;
  content: "";
  background: radial-gradient(ellipse at center, rgba(0,189,205,.3), transparent 55%);
  filter: blur(45px);
}
.hero-grid { position: relative; z-index: 1; display: flex; flex: 1; min-height: 0; flex-direction: column; justify-content: center; align-items: center; }
.hero-copy {
  width: min(100%, 1400px);
  max-width: 1400px;
  flex: 1;
  margin-inline: auto;
  padding: 1rem 0 0;
  color: var(--paper);
  border-right: 0;
  align-items: center;
  text-align: center;
}
.hero h1 {
  display: flex;
  max-width: none;
  margin-bottom: 1.15rem;
  flex-direction: column;
  color: var(--paper);
  font-family: var(--body);
  font-size: clamp(3.8rem, 8.8vw, 8.8rem);
  font-weight: 300;
  line-height: .9;
  letter-spacing: -.065em;
  text-transform: none;
}
.hero h1 span { display: block; }
.hero h1 em {
  display: block;
  color: var(--paper);
  font-family: Montserrat;
  font-size: 1.08em;
  font-weight: 400;
  letter-spacing: -.06em;
}
.hero-lede { max-width: 72ch; margin: 0 auto 1.5rem; color: rgba(255,255,255,.7); font-size: clamp(.95rem, 1.4vw, 1.12rem); line-height: 1.5; text-align: center; }
.hero-actions { justify-content: center; gap: .7rem; }
.hero .button { min-height: 46px; padding: .85rem 1.35rem; border-radius: 7px !important; font-size: .68rem; letter-spacing: .02em; text-transform: none; }
.hero .button--primary { color: var(--hero-ink); background: var(--paper); border-color: var(--paper); }
.hero .button--primary:hover, .hero .button--primary:focus-visible { color: var(--hero-ink); background: var(--hero-cyan); border-color: var(--hero-cyan); }
.hero .button--outline { color: rgba(255,255,255,.82); background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.24); }
.hero .button--outline:hover, .hero .button--outline:focus-visible { color: var(--paper); background: rgba(0,189,205,.25); border-color: var(--hero-cyan); }
.hero .button {
  width: 250px;
  box-sizing: border-box;
  min-height: 48px;
  padding: .8rem 1.2rem;
  border-radius: 0 !important;
  font-size: .82rem;
}
/* Hero logo band, per Figma node 177:55: two labelled groups 100px apart —
   "Powered by" over the SOLYDES + UPB lockup, "Con el apoyo de" over the
   supporting marks. Nested inside .hero-copy, so the top padding is the gap
   under the buttons, not a bottom-of-hero inset. */
.hero-brands {
  display: flex;
  width: min(700px, 100%);
  gap: clamp(2.5rem, 7vw, 100px);
  align-items: flex-start;
  justify-content: center;
  margin-top: 0;
  padding: clamp(2.25rem, 4vw, 3.25rem) 1rem 0;
  color: var(--paper);
  text-align: center;
}
.hero-brand-group {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.hero-brand-group > span { display: block; font-size: .82rem; }
.hero-brand-logos {
  display: flex;
  height: 28px;
  align-items: center;
  justify-content: center;
  gap: 20px;
}
/* Each mark keeps the frame's own geometry rather than one shared height, so
   these need to outrank the shared `.hero-brand-logos img` sizing above. */
.hero-brand-logos img { width: auto; height: 28px; object-fit: contain; }
.hero-brand-logos img.hero-brand-lock { width: min(254px, 100%); height: 28px; }
.hero-brand-logos img.hero-brand-bcp { width: 101px; height: 24.7px; }
.hero-brand-logos img.hero-brand-soboce { width: auto; height: 39px; }

/* Below ~560px the two groups no longer fit on one line. */
@media (max-width: 560px) {
  .hero-brands {
    flex-direction: column;
    align-items: center;
    gap: 1.75rem;
  }
}
.proof-strip { position: relative; z-index: 2; }

@media (max-width: 720px) {
  .site-header { background: var(--hero-ink); }
  .brand { width: 241px; }
  .site-nav { background: var(--hero-ink); border-bottom: 1px solid rgba(255,255,255,.14); }
  .site-nav a:not(.nav-cta), .nav-cta { color: var(--paper); border-color: rgba(255,255,255,.14); }
  .nav-cta { margin-top: .5rem; color: var(--hero-ink); background: var(--paper); }
  .hero { min-height: calc(100svh - 84px); padding: 2rem 0; }
  .hero-copy { padding-top: 0; }
  .hero-actions { width: 100%; flex-direction: column; align-items: stretch; }
  .hero .button { width: 100%; }
  .hero h1 { font-size: clamp(3.5rem, 15vw, 5.8rem); line-height: .86; }
  .hero-lede { max-width: 34ch; font-size: .92rem; }
  /* The two groups sit side by side from 560px up; below that they stack. */
  .hero-brands { padding: 2.75rem 0 0; gap: 2rem; }
  .hero-brand-group { gap: 14px; }
  .hero-brand-group > span { font-size: .74rem; }
}

/* Unified type system: Montserrat is used consistently site-wide. */
:root {
  --type-sans: Montserrat;
  --type-accent: Montserrat;
}

body,
button,
input,
textarea,
select {
  font-family: var(--type-sans);
}

h1,
h2,
h3,
.footer-brand,
.result-large strong,
.growth-values strong,
.inner-hero-mark strong {
  font-family: var(--type-sans);
  font-weight: 300;
  letter-spacing: -.055em;
  text-transform: none;
}

h2 { font-size: clamp(2.7rem, 5vw, 5.4rem); line-height: .94; }
h3 { font-size: 1.15rem; font-weight: 500; line-height: 1.15; letter-spacing: -.025em; }

.hero h1 em,
h1 em,
h2 em,
h3 em {
  font-family: var(--type-sans);
  font-style: italic;
  font-weight: 300;
  letter-spacing: -.06em;
}

.site-nav,
.menu-toggle,
.button,
.text-link,
.eyebrow,
  .proof-kicker,
.proof-item span,
.point-number,
.growth-label,
.growth-values span,
.source-note,
.video-link,
.form-row label,
.form-status,
.footer-links,
.footer-meta,
.footer-support,
.inner-hero-mark span {
  font-family: var(--type-sans);
  letter-spacing: 0;
  text-transform: none;
}

.eyebrow,
.proof-kicker,
.point-number,
.form-row label,
.footer-support {
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.button { font-weight: 500; }
.text-link { font-weight: 500; }
.hero-brands b:nth-child(2) { font-family: var(--type-accent); }

/* Ecosystem section: full-bleed image followed by a two-column editorial layout. */
.about { background: #ffffff; color: var(--hero-ink); }
.about-grid {
  display: block;
  background: transparent;
}
.about-visual {
  width: 100%;
  overflow: hidden;
  background: #ffffff;
}
.about-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: clamp(2rem, 8vw, 8rem);
  align-items: start;
  padding: clamp(4rem, 8vw, 7rem) 0;
  background: #ffffff;
  border-bottom: 1px solid rgba(25,28,61,.35);
}
.about-copy .eyebrow { grid-column: 1 / -1; color: var(--hero-ink); }
.about-copy .eyebrow span { background: var(--hero-cyan); }
.about-copy h2 { grid-column: 1; max-width: none; margin: 0; color: var(--hero-ink); font-size: clamp(3rem, 6.2vw, 6.8rem); line-height: .92; }
.about-copy > p:not(.eyebrow) { grid-column: 2; max-width: 29ch; margin: .7rem 0 0; color: #536071; font-size: .9rem; line-height: 1.45; }
.about-signature { grid-column: 2; margin-top: 2rem; color: #536071; border-color: rgba(25,28,61,.35); }
.about-media--wide {
  position: relative;
  width: 100%;
  left: auto;
  margin-left: 0;
  height: clamp(420px, 54vw, 760px);
  overflow: hidden;
  background: #ffffff;
}
.about-media--wide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: none;
  transform: scale(1.18);
  transform-origin: center;
  will-change: transform;
}
.about-media--wide::after {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: "";
  background: linear-gradient(180deg, rgba(25,28,61,.04), rgba(25,28,61,.18));
  mix-blend-mode: multiply;
}

@media (max-width: 720px) {
  .about-copy { display: block; padding: 3.5rem 0; }
  .about-copy .eyebrow { margin-bottom: 1.25rem; }
  .about-copy h2 { max-width: 12ch; }
  .about-copy > p:not(.eyebrow) { margin-top: 1.5rem; }
  .about-media--wide { height: 480px; }
}
@media (prefers-reduced-motion: reduce) {
  .about-media--wide img { transform: scale(1); }
}

@media (max-width: 720px) {
  .site-header.is-scrolled .site-nav { background: rgba(255,255,255,.88); border-bottom-color: rgba(25,28,61,.14); }
  .site-header.is-scrolled .site-nav a:not(.nav-cta) { color: var(--hero-ink); border-color: rgba(25,28,61,.14); }
}

/* Footer layout and social controls. */
.site-footer {
  padding: clamp(3.5rem, 7vw, 5.5rem) 0 2rem;
  color: rgba(255,255,255,.76);
  background: var(--hero-ink);
  border-top: 0;
}
.footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(150px, .8fr) minmax(190px, 1fr) auto;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}
.footer-brand { display: inline-block; width: min(222px, 100%); color: var(--paper); font-size: 1.35rem; font-weight: 500; letter-spacing: -.045em; }
.footer-brand img { width: 100%; height: auto; }
.footer-grid p { max-width: 27ch; margin: 1.1rem 0 0; color: rgba(255,255,255,.5); font-size: .86rem; line-height: 1.55; }
.footer-links { display: flex; flex-direction: column; align-items: stretch; gap: .8rem; min-width: 150px; }
.footer-label { margin-bottom: .35rem; color: rgba(255,255,255,.42); font-size: .7rem; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; }
.footer-links a {
  display: grid;
  grid-template-columns: 20px 1fr auto;
  align-items: center;
  gap: .6rem;
  color: rgba(255,255,255,.78);
  font-size: .84rem;
  text-decoration: none;
  transition: color 160ms var(--ease), transform 160ms var(--ease);
}
.footer-links a:hover, .footer-links a:focus-visible { color: var(--hero-cyan); transform: translateX(3px); }
.footer-links svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.footer-links a:nth-of-type(2) svg { fill: none; stroke-width: 1.4; }
.footer-links b { color: currentColor; font-size: .9rem; font-weight: 400; }
.footer-support { display: flex; flex-direction: column; gap: 1rem; color: rgba(255,255,255,.42); font-size: .7rem; font-weight: 500; letter-spacing: .04em; }
.support-logos { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; }
.support-logos a { display: grid; width: 68px; height: 34px; place-items: center; padding: .35rem; background: rgba(255,255,255,.94); border: 0; }
.support-logos img { width: auto; max-width: 60px; height: 21px; object-fit: contain; }
.footer-contact { display: flex; flex-direction: column; gap: .45rem; color: rgba(255,255,255,.64); font-size: .78rem; line-height: 1.45; }
.footer-contact p { margin: 0; color: rgba(255,255,255,.64); font-size: .78rem; }
.footer-contact a { color: rgba(255,255,255,.78); text-decoration: none; }
.footer-contact a:hover, .footer-contact a:focus-visible { color: var(--hero-cyan); }
.footer-contact .footer-label { margin-bottom: .2rem; }
.footer-contact p span { color: rgba(255,255,255,.42); }
.footer-meta { display: flex; flex-direction: column; align-items: flex-end; gap: .7rem; color: rgba(255,255,255,.4); font-size: .7rem; line-height: 1.4; text-align: right; white-space: nowrap; }
.footer-meta { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: space-between; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.14); text-align: left; }
.form-title { margin: 0 0 1.5rem; color: var(--muted-carbon); font-size: clamp(2rem, 3vw, 2.4rem); font-weight: 300; }
.about { padding: 0; }
.about--footer-photo { border-bottom: 0; }

@media (max-width: 900px) {
  .footer-grid { grid-template-columns: 1.2fr 1fr 1fr; }
  .footer-meta { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: space-between; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.14); text-align: left; }
}
@media (max-width: 620px) {
  .site-footer { padding-top: 3rem; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem 1.5rem; }
  .footer-intro, .footer-support, .footer-contact, .footer-meta { grid-column: 1 / -1; }
  .footer-support { padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.14); }
  .footer-meta { margin-top: .5rem; }
}

/* Catch legacy component rules so no old display/mono face leaks through. */
body * { font-family: var(--type-sans); }
.hero h1,
h1,
h2,
h3,
.footer-brand,
.proof-item strong,
.result-large strong,
.growth-values strong,
.story-card figcaption strong,
.inner-hero-mark strong { font-family: var(--type-sans); }
.hero h1 em,
h1 em,
h2 em,
h3 em { font-family: var(--type-accent); }
.hero h1 em { font-family: var(--type-sans); font-style: italic; font-weight: 300; }
.hero-brands b:nth-child(2) { font-family: var(--type-accent); }

/* One button language across every section. */
.button {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  padding: .85rem 1.35rem;
  color: var(--hero-ink);
  background: var(--paper);
  border: 1px solid var(--paper);
  font: 500 .82rem/1 var(--type-sans);
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
  transition: color 160ms var(--ease), background 160ms var(--ease), border-color 160ms var(--ease), transform 160ms var(--ease);
}
.button:hover, .button:focus-visible { color: var(--hero-ink); background: var(--hero-cyan); border-color: var(--hero-cyan); transform: translateY(-1px); }
.button--primary { color: var(--hero-ink); background: var(--paper); border-color: var(--paper); }
.button--primary:hover, .button--primary:focus-visible { color: var(--hero-ink); background: var(--hero-cyan); border-color: var(--hero-cyan); }
.button--outline { color: var(--paper); background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.28); }
.button--outline:hover, .button--outline:focus-visible { color: var(--paper); background: rgba(0,189,205,.25); border-color: var(--hero-cyan); }
.button--light { color: var(--hero-ink); background: var(--paper); border-color: var(--paper); }
.button--light:hover, .button--light:focus-visible { color: var(--hero-ink); background: var(--hero-cyan); border-color: var(--hero-cyan); }

/* Program section palette. */
.program {
  color: #424a58;
  background: #ffffff;
}
.program .section-intro {
  border-color: var(--hero-ink);
}
.program .section-lede,
.program-point p {
  color: #536071;
}
.program-points {
  border-top: 1px solid var(--hero-ink);
}
.program-point {
  border-bottom: 1px solid var(--hero-ink);
}
.program-point h3 {
  color: var(--hero-blue);
  font-weight: 500;
}
.program-point .point-number {
  color: var(--hero-cyan);
  font-weight: 500;
}

/* Continuous program-card marquee. */
.program-grid { display: block; }
.program .section-intro {
  display: grid;
  max-width: none;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 48px;
  align-items: center;
  justify-content: center;
  padding-right: 0;
  padding-bottom: clamp(4rem, 9vw, 9rem);
  border: 0;
}
.program-intro-copy,
.program-intro-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.program-intro-copy { gap: 24px; }
.program-intro-copy .eyebrow { margin: 0; }
.program-intro-copy h2 {
  max-width: none;
  margin: 0;
  color: var(--hero-ink);
  font-size: clamp(3.5rem, 4.8vw, 5.4rem);
  font-weight: 300;
  line-height: .94;
  letter-spacing: -.055em;
}
.program-intro-actions { width: 100%; gap: 26px; }
.program-intro-actions .section-lede {
  width: 100%;
  max-width: none;
  margin: 0;
  color: #536071;
  font: 400 1rem/1.6 var(--type-sans);
  letter-spacing: 0;
}
.program-apply-link,
.results-portfolio-link {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: 10.4px;
  padding: 12.8px 19.2px;
  color: #191c3d;
  background: rgba(25, 28, 61, .05);
  border: 0;
  font: 400 13.12px/1 var(--type-sans);
  letter-spacing: 0;
  text-transform: none;
}
.program-apply-link:hover,
.program-apply-link:focus-visible,
.results-portfolio-link:hover,
.results-portfolio-link:focus-visible {
  color: #191c3d;
  background: rgba(25, 28, 61, .1);
}
.program-marquee {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 1rem 0 1rem 1rem;
  mask-image: linear-gradient(90deg, transparent 0, #000 3%, #000 97%, transparent 100%);
  overscroll-behavior-x: contain;
  scroll-behavior: smooth;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  touch-action: pan-x;
}
.program-marquee::-webkit-scrollbar { display: none; }
.program-track {
  display: flex;
  width: max-content;
  gap: 1rem;
  animation: program-marquee 29s linear infinite;
  will-change: transform;
}
.program-group {
  display: flex;
  gap: 1rem;
}
.program-card {
  display: flex;
  width: clamp(310px, 27vw, 390px);
  min-height: 280px;
  flex: 0 0 clamp(310px, 27vw, 390px);
  flex-direction: column;
  justify-content: space-between;
  padding: 1.35rem;
  scroll-snap-align: start;
  color: #536071;
  background: #ffffff;
  border: 1px solid rgba(25, 35, 84, .5);
}
.program-card__icon {
  width: 42.5px;
  height: 45px;
  object-fit: contain;
  object-position: left top;
  opacity: .5;
  filter: brightness(0) saturate(100%) invert(17%) sepia(26%) saturate(1694%) hue-rotate(192deg) brightness(82%) contrast(101%);
}
.program-card__accent {
  color: var(--hero-blue);
  font-weight: 500;
}
.program-card h3 {
  max-width: 14ch;
  margin: 0 0 1rem;
  color: var(--hero-ink);
  font-weight: 400;
  font-size: clamp(1.35rem, 2vw, 1.65rem);
  line-height: 1.05;
}
.program-card p {
  max-width: 31ch;
  margin: 0;
  color: #536071;
  font-size: .95rem;
  line-height: 1.5;
}
@keyframes program-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(calc(-50% - .5rem)); }
}
.program-marquee:hover .program-track,
.program-marquee:focus-within .program-track,
.program-marquee:active .program-track { animation-play-state: paused; }

@media (max-width: 900px) {
  .program-grid { display: block; }
  .program .section-intro {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 32px;
    max-width: none;
    padding-right: 0;
    border: 0;
  }
  .program-card { width: min(42vw, 360px); flex-basis: min(42vw, 360px); }
}
@media (max-width: 720px) {
  .program .section-intro {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 2rem;
    padding-bottom: 2rem;
  }
  .program-intro-copy h2 { max-width: 12ch; }
  .program-intro-actions .section-lede { margin-bottom: 0; }
  .program-marquee { margin: 0 -1rem; padding-inline: 1rem; }
  .program-card { width: min(78vw, 330px); min-height: 248px; flex-basis: min(78vw, 330px); }
}
@media (prefers-reduced-motion: reduce) {
  .program-track { animation: none; }
}

/* Eligibility section aligned to Figma node 29:1604. */
.eligibility {
  padding-block: clamp(5rem, 8vw, 9rem);
}
.eligibility-grid {
  /* No width/max-width here: the .shell class on this element already sets
     min(1280px, 100% - 3rem), and overriding it cost the section the side
     gutter every other section keeps below 1328px. */
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0;
  align-items: stretch;
}
.eligibility-grid > div:first-child {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  min-height: 525px;
  padding: 0 clamp(4rem, 7.2vw, 8.125rem) 0 0;
  border-right: 2px solid var(--paper);
}
.eligibility-grid > div:first-child h2 {
  max-width: 480px;
  margin: 24px 0 0;
  color: var(--paper);
  font-size: clamp(3.5rem, 4.8vw, 5.4rem);
  font-weight: 300;
  line-height: .94;
  letter-spacing: -.055em;
}
.eligibility-copy {
  display: flex;
  max-width: none;
  flex-direction: column;
  justify-content: center;
  padding: 0 0 0 clamp(4rem, 7.1vw, 8rem);
}
.eligibility-copy > p:first-child {
  max-width: 517px;
  color: var(--paper);
  font-size: 1.1rem;
  line-height: 1.55;
}
.eligibility-copy .check-list {
  width: 100%;
  max-width: 517px;
  margin: 0;
  padding: 32px 0;
}
.eligibility-copy .check-list li {
  min-height: 72px;
  align-items: center;
  gap: 14.4px;
  padding: 16px 0 17px;
  border-bottom: 1px solid rgba(255, 255, 255, .6);
  font: 400 .9rem/1.35 var(--mono);
}
.eligibility-copy .check-list span {
  color: var(--hero-cyan);
  font: 500 1.4rem/1 var(--mono);
}
.eligibility-copy .pending-note {
  width: 100%;
  max-width: 517px;
  margin: 0 0 20px;
  color: #a8a8a3;
  font-size: .8rem;
  line-height: 1.45;
}
.eligibility-copy .button--light {
  width: 100%;
  max-width: 517px;
  min-height: 0;
  padding: 13px 20.2px;
  border: 1px solid var(--paper);
  border-radius: 0 !important;
  font: 400 .82rem/1 var(--type-sans);
  letter-spacing: 0;
  text-transform: none;
}

@media (max-width: 900px) {
  .eligibility-grid > div:first-child {
    min-height: 0;
    padding-right: 3rem;
  }
  .eligibility-copy { padding-left: 3rem; }
}

@media (max-width: 720px) {
  .eligibility-grid { display: block; }
  .eligibility-grid > div:first-child {
    min-height: 0;
    padding: 0 0 2.5rem;
    border-right: 0;
    border-bottom: 2px solid var(--paper);
  }
  .eligibility-grid > div:first-child h2 { max-width: 12ch; }
  .eligibility-copy { padding: 2.5rem 0 0; }
}

/* Results heading: centered two-column editorial layout. */
.results-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 48px;
  width: min(100%, 1280px);
  max-width: 1280px;
  margin-inline: auto;
  align-items: center;
  justify-content: center;
  padding-bottom: 0;
  border-bottom: 0;
}
.results-heading h2 {
  max-width: 480px;
  margin: 24px 0 0;
  font-size: clamp(3.5rem, 4.8vw, 5.4rem);
  font-weight: 300;
  line-height: .94;
  letter-spacing: -.055em;
}
.results-heading > p, .results-heading-actions > p {
  max-width: none;
  margin: 0;
  color: #536071;
  font: 400 1rem/1.6 var(--type-sans);
  letter-spacing: 0;
}
/* Evidencia: the right column is a display figure, not body copy (node 2:308). */
.results-heading-actions > p.results-figure {
  color: var(--hero-ink);
  font: 300 clamp(3.5rem, 4.8vw, 5.4rem)/.94 var(--display);
  letter-spacing: -.055em;
}
/* Lede + CTA share a column, the way .program-intro-actions does in the
   section under the hero. */
.results-heading-actions {
  display: flex;
  width: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: 26px;
}

@media (max-width: 720px) {
  .results-heading {
    display: block;
  }
  .results-heading > p, .results-heading-actions > p { margin-top: 2rem; }
}

/* Contact form section: centered two-column convention. */
.apply {
  padding-block: clamp(5rem, 8vw, 9rem);
}
.apply-grid {
  /* No width/max-width here: .shell on this element already sets
     min(1280px, 100% - 3rem), and overriding it dropped the side gutter. */
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 48px;
  align-items: start;
  justify-content: center;
}
.apply-copy {
  max-width: 480px;
  padding-right: 0;
  border-right: 0;
  justify-self: center;
}
/* Homepage apply band: soft ground, and no rule above it — the line there was
   the bottom border .section puts on the quote block, which only runs on the
   homepage directly above this section. */
.apply--soft { background: #f6f8f9; }
.quote { border-bottom: 0; }

.application-form {
  width: 100%;
  max-width: 517px;
  justify-self: center;
  /* Same hairline as .program-card, on all four sides — the 8px cyan cap read
     as a different element from its own frame. */
  border: 1px solid rgba(25, 35, 84, .5);
}

/* The native select chevron is drawn flush against the right border, so swap in
   our own and inset it — padding-right keeps long options clear of it. */
.form-row select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 2.75rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='m1 1.5 5 5 5-5' stroke='%23191c3d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1.1rem center;
  background-size: 12px 8px;
}

@media (max-width: 900px) {
  .apply-grid { gap: 32px; }
}

@media (max-width: 720px) {
  .apply-grid {
    display: block;
  }
  .application-form {
    max-width: none;
    margin-top: 2.5rem;
  }
}

/* Keep the results content visually balanced inside the section. */
.results {
  padding-block: 0;
}
.results > .shell {
  padding-block: clamp(5rem, 8vw, 9rem);
}

/* Figma Quote section. */
.quote {
  display: grid;
  min-height: 0;
  padding: clamp(5rem, 8vw, 9rem)
    clamp(1.5rem, 7.6vw, 8.6rem)
    calc(clamp(5rem, 8vw, 9rem) + 2rem);
  color: var(--hero-ink);
  background: var(--paper);
}
.quote-inner {
  display: flex;
  width: 100%;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.45rem;
}
.quote-mark {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  fill: none;
  stroke: var(--hero-ink);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.5;
}
.quote-mark circle {
  fill: var(--accent);
  stroke: var(--accent);
}
.quote-mark path {
  stroke: var(--paper);
}
.quote p {
  width: 100%;
  max-width: 1512px;
  margin: 0;
  color: var(--hero-ink);
  font-family: var(--type-sans);
  font-size: clamp(2.5rem, 4.8vw, 5.4rem);
  font-weight: 300;
  line-height: .94;
  letter-spacing: -.04em;
  text-align: center;
  text-wrap: balance;
}

@media (max-width: 720px) {
  .quote {
    min-height: 500px;
    padding: 4rem 1.25rem 5rem;
  }
  .quote p {
    font-size: clamp(2.35rem, 11vw, 4rem);
    line-height: .98;
  }
}

/* Layered homepage scroll: the hero stays in place while later sections pass over it. */
body:not(.inner-page) main { position: relative; }
body:not(.inner-page) .hero { position: sticky; top: 0; z-index: 0; }
body:not(.inner-page) .hero ~ section { position: relative; z-index: 1; }

@media (prefers-reduced-motion: reduce) {
  body:not(.inner-page) .hero { position: relative; }
}

/* Header variants from the Figma dark/light states. */
.site-header[data-header-theme="dark"] {
  color: var(--paper);
  background: var(--hero-ink);
  border-bottom: 1px solid rgba(255, 255, 255, .14);
}
.site-header[data-header-theme="light"] {
  color: var(--hero-ink);
  background: var(--paper);
  border-bottom: 1px solid rgba(25, 28, 61, .14);
}
.site-header[data-header-theme="dark"] .brand,
.site-header[data-header-theme="light"] .brand,
.site-header:not([data-header-theme]) .brand { filter: none; }
.site-header[data-header-theme="dark"] .brand img,
.site-header:not([data-header-theme="light"]) .brand img { content: url("Assets/logo-dark.svg"); }
.site-header[data-header-theme="light"] .brand img { content: url("Assets/logo-light.svg"); }
.site-header[data-header-theme="dark"] .site-nav a:not(.nav-cta),
.site-header[data-header-theme="dark"] .menu-toggle { color: rgba(255, 255, 255, .82); }
.site-header[data-header-theme="light"] .site-nav a:not(.nav-cta),
.site-header[data-header-theme="light"] .menu-toggle { color: var(--hero-ink); }
.site-header[data-header-theme="dark"] .site-nav a:not(.nav-cta):hover,
.site-header[data-header-theme="dark"] .site-nav a:not(.nav-cta):focus-visible,
.site-header[data-header-theme="dark"] .site-nav a[aria-current="page"] { color: var(--paper); }
.site-header[data-header-theme="light"] .site-nav a:not(.nav-cta):hover,
.site-header[data-header-theme="light"] .site-nav a:not(.nav-cta):focus-visible,
.site-header[data-header-theme="light"] .site-nav a[aria-current="page"] { color: var(--hero-blue); }
.site-header[data-header-theme="dark"] .nav-cta {
  color: var(--hero-ink);
  background: var(--paper);
  border-color: var(--paper);
}
.site-header[data-header-theme="light"] .nav-cta {
  color: var(--paper);
  background: var(--hero-ink);
  border-color: var(--hero-ink);
}
.site-header[data-header-theme="dark"] .nav-cta:hover,
.site-header[data-header-theme="dark"] .nav-cta:focus-visible,
.site-header[data-header-theme="light"] .nav-cta:hover,
.site-header[data-header-theme="light"] .nav-cta:focus-visible {
  color: var(--hero-ink);
  background: var(--hero-cyan);
  border-color: var(--hero-cyan);
}

@media (max-width: 720px) {
  .site-header[data-header-theme="dark"] .site-nav { background: var(--hero-ink); }
  .site-header[data-header-theme="light"] .site-nav { background: var(--paper); }
}

/* Header parity with the Figma dark/light variants: solid theme shell, framed links, no blur. */
.site-header[data-header-theme="dark"],
.site-header[data-header-theme="light"] {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.site-header[data-header-theme="dark"] {
  background: var(--hero-ink);
  border-bottom: 1px solid rgba(255, 255, 255, .14);
}

.site-header[data-header-theme="light"] {
  background: var(--paper);
  border-bottom: 1px solid rgba(25, 28, 61, .14);
}

.site-header[data-header-theme="dark"]:not(.is-after-hero) {
  border-bottom: 0;
}

.site-header[data-header-theme="dark"] .brand,
.site-header[data-header-theme="light"] .brand {
  display: flex;
  width: 261px;
  height: 52px;
  align-items: center;
  padding-inline: 19px;
  background: var(--hero-ink);
  filter: none;
}

.site-header[data-header-theme="dark"] .brand {
  border: 0;
}

.site-header[data-header-theme="light"] .brand {
  background: var(--paper);
  border: 0;
}

.site-header.is-after-hero[data-header-theme="dark"] .brand {
  border: 1px solid rgba(255, 255, 255, .24);
}

.site-header.is-after-hero[data-header-theme="light"] .brand {
  border: 1px solid rgba(25, 28, 61, .24);
}
.site-header[data-header-theme="dark"] .brand img,
.site-header[data-header-theme="light"] .brand img {
  width: 100%;
  height: auto;
}

.site-header[data-header-theme="dark"] .site-nav a:not(.nav-cta),
.site-header[data-header-theme="light"] .site-nav a:not(.nav-cta) {
  display: inline-flex;
  width: 180px;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  padding: .8rem 1.25rem;
  border: 1px solid transparent;
  background: transparent;
}

.site-header[data-header-theme="dark"] .site-nav a:not(.nav-cta) {
  color: rgba(255, 255, 255, .82);
  border-color: rgba(255, 255, 255, .24);
  background: var(--hero-ink);
}

.site-header[data-header-theme="light"] .site-nav a:not(.nav-cta) {
  color: var(--hero-ink);
  border-color: rgba(25, 28, 61, .24);
  background: var(--paper);
}

.site-header[data-header-theme="dark"] .site-nav a:not(.nav-cta):hover,
.site-header[data-header-theme="dark"] .site-nav a:not(.nav-cta):focus-visible {
  color: var(--paper);
  background: var(--hero-ink);
}

.site-header[data-header-theme="light"] .site-nav a:not(.nav-cta):hover,
.site-header[data-header-theme="light"] .site-nav a:not(.nav-cta):focus-visible {
  color: var(--hero-ink);
  background: var(--paper);
}

.site-header[data-header-theme="dark"] .nav-cta,
.site-header[data-header-theme="light"] .nav-cta {
  width: 250px;
  min-height: 42px;
  justify-content: center;
  margin-left: 0;
}

@media (max-width: 720px) {
  .site-header[data-header-theme="dark"] .site-nav,
  .site-header[data-header-theme="light"] .site-nav {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .site-header[data-header-theme="dark"] .site-nav a:not(.nav-cta),
  .site-header[data-header-theme="light"] .site-nav a:not(.nav-cta),
  .site-header[data-header-theme="dark"] .nav-cta,
  .site-header[data-header-theme="light"] .nav-cta {
    width: 250px;
  }
}

/* Video carousel aligned to Figma node 2:364. */
.stories {
  overflow: hidden;
  padding-block: clamp(5.5rem, 9vw, 9rem) clamp(6rem, 10vw, 10rem);
  background: var(--hero-ink);
  border-bottom: 2px solid var(--paper);
}
.stories .shell { width: min(1280px, calc(100% - 3rem)); }
.stories-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: clamp(3rem, 5vw, 4rem);
  padding-bottom: 2rem;
  border-bottom: 2px solid rgba(255, 255, 255, .7);
}
.stories-head > div:first-child { min-width: 0; }
.stories-head .eyebrow { margin-bottom: 1.4rem; color: var(--paper); }
.stories-head .eyebrow span { background: var(--hero-cyan); }
.stories-head h2 {
  margin: 0;
  color: var(--paper);
  font-size: clamp(3.4rem, 6vw, 6.2rem);
  font-weight: 300;
  line-height: .94;
  letter-spacing: -.055em;
}
.carousel-controls {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 2.5rem;
  padding-bottom: .25rem;
}
.carousel-control {
  display: grid;
  width: 61px;
  height: 50px;
  place-items: center;
  padding: 0;
  color: var(--paper);
  background: transparent;
  border: 0;
  cursor: pointer;
  transition: color 160ms var(--ease), transform 160ms var(--ease);
}
.carousel-control img {
  width: 61px;
  height: 50px;
}
.carousel-control:hover, .carousel-control:focus-visible { color: var(--hero-cyan); }
.carousel-control:hover img, .carousel-control:focus-visible img {
  filter: brightness(0) saturate(100%) invert(67%) sepia(34%) saturate(1165%) hue-rotate(137deg) brightness(91%) contrast(88%);
}
.carousel-control[data-carousel-prev]:hover, .carousel-control[data-carousel-prev]:focus-visible { transform: translateX(-4px); }
.carousel-control[data-carousel-next]:hover, .carousel-control[data-carousel-next]:focus-visible { transform: translateX(4px); }
.video-carousel {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  overflow-x: auto;
  overflow-y: hidden;
  padding: 0 0 1rem max(2.5rem, calc((100vw - 1280px) / 2));
  scrollbar-width: none;
  scroll-behavior: smooth;
  overscroll-behavior-x: contain;
}
.video-carousel::-webkit-scrollbar { display: none; }
.video-track {
  display: flex;
  width: max-content;
  gap: clamp(1.5rem, 3.1vw, 2.8rem);
}
.video-card {
  display: flex;
  width: clamp(300px, 36.8vw, 662px);
  flex: 0 0 clamp(300px, 36.8vw, 662px);
  flex-direction: column;
  align-items: flex-start;
  color: var(--paper);
  cursor: pointer;
  text-decoration: none;
}
.video-card__media {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #293052;
}
.video-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: none;
  opacity: 1;
  transition: none;
}
.video-card:first-child .video-card__media img { transform: scale(1.12); }
.video-card__eyebrow {
  margin-top: clamp(2rem, 3.6vw, 3.8rem);
  color: var(--hero-cyan);
  font: 600 .64rem/1.2 var(--type-sans);
  letter-spacing: .09em;
  text-transform: uppercase;
}
.video-card strong {
  margin-top: .45rem;
  color: var(--paper);
  font: 400 clamp(1.1rem, 1.5vw, 1.45rem)/1.1 var(--type-sans);
  letter-spacing: 0;
  text-transform: uppercase;
}
.video-card:focus-visible { outline: 2px solid var(--hero-cyan); outline-offset: 6px; }

@media (max-width: 720px) {
  .stories { padding-block: 4.5rem 5.5rem; }
  .stories .shell { width: min(100% - 2rem, 560px); }
  .stories-head {
    align-items: flex-start;
    gap: 2rem;
    margin-bottom: 2.5rem;
    padding-bottom: 1.5rem;
  }
  .stories-head h2 { font-size: clamp(3.2rem, 14vw, 5rem); }
  .carousel-controls { gap: .75rem; }
  .carousel-control, .carousel-control img { width: 48px; height: 40px; }
  .video-carousel { padding-left: 1rem; }
  .video-card { width: min(78vw, 420px); flex-basis: min(78vw, 420px); }
  .video-card__eyebrow { margin-top: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
  .video-carousel { scroll-behavior: auto; }
  .video-card__media img { transform: none; transition: none; }
}

/* Footer aligned to Figma node 25:555. */
.site-footer {
  padding: clamp(4.5rem, 8vw, 6rem) 0;
  color: var(--paper);
  background: var(--hero-ink);
  border-top: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .8);
}
.site-footer > .shell.footer-grid {
  display: grid;
  width: min(1532px, calc(100% - 9.5rem));
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(1.5rem, 3.2vw, 3.5rem);
  align-items: start;
}
.footer-intro {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
}
.footer-brand {
  display: block;
  width: 91px;
  height: 85px;
  color: var(--paper);
}
.footer-brand img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left center;
}
.footer-intro .footer-support {
  display: flex;
  margin-top: 1.1rem;
  flex-direction: column;
  gap: .8rem;
  color: rgba(255, 255, 255, .42);
  font: 500 .7rem/1.2 var(--type-sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.footer-intro .support-logos {
  display: flex;
  width: 191px;
  height: 34px;
  align-items: center;
  justify-content: space-between;
  gap: 0;
}
.footer-intro .support-logos a {
  display: block;
  width: auto;
  height: 34px;
  padding: 0;
  background: transparent;
  border: 0;
}
.footer-intro .support-logos a:nth-child(1) { width: 46px; }
.footer-intro .support-logos a:nth-child(2) { width: 54px; height: 17px; }
.footer-intro .support-logos a:nth-child(3) { width: 19px; height: 28px; }
.footer-intro .support-logos img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  filter: none;
}
.footer-copyright {
  align-self: flex-start;
  margin: .5rem 0 0;
  color: rgba(255, 255, 255, .4);
  font: 400 .7rem/1.4 var(--type-sans);
  white-space: nowrap;
}
.footer-description {
  max-width: 22ch;
  margin: .9rem 0 0;
  padding-top: .9rem;
  color: rgba(255, 255, 255, .5);
  border-top: 1px solid rgba(255, 255, 255, .18);
  font: 400 .72rem/1.5 var(--type-sans);
}
.site-footer .footer-links,
.site-footer .footer-location,
.site-footer .footer-contact {
  min-width: 0;
}
.site-footer .footer-links {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: .8rem;
}
.site-footer .footer-label {
  display: block;
  margin: 0 0 .35rem;
  color: rgba(255, 255, 255, .42);
  font: 400 .875rem/1.52 var(--type-sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.site-footer .footer-links .footer-label { text-transform: uppercase; }
.site-footer .footer-links a {
  display: grid;
  grid-template-columns: 20px 1fr;
  align-items: center;
  gap: .6rem;
  color: rgba(255, 255, 255, .78);
  font: 500 .84rem/1.3 var(--type-sans);
}
.site-footer .footer-location,
.site-footer .footer-contact {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}
.site-footer .footer-location p,
.site-footer .footer-contact p {
  max-width: none;
  margin: 0;
  color: var(--paper);
  font: 500 .7rem/1.4 var(--type-sans);
}
.site-footer .footer-contact a {
  color: var(--paper);
  text-decoration: none;
}
.site-footer .footer-contact a:hover,
.site-footer .footer-contact a:focus-visible {
  color: var(--hero-cyan);
}
.footer-contact__details {
  display: flex;
  flex-direction: column;
  gap: .35rem;
}
.footer-contact__item,
.footer-hours__item {
  display: flex;
  align-items: center;
  gap: .6rem;
}
.footer-address {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
}
.footer-address__icon {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  margin-top: .05rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.footer-contact__item {
  color: var(--paper);
  font: 500 .7rem/1.4 var(--type-sans);
  text-decoration: none;
}
.footer-contact__item svg,
.footer-hours__item svg {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.footer-hours__item {
  margin: 0;
}

@media (max-width: 900px) {
  .site-footer > .shell.footer-grid {
    width: min(100% - 3rem, 720px);
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.5rem 1.5rem;
  }
  .footer-intro { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .site-footer { padding: 4rem 0 6rem; }
  .site-footer > .shell.footer-grid {
    width: min(100% - 2rem, 560px);
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .footer-intro,
  .footer-links,
  .footer-contact,
  .footer-location { grid-column: 1 / -1; }
}

/* Portfolio page: keep the complete page in the light state. */
.portfolio-page,
.portfolio-page main {
  color: var(--hero-ink);
  background: #fff;
  padding: 0;
  border-bottom: 0;
}
.portfolio-page .inner-hero--portfolio,
.portfolio-page .portfolio-section,
.portfolio-page .portfolio-cta {
  color: var(--hero-ink);
  background: #fff;
  padding-block: clamp(3.5rem, 6vw, 5rem);
  border-bottom: 0;
}
.portfolio-page .inner-hero--portfolio,
.portfolio-page .portfolio-section,
.portfolio-page .portfolio-cta {
  border-color: rgba(25, 28, 61, .2);
}
.portfolio-page .portfolio-section {
  padding-top: clamp(2.5rem, 5vw, 4.5rem);
  padding-bottom: 0;
  border-bottom: 0;
}
.portfolio-page .portfolio-section .eyebrow {
  color: var(--carbon);
}
.portfolio-page .portfolio-cta h2 {
  max-width: none;
  color: var(--hero-ink);
  white-space: nowrap;
}
.portfolio-page .portfolio-cta .eyebrow { color: var(--carbon); }
.portfolio-page .portfolio-cta .button--light {
  margin-top: clamp(1.75rem, 3vw, 2.5rem);
  color: var(--paper);
  background: var(--hero-ink);
  border-color: var(--hero-ink);
}
.portfolio-page .portfolio-cta .button--light:hover,
.portfolio-page .portfolio-cta .button--light:focus-visible {
  color: var(--hero-ink);
  background: var(--hero-cyan);
  border-color: var(--hero-cyan);
}

@media (max-width: 720px) {
  .portfolio-page .portfolio-cta h2 { white-space: normal; }
}

/* Contact page uses the light header directly above the form. */
.contact-page {
  color: var(--hero-ink);
  background: #fff;
}
.contact-page .contact-section {
  padding-top: clamp(2.5rem, 4vw, 4.5rem);
}

/* Inner pages open on their own .inner-hero, so the header never crosses a
   dark hero into the outlined state — the brand keeps its plain block. Was
   listed page by page, which left eventos and the application page outlined. */
.inner-page .site-header.is-after-hero[data-header-theme] .brand {
  border: 0;
}

.application-form .button {
  border-radius: 0 !important;
}

/* Final mobile polish. */
@media (max-width: 720px) {
  html { scroll-padding-top: 68px; }
  body { overflow-x: hidden; }

  .header-inner {
    gap: 1rem;
  }
  .site-header[data-header-theme="dark"] .brand,
  .site-header[data-header-theme="light"] .brand {
    width: 52px;
    height: 44px;
    justify-content: center;
    padding: 5px;
    border: 0;
  }
  .site-header[data-header-theme="dark"] .brand {
    background: var(--hero-ink);
  }
  .site-header[data-header-theme="light"] .brand {
    background: var(--paper);
  }
  .site-header[data-header-theme="dark"] .brand img,
  .site-header[data-header-theme="light"] .brand img {
    width: 32px;
    height: 32px;
    object-fit: contain;
  }
  .site-header[data-header-theme="dark"] .brand img {
    content: url("Assets/Icono-Dark.svg");
  }
  .site-header[data-header-theme="light"] .brand img {
    content: url("Assets/Icono-Light.svg");
  }
  .site-header[data-header-theme="dark"] .menu-toggle,
  .site-header[data-header-theme="light"] .menu-toggle {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: .55rem;
    padding: .7rem .8rem;
    border: 1px solid transparent;
  }
  .site-header[data-header-theme="dark"] .menu-toggle {
    color: var(--paper);
    background: var(--hero-ink);
    border-color: rgba(255, 255, 255, .24);
  }
  .site-header[data-header-theme="light"] .menu-toggle {
    color: var(--hero-ink);
    background: var(--paper);
    border-color: rgba(25, 28, 61, .24);
  }
  .site-header[data-header-theme="dark"] .site-nav,
  .site-header[data-header-theme="light"] .site-nav {
    padding-inline: 1rem;
  }
  .site-header[data-header-theme="dark"] .site-nav a:not(.nav-cta),
  .site-header[data-header-theme="light"] .site-nav a:not(.nav-cta) {
    width: 100%;
  }
  .site-header[data-header-theme="dark"] .nav-cta,
  .site-header[data-header-theme="light"] .nav-cta {
    width: min(250px, 100%);
  }
  .site-header[data-header-theme="dark"] .site-nav.is-open .nav-cta,
  .site-header[data-header-theme="light"] .site-nav.is-open .nav-cta {
    width: 100%;
    box-sizing: border-box;
  }

  .hero-grid {
    min-height: auto;
  }
  .hero {
    min-height: auto;
    overflow: visible;
    padding: 1.5rem 0 2.5rem;
  }
  .hero-copy,
  .hero-brands,
  .hero-brand-logos {
    width: 100%;
  }
  .hero-brands {
    padding-inline: 0;
    padding-top: 2rem;
    padding-bottom: 0;
  }

  .program-card {
    width: min(82vw, 330px);
    flex-basis: min(82vw, 330px);
  }
  .results > .shell {
    padding-block: 4.5rem;
  }
  .eligibility {
    padding-block: 4.5rem;
  }
  .stories {
    padding-block: 4rem 4.5rem;
  }
  .carousel-control,
  .carousel-control img {
    width: 48px;
    height: 48px;
  }
  .video-card {
    width: min(82vw, 360px);
    flex-basis: min(82vw, 360px);
  }
  .video-card__eyebrow {
    margin-top: 1.25rem;
  }

  .results-layout,
  .results-primary,
  .growth-panel {
    min-width: 0;
  }
  .growth-panel {
    padding: 1.5rem;
  }
  .growth-label {
    align-items: flex-start;
    flex-direction: column;
    gap: .5rem;
  }
  .growth-label small {
    white-space: nowrap;
  }
  .growth-bars {
    height: 100px;
    gap: .6rem;
    margin-block: 1.5rem 1rem;
  }
  .growth-bars i {
    min-width: 0;
  }
  .growth-values {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
  }
  .growth-values div {
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: .25rem;
  }
  .growth-values strong {
    font-size: clamp(1.6rem, 8vw, 2.1rem);
  }
  .growth-values span {
    font-size: .72rem;
    line-height: 1.2;
  }
}

/* Multi-program navigation, hub program cards, corporate steps, and the events gallery. */

/* The nav went from three fixed 180px boxes to four links plus the CTA, which
   overflows the 1280px shell. Above the mobile breakpoint the boxes size to
   their content instead. Mobile keeps the stacked full-width rules above. */
@media (min-width: 721px) {
  .site-header[data-header-theme="dark"] .site-nav,
  .site-header[data-header-theme="light"] .site-nav {
    gap: .4rem;
  }
  .site-header[data-header-theme="dark"] .site-nav a:not(.nav-cta),
  .site-header[data-header-theme="light"] .site-nav a:not(.nav-cta) {
    width: auto;
    min-width: 0;
    padding-inline: clamp(.75rem, 1.4vw, 1.25rem);
    white-space: nowrap;
  }
  .site-header[data-header-theme="dark"] .nav-cta,
  .site-header[data-header-theme="light"] .nav-cta {
    width: auto;
    min-width: 132px;
    padding-inline: clamp(1rem, 1.8vw, 1.5rem);
    margin-left: .35rem;
    white-space: nowrap;
  }
  .site-header[data-header-theme="dark"] .site-nav a[aria-current="page"]:not(.nav-cta) {
    color: var(--paper);
    border-color: var(--hero-cyan);
  }
  .site-header[data-header-theme="light"] .site-nav a[aria-current="page"]:not(.nav-cta) {
    color: var(--hero-ink);
    border-color: var(--accent-dark);
  }
}

@media (min-width: 721px) and (max-width: 1080px) {
  /* Same icon-only mark as the <=720px header: between these widths the
     wordmark and the full nav can't both fit on one row. */
  .site-header[data-header-theme="dark"] .brand,
  .site-header[data-header-theme="light"] .brand {
    width: 52px;
    height: 44px;
    /* The nav is wide enough here to squeeze a shrinkable flex item to nothing. */
    flex: 0 0 auto;
    justify-content: center;
    padding: 5px;
    border: 0;
  }
  .site-header[data-header-theme="dark"] .brand img,
  .site-header[data-header-theme="light"] .brand img {
    width: 32px;
    height: 32px;
    flex: 0 0 auto;
    object-fit: contain;
  }
  .site-header[data-header-theme="dark"] .brand img {
    content: url("Assets/Icono-Dark.svg");
  }
  .site-header[data-header-theme="light"] .brand img {
    content: url("Assets/Icono-Light.svg");
  }
}

/* Hub: the four-program selector. */
.programs { background: var(--paper); }
.programs-grid { display: block; }
.programs .section-intro {
  display: grid;
  max-width: none;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 48px;
  align-items: center;
  padding-right: 0;
  padding-bottom: clamp(3rem, 6vw, 5rem);
  border: 0;
}
.programs .section-intro h2 {
  max-width: none;
  margin: 0;
  color: var(--hero-ink);
  font-size: clamp(3.5rem, 4.8vw, 5.4rem);
  font-weight: 300;
  line-height: .94;
  letter-spacing: -.055em;
}

.programs-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2px;
  background: rgba(25, 28, 61, .18);
  border: 1px solid rgba(25, 28, 61, .18);
}
.program-choice {
  display: flex;
  min-height: 340px;
  flex-direction: column;
  align-items: flex-start;
  gap: .9rem;
  padding: clamp(1.5rem, 2.4vw, 2.15rem);
  color: var(--hero-ink);
  background: var(--paper);
  text-decoration: none;
  transition: background 200ms var(--ease), color 200ms var(--ease);
}
.program-choice__eyebrow {
  color: var(--accent-dark);
  font: 500 .68rem/1.2 var(--type-sans);
  letter-spacing: .12em;
  text-transform: uppercase;
}
.program-choice h3 {
  max-width: 12ch;
  margin: 0;
  color: inherit;
  font: 300 clamp(1.9rem, 2.4vw, 2.5rem)/1 var(--type-sans);
  letter-spacing: -.045em;
}
.program-choice p {
  margin: 0;
  color: #536071;
  font: 400 .88rem/1.55 var(--type-sans);
  transition: color 200ms var(--ease);
}
.program-choice__action {
  display: inline-flex;
  margin-top: auto;
  padding-top: 1.25rem;
  align-items: center;
  gap: .55rem;
  color: var(--hero-ink);
  font: 500 .72rem/1 var(--type-sans);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.program-choice:hover,
.program-choice:focus-visible {
  color: var(--paper);
  background: var(--hero-ink);
}
.program-choice:hover p,
.program-choice:focus-visible p { color: rgba(255, 255, 255, .72); }
.program-choice:hover .program-choice__eyebrow,
.program-choice:focus-visible .program-choice__eyebrow { color: var(--hero-cyan); }
.program-choice:hover .program-choice__action,
.program-choice:focus-visible .program-choice__action { color: var(--paper); }
.program-choice--external .program-choice__eyebrow { color: var(--accent-dark); }

/* Hub: org-level proof band. */
.proof-strip-inner {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: clamp(2.5rem, 6vw, 6rem);
  align-items: center;
}
.proof-strip-copy h2 {
  max-width: 14ch;
  margin: 0 0 1.75rem;
  color: var(--paper);
  font-size: clamp(2.4rem, 3.6vw, 3.6rem);
  font-weight: 300;
  line-height: .96;
  letter-spacing: -.05em;
}
.text-link--light {
  color: var(--paper);
  border-bottom-color: var(--hero-cyan);
}
.text-link--light:hover,
.text-link--light:focus-visible { color: var(--hero-cyan); }
.proof-strip-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
}
.proof-metric {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  padding: .5rem clamp(.75rem, 1.6vw, 1.5rem);
  border-left: 1px solid rgba(255, 255, 255, .24);
}
.proof-metric:first-child { padding-left: 0; border-left: 0; }
.proof-metric strong {
  color: var(--paper);
  font: 300 clamp(2.8rem, 5vw, 4.6rem)/.9 var(--type-sans);
  letter-spacing: -.06em;
}
.proof-metric span {
  color: rgba(255, 255, 255, .68);
  font: 400 .8rem/1.35 var(--type-sans);
}

/* Aceleración: hand-off to INCUBATEC for idea-stage founders. */
.cross-sell {
  /* Same block padding as .results and .eligibility; the generic .section rule
     is 9vw, which ran ~14px taller than those two. */
  padding-block: clamp(5rem, 8vw, 9rem);
  color: var(--hero-ink);
  background: var(--paper);
  border-top: 1px solid rgba(25, 28, 61, .18);
  border-bottom: 1px solid rgba(25, 28, 61, .18);
}
.cross-sell-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: center;
}
.cross-sell-copy h2 {
  max-width: 15ch;
  margin: 0;
  color: var(--hero-ink);
  font-size: clamp(2.2rem, 3.4vw, 3.4rem);
  font-weight: 300;
  line-height: .98;
  letter-spacing: -.05em;
}
.cross-sell-action,
.corporate-next-action {
  display: flex;
  max-width: 44ch;
  flex-direction: column;
  align-items: stretch;
  gap: 1.75rem;
}
.cross-sell-action p,
.corporate-next-action p {
  max-width: none;
  margin: 0;
  color: #536071;
  font: 400 1rem/1.6 var(--type-sans);
}
/* .button carries `border-radius: 7px !important` from the shared button pass,
   so a light-section button has to square itself the way the portfolio CTA does. */
.cross-sell .button--light,
.corporate-next .button--light {
  /* Match the paragraph above: same 44ch cap, so they stay equal width at
     every viewport instead of only at one. */
  width: 100%;
  max-width: none;
  color: var(--paper);
  background: var(--hero-ink);
  border-color: var(--hero-ink);
  border-radius: 0 !important;
}
.cross-sell .button--light:hover,
.cross-sell .button--light:focus-visible,
.corporate-next .button--light:hover,
.corporate-next .button--light:focus-visible {
  color: var(--hero-ink);
  background: var(--hero-cyan);
  border-color: var(--hero-cyan);
}

/* Corporativo. */
/* No rule between the grey methodology band and the white one after it in the
   frame — the background change carries the break. */
.corporate-steps-section { background: #f6f8f9; border-bottom: 0; }
.corporate-steps-section .section-intro,
.events-section .section-intro {
  display: grid;
  max-width: none;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 48px;
  align-items: center;
  padding-right: 0;
  padding-bottom: clamp(3rem, 6vw, 5rem);
  border: 0;
}
.corporate-steps-section .section-intro h2,
.events-section .section-intro h2,
.events-section .section-intro h1 {
  max-width: none;
  margin: 0;
  color: var(--hero-ink);
  font-size: clamp(2.6rem, 4vw, 4.2rem);
  font-weight: 300;
  line-height: .96;
  letter-spacing: -.05em;
}

.steps {
  display: grid;
  margin: 0;
  padding: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2px;
  background: rgba(25, 28, 61, .18);
  border: 1px solid rgba(25, 28, 61, .18);
  list-style: none;
}
.step {
  display: flex;
  min-height: 260px;
  flex-direction: column;
  align-items: flex-start;
  gap: .85rem;
  padding: clamp(1.5rem, 2.4vw, 2.15rem);
  background: var(--paper);
}
.step__index {
  color: var(--accent-dark);
  font: 500 .72rem/1 var(--type-sans);
  letter-spacing: .12em;
}
.step h3 {
  max-width: 14ch;
  margin: 0;
  color: var(--hero-ink);
  font: 400 clamp(1.3rem, 1.8vw, 1.6rem)/1.15 var(--type-sans);
  letter-spacing: -.035em;
}
.step p {
  margin: 0;
  color: #536071;
  font: 400 .88rem/1.6 var(--type-sans);
}

/* Corporativo: "El siguiente paso" (Figma 107:487-494) — heading left, copy and
   a full-width CTA right, on the same 1.15fr/1fr split the results heading uses.
   Replaces the blue capabilities band plus the separate CTA strip. */
.corporate-next { background: var(--paper); border-bottom: 0; }
.corporate-next-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 48px;
  align-items: start;
}
.corporate-next-copy h2 {
  max-width: 13ch;
  margin: 0;
  color: var(--hero-ink);
  font-size: clamp(2.6rem, 4vw, 4.2rem);
  font-weight: 300;
  line-height: .96;
  letter-spacing: -.05em;
}

/* Eventos gallery. */
.events-section {
  background: var(--paper);
  /* Top padding matches the intro's padding-bottom, so the space above the
     heading equals the space between the text and the images. */
  padding-top: clamp(3rem, 6vw, 5rem);
}
.event-gallery {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 2px;
  background: rgba(25, 28, 61, .18);
  border: 1px solid rgba(25, 28, 61, .18);
}
.event-tile {
  position: relative;
  display: flex;
  margin: 0;
  grid-column: span 2;
  flex-direction: column;
  background: var(--hero-ink);
  overflow: hidden;
}
.event-tile--wide { grid-column: span 3; }
.event-tile img {
  width: 100%;
  height: clamp(280px, 30vw, 440px);
  object-fit: cover;
  transition: transform 420ms var(--ease), opacity 200ms var(--ease);
}
.event-tile:hover img { transform: scale(1.04); }

/* Secondary button: the quiet tinted treatment used by .program-apply-link.
   .button forces a 7px radius and its own type scale, so both are restated. */
.button--secondary {
  min-height: 0;
  gap: 10.4px;
  padding: 12.8px 19.2px;
  color: #191c3d;
  background: rgba(25, 28, 61, .05);
  border: 0;
  border-radius: 0 !important;
  font: 400 13.12px/1 var(--type-sans);
  letter-spacing: 0;
  text-transform: none;
}
.button--secondary:hover,
.button--secondary:focus-visible {
  color: #191c3d;
  background: rgba(25, 28, 61, .1);
  border: 0;
  transform: none;
}

/* Corporativo: seven-stage methodology. 7 items never tile a 4-column grid,
   so a 12-column base lets row 1 hold 4 (span 3) and row 2 hold 3 (span 4). */
.steps--flow { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.steps--flow .step { min-height: 0; grid-column: span 3; }
.steps--flow .step:nth-child(n+5) { grid-column: span 4; }
.steps--flow .step h3 {
  font-size: clamp(1.15rem, 1.5vw, 1.35rem);
  letter-spacing: -.02em;
}

/* The corporate hero runs two lede paragraphs; .inner-hero zeroes their margin. */
.inner-hero p:not(.eyebrow) + p:not(.eyebrow) { margin-top: 1.1rem; }

/* Events CTA. .button--primary is white-on-white, and .button forces a 7px
   radius, so a light-section button restates both — same as the cross-sell band. */
.events-cta {
  display: flex;
  /* .program-intro-actions aligns its children to flex-start, so this wrapper
     has to claim the column width for .button--full to fill it. */
  width: 100%;
}
.events-cta .button--primary {
  color: var(--paper);
  background: var(--hero-ink);
  border-color: var(--hero-ink);
  border-radius: 0 !important;
}
.events-cta .button--primary:hover,
.events-cta .button--primary:focus-visible {
  color: var(--hero-ink);
  background: var(--hero-cyan);
  border-color: var(--hero-cyan);
}

/* Application form: program picker helper line. */
.form-hint {
  margin: .6rem 0 0;
  color: #536071;
  font: 400 .78rem/1.5 var(--type-sans);
}
.form-hint a {
  color: var(--accent-dark);
  text-decoration: underline;
  text-underline-offset: .18em;
}

/* Footer gained a PROGRAMAS column, so the grid is seven columns wide. */
.site-footer > .shell.footer-grid {
  grid-template-columns: 1.35fr repeat(6, minmax(0, 1fr));
  gap: clamp(1.25rem, 2.4vw, 2.5rem);
}
.site-footer .footer-programs {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: .55rem;
}
.site-footer .footer-programs a {
  color: rgba(255, 255, 255, .78);
  font: 500 .84rem/1.3 var(--type-sans);
  text-decoration: none;
  transition: color 150ms var(--ease);
}
.site-footer .footer-programs a:hover,
.site-footer .footer-programs a:focus-visible { color: var(--hero-cyan); }

@media (max-width: 1080px) {
  .programs-cards,
  .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .steps--flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .steps--flow .step,
  .steps--flow .step:nth-child(n+5) { grid-column: span 1; }
  /* 7 items across 2 columns leaves the last row half empty; let it span. */
  .steps--flow .step:last-child { grid-column: span 2; }
  .program-choice,
  .step { min-height: 0; }
}

@media (max-width: 900px) {
  .site-footer > .shell.footer-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .programs .section-intro,
  .corporate-steps-section .section-intro,
  .events-section .section-intro,
  .proof-strip-inner,
  .cross-sell-inner {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
  }
  .event-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .event-tile,
  .event-tile--wide { grid-column: span 1; }
}

@media (max-width: 720px) {
  .programs-cards,
  .steps,
  .steps--flow,
  .event-gallery { grid-template-columns: minmax(0, 1fr); }
  /* Cancel the 2-column span; otherwise it forces an implicit second column. */
  .steps--flow .step:last-child { grid-column: span 1; }
  .proof-strip-metrics { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .proof-metric {
    padding: 1.25rem 0;
    /* Stacked here, so desktop's column divider becomes a row divider. */
    border-left: 0;
    border-top: 1px solid rgba(255, 255, 255, .24);
  }
  .proof-metric:first-child { padding-top: 0; border-top: 0; }
  .event-tile img { height: clamp(200px, 52vw, 280px); }
  .corporate-next-inner { grid-template-columns: 1fr; gap: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
  .program-choice,
  .step,
  .event-tile img { transition: none; }
  .event-tile:hover img { transform: none; }
}

/* All buttons in caps. Several button rules are two-class selectors
   (.hero .button, .eligibility-copy .button--light), so those are restated
   here to win on specificity rather than order alone. Tracking is added
   because all-caps at this size is cramped without it — the same reason
   .eyebrow and .program-choice__action carry it. */
.button,
.hero .button,
.eligibility-copy .button--light,
.button--secondary,
.nav-cta,
.program-apply-link,
.results-portfolio-link {
  text-transform: uppercase;
  letter-spacing: .03em;
  /* Base .button is weight 500, but .eligibility-copy .button--light,
     .program-apply-link, .button--secondary and .nav-cta each reset it to 400,
     which read as two different button styles. Normalised to 500. */
  font-weight: 500;
}

/* Nav links in caps too. .site-nav sets text-transform:none, so this needs
   the two-class form to win. */
.site-nav a:not(.nav-cta) {
  text-transform: uppercase;
  letter-spacing: .03em;
}

/* Between the mobile breakpoint (720px) and roughly 830px the desktop nav is
   wider than the shell, so the page gained a horizontal scrollbar. Tighten the
   nav across that band instead of moving the shared 720px breakpoint. */
@media (min-width: 721px) and (max-width: 830px) {
  .site-header[data-header-theme="dark"] .site-nav,
  .site-header[data-header-theme="light"] .site-nav {
    gap: .15rem;
    font-size: .74rem;
  }
  .site-header[data-header-theme="dark"] .site-nav a:not(.nav-cta),
  .site-header[data-header-theme="light"] .site-nav a:not(.nav-cta) {
    padding-inline: .4rem;
    font-size: .74rem;
    letter-spacing: 0;
  }
  .site-header[data-header-theme="dark"] .nav-cta,
  .site-header[data-header-theme="light"] .nav-cta {
    min-width: 0;
    margin-left: .2rem;
    padding-inline: .55rem;
    font-size: .74rem;
    letter-spacing: 0;
  }
}

/* Corporativo hero: a centred statement hero. The .hero h1 scale is tuned for a
   3-word headline, so this longer one gets its own step down. */
.hero--statement .hero-grid { justify-content: center; }
.hero--statement .hero-copy {
  /* The frame lets the headline run past the 960px copy column. */
  width: 100%;
  max-width: none;
  padding-block: 2rem;
}
/* No rule before this eyebrow in the frame — just centred caps at 17.92px. */
.hero--statement .eyebrow {
  justify-content: center;
  margin-bottom: 1.75rem;
  font-size: 1.12rem;
  font-weight: 500;
}
.hero--statement .eyebrow span { display: none; }
/* Same 140.8px scale as the home hero; the smaller statement size was ours. */
.hero--statement h1 {
  max-width: none;
  margin-inline: auto;
}
.hero--statement .hero-lede { max-width: 554px; margin-bottom: 2rem; }

/* "oportunidades" is 13 characters — at the shared mobile hero size it runs
   past a phone-width shell, so this hero steps down below the breakpoint. */
@media (max-width: 720px) {
  .hero--statement h1 { font-size: clamp(2.4rem, 10.5vw, 4rem); }
  .hero--statement .eyebrow { font-size: .95rem; }
}

/* Results infographic, synced with the Figma frame (node 2:361). The type scale
   there is: 24px uppercase labels, 128px figures, 24px panel title, 10.88px bar
   and caption text, 33.6px growth values — all in the light/regular weights.
   Sizes are clamped so they hold their Figma value at the 1280px shell width
   and step down on narrow screens. */
.result-large span {
  font: 400 clamp(.83rem, 1.5vw, 1.18rem)/.96 var(--type-sans);
  letter-spacing: .024em;
  text-transform: uppercase;
}
.result-large strong {
  /* Three quarters of the Figma frame's 128px: 96px at the 1280px shell. */
  font-size: clamp(2.625rem, 7.125vw, 6rem);
  font-weight: 300;
  letter-spacing: -.055em;
}

/* The frame puts the panel title in white at the same 24px as the tile labels,
   and keeps the mono only for the "Mes 0 → Mes 4" range. */
.growth-label { align-items: flex-start; }
.growth-label > span {
  color: var(--paper);
  font: 400 clamp(.83rem, 1.5vw, 1.18rem)/.96 var(--type-sans);
  letter-spacing: .024em;
  text-transform: uppercase;
}
.growth-bars { padding-bottom: 9px; }
.growth-bar span {
  color: var(--hero-ink);
  font: 500 .68rem/1 var(--type-sans);
  letter-spacing: 0;
}
.growth-values strong { font-weight: 300; }
.growth-values span {
  font: 500 .68rem/1 var(--type-sans);
  letter-spacing: 0;
}

/* Below the mobile breakpoint the clamp bottoms out at .83rem, which reads as
   fine print next to the 96px figures. Doubled for small screens only. */
@media (max-width: 720px) {
  .result-large span,
  .growth-label > span {
    font-size: 1.66rem;
  }
  /* The figures bottom out at 2.625rem down here for the same reason. */
  .result-large strong {
    font-size: 5.25rem;
  }
}

/* Portafolio grid: the hairlines are the 1px gaps and the outer border showing
   the grid's own background through, so both drop to a 10% ink instead of the
   solid --rule navy. Hover is carried by the logo itself — it sits muted and
   comes up to full strength — rather than by swapping the cell's background. */
.startup-grid {
  background: none;
  border: none;
}
.startup-logo {
  background: var(--paper);
  transition: none;
}
.startup-logo img {
  filter: grayscale(1) contrast(1.1);
  opacity: .7;
  transition: opacity 180ms var(--ease), filter 180ms var(--ease);
}
.startup-logo:hover,
.startup-logo:focus-visible {
  background: var(--paper);
  transform: none;
}
.startup-logo:hover img,
.startup-logo:focus-visible img {
  filter: grayscale(0) contrast(1);
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .startup-logo img { transition: none; }
}

/* --- PDF corrections (p.5-7) --- */

/* Origin story between the proof strip and the pull quote: heading left,
   supporting copy right, mirroring .program-grid's editorial split. */
/* Opaque + raised, the way .proof-strip and .quote are: the hero behind it is
   full-height and shows through any transparent section stacked over it. */
.origin {
  position: relative;
  z-index: 2;
  background: var(--paper);
}
.origin-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 48px;
  align-items: start;
}
.origin-grid h2 {
  max-width: 16ch;
  margin: 0;
  font-size: clamp(2.2rem, 3.2vw, 3.4rem);
  font-weight: 300;
  line-height: 1.02;
  letter-spacing: -.045em;
}
.origin-lede {
  margin: 0;
  color: #536071;
  font: 400 1rem/1.7 var(--type-sans);
}

/* Quote section as a dark container, matching .section--ink's palette. Set
   here because .quote declares its own light colors later in the cascade. */
.quote {
  color: var(--paper);
  background: var(--carbon);
}
.quote p { color: var(--paper); }
.quote-mark { stroke: var(--paper); }

/* Evidencia: eyebrow, title and portfolio link stack in the left column; the
   three stat tiles sit in the column beside them. No growth chart. */
.results-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr);
  gap: 48px;
  align-items: center;
}
.results-intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.results-intro h2 {
  max-width: 11ch;
  margin: 24px 0 0;
  font-size: clamp(2.6rem, 4vw, 4.4rem);
  font-weight: 300;
  line-height: .94;
  letter-spacing: -.055em;
}
.results-intro .results-portfolio-link { margin-top: 32px; }

.results-layout { grid-template-columns: 1fr; }
.results-primary { grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (max-width: 900px) {
  .results-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .results-intro h2 { max-width: none; }
}
@media (max-width: 720px) {
  .origin-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .origin-grid h2 { max-width: none; }
  .results-primary { grid-template-columns: 1fr; }
}
