.p-home {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-top: calc(var(--space-7) * -1);
  margin-bottom: -28px;
  color: #17243d;
  background: #fff;
}
.p-home-wrap { width: min(calc(100% - 48px), 1180px); margin-inline: auto; }
.p-home h1, .p-home h2, .p-home h3 { color: #17243d; }
.p-home h2 { margin: 10px 0 14px; font-size: clamp(2rem, 4vw, 3.65rem); line-height: 1.12; letter-spacing: -.045em; }
.p-home p { color: #607087; }
.p-home-eyebrow { display: inline-flex; align-items: center; gap: 8px; color: #3978dd; font-size: .78rem; font-weight: 900; letter-spacing: .13em; }
.p-home-eyebrow::before { content: ""; width: 24px; height: 3px; border-radius: 999px; background: #ffcc52; }
.p-home-heading { max-width: 780px; }
.p-home-heading--center { margin-inline: auto; text-align: center; }
.p-home-heading--center .p-home-eyebrow::before { display: none; }
.p-home-heading > p { margin: 0; font-size: 1.03rem; line-height: 1.85; }

.p-home-hero { position: relative; min-height: 690px; overflow: hidden; background: #f8fbff; }
.p-home-hero__media { position: absolute; inset: 0; }
.p-home-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.p-home-hero__inner { position: relative; z-index: 1; display: flex; align-items: center; min-height: 690px; }
.p-home-hero__copy { width: min(48%, 600px); padding: 54px 0 64px; }
.p-home-hero h1 { margin: 20px 0 22px; font-size: clamp(3rem, 5.5vw, 5.8rem); line-height: .98; letter-spacing: -.065em; }
.p-home-hero h1 em { color: #3c82e9; font-style: normal; }
.p-home-hero__copy > p { max-width: 39rem; margin: 0; color: #4f5f73; font-size: clamp(1.02rem, 1.4vw, 1.22rem); line-height: 1.9; }
.p-home-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.p-home-button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 12px 24px; border: 2px solid #2f7de8; border-radius: 999px; background: #2f7de8; color: #fff; font-weight: 900; text-decoration: none; box-shadow: 0 12px 28px rgba(47,125,232,.18); }
.p-home-button--outline { background: rgba(255,255,255,.86); color: #246fcf; box-shadow: none; }
.p-home-button:hover { filter: brightness(.97); }
.p-home-proof { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.p-home-proof span { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 7px 12px; border: 1px solid rgba(148,170,203,.42); border-radius: 13px; background: rgba(255,255,255,.82); color: #5c6979; font-size: .78rem; box-shadow: 0 8px 20px rgba(60,90,130,.06); }
.p-home-proof b { color: #2f7de8; font-size: .8rem; }

.p-home-pains { padding: 76px 0; background: linear-gradient(180deg,#f2f8ff,#f8fbff); border-top: 1px solid #e5effc; border-bottom: 1px solid #e5effc; }
.p-home-pain-list { display: grid; grid-template-columns: repeat(4,1fr); gap: 0; margin-top: 34px; border-top: 1px solid #d8e6f7; border-bottom: 1px solid #d8e6f7; }
.p-home-pain-list article { display: flex; gap: 16px; padding: 28px 24px; border-right: 1px solid #d8e6f7; }
.p-home-pain-list article:last-child { border-right: 0; }
.p-home-pain-list article > span { flex: 0 0 auto; color: #4085e7; font-weight: 900; font-size: .84rem; }
.p-home-pain-list h3 { margin: 0 0 8px; font-size: 1rem; }
.p-home-pain-list p { margin: 0; font-size: .88rem; line-height: 1.7; }

.p-home-solutions { padding: 108px 0 116px; }
.p-home-solutions .p-home-heading strong { color: #2f7de8; }
.p-home-solution-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 22px; margin-top: 44px; }
.p-home-solution-grid article { position: relative; padding: 30px 26px 28px; border: 1px solid #e1e9f4; border-radius: 24px; background: #fff; box-shadow: 0 16px 42px rgba(32,59,98,.07); text-align: center; }
.p-home-solution-grid h3 { margin: 18px 0 8px; font-size: 1.08rem; }
.p-home-solution-grid p { margin: 0; font-size: .9rem; line-height: 1.75; }
.p-home-icon { position: relative; display: inline-block; width: 62px; height: 62px; border-radius: 20px; background: #eef6ff; }
.p-home-icon::before, .p-home-icon::after { content: ""; position: absolute; }
.p-home-icon--school::before { left: 15px; right: 15px; bottom: 14px; height: 24px; border: 3px solid #4387e5; border-radius: 4px; }
.p-home-icon--school::after { left: 11px; right: 11px; top: 14px; height: 14px; background: #4387e5; clip-path: polygon(50% 0,100% 100%,0 100%); }
.p-home-icon--calendar::before { inset: 16px 13px 13px; border: 3px solid #4387e5; border-radius: 5px; }
.p-home-icon--calendar::after { left: 21px; top: 24px; width: 20px; height: 3px; background: #4387e5; box-shadow: 0 8px 0 #4387e5; }
.p-home-icon--phone::before { left: 19px; top: 10px; width: 24px; height: 42px; border: 3px solid #4387e5; border-radius: 7px; }
.p-home-icon--phone::after { left: 28px; bottom: 16px; width: 6px; height: 3px; border-radius: 99px; background: #4387e5; }
.p-home-icon--shield::before { left: 14px; top: 10px; width: 34px; height: 42px; border: 3px solid #4387e5; border-radius: 18px 18px 24px 24px; clip-path: polygon(50% 0,100% 14%,90% 75%,50% 100%,10% 75%,0 14%); }
.p-home-icon--shield::after { left: 25px; top: 28px; width: 13px; height: 7px; border-left: 3px solid #4387e5; border-bottom: 3px solid #4387e5; transform: rotate(-45deg); }

.p-home-story { padding: 112px 0; background: #f8fbff; }
.p-home-story--reverse { background: #fffaf0; }
.p-home-story__grid { display: grid; grid-template-columns: .88fr 1.12fr; align-items: center; gap: clamp(48px,7vw,96px); }
.p-home-story--reverse .p-home-story__grid { grid-template-columns: 1.12fr .88fr; }
.p-home-story__copy h2 { margin-top: 12px; }
.p-home-story__copy > p { margin: 0; font-size: 1rem; line-height: 1.9; }
.p-home-story__visual { position: relative; margin: 0; }
.p-home-story__visual::after { content: ""; position: absolute; inset: 8% -3% -7% 5%; z-index: 0; border-radius: 34px; background: #dcecff; transform: rotate(2deg); }
.p-home-story--reverse .p-home-story__visual::after { background: #ffe9ad; transform: rotate(-2deg); }
.p-home-story__visual img { position: relative; z-index: 1; display: block; width: 100%; height: auto; border-radius: 30px; box-shadow: 0 24px 68px rgba(32,59,98,.14); }
.p-home-checks { display: grid; gap: 10px; padding: 0; margin: 26px 0 0; list-style: none; }
.p-home-checks li { position: relative; padding-left: 30px; color: #42536a; font-weight: 700; }
.p-home-checks li::before { content: "✓"; position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 21px; height: 21px; border-radius: 50%; background: #e3f7ee; color: #18845a; font-size: .8rem; }

.p-home-flow { padding: 108px 0; background: #fff; }
.p-home-flow__steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 28px; padding: 0; margin: 48px 0 0; list-style: none; }
.p-home-flow__steps li { position: relative; text-align: center; }
.p-home-flow__steps li:not(:last-child)::after { content: ""; position: absolute; top: 24px; right: -24px; width: 20px; border-top: 3px dotted #86b9f4; }
.p-home-flow__steps b { display: grid; place-items: center; width: 50px; height: 50px; margin: 0 auto 18px; border-radius: 50%; background: #2f7de8; color: #fff; box-shadow: 0 9px 24px rgba(47,125,232,.24); }
.p-home-flow__steps span { display: block; color: #17243d; font-weight: 900; }
.p-home-flow__steps small { display: block; margin-top: 8px; color: #6a788b; line-height: 1.7; }

.p-home-parent-path { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 28px; }
.p-home-parent-path span { display: inline-flex; align-items: center; gap: 8px; padding: 9px 13px; border-radius: 999px; background: #fff; color: #43536a; font-weight: 800; box-shadow: 0 8px 22px rgba(50,70,100,.07); }
.p-home-parent-path b { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #ffcc52; color: #46360a; font-size: .72rem; }
.p-home-parent-path i { color: #a1acba; font-style: normal; }
.p-home-text-link { display: inline-flex; gap: 8px; margin-top: 24px; color: #2474d8; font-weight: 900; text-decoration: none; }
.p-home-text-link:hover { text-decoration: underline; text-underline-offset: 4px; }

.p-home-scenes { padding: 90px 0 96px; background: linear-gradient(180deg,#f7fbff,#fff); }
.p-home-scenes__row { display: grid; grid-template-columns: repeat(6,1fr); gap: 16px; margin-top: 40px; }
.p-home-scenes__row span { display: grid; place-items: center; gap: 10px; min-height: 112px; padding: 16px 8px; border-radius: 22px; background: #fff; color: #34465f; font-weight: 900; box-shadow: 0 13px 32px rgba(40,65,100,.07); }
.p-home-scenes__row b { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: #eaf4ff; color: #2f7de8; font-size: .9rem; }

.p-home-safety { padding: 112px 0; background: #17243d; }
.p-home-safety h2 { color: #fff; }
.p-home-safety p { color: #c8d3e3; }
.p-home-safety .p-home-eyebrow { color: #8fc1ff; }
.p-home-safety .p-home-text-link { color: #fff; }
.p-home-safety__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(48px,7vw,94px); align-items: start; }
.p-home-safety__list { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; }
.p-home-safety__list article { display: flex; gap: 14px; min-height: 150px; padding: 22px; border: 1px solid rgba(255,255,255,.12); border-radius: 22px; background: rgba(255,255,255,.06); }
.p-home-safety__list article > span { color: #8fc1ff; font-size: .78rem; font-weight: 900; }
.p-home-safety__list h3 { margin: 0 0 6px; color: #fff; font-size: 1rem; }
.p-home-safety__list p { margin: 0; font-size: .88rem; line-height: 1.7; }

.p-home-trial { padding: 82px 0; background: #fff8e8; }
.p-home-trial__inner { display: grid; grid-template-columns: 1fr 250px; gap: 52px; align-items: center; }
.p-home-trial__inner h2 { margin-bottom: 10px; }
.p-home-trial__inner p { max-width: 650px; margin: 0; line-height: 1.8; }
.p-home-trial__badge { display: grid; place-items: center; min-height: 180px; border: 1px solid #ffe09a; border-radius: 30px; background: #fff; box-shadow: 0 16px 38px rgba(104,75,0,.07); text-align: center; }
.p-home-trial__badge strong { color: #2f7de8; font-size: 3.6rem; line-height: 1; }
.p-home-trial__badge span { font-weight: 900; }
.p-home-trial__badge small { color: #7a8491; }

.p-home-faq { padding: 108px 0; background: #fff; }
.p-home-faq__grid { display: grid; grid-template-columns: .65fr 1.35fr; gap: 70px; }
.p-home-faq__items { display: grid; gap: 12px; }
.p-home-faq details { border-bottom: 1px solid #dfe7f2; }
.p-home-faq summary { position: relative; padding: 20px 42px 20px 0; color: #24344c; cursor: pointer; font-weight: 900; list-style: none; }
.p-home-faq summary::-webkit-details-marker { display: none; }
.p-home-faq summary::after { content: "+"; position: absolute; right: 4px; top: 17px; color: #2f7de8; font-size: 1.45rem; font-weight: 500; }
.p-home-faq details[open] summary::after { content: "−"; }
.p-home-faq details p { margin: 0; padding: 0 34px 20px 0; line-height: 1.8; }

.p-home-cta { position: relative; min-height: 420px; overflow: hidden; background: #f6fbff; }
.p-home-cta__media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.p-home-cta__inner { position: relative; z-index: 1; display: flex; align-items: center; min-height: 420px; }
.p-home-cta__copy { width: min(50%, 590px); padding: 48px 0; }
.p-home-cta h2 { margin-bottom: 14px; }
.p-home-cta__copy > p { max-width: 520px; margin: 0; line-height: 1.8; }
.p-home-cta__links { display: flex; gap: 8px; margin-top: 20px !important; font-size: .88rem; }
.p-home-cta__links a { color: #526579; font-weight: 800; }

@media (max-width: 980px) {
  .p-home-hero__copy { width: 58%; }
  .p-home-pain-list { grid-template-columns: repeat(2,1fr); }
  .p-home-pain-list article:nth-child(2) { border-right: 0; }
  .p-home-pain-list article:nth-child(-n+2) { border-bottom: 1px solid #d8e6f7; }
  .p-home-solution-grid { grid-template-columns: repeat(2,1fr); }
  .p-home-story__grid, .p-home-story--reverse .p-home-story__grid { grid-template-columns: 1fr; gap: 44px; }
  .p-home-story--reverse .p-home-story__visual { order: 2; }
  .p-home-scenes__row { grid-template-columns: repeat(3,1fr); }
  .p-home-safety__grid { grid-template-columns: 1fr; }
  .p-home-faq__grid { grid-template-columns: 1fr; gap: 32px; }
}

@media (max-width: 700px) {
  .p-home { margin-top: -32px; }
  .p-home-wrap { width: min(calc(100% - 28px), 1180px); }
  .p-home-hero { min-height: 780px; }
  .p-home-hero__inner { align-items: flex-start; min-height: 780px; }
  .p-home-hero__media img { object-position: center top; }
  .p-home-hero__copy { width: 100%; padding-top: 76px; }
  .p-home-hero h1 { max-width: 540px; font-size: clamp(2.55rem, 13vw, 4.3rem); }
  .p-home-hero__copy > p { max-width: 32rem; font-size: .98rem; }
  .p-home-hero__actions { gap: 9px; }
  .p-home-button { min-height: 48px; padding: 10px 17px; font-size: .88rem; }
  .p-home-proof { max-width: 390px; }
  .p-home-proof span { background: rgba(255,255,255,.9); }
  .p-home-pains, .p-home-solutions, .p-home-story, .p-home-flow, .p-home-scenes, .p-home-safety, .p-home-faq { padding-block: 76px; }
  .p-home-pain-list { grid-template-columns: 1fr; }
  .p-home-pain-list article { border-right: 0; border-bottom: 1px solid #d8e6f7; }
  .p-home-pain-list article:last-child { border-bottom: 0; }
  .p-home-solution-grid { grid-template-columns: 1fr; gap: 14px; }
  .p-home-solution-grid article { display: grid; grid-template-columns: 70px 1fr; grid-template-rows: auto auto; column-gap: 12px; text-align: left; }
  .p-home-solution-grid .p-home-icon { grid-row: 1 / span 2; }
  .p-home-solution-grid h3 { margin: 7px 0 4px; }
  .p-home-story__visual img { border-radius: 22px; }
  .p-home-story__visual::after { border-radius: 26px; }
  .p-home-flow__steps { grid-template-columns: 1fr; gap: 18px; }
  .p-home-flow__steps li { display: grid; grid-template-columns: 52px 1fr; grid-template-rows: auto auto; column-gap: 14px; text-align: left; }
  .p-home-flow__steps li::after { display: none; }
  .p-home-flow__steps b { grid-row: 1 / span 2; margin: 0; }
  .p-home-flow__steps span { align-self: end; }
  .p-home-flow__steps small { margin-top: 3px; }
  .p-home-parent-path i { display: none; }
  .p-home-scenes__row { grid-template-columns: repeat(2,1fr); gap: 10px; }
  .p-home-scenes__row span { min-height: 96px; }
  .p-home-safety__list { grid-template-columns: 1fr; }
  .p-home-trial__inner { grid-template-columns: 1fr; gap: 28px; }
  .p-home-trial__badge { max-width: 260px; }
  .p-home-cta { min-height: 620px; }
  .p-home-cta__media { object-position: 73% center; opacity: .5; }
  .p-home-cta__inner { min-height: 620px; align-items: flex-start; }
  .p-home-cta__copy { width: 100%; padding-top: 68px; }
  .p-home-cta__copy::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,rgba(255,255,255,.98) 0 42%,rgba(255,255,255,.72) 68%,rgba(255,255,255,.2)); }
}


/* v7 commercial visual polish: separate photography per story */
.p-home-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(245,250,255,.38) 0%, rgba(245,250,255,.08) 48%, rgba(255,255,255,0) 72%);
  pointer-events: none;
}
.p-home-hero__copy {
  position: relative;
  z-index: 2;
  padding: 38px 40px 42px;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 34px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 28px 80px rgba(26,55,91,.16);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.p-home-hero__media img { object-position: center center; }
.p-home-story__visual img {
  aspect-ratio: 16/9;
  object-fit: cover;
}
.p-home-scenes {
  overflow: hidden;
}
.p-home-scenes__visual {
  position: relative;
  margin: 42px 0 0;
  min-height: 440px;
  overflow: hidden;
  border-radius: 34px;
  box-shadow: 0 28px 72px rgba(32,59,98,.13);
}
.p-home-scenes__visual img {
  display: block;
  width: 100%;
  height: 440px;
  object-fit: cover;
  object-position: center;
}
.p-home-scenes__visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15,29,50,0) 34%, rgba(15,29,50,.76) 100%);
}
.p-home-scenes__visual figcaption {
  position: absolute;
  left: 34px;
  right: 34px;
  bottom: 30px;
  z-index: 2;
  display: grid;
  gap: 6px;
  max-width: 720px;
  color: #fff;
}
.p-home-scenes__visual figcaption strong {
  font-size: clamp(1.45rem,3vw,2.35rem);
  letter-spacing: -.03em;
}
.p-home-scenes__visual figcaption span {
  color: rgba(255,255,255,.9);
  line-height: 1.7;
}
.p-home-cta::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.88) 43%, rgba(255,255,255,.18) 72%, rgba(255,255,255,.04) 100%);
}
.p-home-cta__copy {
  position: relative;
  z-index: 2;
  padding: 38px 40px 40px;
  border: 1px solid rgba(255,255,255,.76);
  border-radius: 30px;
  background: rgba(255,255,255,.84);
  box-shadow: 0 24px 64px rgba(36,58,86,.13);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.p-home-cta__media { object-position: center 46%; }

@media (max-width: 980px) {
  .p-home-hero__copy { width: min(64%,620px); }
}
@media (max-width: 700px) {
  .p-home-hero::after {
    background: linear-gradient(180deg, rgba(246,251,255,.2) 0 18%, rgba(246,251,255,.82) 48%, rgba(246,251,255,.98) 74%);
  }
  .p-home-hero__copy {
    width: 100%;
    margin-top: 260px;
    padding: 26px 22px 28px;
    border-radius: 26px;
    background: rgba(255,255,255,.93);
  }
  .p-home-hero__media img {
    height: 46%;
    object-position: 54% center;
  }
  .p-home-scenes__visual { min-height: 360px; border-radius: 24px; }
  .p-home-scenes__visual img { height: 360px; }
  .p-home-scenes__visual figcaption { left: 22px; right: 22px; bottom: 22px; }
  .p-home-cta::after {
    background: linear-gradient(180deg, rgba(255,255,255,.96) 0 46%, rgba(255,255,255,.72) 70%, rgba(255,255,255,.12) 100%);
  }
  .p-home-cta__copy {
    margin-top: 28px;
    padding: 26px 22px;
    border-radius: 24px;
  }
  .p-home-cta__media { object-position: 54% center; }
}


/* v8 readability and clean-image corrections */
.p-home-hero::after {
  background: linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.90) 34%, rgba(255,255,255,.58) 51%, rgba(255,255,255,.10) 70%, rgba(255,255,255,0) 82%);
}
.p-home-hero__copy {
  background: rgba(255,255,255,.94);
  border-color: rgba(255,255,255,.9);
  box-shadow: 0 24px 68px rgba(30,58,92,.12);
}
.p-home-hero__copy > p { color: #43536a; }
.p-home-story__visual::after,
.p-home-story--reverse .p-home-story__visual::after { display: none; }
.p-home-story__visual img {
  box-shadow: 0 20px 54px rgba(32,59,98,.11);
  border: 1px solid rgba(220,230,242,.8);
}
.p-home-cta::after {
  background: linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.94) 38%, rgba(255,255,255,.66) 54%, rgba(255,255,255,.10) 73%, rgba(255,255,255,0) 84%);
}
.p-home-cta__copy {
  background: rgba(255,255,255,.94);
  border-color: rgba(255,255,255,.9);
  box-shadow: 0 22px 58px rgba(36,58,86,.11);
}
.p-home-cta__copy > p { color: #43536a; }
@media (max-width: 700px) {
  .p-home-hero::after {
    background: linear-gradient(180deg, rgba(255,255,255,.08) 0 23%, rgba(255,255,255,.80) 48%, rgba(255,255,255,.99) 69%);
  }
  .p-home-hero__copy { background: rgba(255,255,255,.96); }
  .p-home-cta::after {
    background: linear-gradient(180deg, rgba(255,255,255,.98) 0 48%, rgba(255,255,255,.80) 70%, rgba(255,255,255,.15) 100%);
  }
  .p-home-cta__copy { background: rgba(255,255,255,.96); }
}


/* v9 plain-language and scene-image cards */
.p-home-scenes__row { gap: 14px; }
.p-home-scenes__row article {
  overflow: hidden;
  min-width: 0;
  border: 1px solid #e2ebf6;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 13px 32px rgba(40,65,100,.07);
  text-align: center;
}
.p-home-scenes__row article img {
  display: block;
  width: 100%;
  height: 116px;
  object-fit: cover;
  background: #edf5ff;
}
.p-home-scenes__row article strong {
  display: block;
  padding: 14px 8px 16px;
  color: #34465f;
  font-size: .96rem;
  font-weight: 900;
  line-height: 1.35;
}
@media (max-width: 980px) {
  .p-home-scenes__row article img { height: 140px; }
}
@media (max-width: 700px) {
  .p-home-scenes__row { grid-template-columns: repeat(2,1fr); }
  .p-home-scenes__row article img { height: 110px; }
  .p-home-scenes__row article strong { padding: 11px 6px 13px; font-size: .9rem; }
}
