@font-face{font-family:Bebas Neue;font-style:normal;font-display:swap;font-weight:400;src:url(../fonts/bebas-neue-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bebas Neue;font-style:normal;font-display:swap;font-weight:400;src:url(../fonts/bebas-neue-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(../fonts/lato-latin-ext-400-normal.woff2) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(../fonts/lato-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(../fonts/lato-latin-ext-700-normal.woff2) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(../fonts/lato-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:900;src:url(../fonts/lato-latin-ext-900-normal.woff2) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:900;src:url(../fonts/lato-latin-900-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:900;src:url(../fonts/work-sans-latin-ext-900-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:900;src:url(../fonts/work-sans-latin-900-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--green-50: #DFF7DF;--green-100: #C3EDC2;--green-200: #9BDB9A;--green-300: #79C777;--green-400: #5FB25D;--green-500: #4AA148;--green-600: #398A37;--green-700: #2B7329;--green-800: #1F5C1D;--green-900: #144513;--n-0: #FFFFFF;--n-50: #FAFAFA;--n-100: #F2F3F2;--n-200: #EDEDED;--n-300: #E5E5E5;--n-400: #C9CBC9;--n-500: #9AA09A;--n-600: #6B716B;--n-700: #545454;--n-800: #3A3D3A;--n-900: #1A1C1A;--color-brand: var(--green-500);--color-interactive: var(--green-700);--color-interactive-hover: var(--green-800);--color-text: var(--n-900);--color-text-muted: var(--n-600);--color-canvas: var(--n-50);--color-surface: var(--n-0);--color-surface-soft: var(--green-50);--color-border: var(--n-300);--color-on-brand: var(--n-0);--font-display: "Bebas Neue", "Arial Narrow", sans-serif;--font-body: "Lato", -apple-system, "Segoe UI", sans-serif;--font-wordmark: "Work Sans", var(--font-body);--text-display: clamp(2.625rem, 1.85rem + 3.9vw, 4.25rem);--text-h1: clamp(2.125rem, 1.65rem + 2.4vw, 3.25rem);--text-h2: clamp(1.75rem, 1.45rem + 1.5vw, 2.5rem);--text-h3: clamp(1.3125rem, 1.22rem + .5vw, 1.625rem);--text-lead: clamp(1.1875rem, 1.14rem + .2vw, 1.3125rem);--text-body: clamp(1.0625rem, 1.04rem + .1vw, 1.125rem);--text-small: clamp(.875rem, .86rem + .1vw, .9375rem);--lh-display: .95;--lh-heading: 1.05;--lh-body: 1.6;--track-display: .02em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-9: 6rem;--container: 71.25rem;--prose: 65ch;--gutter: 1.25rem;--tap-min: 2.75rem;--radius-control: .5rem;--radius-card: .75rem;--radius-band: 0 0 2.1875rem 2.1875rem;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08);--reveal-duration: .65s;--reveal-ease: cubic-bezier(.22, .61, .36, 1);--reveal-travel: 18px;--motion-ui: .18s cubic-bezier(.4, 0, .2, 1)}@media(min-width:30rem){:root{--gutter: 1.5rem}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;font-family:var(--font-body);font-size:var(--text-body);line-height:var(--lh-body);color:var(--color-text);background:var(--color-canvas);-webkit-font-smoothing:antialiased}img,picture,svg,video{display:block;max-width:100%}h1,h2{font-family:var(--font-display);font-weight:400;letter-spacing:var(--track-display);line-height:var(--lh-heading);margin:0 0 var(--space-4);text-wrap:balance}h1{font-size:var(--text-h1)}h2{font-size:var(--text-h2)}h3,h4{font-family:var(--font-body);font-weight:900;line-height:1.25;margin:0 0 var(--space-3);text-wrap:balance}h3{font-size:var(--text-h3)}h4{font-size:var(--text-body)}p{margin:0 0 var(--space-4)}.lead{font-size:var(--text-lead);line-height:1.45;color:var(--color-text)}.small{font-size:var(--text-small);color:var(--color-text-muted)}a{color:var(--color-interactive);text-underline-offset:2px}a:hover{color:var(--color-interactive-hover)}:focus-visible{outline:3px solid var(--color-interactive);outline-offset:2px;border-radius:2px}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.prose{max-width:var(--prose)}.section{padding-block:var(--space-6)}@media(min-width:48rem){.section{padding-block:var(--space-8)}}@media(min-width:64rem){.section{padding-block:var(--space-9)}}.section--tight{padding-block:var(--space-6)}.section--soft{background:var(--color-surface-soft)}.section--white{background:var(--color-surface)}.stack>*+*{margin-top:var(--space-4)}.skip-link{position:absolute;left:-9999px;top:0;background:var(--color-interactive);color:#fff;padding:var(--space-3) var(--space-4);z-index:999}.skip-link:focus{left:0}.band{background:var(--color-brand);color:var(--color-on-brand);border-radius:var(--radius-band);padding-block:var(--space-5)}.band h1,.band h2{color:var(--color-on-brand);margin-bottom:0}.band p,.band li{color:var(--n-900)}.band a:not(.btn){color:var(--n-900)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap-min);padding:var(--space-3) var(--space-6);font-family:var(--font-body);font-size:1rem;font-weight:700;line-height:1.2;text-decoration:none;border-radius:var(--radius-control);border:2px solid transparent;cursor:pointer;transition:background-color var(--motion-ui),color var(--motion-ui),border-color var(--motion-ui)}.btn--primary{background:var(--color-interactive);color:#fff}.btn--primary:hover{background:var(--color-interactive-hover);color:#fff}.btn--secondary{background:var(--color-surface);color:var(--color-interactive);border-color:var(--color-interactive)}.btn--secondary:hover{background:var(--green-50);color:var(--color-interactive-hover)}.band .btn--primary{background:#fff;color:var(--green-800)}.band .btn--primary:hover{background:var(--green-50);color:var(--green-900)}.grid{display:grid;gap:var(--space-5)}.grid--2,.grid--3{grid-template-columns:1fr}@media(min-width:45rem){.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:45rem){.grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:var(--space-5);box-shadow:var(--shadow-sm)}.full-bleed{width:100vw;margin-inline:calc(50% - 50vw);max-width:none}.full-bleed img{width:100%;height:auto;aspect-ratio:4 / 3;object-fit:cover}@media(min-width:48rem){.full-bleed{width:auto;margin-inline:0;border-radius:var(--radius-card);overflow:hidden}.full-bleed img{aspect-ratio:16 / 9}}.portrait{aspect-ratio:1;width:clamp(9rem,42vw,15rem);border-radius:50%;overflow:hidden;margin-inline:auto;box-shadow:0 0 0 6px var(--green-50),var(--shadow-md)}.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 22%}.img-placeholder{display:grid;place-items:center;background:var(--green-50);color:var(--green-800);font-size:var(--text-small);font-weight:700;text-align:center;padding:var(--space-4)}.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transform:translateY(var(--reveal-travel));transition:opacity var(--reveal-duration) var(--reveal-ease),transform var(--reveal-duration) var(--reveal-ease);will-change:opacity,transform}.js .reveal.is-visible{opacity:1;transform:none}.reveal-d1{transition-delay:.1s}.reveal-d2{transition-delay:.2s}.reveal-d3{transition-delay:.3s}.reveal-d4{transition-delay:.4s}@media(prefers-reduced-motion:reduce){.js .reveal,.reveal{opacity:1!important;transform:none!important;transition:none!important}}@media print{.js .reveal{opacity:1!important;transform:none!important}}.logo{display:inline-flex;align-items:baseline;font-family:var(--font-wordmark);font-weight:900;font-size:clamp(1.125rem,3.4vw,1.75rem);letter-spacing:.02em;line-height:1;color:var(--color-brand);white-space:nowrap}.logo__divider{font-weight:400;margin-inline:.32em;color:var(--color-brand)}.logo__tagline{font-family:var(--font-display);font-weight:400;font-size:.86em;letter-spacing:.045em;color:var(--n-700)}@media(max-width:40rem){.logo{flex-direction:column;align-items:flex-start;white-space:normal}.logo__divider{display:none}.logo__tagline{font-size:.42em;letter-spacing:.14em;margin-top:.35em}}.site-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:50}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:4rem}.site-header__logo{text-decoration:none;display:inline-flex;align-items:center;min-height:var(--tap-min)}.nav-button{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--tap-min);min-width:var(--tap-min);padding:var(--space-2) var(--space-3);font-size:var(--text-small);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text);cursor:pointer;border:1px solid var(--color-border);border-radius:var(--radius-control)}.nav-button__bars,.nav-button__bars:before,.nav-button__bars:after{display:block;width:18px;height:2px;background:currentColor;border-radius:1px}.nav-button__bars{position:relative}.nav-button__bars:before,.nav-button__bars:after{content:"";position:absolute;left:0}.nav-button__bars:before{top:-6px}.nav-button__bars:after{top:6px}.site-nav{display:none}.nav-toggle:checked~.site-nav{display:block}.site-nav__list{list-style:none;margin:0;padding:var(--space-4) 0 var(--space-5);position:absolute;left:0;right:0;top:100%;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-1);box-shadow:var(--shadow-md)}.site-nav__list a:not(.btn){display:flex;align-items:center;min-height:var(--tap-min);padding:var(--space-2) var(--gutter);font-size:1rem;font-weight:700;color:var(--color-text);text-decoration:none}.site-nav__list a[aria-current=page]{color:var(--color-interactive)}.site-nav__cta{padding:var(--space-3) var(--gutter) 0}.site-nav__cta .btn{width:100%}@media(min-width:56rem){.nav-button{display:none}.site-nav{display:block}.site-nav__list{position:static;flex-direction:row;align-items:center;gap:var(--space-2);padding:0;border:0;box-shadow:none}.site-nav__list a:not(.btn){padding:var(--space-2) var(--space-3);font-size:var(--text-small)}.site-nav__cta{padding:0 0 0 var(--space-3)}.site-nav__cta .btn{width:auto}}.site-footer{margin-top:var(--space-8)}.footer-cta{display:flex;flex-direction:column;gap:var(--space-5);align-items:flex-start;padding:var(--space-6) var(--gutter);margin-inline:auto}.footer-cta h2{margin-bottom:var(--space-2)}.footer-cta__sub{margin:0;max-width:46ch}@media(min-width:48rem){.footer-cta{flex-direction:row;align-items:center;justify-content:space-between;gap:var(--space-7);padding:var(--space-7) var(--space-7)}.footer-cta .btn{flex:none}}.site-footer__meta{display:grid;gap:var(--space-5);padding-block:var(--space-7) var(--space-4)}@media(min-width:48rem){.site-footer__meta{grid-template-columns:2fr 1fr 1fr}}.site-footer__brand{font-weight:900;margin-bottom:var(--space-2)}.site-footer__contact,.site-footer__nav{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;font-size:var(--text-small)}.site-footer__contact a,.site-footer__nav a{display:inline-flex;align-items:center;min-height:var(--tap-min);padding-inline:var(--space-2);margin-inline:calc(var(--space-2) * -1)}.site-footer__contact a{text-transform:none}.site-footer__legal{border-top:1px solid var(--color-border);padding-block:var(--space-4) var(--space-6)}.site-footer__legal p{margin:0}.about-hero{align-items:center}.stats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5) var(--space-4);text-align:center}@media(min-width:48rem){.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6)}}.stats__item{display:flex;flex-direction:column;align-items:center}.stats__figure{font-family:var(--font-display);font-weight:400;font-size:clamp(2.75rem,9vw,4.5rem);line-height:.9;letter-spacing:.02em;color:var(--color-brand);font-variant-numeric:tabular-nums}.stats__label{margin-top:var(--space-2);font-size:var(--text-small);color:var(--color-text-muted);text-wrap:balance;max-width:22ch}.stats__note{display:block;margin-top:var(--space-1);font-size:.85em;color:var(--n-500)}.testimonial{display:flex;flex-direction:column;justify-content:space-between}.testimonial__quote{margin:0 0 var(--space-4)}.testimonial__quote p{margin:0}.testimonial__quote p:before{content:"“"}.testimonial__quote p:after{content:"”"}.testimonial__by{font-size:var(--text-small);color:var(--color-text-muted);border-top:1px solid var(--color-border);padding-top:var(--space-3)}.testimonial__by cite{font-style:normal;font-weight:700;color:var(--color-text)}.testimonial__school{display:block;margin-top:var(--space-1)}.hero__lead{max-width:var(--prose);margin-bottom:var(--space-5)}.intro{align-items:center}.approach-heading{text-align:center;margin-bottom:var(--space-6)}.approach-heading h2,.approach-grid .card p{margin:0}.college-card{padding:var(--space-6)}.college-list{column-count:1;column-gap:var(--space-7);list-style:none;margin:0;padding:0}@media(min-width:30rem){.college-list{column-count:2}}@media(min-width:48rem){.college-list{column-count:3}}@media(min-width:64rem){.college-list{column-count:4}}.college-list li{break-inside:avoid;padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);font-size:var(--text-small);line-height:1.4}.college-list li:first-child{padding-top:0}.faq summary{font-family:var(--font-body);font-weight:900;font-size:var(--text-h3);cursor:pointer}.faq details p{margin-top:var(--space-4);margin-bottom:0}

/* ==========================================================================
   Overrides added after the first build. Everything below is plain CSS you
   can edit by hand.
   ========================================================================== */

/* A band only gets bottom-only rounding when it sits flush against something
   above it, like the hero under the header. A band floating in white space
   needs all four corners, otherwise it reads as a shape that closes without
   ever opening. */
.footer-cta,
.approach-heading {
  border-radius: 2.1875rem;
}

/* Full-bleed campus photo above the hero band, matching the existing site. */
.hero-photo {
  width: 100%;
  height: clamp(13.75rem, 34vw, 28rem);
  overflow: hidden;
  background: var(--n-200);
}
.hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 55%;
}

/* The hero band now hangs off the photo, so keep its bottom-only radius. */
.hero { border-radius: var(--radius-band); }

/* Portrait images inherit the circular frame from .portrait. */
.portrait img { display: block; }

/* ==========================================================================
   Hero: Dana's face and voice at the top
   ========================================================================== */

.hero__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-5);
}

.hero__portrait {
  flex: none;
  --portrait-size: clamp(6.5rem, 26vw, 9rem);
  width: var(--portrait-size);
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 0 0 5px #fff, var(--shadow-md);
}
.hero__portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 18%;
}

/* The headline reads as something Dana says, so it is set in quotes with her
   name under it. It stays an h1 for search and answer engines. */
.hero__quote {
  margin-bottom: var(--space-2);
  text-wrap: balance;
}
.hero__quote::before { content: '\201C'; }
.hero__quote::after  { content: '\201D'; }

.hero__attrib {
  font-size: var(--text-small);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--n-900);
  opacity: 0.72;
  margin-bottom: var(--space-5);
}

.hero__lead { margin-inline: auto; }

@media (min-width: 48rem) {
  .hero__inner {
    flex-direction: row;
    align-items: center;
    text-align: left;
    gap: var(--space-7);
  }
  .hero__body { flex: 1; }
  .hero__lead { margin-inline: 0; }
}

/* Campus image in the section below the hero. Replace with a second photo of
   Dana when one is available. */
.about-media {
  border-radius: var(--radius-card);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}
.about-media img {
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* ==========================================================================
   Mobile: buttons sit centered and share one width instead of hugging content
   ========================================================================== */

@media (max-width: 47.9375rem) {
  .btn {
    display: flex;
    width: 100%;
    max-width: 19rem;
    margin-inline: auto;
  }
  .footer-cta { text-align: center; }
  .footer-cta__sub { margin-inline: auto; }
}

/* ==========================================================================
   Header fixes
   ========================================================================== */

/* When the drawer opened, .site-nav switched from display:none to block and
   became a third flex item, shoving the MENU button toward the center. Taking
   the nav out of flow entirely keeps the button pinned right, open or closed. */
.site-header__inner { position: relative; }

.site-nav {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
}

/* The tagline was sized as a fraction of the wordmark, which left it at about
   7px on a phone. Give it a real, readable size instead. */
.logo__tagline {
  font-size: 0.8125rem;
  letter-spacing: 0.1em;
}

@media (max-width: 40rem) {
  .logo { font-size: 1.375rem; }
  .logo__tagline {
    font-size: 0.75rem;
    letter-spacing: 0.09em;
    margin-top: 0.2em;
  }
}

@media (min-width: 56rem) {
  /* Back in the flow on desktop, where the nav sits inline in the bar. */
  .site-nav { position: static; }
  .logo__tagline { font-size: 0.86em; letter-spacing: 0.045em; }
}

/* ==========================================================================
   CAMPUS framework cards
   ========================================================================== */

.framework-card {
  display: block;
  padding: 0;
  overflow: hidden;
}



.framework-card h3 { margin-bottom: var(--space-2); }
.framework-card p { margin: 0; }

/* Longer approach heading now carries both the description and the framework
   name, so it needs to wrap gracefully and sit on two lines on narrow screens. */
.approach-heading h2 {
  text-wrap: balance;
  line-height: 1.1;
}
.approach-heading__name { white-space: nowrap; }

@media (max-width: 47.9375rem) {
  .approach-heading { padding-inline: var(--space-4); }
  .approach-heading__name { white-space: normal; }
}

/* ==========================================================================
   Mobile hero: the portrait straddles the photo and the green band,
   three quarters in the photo, one quarter in the green.
   ========================================================================== */

.hero__portrait { --portrait-size: clamp(6.5rem, 26vw, 9rem); }

@media (max-width: 47.9375rem) {
  /* Drop the section's top padding so the negative margin below is measured
     from the exact boundary between the photo and the band. */
  .hero { padding-top: 0; }

  .hero__portrait {
    margin-top: calc(var(--portrait-size) * -0.75);
    position: relative;
    z-index: 2;
  }
}

/* ==========================================================================
   C.A.M.P.U.S. cards with campus photography
   The photo sits at the top in greyscale, matching the treatment on her
   existing site, with the letter overlapping the bottom edge so the acronym
   still reads down the grid.
   ========================================================================== */

.framework-card__media {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}
.framework-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.12) brightness(1.02);
  transition: filter var(--motion-ui), transform var(--motion-ui);
}

/* Letter badge straddling the photo and the card body. */
.framework-card__letter {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  margin: -1.5rem 0 0 var(--space-5);
  border: 0;
  border-radius: 50%;
  background: var(--color-surface);
  box-shadow: var(--shadow-md);
  font-family: var(--font-display);
  font-size: 1.875rem;
  line-height: 1;
  padding: 0.15em 0 0;
  color: var(--color-brand);
  text-align: center;
}

.framework-card > div:not(.framework-card__media) {
  padding: var(--space-3) var(--space-5) var(--space-5);
}
.framework-card h3 { margin-bottom: var(--space-2); }
.framework-card p { margin: 0; }

/* ==========================================================================
   Desktop hero balance
   The portrait was hugging the container edge while the text ran nearly to the
   opposite edge, so the two sides read as unequal. Give the band its own inner
   padding, size the portrait up, and cap the text column.
   ========================================================================== */

@media (min-width: 48rem) {
  .hero__inner {
    padding-inline: var(--space-7);
    gap: var(--space-7);
    align-items: center;
  }
  .hero__portrait { --portrait-size: 11.5rem; }
  .hero__lead { max-width: 40rem; }
}

@media (min-width: 75rem) {
  .hero__inner { padding-inline: var(--space-8); }
}

/* Three stats now, so give them a row of their own on wider screens. */
@media (min-width: 48rem) {
  .stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Booking hands off to a hosted HoneyBook form, so this is a link, not an embed. */
.cta-block__alt { margin-top: var(--space-4); }

/* Card photography is pure black and white. No color cast, no green wash:
   the brand color comes from the letter badge and the band, not the images. */
.framework-card__media img {
  filter: grayscale(1) contrast(1.12);
}
.framework-card:hover .framework-card__media img {
  filter: grayscale(1) contrast(1.18);
}

/* The card border was drawing a gray hairline around the photo. Drop it and let
   the shadow define the card, so the image runs to the card's rounded edge and
   the letter badge reads as sitting on top of it. */
.framework-card {
  border: 0;
  box-shadow: var(--shadow-md);
}
.framework-card__media {
  margin: 0;
  border-radius: 0;
}
.framework-card__media img {
  display: block;
  width: 100%;
  height: 100%;
}

/* Badge overlaps the photo by half its height. */
.framework-card__letter {
  margin-top: -1.5rem;
  margin-left: var(--space-5);
}

/* Belt and braces: the photo never takes the text block's padding. */
.framework-card__media { padding: 0; }

/* ==========================================================================
   Footer: brand column, link columns, social, then a legal bar
   ========================================================================== */

.site-footer__cols {
  display: grid;
  gap: var(--space-6);
  padding-block: var(--space-7) var(--space-6);
  grid-template-columns: 1fr;
}
@media (min-width: 40rem) { .site-footer__cols { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 64rem) { .site-footer__cols { grid-template-columns: 2fr 1fr 1.2fr 1fr; gap: var(--space-7); } }

.site-footer__brand {
  font-family: var(--font-wordmark);
  font-weight: 900;
  font-size: 1.25rem;
  letter-spacing: 0.02em;
  color: var(--color-brand);
  margin-bottom: var(--space-1);
}
.site-footer__tagline {
  font-family: var(--font-display);
  font-size: 1.125rem;
  letter-spacing: 0.045em;
  color: var(--n-700);
  margin-bottom: var(--space-3);
}

.site-footer__heading {
  font-family: var(--font-body);
  font-weight: 900;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--color-text);
  margin-bottom: var(--space-3);
}

.site-footer__col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: var(--text-small);
}
.site-footer__col a {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-height: var(--tap-min);
  padding-inline: var(--space-2);
  margin-inline: calc(var(--space-2) * -1);
  color: var(--color-text-muted);
  text-decoration: none;
}
.site-footer__col a:hover { color: var(--color-interactive); text-decoration: underline; }

.site-footer__social svg {
  width: 1.125rem;
  height: 1.125rem;
  fill: currentColor;
  flex: none;
}

/* Legal bar */
.site-footer__legal {
  border-top: 1px solid var(--color-border);
  padding-block: var(--space-5) var(--space-6);
  display: grid;
  gap: var(--space-3);
}
.site-footer__legal p { margin: 0; }
.site-footer__legal-links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  font-size: var(--text-small);
}
.site-footer__legal-links a {
  display: inline-flex;
  align-items: center;
  min-height: var(--tap-min);
  color: var(--color-text-muted);
}

@media (min-width: 48rem) {
  .site-footer__legal {
    grid-template-columns: 1fr auto;
    align-items: center;
  }
}

/* ---------------------------------------------------------------------------
   Legal pages (privacy, terms)
   Long-form prose. Headings need air above them so the page scans as sections
   rather than one wall of text, and the review notice reads as a flag, not body
   copy.
--------------------------------------------------------------------------- */
.legal { max-width: var(--prose); }
.legal h2 {
  margin-top: var(--space-6);
  font-size: var(--text-h3);
}
.legal h2:first-of-type { margin-top: var(--space-5); }
.legal p { margin-bottom: var(--space-4); }
.legal ul { margin: 0 0 var(--space-4) var(--space-5); }
.legal li { margin-bottom: var(--space-2); }
.legal__updated { color: var(--color-text-muted); margin-bottom: var(--space-5); }

.legal__notice {
  border-left: 4px solid var(--color-interactive);
  background: var(--color-surface-soft);
  padding: var(--space-4) var(--space-5);
  border-radius: 0 var(--radius-control) var(--radius-control) 0;
  margin-bottom: var(--space-6);
}
.legal__notice p:last-child { margin-bottom: 0; }

/* ---------------------------------------------------------------------------
   Footer on small screens
   Eleven stacked links plus a brand block ran well over a full phone screen.
   Pair the two nav columns, turn the social list into one row of icons, and
   let the legal bar wrap on a single line.
--------------------------------------------------------------------------- */
@media (max-width: 39.9375rem) {
  .site-footer__cols {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--space-5);
    row-gap: var(--space-5);
    padding-block: var(--space-6) var(--space-5);
  }
  .site-footer__brand-col { grid-column: 1 / -1; }
  /* The site itself says this. In the footer it is just three more lines. */
  .site-footer__brand-col .small { display: none; }
  .site-footer__tagline { margin-bottom: 0; }

  .site-footer__col:last-child { grid-column: 1 / -1; }
  .site-footer__social {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
  }
  .site-footer__social a {
    justify-content: center;
    width: var(--tap-min);
    padding-inline: 0;
    margin-inline: 0;
  }
  .site-footer__social svg { width: 1.375rem; height: 1.375rem; }

  .site-footer__legal {
    padding-block: var(--space-4) var(--space-5);
    gap: var(--space-2);
  }
  .site-footer__legal-links a { min-height: var(--tap-min); }
}

/* Label stays in the accessibility tree; only the pixels go away. */
@media (max-width: 39.9375rem) {
  .site-footer__social-label {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }
}

/* ---------------------------------------------------------------------------
   Legal pages, wide screens
   A 65ch column looked stranded on a 1140px page. Use the site container so the
   page lines up with the header and footer, and put the section headings in a
   left rail. The reading measure stays sane; the layout fills the width.
--------------------------------------------------------------------------- */
@media (min-width: 64rem) {
  .legal {
    max-width: var(--container);
    display: grid;
    grid-template-columns: 15rem minmax(0, 1fr);
    column-gap: var(--space-7);
    align-items: start;
  }
  .legal > * { grid-column: 2; }
  .legal > h1,
  .legal > .legal__updated { grid-column: 1 / -1; }
  .legal > h2 {
    grid-column: 1;
    margin-top: 0;
    padding-top: var(--space-2);
  }
  .legal > h2:first-of-type { margin-top: 0; }
  .legal > * + h2 { margin-top: var(--space-5); }
}

/* ---------------------------------------------------------------------------
   Portrait in the closing call to action
   A face makes "let's chat" read as a person rather than a form. White ring so
   the circle separates from the green, and it sits above the text on phones.
--------------------------------------------------------------------------- */
.footer-cta__portrait {
  flex: none;
  width: 5rem;
  height: 5rem;
  border-radius: 50%;
  object-fit: cover;
  object-position: 50% 22%;
  border: 3px solid var(--color-on-brand);
  box-shadow: var(--shadow-md);
  background: var(--color-surface);
}
@media (min-width: 48rem) {
  .footer-cta__portrait { width: 6.5rem; height: 6.5rem; border-width: 4px; }
  .footer-cta__text { flex: 1 1 auto; }
  .footer-cta { gap: var(--space-6); }
}
@media (max-width: 47.9375rem) {
  /* The band centres its text on phones, so a left-hugging circle looks adrift. */
  .footer-cta { align-items: center; }
  .footer-cta__portrait { align-self: center; }
}

/* The legal bar is the quietest line on the page. Size it that way, and keep
   the tap targets at 44px so the links stay easy to hit on a phone.
   #6B716B on the footer surface is 4.7:1, so it still clears AA at this size. */
.site-footer__legal p,
.site-footer__legal-links { font-size: 0.8125rem; }

/* Footer wordmark matches the header lockup: all caps. */
.site-footer__brand { text-transform: uppercase; letter-spacing: 0.03em; }

/* ---------------------------------------------------------------------------
   Figures
   The stats are the load-bearing proof on the page, so they get their own face:
   Poppins 800, geometric and heavy, circular bowls. Deliberately not Bebas.
   Subset to digits and punctuation only, so the whole file is 1.3KB.
--------------------------------------------------------------------------- */
@font-face {
  font-family: 'Poppins Figures';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/poppins-figures-800.woff2) format('woff2');
  unicode-range: U+0030-0039, U+002B, U+003A, U+0025, U+002E, U+002C, U+002F, U+002D;
}
:root { --font-figure: 'Poppins Figures', 'Work Sans', system-ui, sans-serif; }

.stats__figure {
  font-family: var(--font-figure);
  font-weight: 800;
  font-size: clamp(3rem, 10vw, 5rem);
  letter-spacing: -0.02em;
  line-height: 0.95;
}

/* ---------------------------------------------------------------------------
   Photo cards, media splits and quote bands
   The inner pages were pure text. These give them pictures without inventing a
   new visual language: same card radius, same shadow, same black and white
   treatment as the CAMPUS cards on the home page.
--------------------------------------------------------------------------- */
.card--photo {
  padding: 0;
  overflow: hidden;
  border: 0;
  box-shadow: var(--shadow-md);
  display: flex;
  flex-direction: column;
}
.card__media {
  margin: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--n-200);
}
.card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.12);
  transition: filter 0.3s ease;
}
.card--photo:hover .card__media img { filter: grayscale(1) contrast(1.2); }
.card__body {
  padding: var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  flex: 1 1 auto;
}
.card__body > * { margin: 0; }
.card__body .btn { margin-top: auto; align-self: flex-start; }

/* Text one side, picture the other. Picture first in the markup so it leads on
   a phone, text first on a wide screen where reading order matters more. */
.split {
  display: grid;
  gap: var(--space-5);
  align-items: center;
}
@media (min-width: 48rem) {
  .split { grid-template-columns: 1fr 1fr; gap: var(--space-7); }
  .split--text-first .split__media { order: 2; }
}
.split__media {
  border-radius: var(--radius-card);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}
.split__media img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  filter: grayscale(1) contrast(1.1);
}

/* One quote, given room. Proof lands harder alone than in a grid. */
.quote-band { text-align: center; }
.quote-band blockquote {
  margin: 0 auto;
  max-width: 34ch;
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 4.2vw, 2.25rem);
  line-height: 1.15;
  letter-spacing: 0.01em;
  color: var(--color-on-brand);
}
.quote-band blockquote p { margin: 0; }
.quote-band blockquote p::before { content: "\201C"; }
.quote-band blockquote p::after { content: "\201D"; }
.quote-band figcaption {
  margin-top: var(--space-4);
  font-size: var(--text-small);
  color: var(--n-900);
}
.quote-band cite { font-style: normal; font-weight: 700; }

/* Three short promises. Not a feature list, a reassurance. */
.promises { display: grid; gap: var(--space-5); list-style: none; margin: 0; padding: 0; }
@media (min-width: 48rem) { .promises { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); } }
.promises h3 { margin: 0 0 var(--space-2); font-size: var(--text-h3); }
.promises p { margin: 0; color: var(--color-text-muted); }
.promises li { border-top: 3px solid var(--color-brand); padding-top: var(--space-4); }

/* The width and height attributes on these images map to the height property,
   which beat aspect-ratio and stretched the box. Let the ratio govern. */
.split__media img { height: auto; }

/* Give a single quote room to breathe. */
.quote-band { padding-block: var(--space-7); }
@media (min-width: 48rem) { .quote-band { padding-block: var(--space-8); } }

/* Standalone contact links, not inline in a sentence, so they get real targets. */
.contact-direct { list-style: none; margin: 0; padding: 0; }
.contact-direct a {
  display: inline-flex;
  align-items: center;
  min-height: var(--tap-min);
  font-size: var(--text-lead, 1.0625rem);
  font-weight: 700;
}

/* ---------------------------------------------------------------------------
   Testimonials as a carousel on phones
   Two quotes side by side works on a wide screen. On a phone it forces both
   into columns too narrow to read, so below 48rem the group becomes one card
   at a time on a scroll-snap track. It is a real scroller: with JavaScript off
   or broken, a swipe still works and every quote is still reachable.
--------------------------------------------------------------------------- */
@media (max-width: 47.9375rem) {
  .testimonials {
    display: flex;
    gap: var(--space-4);
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    align-items: stretch;
    padding-bottom: var(--space-2);
    /* Bleed to the screen edge so the next card peeks in and reads as swipeable. */
    margin-inline: calc(var(--gutter) * -1);
    padding-inline: var(--gutter);
  }
  .testimonials::-webkit-scrollbar { display: none; }
  .testimonials > .testimonial {
    flex: 0 0 calc(100% - var(--space-6));
    scroll-snap-align: center;
  }
  /* Off-screen slides never intersect the viewport, so the scroll reveal would
     leave them permanently blank. Inside the carousel, skip the reveal. */
  .js .testimonials .reveal { opacity: 1; transform: none; }
}

.carousel-dots { display: none; }
@media (max-width: 47.9375rem) {
  .carousel-dots {
    display: flex;
    justify-content: center;
    gap: var(--space-1);
    margin-top: var(--space-2);
  }
  .carousel-dots button {
    width: var(--tap-min);
    height: var(--tap-min);
    padding: 0;
    border: 0;
    background: none;
    display: grid;
    place-items: center;
    cursor: pointer;
  }
  .carousel-dots button::before {
    content: "";
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--n-300);
    transition: background 0.2s ease, transform 0.2s ease;
  }
  .carousel-dots button[aria-current="true"]::before {
    background: var(--color-brand);
    transform: scale(1.35);
  }
}

/* ---------------------------------------------------------------------------
   Full width quote band
   A rounded card floating inside the container read as a stray shape. Edge to
   edge with square corners, it reads as a deliberate break in the page.
--------------------------------------------------------------------------- */
.band--full { border-radius: 0; }

/* .band p paints body copy in ink, which is right for a paragraph next to a
   button but wrong for a display quote. At this size white clears 3:1 on the
   brand green, so the quote goes white and the attribution stays in ink. */
.quote-band blockquote p { color: var(--color-on-brand); }
.quote-band figcaption { color: var(--n-900); }

/* figure carries a 40px UA margin. Kill it so the band truly reaches the edge. */
.quote-band { margin: 0; }

/* With the corners gone, the page-top bands need a little more room at the
   bottom so the copy does not sit on the edge. Scoped to the section bands so
   the quote bands keep their own rhythm. */
.section.band--full { padding-block: var(--space-6); }

/* A third surface. The pale green already marks the CAMPUS section, so the FAQ
   needs its own ground to read as a separate block rather than a continuation.
   #E5E5E5: ink text 13.6:1, links 4.65:1, and white cards still sit proud. */
.section--muted { background: var(--n-300); }

/* The legal bar centres on phones. Centering the links alone left them hanging
   under a left-aligned copyright line, so the whole bar goes center. */
@media (max-width: 39.9375rem) {
  .site-footer__legal { justify-items: center; text-align: center; }
  .site-footer__legal-links { justify-content: center; }
}

/* ---------------------------------------------------------------------------
   Bands go dark, text goes light
   Body copy on the bands was ink because white on #4AA148 is only 3.24:1,
   which passes for display sizes and fails for anything smaller. Deepening the
   band to green-700 fixes the cause instead of the symptom: white now measures
   5.85:1 there, so every size on a band can be light.

   The brand green is unchanged everywhere else. Stat figures, the footer
   wordmark and the accent rules still use green-500.
--------------------------------------------------------------------------- */
:root { --color-band: var(--green-700); }

.band { background: var(--color-band); }
.band p,
.band li { color: var(--color-on-brand); }
.band a:not(.btn) { color: var(--color-on-brand); text-decoration: underline; }
.band a:not(.btn):hover { color: var(--green-50); }

.hero__attrib { color: var(--color-on-brand); opacity: 0.82; }
.quote-band figcaption { color: var(--color-on-brand); }
.quote-band cite { color: var(--color-on-brand); }

/* The white button needs a darker label now that the ground is darker. */
.band .btn--primary { background: #fff; color: var(--green-900); }

/* Split images ran tall enough to dwarf the copy beside them. 3:2 keeps the
   picture supporting the text instead of competing with it. */
.split__media img { aspect-ratio: 3 / 2; }

/* ---------------------------------------------------------------------------
   Answer pages
   The block directly under the H1 is the one a retrieval system lifts, so it
   is marked in the markup (data-answer) and set apart visually. Everything
   below it is ordinary prose.
--------------------------------------------------------------------------- */
.answer {
  font-size: var(--text-lead);
  line-height: 1.55;
  background: var(--color-surface-soft);
  border-left: 4px solid var(--color-brand);
  border-radius: 0 var(--radius-control) var(--radius-control) 0;
  padding: var(--space-4) var(--space-5);
  margin-bottom: var(--space-4);
}

.byline {
  font-size: var(--text-small);
  color: var(--color-text-muted);
  margin-bottom: 0;
}
.byline__note { display: block; margin-top: var(--space-1); color: var(--n-500); }

.breadcrumb { margin-bottom: var(--space-4); }
.breadcrumb ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  font-size: 0.8125rem;
  color: var(--color-text-muted);
}
.breadcrumb li + li::before { content: "/"; margin-right: var(--space-2); color: var(--n-400); }
.breadcrumb a { color: var(--color-text-muted); }
.breadcrumb [aria-current="page"] { color: var(--color-text); }

.answer-body h2 { margin-top: var(--space-7); font-size: var(--text-h3); }
.answer-body h2:first-child { margin-top: 0; }
.answer-body p { margin-bottom: var(--space-4); }
.answer-body ul { margin: 0 0 var(--space-5) var(--space-5); }
.answer-body li { margin-bottom: var(--space-3); }

.link-list { list-style: none; margin: 0; padding: 0; }
.link-list a {
  display: inline-flex;
  align-items: center;
  min-height: var(--tap-min);
  padding-block: var(--space-1);
}

/* On a band the breadcrumb sits on green, so it needs the light treatment. */
.band .breadcrumb ol,
.band .breadcrumb a,
.band .breadcrumb [aria-current="page"] { color: var(--color-on-brand); }
.band .breadcrumb li + li::before { color: var(--color-on-brand); opacity: 0.6; }
