:root {
  --ink:#061a3d;
  --green:#0066d6;
  --lime:#c5f331;
  --cream:#f7faff;
  --muted:#53647a;
  --gutter:clamp(22px, 4.5vw, 96px)
}
* {
  box-sizing:border-box
}
body {
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font:16px/1.6 'DM Sans',sans-serif
}
h1,h2,h3,.brand {
  font-family:Manrope,sans-serif;
  line-height:1.08;
  letter-spacing:-.045em
}
h1 {
  font-size:clamp(48px,6.6vw,94px);
  margin:22px 0
}
h2 {
  font-size:clamp(34px,4vw,55px);
  margin:14px 0 24px
}
h3 {
  font-size:23px
}
p {
  color:var(--muted)
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select,textarea {
  font:inherit
}
a,button {
  touch-action:manipulation
}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline:3px solid #0051ab;
  outline-offset:5px
}
button {
  cursor:pointer
}
.wrap {
  width:100%;
  max-width:none;
  margin:auto;
  padding:0 var(--gutter)
}
header {
  background:#f7fafff5;
  position:sticky;
  top:0;
  z-index:20;
  border-bottom:1px solid #dae5f2
}
.nav {
  display:flex;
  align-items:center;
  gap:30px;
  height:92px
}
.brand {
  font-size:25px;
  font-weight:800;
  display:flex;
  align-items:center;
  gap:9px;
  white-space:nowrap
}
.mark {
  background:var(--green);
  color:var(--lime);
  border-radius:11px;
  padding:6px 10px;
  font-size:24px
}
.links {
  display:flex;
  gap:24px;
  align-items:center;
  margin-left:auto;
  font-size:13px;
  font-weight:600
}
.btn {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:18px;
  background:var(--green);
  color:white;
  padding:14px 21px;
  border:0;
  border-radius:7px;
  font-size:14px;
  font-weight:700;
  white-space:nowrap
}
.btn.light {
  background:var(--lime);
  color:var(--ink)
}
.btn.outline {
  border:1px solid #9baec6;
  background:transparent;
  color:var(--ink)
}
.actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px
}
.eyebrow {
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:800
}
.eyebrow:before {
  content:'●';
  color:#009ed9;
  margin-right:10px
}
.hero {
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:60px;
  align-items:center;
  padding:72px 0 65px
}
.hero p {
  max-width:510px;
  font-size:18px
}
.hero h1 span {
  color:var(--green)
}
.fine {
  font-size:12px!important
}
.product-bg {
  background:#e8f4ff;
  border-radius:28px;
  padding:32px 24px 35px;
  position:relative
}
.demo-label {
  font-size:10px;
  letter-spacing:.13em;
  color:#4b6482;
  margin-bottom:12px;
  text-transform:uppercase
}
.product {
  background:white;
  border:1px solid #d5e3f2;
  box-shadow:0 24px 40px #06397613;
  border-radius:14px;
  overflow:hidden;
  font-size:12px
}
.product-top {
  padding:15px 20px;
  border-bottom:1px solid #eaf0f8;
  display:flex;
  justify-content:space-between;
  font-weight:700
}
.profile {
  padding:22px
}
.person {
  display:flex;
  gap:12px;
  align-items:center
}
.avatar {
  border-radius:50%;
  background:#e0ecff;
  font-size:24px;
  width:48px;
  height:48px;
  display:grid;
  place-items:center
}
.person h3 {
  font-size:18px;
  margin:0 0 5px
}
.person p {
  margin:0;
  font-size:11px
}
.goal {
  margin-top:20px;
  padding:17px;
  background:#eef6ff;
  border-radius:9px
}
.goal small {
  font-size:10px;
  letter-spacing:.1em
}
.goal h3 {
  font-size:22px;
  margin:8px 0 15px
}
.progress {
  height:6px;
  background:#d6e7fb;
  border-radius:8px;
  overflow:hidden
}
.progress i {
  display:block;
  height:100%;
  width:68%;
  background:#008ddd
}
.row {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center
}
.skills {
  display:flex;
  gap:6px;
  flex-wrap:wrap
}
.pill {
  font-size:10px;
  padding:5px 8px;
  border-radius:5px;
  background:#e7f3ff;
  color:#124b85
}
.badge {
  margin-top:19px;
  border:1px solid #dce6f3;
  border-radius:8px;
  padding:13px
}
.badge b {
  font-size:12px
}
.opportunity {
  background:var(--green);
  color:white;
  padding:15px 18px;
  margin-top:18px;
  border-radius:8px
}
.opportunity p {
  color:#dbeeff;
  margin:5px 0;
  font-size:11px
}
.floating {
  margin:18px -4px -12px auto;
  background:var(--lime);
  padding:12px 17px;
  border-radius:8px;
  width:max-content;
  font-size:12px;
  font-weight:700
}
.strip {
  border-top:1px solid #d9e5f4;
  border-bottom:1px solid #d9e5f4;
  padding:23px 0
}
.strip .wrap {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center
}
.strip span {
  font-size:12px;
  color:var(--muted)
}
section {
  padding:85px 0
}
.split {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:85px;
  align-items:center
}
.questions {
  padding:0;
  list-style:none
}
.questions li {
  padding:17px 0;
  border-bottom:1px solid #d9e5f4;
  font-size:18px
}
.questions li:before {
  content:'↗';
  margin-right:20px;
  color:var(--green)
}
.dark {
  background:var(--ink);
  color:white
}
.dark p {
  color:#c4d6ed
}
.section-head {
  max-width:680px
}
.steps {
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:12px;
  margin-top:38px
}
.step {
  border-top:1px solid #4b6b96;
  padding-top:19px
}
.step b {
  font-size:14px;
  display:block;
  margin:15px 0 7px
}
.step p {
  font-size:12px
}
.num {
  font-size:11px;
  color:#b9f030
}
.journey {
  background:#eaf3ff;
  border-radius:16px;
  padding:28px
}
.journey h3 {
  margin-top:0
}
.journey-list {
  list-style:none;
  padding:0;
  margin:20px 0 0
}
.journey-list li {
  display:flex;
  gap:14px;
  align-items:center;
  position:relative;
  padding:10px 0;
  font-size:13px
}
.dot {
  display:grid;
  place-items:center;
  border:1px solid #aac4e5;
  border-radius:50%;
  width:28px;
  height:28px;
  background:var(--cream);
  font-size:11px
}
.done .dot {
  background:var(--green);
  color:white
}
.journey-list .current {
  font-weight:bold
}
.tabs {
  display:flex;
  gap:8px;
  margin:25px 0;
  flex-wrap:wrap
}
.tab {
  border:1px solid #b4c7e1;
  color:var(--ink);
  background:transparent;
  border-radius:30px;
  padding:10px 17px;
  font-size:12px
}
.tab.active {
  background:var(--green);
  color:white
}
.cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  margin-top:35px
}
.card {
  border:1px solid #d8e4f2;
  border-radius:12px;
  padding:28px;
  background:#ffffff70
}
.card .icon {
  font-size:26px;
  color:var(--green)
}
.card p {
  font-size:15px
}
.card a {
  font-size:13px;
  font-weight:700
}
.audiences {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px
}
.audience {
  padding:40px;
  border-radius:15px;
  background:#e8f3ff
}
.audience:nth-child(2) {
  background:#fff5da
}
.audience p {
  max-width:430px
}
.checklist {
  list-style:none;
  padding:0
}
.checklist li {
  padding:7px 0;
  font-size:14px
}
.checklist li:before {
  content:'✓';
  margin-right:12px;
  color:var(--green)
}
.cta {
  text-align:center;
  background:var(--lime);
  border-radius:20px;
  padding:64px 30px
}
.cta h2 {
  max-width:800px;
  margin:16px auto
}
.cta p {
  color:#254160
}
.cta .actions {
  justify-content:center
}
footer {
  padding:55px 0 25px
}
.footgrid {
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:35px
}
.footgrid a {
  display:block;
  font-size:13px;
  margin:10px 0;
  color:var(--muted)
}
.footgrid .brand {
  color:var(--ink)
}
.footline {
  border-top:1px solid #d9e5f4;
  margin-top:35px;
  padding-top:20px;
  font-size:11px;
  color:var(--muted);
  display:flex;
  justify-content:space-between
}
.menu {
  display:none
}
.platform-menu {
  position:relative
}
summary {
  cursor:pointer;
  list-style:none
}
.dropdown {
  position:absolute;
  top:30px;
  left:-20px;
  background:white;
  padding:20px;
  width:250px;
  box-shadow:0 12px 25px #06397618;
  border-radius:9px
}
.dropdown a {
  display:block;
  padding:8px;
  font-size:13px
}
.interior {
  padding:65px 0 25px;
  max-width:900px
}
.interior h1 {
  font-size:clamp(45px,5.4vw,75px)
}
.interior p {
  font-size:20px
}
.formbox {
  max-width:720px;
  margin:40px auto;
  background:white;
  border:1px solid #d8e4f2;
  padding:35px;
  border-radius:16px
}
label {
  display:block;
  font-size:13px;
  font-weight:bold;
  margin:17px 0 6px
}
input,textarea,select {
  width:100%;
  padding:12px;
  border:1px solid #afc3de;
  border-radius:6px;
  background:#fbfdff;
  color:var(--ink)
}
textarea {
  min-height:120px
}
.formgrid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px
}
.notice {
  background:#eef6ff;
  border-radius:8px;
  padding:16px;
  font-size:13px
}
.skip {
  position:absolute;
  left:15px;
  top:-100px;
  background:white;
  padding:12px;
  z-index:100
}
.skip:focus {
  top:10px
}
@media(max-width:1100px) {
  .links {
  gap:14px
}
.nav {
  gap:15px
}
.links .optional {
  display:none
}
.wrap {
  padding:0 28px
}
.hero {
  gap:30px
}
.steps {
  grid-template-columns:repeat(4,1fr)
}
}
@media(max-width:760px) {
  .wrap {
  padding:0 22px
}
.nav {
  height:76px;
  justify-content:space-between
}
.brand {
  font-size:22px
}
.menu {
  display:block;
  background:transparent;
  border:1px solid #adc5e2;
  padding:7px 12px;
  border-radius:6px
}
.links {
  display:none;
  position:absolute;
  top:76px;
  left:0;
  right:0;
  background:var(--cream);
  padding:22px;
  flex-direction:column;
  align-items:stretch;
  border-bottom:1px solid #cbdbef
}
.links.open {
  display:flex
}
.links .optional {
  display:block
}
.dropdown {
  position:static;
  box-shadow:none;
  width:100%;
  margin-top:12px
}
.hero {
  grid-template-columns:1fr;
  padding:40px 0;
  gap:35px
}
.hero h1 {
  font-size:57px
}
.hero p {
  font-size:16px
}
.product-bg {
  padding:23px 17px
}
.strip .wrap {
  flex-wrap:wrap;
  justify-content:center;
  text-align:center
}
.strip span {
  width:100%
}
.split,.audiences {
  grid-template-columns:1fr;
  gap:30px
}
section {
  padding:52px 0
}
.cards {
  grid-template-columns:1fr
}
.steps {
  grid-template-columns:repeat(2,1fr)
}
.footgrid {
  grid-template-columns:1fr 1fr
}
.footgrid>div:first-child {
  grid-column:1/-1
}
.formgrid {
  grid-template-columns:1fr
}
.formbox {
  padding:22px
}
.audience {
  padding:28px
}
.cta {
  padding:40px 20px
}
.footline {
  flex-direction:column;
  gap:9px
}
}
@media(min-width:761px) and (max-width:1350px) {
  .links .optional {
  display:none
}
}
/* Learning Lab identity and editorial imagery */
.site-logo {
  display:block;
  width:218px;
  height:auto;
  max-height:74px;
  object-fit:contain
}
.nav>.brand {
  flex-shrink:0
}
.footgrid .site-logo {
  width:245px;
  margin-bottom:20px
}
.line-icon {
  width:27px;
  height:27px;
  flex-shrink:0
}
.step-icon {
  display:flex;
  width:43px;
  height:43px;
  align-items:center;
  justify-content:center;
  border:1px solid #46688e;
  border-radius:12px;
  color:#c5f331;
  margin-bottom:17px
}
.num {
  margin-left:2px
}
.card-icon,.audience-icon {
  width:51px;
  height:51px;
  border-radius:13px;
  display:grid;
  place-items:center;
  background:#e0f0ff;
  color:#0066d6;
  margin-bottom:20px
}
.audience-icon {
  background:#ffffff
}
.avatar {
  background:#e0efff;
  color:#0066d6
}
.visual-stories {
  padding:65px 0 10px
}
.visual-heading {
  align-items:flex-end
}
.visual-heading p {
  max-width:410px;
  margin:0 0 24px
}
.story-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-top:24px
}
.photo-story {
  position:relative;
  height:350px;
  border-radius:15px;
  overflow:hidden;
  display:block;
  background:#073b78
}
.editorial-photo {
  width:100%;
  height:100%;
  display:block;
  object-fit:cover
}
.photo-story:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(transparent 30%,#031b3fe8)
}
.photo-story img {
  transition:transform .4s
}
.photo-story:hover img {
  transform:scale(1.035)
}
.photo-caption {
  position:absolute;
  bottom:25px;
  left:25px;
  right:25px;
  z-index:1;
  color:white
}
.photo-caption small {
  font-size:10px;
  letter-spacing:.17em;
  color:#c5f331
}
.photo-caption h3 {
  max-width:230px;
  font-size:25px;
  line-height:1.15;
  margin:10px 0
}
.photo-caption>span {
  position:absolute;
  right:0;
  bottom:0;
  font-size:25px
}
.audience-photo {
  height:210px;
  width:calc(100% + 80px);
  max-width:none;
  margin:-40px -40px 30px;
  border-radius:15px 15px 0 0
}
.interior-image {
  margin-top:42px;
  height:380px;
  position:relative;
  border-radius:18px;
  overflow:hidden
}
.interior-image img {
  object-position:center 45%
}
.image-note {
  position:absolute;
  bottom:23px;
  left:24px;
  background:#f6fafff2;
  color:#061a3d;
  padding:16px 22px;
  border-radius:11px;
  display:flex;
  align-items:center;
  gap:15px;
  line-height:1.5;
  font-size:14px
}
.product-top>span:first-child {
  color:#0066d6
}
.brand {
  max-width:245px
}
@media(max-width:1150px) and (min-width:761px) {
  .nav {
  gap:18px
}
.links {
  gap:15px
}
.links>a[href="/student-experience/"] {
  display:none
}
.site-logo {
  width:200px
}
}
@media(max-width:760px) {
  .site-logo {
  width:185px;
  max-height:62px
}
.visual-heading {
  display:block
}
.visual-heading p {
  max-width:none
}
.story-grid {
  grid-template-columns:1fr
}
.photo-story {
  height:310px
}
.visual-stories {
  padding:40px 0 0
}
.audience-photo {
  width:calc(100% + 56px);
  margin:-28px -28px 25px;
  height:200px
}
.interior-image {
  height:280px;
  margin-top:28px
}
.image-note {
  left:15px;
  bottom:15px;
  padding:12px 16px
}
.footgrid .site-logo {
  width:225px
}
}
@media(prefers-reduced-motion:reduce) {
  .photo-story img {
  transition:none
}
}
/* Logo-led palette: navy, blue, cyan, lime and warm yellow. */
.hero h1 span {
  color:#0066d6
}
.product-bg {
  background:linear-gradient(140deg,#eaf5ff,#e6f8ff)
}
.progress i {
  background:linear-gradient(90deg,#0066d6,#00aee8)
}
.floating {
  background:#c5f331;
  color:#061a3d
}
.cta {
  background:#eaf5ff;
  border:1px solid #c8e3ff;
  border-top:5px solid #00aee8
}
.cta .btn.outline {
  background:#ffdb26;
  border-color:#ffdb26;
  color:#061a3d
}
.card-icon {
  background:#e0f0ff;
  color:#0066d6
}
.card:nth-child(2) .card-icon {
  background:#e0f7ff;
  color:#006793
}
.card:nth-child(3) .card-icon {
  background:#effacf;
  color:#354b05
}
.btn:hover {
  background:#004fa8
}
.btn.light:hover {
  background:#b4e51c
}
.btn.outline:hover {
  background:#e0edfc;
  color:#061a3d
}
.cta .btn.outline:hover {
  background:#f3cd13
}
.photo-caption small {
  color:#c5f331
}
/* Launch refinements */
:root {
   --green: #0066d6;
}
html {
   scroll-padding-top: 110px;
}
body {
   -webkit-font-smoothing: antialiased;
}
h1, h2, h3 {
   text-wrap: balance;
}
p {
   text-wrap: pretty;
}
img {
   max-width: 100%;
}
.wrap > *, .hero > *, .split > *, .cards > *, .footgrid > * {
   min-width: 0;
}
header {
   backdrop-filter: blur(16px);
}
.nav {
   height: 88px;
   gap: 24px;
}
.site-logo {
   width: 210px;
}
.links {
   gap: 19px;
}
.links > a:not(.btn), summary {
   padding-block: 10px;
}
.links a:hover:not(.btn), .footgrid a:hover {
   color: var(--green);
}
a[aria-current="page"] {
   color: var(--green);
}
.links a[aria-current="page"]:not(.btn) {
   text-decoration: underline;
   text-underline-offset: 6px;
}
summary::-webkit-details-marker {
   display: none;
}
summary span {
   display: inline-block;
   margin-left: 4px;
}
.platform-menu[open] summary span {
   transform: rotate(180deg);
}
.dropdown {
   top: calc(100% + 6px);
   border: 1px solid #d8e4f2;
   padding: 12px;
   width: 265px;
}
.dropdown a {
   border-radius: 5px;
}
.dropdown a:hover {
   background: #eef6ff;
}
.btn {
   min-height: 48px;
   transition: background-color .18s, box-shadow .18s;
}
.btn:focus-visible, .dark a:focus-visible, .dark button:focus-visible {
   outline-color: #00aee8;
}
.hero {
   padding-block: 76px;
   gap: 48px;
}
.hero h1 {
   font-size: clamp(48px, 6.4vw, 86px);
}
.hero .fine {
   letter-spacing: .03em;
   margin-top: 24px;
}
.product-bg {
   border: 1px solid #d4e9fb;
}
.product-top {
   font-size: 11px;
}
.person {
   flex-wrap: wrap;
}
.avatar {
   flex-shrink: 0;
}
.floating {
   max-width: 100%;
   width: fit-content;
}
.visual-stories {
   padding-block: 72px 24px;
}
.photo-story {
   height: 330px;
}
.steps {
   gap: 20px;
}
.step b {
   font-size: 15px;
}
.step p {
   font-size: 13px;
}
.profile-section .split {
   gap: 64px;
}
.cards .card {
   display: flex;
   flex-direction: column;
}
.card h3 {
   line-height: 1.2;
}
.cards .card > a {
   margin-top: auto;
   padding-top: 16px;
   color: var(--green);
}
.audiences .audience {
   display: flex;
   flex-direction: column;
   align-items: flex-start;
   overflow: hidden;
}
.audiences .audience > .btn {
   margin-top: auto;
}
.audience-photo {
   flex-shrink: 0;
}
.formbox {
   margin-block: 40px 80px;
   box-shadow: 0 12px 40px #06397608;
}
.formbox .notice {
   margin-bottom: 22px;
}
#request-result {
   margin-top: 28px;
   border-top: 1px solid #d8e4f2;
   padding-top: 14px;
}
#request-result textarea {
   min-height: 230px;
   margin-bottom: 16px;
}
#request-result:focus {
   outline: none;
}
.footgrid > div > b {
   font-size: 13px;
}
.footgrid a {
   line-height: 1.65;
}
.footline {
   gap: 20px;
}
.menu {
   min-height: 44px;
}
@media (min-width: 1181px) {
   .links .optional {
   display: block;
}
 .links > a[href="/student-experience/"] {
   display: block;
}
}
@media (max-width: 1180px) {
  .nav {
   height: 80px;
   justify-content: space-between;
}
  .menu {
   display: block;
   background: transparent;
   border: 1px solid #adc5e2;
   padding: 8px 16px;
   border-radius: 6px;
}
  .links {
   display: none;
   position: absolute;
   top: 80px;
   left: 0;
   right: 0;
   background: var(--cream);
   padding: 20px 28px 28px;
   flex-direction: column;
   align-items: stretch;
   gap: 4px;
   border-bottom: 1px solid #cbdbef;
   max-height: calc(100dvh - 80px);
   overflow-y: auto;
   box-shadow: 0 20px 30px #061a3d12;
}
  .links.open {
   display: flex;
}
  .links .optional, .links > a[href="/student-experience/"] {
   display: block;
}
  .links > .btn {
   margin-top: 12px;
}
  .dropdown {
   position: static;
   width: 100%;
   box-shadow: none;
   margin-block: 4px 12px;
}
}
@media (max-width: 900px) and (min-width: 761px) {
  .hero {
   gap: 24px;
}
  .hero h1 {
   font-size: 56px;
}
  .hero .product-bg {
   padding: 22px 14px;
}
  .profile {
   padding: 16px;
}
  .split, .profile-section .split {
   gap: 32px;
}
  .footgrid {
   grid-template-columns: 1.5fr 1fr 1fr;
}
  .footgrid > div:first-child {
   grid-column: 1 / -1;
}
}
@media (max-width: 760px) {
  html {
   scroll-padding-top: 94px;
}
  .nav {
   height: 76px;
}
  .links {
   top: 76px;
   max-height: calc(100dvh - 76px);
   padding-inline: 22px;
}
  .site-logo {
   width: 185px;
}
  .hero {
   padding-block: 44px 48px;
   gap: 36px;
}
  .hero h1 {
   font-size: clamp(42px, 10.4vw, 72px);
}
  .hero .product-bg {
   max-width: 540px;
   width: 100%;
   margin-inline: auto;
}
  .visual-stories {
   padding-block: 48px 12px;
}
  .photo-story {
   height: 300px;
}
  .strip b {
   font-size: 13px;
}
  .profile-section .split {
   gap: 32px;
}
  .profile-section .product-bg {
   order: 2;
}
  .audience .btn {
   white-space: normal;
   text-align: left;
}
  .interior h1 {
   font-size: clamp(38px, 8vw, 60px);
   overflow-wrap: anywhere;
}
  .interior p {
   font-size: 18px;
}
  .footline {
   gap: 8px;
}
}
@media (max-width: 380px) {
  .wrap {
   padding-inline: 18px;
}
  .actions {
   flex-direction: column;
   align-items: stretch;
}
  .actions .btn {
   white-space: normal;
}
  .profile {
   padding: 14px;
}
  .person > .pill {
   display: none;
}
  .badge .row {
   flex-wrap: wrap;
   justify-content: flex-start;
}
  .floating {
   font-size: 10px;
   padding: 10px;
   margin-right: 0;
}
  .tabs {
   gap: 6px;
}
  .tab {
   padding: 10px 12px;
}
  .audience {
   padding: 22px;
}
  .audience-photo {
   width: calc(100% + 44px);
   margin: -22px -22px 24px;
}
}
@media (prefers-reduced-motion: reduce) {
   *, *::before, *::after {
   scroll-behavior: auto !important;
   transition: none !important;
}
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.contact-layout {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: 64px;
  align-items: start;
  padding-block: 64px 32px;
}
.contact-layout .interior { padding: 0; }
.contact-layout .interior h1 { font-size: clamp(40px, 4.5vw, 64px); }
.contact-layout .interior-image { height: 290px; margin-top: 32px; }
.contact-layout .formbox { margin: 0 0 40px; width: 100%; }
#email-request { margin: 0 10px 10px 0; }
@media (max-width: 900px) {
  .contact-layout { grid-template-columns: 1fr; gap: 32px; padding-block: 40px; }
  .contact-layout .interior-image { display: none; }
  .contact-layout .formbox { max-width: none; }
}
.hero .person p { font-size: 11px; max-width: none; }
.hero .opportunity p { font-size: 11px; }
.person > div { flex: 1; min-width: 0; }
.person > .pill { flex-shrink: 0; }
@media (max-width: 480px) {
  .person { flex-wrap: nowrap; }
  .person > .pill { display: none; }
  .person h3 { font-size: 16px; }
  .person p { font-size: 10px; }
  .hero .person p { font-size: 10px; }
}

/* Full-width editorial layouts */
.wrap { max-width: none; padding-inline: var(--gutter); }
.split { gap: clamp(32px, 6vw, 120px); }
.split > div > p { max-width: 62ch; }
.page-content { padding-inline: 0; }
.page-content > .interior {
  max-width: none;
  padding: clamp(48px, 6vw, 110px) var(--gutter);
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 18px 7vw;
  align-items: start;
}
.page-content > .interior > .eyebrow { grid-column: 1 / -1; }
.page-content > .interior > h1 { grid-column: 1; grid-row: 2 / 4; margin: 0; max-width: 22ch; }
.page-content > .interior > p { grid-column: 2; margin: 0; max-width: 54ch; }
.page-content > .interior > .actions { grid-column: 2; margin-top: 8px; }
.page-content > .interior-image { border-radius: 0; margin: 0; height: clamp(320px, 36vw, 640px); }
.page-content > .interior-image .image-note { left: var(--gutter); bottom: 32px; }
.page-content > section { padding-inline: var(--gutter); background: white; }
.interior { max-width: none; }
.visual-stories > .wrap { padding-inline: 0; }
.visual-heading { padding-inline: var(--gutter); }
.story-grid { gap: 0; }
.photo-story { border-radius: 0; height: clamp(320px, 32vw, 540px); }
.photo-caption { left: clamp(24px, 3vw, 56px); bottom: 36px; }
.photo-caption h3 { font-size: clamp(26px, 2.5vw, 42px); max-width: 13ch; }
.wrap.audiences { padding-inline: 0; gap: 0; }
.audiences .audience { --panel-padding: clamp(28px, 4.5vw, 80px); padding: var(--panel-padding); border-radius: 0; }
.audiences .audience-photo {
  width: calc(100% + 2 * var(--panel-padding));
  margin: calc(-1 * var(--panel-padding)) calc(-1 * var(--panel-padding)) 32px;
  height: clamp(240px, 26vw, 440px);
  border-radius: 0;
}
.cards { gap: clamp(24px, 3vw, 56px); }
.cards .card { border: 0; border-top: 2px solid #c4dbf4; border-radius: 0; padding: 32px 0 0; background: transparent; }
.cta-section { padding: 0; background: linear-gradient(115deg, #0066d6, #073b78); }
.cta-section .cta {
  padding: clamp(56px, 7vw, 120px) 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: white;
}
.cta-section .cta h2 { max-width: 1100px; font-size: clamp(36px, 4.5vw, 72px); }
.cta-section .cta p { color: #e0edff; }
.cta-section .eyebrow::before { color: var(--lime); }
.cta-section .cta .btn:not(.outline) { background: white; color: var(--ink); }
.cta-section .cta .btn:not(.outline):hover { background: #dff3ff; }
.cta-section a:focus-visible { outline-color: var(--lime); }
.contact-layout { gap: clamp(32px, 7vw, 140px); padding-block: clamp(40px, 5vw, 90px); }
.contact-layout .formbox { max-width: none; }
.contact-layout .interior-image { border-radius: 0; height: clamp(290px, 28vw, 480px); }
footer { background: #edf4fc; }

/* Homepage marketing stage */
.marketing-hero {
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--ink);
  color: white;
}
.marketing-intro {
  padding: clamp(56px, 7vw, 120px) clamp(28px, 4vw, 80px) clamp(48px, 6vw, 96px) var(--gutter);
  align-self: center;
}
.marketing-intro h1 { font-size: clamp(48px, 5.5vw, 106px); margin-block: 28px; }
.marketing-intro h1 span { color: var(--lime); }
.marketing-intro > p { max-width: 50ch; color: #d6e4f6; font-size: clamp(17px, 1.35vw, 22px); }
.marketing-intro .marketing-audience { font-size: 15px; color: #aebfd7; }
.marketing-intro .marketing-signoff { font-size: 12px; letter-spacing: .07em; margin-top: 32px; }
.hero-outline { background: transparent; border: 1px solid #6f88a9; color: white; }
.hero-outline:hover { background: #18365e; }
.marketing-hero a:focus-visible, .marketing-hero button:focus-visible { outline-color: var(--lime); }
.marketing-carousel { position: relative; display: flex; flex-direction: column; min-width: 0; background: #173859; }
.marketing-slides { display: grid; flex: 1; min-height: clamp(540px, 44vw, 820px); isolation: isolate; }
.marketing-slide { grid-area: 1 / 1; position: relative; display: grid; align-items: end; padding: 56px clamp(28px, 4vw, 80px); overflow: hidden; }
.marketing-slide[hidden], .marketing-controls[hidden] { display: none; }
.marketing-slide::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, #061a3d08 10%, #061a3d80 48%, #061a3df5 100%); }
.marketing-slide > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.marketing-caption { max-width: 580px; }
.marketing-kicker { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .18em; color: var(--lime); }
.marketing-caption h2 { font-size: clamp(34px, 3.4vw, 64px); margin-block: 16px; max-width: 16ch; }
.marketing-caption p { color: #e0eaf8; max-width: 40ch; margin-bottom: 24px; }
.marketing-caption a { display: inline-flex; gap: 24px; align-items: center; font-size: 14px; font-weight: 700; padding-block: 8px; border-bottom: 1px solid #b9d0ed; }
.marketing-controls { display: flex; align-items: center; gap: 20px; padding: 16px clamp(24px, 4vw, 80px); background: #0b2547; }
.marketing-dots { display: flex; align-items: center; }
.marketing-dot { display: grid; place-items: center; width: 40px; height: 44px; padding: 0; border: 0; background: transparent; }
.marketing-dot span { height: 3px; width: 24px; background: #607894; transition: background .2s; }
.marketing-dot[aria-pressed="true"] span { background: var(--lime); }
.marketing-count { font-size: 11px; letter-spacing: .12em; color: #ceddf0; }
.marketing-arrows { display: flex; gap: 6px; margin-left: auto; }
.marketing-arrows button { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #49617f; background: transparent; color: white; border-radius: 50%; font-size: 18px; }
.marketing-arrows button:hover { background: #24456d; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .cards .card { transition: border-color .25s, transform .25s; }
  .cards .card:hover { transform: translateY(-6px); border-color: var(--green); }
  .btn > span { transition: transform .2s; }
  .btn:hover > span { transform: translate(2px, -2px); }
}
@media (min-width: 1800px) {
  .split > div > h2 { max-width: 22ch; }
  .product-bg { padding: 40px; }
  .product { font-size: 14px; }
  .profile { padding: 28px; }
}
@media (max-width: 1100px) {
  .marketing-hero { grid-template-columns: 1fr 1fr; }
  .marketing-intro h1 { font-size: clamp(40px, 5.5vw, 64px); }
  .marketing-controls { flex-wrap: wrap; gap: 8px; padding-inline: 20px; }
  .marketing-dot { width: 30px; }
}
@media (max-width: 760px) {
  .marketing-hero { grid-template-columns: 1fr; }
  .marketing-intro { padding: 48px var(--gutter); }
  .marketing-intro h1 { font-size: clamp(42px, 10vw, 72px); }
  .marketing-slides { min-height: 480px; }
  .marketing-slide { padding: 40px var(--gutter); }
  .marketing-caption h2 { font-size: 40px; }
  .marketing-controls { flex-wrap: nowrap; padding-inline: var(--gutter); }
  .marketing-count { margin-left: auto; }
  .marketing-arrows { margin-left: 0; }
  .page-content > .interior { display: block; padding-block: 48px; }
  .page-content > .interior > h1 { margin-block: 20px; }
  .page-content > .interior > .actions { margin-top: 24px; }
  .page-content > .interior-image { height: 320px; }
  .story-grid { grid-template-columns: 1fr; }
  .photo-story { height: 360px; }
  .visual-heading { display: block; }
  .audiences .audience-photo { height: 260px; }
}
@media (max-width: 380px) {
  :root { --gutter: 18px; }
  .marketing-caption h2 { font-size: 34px; }
  .marketing-slides { min-height: 440px; }
  .marketing-controls { gap: 4px; }
  .marketing-dot { width: 27px; }
  .marketing-dot span { width: 18px; }
  .marketing-arrows { gap: 4px; }
  .marketing-arrows button { width: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; }
}

/* Keep the learning activity visible, including on narrow screens. */
.page-content > .editorial-banner { height: clamp(320px, 48vw, 900px); }
.editorial-banner > img { object-position: center 35%; }
.marketing-slide { padding: 0; display: flex; flex-direction: column; background: #102d50; }
.marketing-slide::after { display: none; }
.marketing-slide > img { position: static; z-index: auto; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.marketing-caption { max-width: none; flex: 1; min-height: 300px; padding: 32px clamp(24px, 3vw, 56px); }
.marketing-caption h2 { font-size: clamp(30px, 3vw, 54px); margin-block: 12px; }
.marketing-caption p { margin-block: 12px 16px; }
.photo-story { height: auto; display: flex; flex-direction: column; background: var(--ink); }
.photo-story > img { width: 100%; height: auto; aspect-ratio: 16 / 9; }
.photo-story::after { display: none; }
.photo-caption { position: relative; inset: auto; flex: 1; padding: 24px clamp(24px, 3vw, 56px) 32px; }
.photo-caption h3 { font-size: clamp(26px, 2.3vw, 40px); }
.photo-caption > span { right: 24px; bottom: 24px; }

/* Feature-specific product illustrations, with readable real HTML labels. */
.page-content > .feature-visual {
  padding: clamp(36px, 5vw, 80px) var(--gutter);
  background: #e6f2ff;
}
.feature-heading { margin-bottom: 30px; }
.feature-heading h2 { margin-block: 12px; font-size: clamp(30px, 3.3vw, 52px); }
.feature-disclosure { margin: 0; font-size: 12px; color: #46607e; }
.feature-board { background: white; border: 1px solid #cfdfef; border-radius: 18px; padding: clamp(24px, 3vw, 48px); box-shadow: 0 18px 48px #12375a0a; }
.feature-board p { font-size: 14px; line-height: 1.65; }
.feature-board h3 { font-size: clamp(20px, 1.6vw, 28px); letter-spacing: -.035em; line-height: 1.2; }
.feature-icon { width: 32px; height: 32px; flex-shrink: 0; }
.platform-flow { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.platform-flow li { position: relative; padding-right: 24px; border-right: 1px solid #dbe7f4; }
.platform-flow li:last-child { border: 0; }
.feature-symbol { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 16px; background: #e9f4ff; color: var(--green); margin-bottom: 24px; }
.platform-flow li:nth-child(2) .feature-symbol { background: #e4f9fc; color: #00677d; }
.platform-flow li:nth-child(3) .feature-symbol { background: #eff8d9; color: #4b650e; }
.platform-flow li:nth-child(4) .feature-symbol { background: #fff5ce; color: #725900; }
.platform-flow small { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.platform-flow h3 { margin-block: 14px 10px; }
.platform-flow p { margin: 0; }
.analytics-summary, .analytics-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; }
.analytics-summary { align-items: center; margin-bottom: 28px; font-size: 18px; font-weight: 700; }
.sample-label { display: inline-block; border-radius: 20px; padding: 6px 12px; background: #edf4fc; color: #405d7f; font-size: 11px; font-weight: 600; }
.metric-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.metric-tile { padding: 24px; border-radius: 12px; background: #f1f6fd; }
.metric-tile h3 { font-size: 17px; margin: 0 0 20px; }
.metric-tile strong { display: block; font: 800 clamp(42px, 5vw, 76px)/1.1 Manrope, sans-serif; letter-spacing: -.06em; color: var(--green); }
.metric-tile strong span { font-size: .5em; margin-left: 4px; }
.metric-bar { background: #dce7f3; height: 8px; border-radius: 20px; margin-top: 24px; overflow: hidden; }
.metric-bar i { display: block; height: 100%; background: var(--green); border-radius: inherit; }
.metric-tile:nth-child(2) .metric-bar i { background: #0087a9; }
.metric-tile:nth-child(3) .metric-bar i { background: #759e12; }
.analytics-foot { padding-top: 24px; font-size: 12px; color: #53647a; }
.credential-layout { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(28px, 6vw, 100px); align-items: center; }
.credential-evidence ol { list-style: none; margin: 24px 0 0; padding: 0; }
.credential-evidence li { display: flex; gap: 16px; margin-block: 20px; }
.credential-evidence li > span { color: var(--green); font-size: 12px; font-weight: 700; padding-top: 3px; }
.credential-evidence p { margin: 4px 0 0; }
.credential-award { text-align: center; padding: 32px 24px; border-radius: 14px; background: #eef6ff; border: 1px solid #c8dff7; }
.award-symbol { display: grid; place-items: center; width: 100px; height: 100px; background: var(--lime); color: var(--ink); border-radius: 50%; margin: 0 auto 24px; }
.award-symbol .feature-icon { width: 56px; height: 56px; }
.credential-award small { letter-spacing: .12em; font-size: 10px; color: #46607e; }
.credential-award h3 { font-size: 32px; margin-block: 14px 24px; }
.credential-seal { font-size: 12px; font-weight: 700; color: #176045; }
.evidence-person { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.evidence-person h3 { margin: 0; }
.evidence-person p { margin: 6px 0 0; }
.evidence-person > .sample-label { margin-left: auto; }
.profile-initials { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; color: white; background: var(--green); font-weight: 700; }
.evidence-goal { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; background: #edf5ff; padding: 20px; margin-block: 28px; border-radius: 8px; font-size: 14px; }
.evidence-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.evidence-grid > div { border: 1px solid #dbe7f4; border-radius: 12px; padding: 24px; }
.evidence-grid .feature-icon { display: block; color: var(--green); margin-bottom: 18px; }
.evidence-grid small { font-size: 10px; letter-spacing: .12em; font-weight: 700; color: #53647a; }
.evidence-grid h3 { font-size: 20px; }
.readiness-definitions { padding: 32px; border-radius: 14px; background: #edf5ff; }
.readiness-definitions h3 { margin-top: 0; }
.readiness-definitions dt { font-weight: 700; padding-top: 20px; }
.readiness-definitions dd { margin: 4px 0 0; padding-bottom: 20px; border-bottom: 1px solid #ccdeef; color: #53647a; }
@media (max-width: 1000px) {
  .platform-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .platform-flow li:nth-child(2) { border-right: 0; }
  .metric-tile, .evidence-grid > div { padding: 18px; }
}
@media (max-width: 760px) {
  .page-content > .editorial-banner { height: auto; }
  .editorial-banner > img { height: auto; }
  .page-content > .editorial-banner .image-note { position: static; padding: 18px var(--gutter); border-radius: 0; background: #e6f2ff; }
  .marketing-slides { min-height: 0; }
  .marketing-caption { min-height: 290px; padding: 28px var(--gutter); }
  .marketing-caption h2 { font-size: 34px; }
  .photo-story { height: auto; }
  .metric-grid, .evidence-grid, .credential-layout { grid-template-columns: 1fr; }
  .metric-tile strong { font-size: 48px; }
  .metric-tile h3 { margin-bottom: 12px; }
  .feature-board { padding: 22px; }
  .evidence-person > .sample-label { margin-left: 0; }
  .evidence-goal { padding: 16px; }
  .credential-award h3 { font-size: 28px; }
}
@media (max-width: 380px) {
  .platform-flow { grid-template-columns: 1fr; }
  .platform-flow li { border-right: 0; border-bottom: 1px solid #dbe7f4; padding: 0 0 24px; }
  .marketing-caption { min-height: 310px; }
}

