:root {
  --navy: #07111f;
  --navy-2: #0d1b2d;
  --blue: #0a84ff;
  --red: #ef1b1b;
  --mist: #edf7ff;
  --white: #fff;
}
* {
  box-sizing: border-box;
}
body.v2-page {
  margin: 0;
  background: var(--navy);
  color: #fff;
  font-family: Inter, Arial, sans-serif;
}
.v2-header {
  height: 76px;
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 0 max(28px, calc((100vw - 1210px) / 2));
  background: rgba(7, 17, 31, 0.96);
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  position: sticky;
  top: 0;
  z-index: 10;
}
.v2-header img {
  width: 190px;
  display: block;
}
.v2-header nav {
  display: flex;
  gap: 25px;
  margin-left: auto;
}
.v2-header nav a {
  color: rgba(255, 255, 255, 0.78);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.015em;
  text-decoration: none;
  text-transform: uppercase;
}
.v2-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 22px;
  border: 1px solid transparent;
  border-radius: 6px;
  color: #fff;
  background: var(--red);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.015em;
  text-decoration: none;
  text-transform: uppercase;
}
.v2-button.outline {
  border-color: rgba(255, 255, 255, 0.6);
  background: transparent;
}
.v2-button.compact {
  min-height: 42px;
  background: #fff;
  color: var(--navy);
  font-size: 9px;
}
.page-hero {
  position: relative;
  min-height: 510px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--navy);
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}
.page-hero:before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(104, 167, 221, 0.12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(104, 167, 221, 0.12) 1px, transparent 1px);
  background-size: 78px 78px;
}
.page-hero:after {
  content: attr(data-mark);
  position: absolute;
  right: -0.08em;
  bottom: -0.28em;
  color: var(--blue);
  font-size: min(48vw, 680px);
  font-weight: 800;
  letter-spacing: -0.14em;
  line-height: 1;
  opacity: 0.09;
}
.page-hero > div {
  position: relative;
  z-index: 1;
  width: min(970px, 90vw);
  padding: 70px 24px;
  text-align: center;
}
.page-hero h1 {
  max-width: 920px;
  margin: 0 auto;
  color: #fff;
  font-size: clamp(3.2rem, 7vw, 6.8rem);
  font-weight: 800;
  letter-spacing: -0.077em;
  line-height: 0.9;
}
.page-hero h1 span {
  color: var(--blue);
}
.page-hero p {
  max-width: 680px;
  margin: 25px auto 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(1rem, 1.55vw, 1.28rem);
  line-height: 1.5;
}
.page-hero .actions {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-top: 32px;
}
.content-section {
  padding: 104px max(28px, calc((100vw - 1210px) / 2));
  background: #fff;
  color: #07111f;
}
.content-section.dark {
  background: var(--navy);
  color: #fff;
}
.content-section.blue {
  background: var(--mist);
}
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 78px;
  align-items: center;
}
.section-title {
  margin: 0;
  font-size: clamp(2.6rem, 5vw, 5.35rem);
  letter-spacing: -0.075em;
  line-height: 0.9;
}
.section-title span {
  color: var(--blue);
}
.body-copy {
  max-width: 540px;
  margin: 24px 0 0;
  font-size: 1.1rem;
  line-height: 1.6;
}
.body-copy.muted {
  color: rgba(255, 255, 255, 0.75);
}
.route-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid rgba(10, 132, 255, 0.58);
  border-radius: 22px;
  overflow: hidden;
  background: #101d2e;
}
.route-list a {
  min-height: 260px;
  padding: 28px 25px;
  display: flex;
  flex-direction: column;
  color: #fff;
  text-decoration: none;
  border-right: 1px solid rgba(255, 255, 255, 0.16);
}
.route-list a:last-child {
  border: 0;
}
.route-list img {
  width: 56px;
  height: 56px;
  object-fit: contain;
  margin-bottom: 25px;
}
.route-list strong {
  color: var(--blue);
  font-size: 2rem;
  letter-spacing: -0.06em;
  text-transform: uppercase;
}
.route-list span {
  margin-top: 16px;
  font-size: 0.97rem;
  font-weight: 700;
  line-height: 1.35;
}
.route-list em {
  margin-top: auto;
  color: #7bbcff;
  font-size: 0.74rem;
  font-style: normal;
  font-weight: 800;
  text-transform: uppercase;
}
.three-up {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin-top: 54px;
  border: 1px solid rgba(10, 132, 255, 0.55);
  border-radius: 22px;
  overflow: hidden;
}
.three-up article {
  padding: 34px 30px;
  min-height: 245px;
  border-right: 1px solid rgba(10, 132, 255, 0.35);
}
.three-up article:last-child {
  border: 0;
}
.three-up h3 {
  margin: 0;
  color: var(--blue);
  font-size: 2rem;
  letter-spacing: -0.06em;
}
.three-up p {
  margin: 18px 0 0;
  line-height: 1.55;
}
.service-focus {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 74px;
  align-items: center;
}
.service-focus .service-icon {
  width: 104px;
  height: 104px;
  object-fit: contain;
  margin-bottom: 28px;
}
.service-focus .panel {
  padding: 42px;
  background: #0e1d30;
  border: 1px solid rgba(105, 183, 255, 0.5);
  border-radius: 18px;
}
.service-focus .panel h3 {
  margin: 0;
  color: #fff;
  font-size: 1.55rem;
  letter-spacing: -0.045em;
}
.service-focus .panel p {
  margin: 16px 0 0;
  color: rgba(255, 255, 255, 0.74);
  line-height: 1.55;
}
.advice-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 44px;
}
.advice-list article {
  min-height: 225px;
  padding: 30px;
  background: #0e1d30;
  border: 1px solid rgba(255, 255, 255, 0.16);
}
.advice-list h3 {
  margin: 0;
  color: #fff;
  font-size: 1.5rem;
  line-height: 1.08;
  letter-spacing: -0.05em;
}
.advice-list p {
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.5;
}
.contact-options {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-top: 42px;
}
.contact-options a {
  padding: 36px;
  text-decoration: none;
  color: #07111f;
  background: #fff;
  border: 1px solid rgba(7, 17, 31, 0.16);
  border-radius: 14px;
}
.contact-options strong {
  display: block;
  color: var(--blue);
  font-size: 1.65rem;
  letter-spacing: -0.05em;
}
.contact-options span {
  display: block;
  margin-top: 12px;
  line-height: 1.5;
}
.health-art {
  position: relative;
  overflow: hidden;
  background: var(--mist);
}
.health-art img {
  display: block;
  width: 100%;
  height: auto;
}
.health-art > div {
  position: absolute;
  top: 50%;
  left: max(7vw, 28px);
  width: min(40vw, 500px);
  transform: translateY(-50%);
  color: #07111f;
}
.health-art h2 {
  margin: 0;
  font-size: clamp(2.5rem, 4.4vw, 5rem);
  letter-spacing: -0.075em;
  line-height: 0.9;
}
.health-art p {
  font-size: 1.1rem;
  line-height: 1.55;
}
.v2-footer {
  padding: 74px max(28px, calc((100vw - 1210px) / 2)) 28px;
  background: #07111f;
  color: rgba(255, 255, 255, 0.68);
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.35fr;
  gap: 40px;
}
.v2-footer img {
  width: 190px;
}
.v2-footer h2 {
  margin: 0 0 17px;
  color: #fff;
  font-size: 15px;
}
.v2-footer p {
  line-height: 1.55;
}
.v2-footer a {
  display: block;
  margin: 0 0 10px;
  color: rgba(255, 255, 255, 0.75);
  font-size: 14px;
  text-decoration: none;
}
.v2-footer .health-link {
  margin-top: 25px;
  color: #fff;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 6px;
}
.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-top: 64px;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  color: rgba(255, 255, 255, 0.42);
  font-size: 12px;
}
@media (max-width: 850px) {
  .v2-header {
    height: 67px;
    padding: 0 22px;
  }
  .v2-header img {
    width: 150px;
  }
  .v2-header nav {
    display: none;
  }
  .v2-header .compact {
    margin-left: auto;
    padding: 0 11px;
    font-size: 8px;
  }
  .page-hero {
    min-height: 610px;
  }
  .page-hero > div {
    padding: 58px 22px;
  }
  .page-hero h1 {
    font-size: clamp(3.1rem, 14vw, 5.4rem);
  }
  .page-hero .actions {
    flex-direction: column;
  }
  .page-hero .v2-button {
    width: 100%;
  }
  .content-section {
    padding: 72px 28px;
  }
  .split,
  .service-focus {
    grid-template-columns: 1fr;
    gap: 38px;
  }
  .route-list,
  .three-up,
  .advice-list {
    grid-template-columns: 1fr;
  }
  .route-list a,
  .three-up article {
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid rgba(10, 132, 255, 0.35);
  }
  .route-list a:last-child,
  .three-up article:last-child {
    border-bottom: 0;
  }
  .route-list a {
    padding: 27px 24px;
  }
  .route-list img {
    margin-bottom: 18px;
  }
  .route-list em {
    margin-top: 18px;
  }
  .advice-list article {
    min-height: 0;
  }
  .contact-options {
    grid-template-columns: 1fr;
  }
  .health-art {
    display: flex;
    flex-direction: column-reverse;
  }
  .health-art > div {
    position: static;
    width: auto;
    padding: 52px 28px 44px;
    transform: none;
  }
  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 36px 24px;
  }
  .footer-grid > div:first-child,
  .footer-grid > div:last-child {
    grid-column: 1/-1;
  }
  .footer-bottom {
    display: block;
    margin-top: 48px;
  }
  .footer-bottom span {
    display: block;
  }
  .footer-bottom span + span {
    margin-top: 7px;
  }
}
.page-hero {
  min-height: 560px;
}
.page-hero > div {
  width: min(1060px, 92vw);
  padding: 78px 24px;
}
.page-hero h1 {
  max-width: 1020px;
  font-size: clamp(3.35rem, 7.15vw, 7rem);
}
.page-hero p {
  max-width: 720px;
  margin-top: 27px;
}
.page-hero .actions {
  gap: 14px;
  margin-top: 34px;
}
.page-hero .v2-button {
  min-width: 208px;
}
@media (max-width: 850px) {
  .page-hero {
    min-height: 610px;
  }
  .page-hero > div {
    padding: 58px 22px;
  }
  .page-hero h1 {
    font-size: clamp(3.1rem, 14vw, 5.4rem);
  }
  .page-hero .v2-button {
    min-width: 0;
  }
}
.split .panel {
  padding: 42px;
  background: #0e1d30;
  border: 1px solid rgba(105, 183, 255, 0.5);
  border-radius: 18px;
}
.split .service-icon {
  width: 104px;
  height: 104px;
  object-fit: contain;
  margin-bottom: 28px;
}
.split .panel h3 {
  margin: 0;
  color: #fff;
  font-size: 1.55rem;
  letter-spacing: -0.045em;
}
.split .panel p {
  margin: 16px 0 0;
  color: rgba(255, 255, 255, 0.74);
  line-height: 1.55;
}
.page-hero .hero-price {
  position: absolute;
  z-index: 2;
  right: max(34px, 6vw);
  bottom: 34px;
  display: inline-flex;
  align-items: baseline;
  margin: 0;
  padding: 10px 16px;
  border: 1px solid rgba(10, 132, 255, 0.72);
  border-radius: 999px;
  color: #fff;
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 1;
  background: rgba(7, 17, 31, 0.55);
}
.page-hero .actions {
  margin-top: 27px;
}
@media (max-width: 850px) {
  .page-hero .hero-price {
    right: 22px;
    bottom: 22px;
    font-size: 1rem;
    padding: 9px 13px;
  }
}
.about-copy {
  max-width: 540px;
  font-size: 1.08rem;
  line-height: 1.63;
}
.about-copy p {
  margin: 0 0 22px;
}
.about-note {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 78px;
  padding: 112px max(28px, calc((100vw - 1210px) / 2));
  background: #0d1b2d;
  color: #fff;
}
.about-note h2 {
  margin: 0;
  font-size: clamp(3.2rem, 5.8vw, 6.4rem);
  letter-spacing: -0.08em;
  line-height: 0.86;
}
.about-note > div:last-child {
  max-width: 560px;
  font-size: 1.12rem;
  line-height: 1.6;
}
.about-note p {
  margin: 0 0 18px;
}
.about-note strong {
  display: block;
  margin-top: 35px;
  font-size: 1.05rem;
}
.about-note strong span {
  color: #78bbff;
  font-weight: 600;
}
.about-expect {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 60px;
  align-items: end;
}
.about-expect > div {
  max-width: 520px;
  color: rgba(255, 255, 255, 0.75);
  font-size: 1.06rem;
  line-height: 1.6;
}
.about-expect > div p {
  margin: 0 0 18px;
}
@media (max-width: 850px) {
  .about-note,
  .about-expect {
    grid-template-columns: 1fr;
    gap: 38px;
    padding: 72px 28px;
  }
  .about-note h2 {
    font-size: clamp(3.4rem, 14vw, 5.6rem);
  }
}
.about-direct .body-copy {
  max-width: 650px;
}
.about-principles {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin-top: 55px;
  border: 1px solid rgba(10, 132, 255, 0.55);
  border-radius: 20px;
  overflow: hidden;
}
.about-principles article {
  min-height: 288px;
  padding: 29px 25px;
  border-right: 1px solid rgba(10, 132, 255, 0.36);
}
.about-principles article:last-child {
  border: 0;
}
.about-principles strong {
  color: #0a84ff;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
}
.about-principles h3 {
  margin: 56px 0 15px;
  font-size: 1.45rem;
  letter-spacing: -0.05em;
  line-height: 1.04;
}
.about-principles p {
  margin: 0;
  font-size: 0.94rem;
  line-height: 1.48;
}
@media (max-width: 850px) {
  .about-principles {
    grid-template-columns: 1fr;
  }
  .about-principles article {
    min-height: 0;
    padding: 27px 24px;
    border-right: 0;
    border-bottom: 1px solid rgba(10, 132, 255, 0.36);
  }
  .about-principles article:last-child {
    border-bottom: 0;
  }
  .about-principles h3 {
    margin: 25px 0 12px;
  }
}
.about-mission .section-title,
.about-mission .body-copy {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
.about-mission .body-copy {
  max-width: 710px;
}
.about-expect {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.about-expect .section-title,
.about-expect .body-copy,
.about-expect > div {
  margin-left: auto;
  margin-right: auto;
}
.about-expect > div {
  max-width: 610px;
}
.about-routes .section-title,
.about-routes .body-copy {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
.about-routes .body-copy {
  max-width: 650px;
}
.about-routes .route-list a {
  align-items: center;
  text-align: center;
}
.about-routes .route-list img {
  margin-left: auto;
  margin-right: auto;
}
.about-routes .route-list span {
  max-width: 240px;
}
.about-mission .three-up article {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.about-mission .three-up h3 {
  margin-top: 0;
}
.about-mission .three-up p {
  max-width: 300px;
}
.solutions-menu {
  position: relative;
  display: flex;
  align-items: center;
}
.solutions-menu > a:after {
  content: "⌄";
  margin-left: 5px;
  font-size: 11px;
}
.solutions-flyout {
  position: absolute;
  top: calc(100% + 17px);
  left: -17px;
  z-index: 30;
  min-width: 152px;
  padding: 10px;
  background: #0d1b2d;
  border: 1px solid rgba(112, 185, 255, 0.42);
  border-radius: 8px;
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.3);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-5px);
  transition:
    opacity 0.16s ease,
    transform 0.16s ease;
}
.solutions-menu:hover .solutions-flyout,
.solutions-menu:focus-within .solutions-flyout {
  opacity: 1;
  visibility: visible;
  transform: none;
}
.solutions-flyout a {
  display: block !important;
  padding: 8px 9px !important;
  color: #fff !important;
  font-size: 10px !important;
}
.solutions-flyout a:hover {
  color: #77bcff !important;
}
.advice-menu {
  position: relative;
  display: flex;
  align-items: center;
}
.advice-menu > a:after {
  content: "⌄";
  margin-left: 5px;
  font-size: 11px;
}
.advice-flyout {
  position: absolute;
  top: calc(100% + 17px);
  left: -17px;
  z-index: 30;
  min-width: 205px;
  padding: 10px;
  background: #0d1b2d;
  border: 1px solid rgba(112, 185, 255, 0.42);
  border-radius: 8px;
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.3);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-5px);
  transition:
    opacity 0.16s ease,
    transform 0.16s ease;
}
.advice-menu:hover .advice-flyout,
.advice-menu:focus-within .advice-flyout {
  opacity: 1;
  visibility: visible;
  transform: none;
}
.advice-flyout a {
  display: block !important;
  padding: 8px 9px !important;
  color: #fff !important;
  font-size: 10px !important;
}
.advice-flyout a:hover {
  color: #77bcff !important;
}
.advice-page {
  max-width: none;
  margin: 0;
  padding: 100px max(28px, calc((100vw - 1000px) / 2)) 72px;
  background: #f7fbff;
  color: #07111f;
}
.advice-answer {
  padding: 42px 46px;
  background: #fff;
  border-left: 5px solid #0a84ff;
  box-shadow: 0 20px 42px rgba(7, 17, 31, 0.08);
}
.advice-answer > p {
  margin: 0 0 17px;
  color: #0a84ff;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}
.advice-answer h2 {
  max-width: 840px;
  margin: 0;
  color: #07111f;
  font-size: clamp(2rem, 3.5vw, 3.6rem);
  letter-spacing: -0.065em;
  line-height: 1.02;
}
.advice-body {
  max-width: 760px;
  margin: 72px auto 0;
}
.advice-body > section {
  padding: 0 0 48px;
  margin-bottom: 48px;
  border-bottom: 1px solid #c9d7e5;
}
.advice-body h2 {
  margin: 0 0 16px;
  color: #07111f;
  font-size: clamp(1.7rem, 2.6vw, 2.4rem);
  letter-spacing: -0.055em;
  line-height: 1.04;
}
.advice-body p {
  margin: 0;
  color: #26394f;
  font-size: 1.08rem;
  line-height: 1.7;
}
.advice-check {
  padding: 38px !important;
  border: 0 !important;
  background: #07111f;
  color: #fff;
}
.advice-check h2 {
  color: #fff;
}
.advice-check ul {
  padding: 0;
  margin: 22px 0 0;
  list-style: none;
}
.advice-check li {
  padding: 13px 0;
  border-top: 1px solid rgba(112, 185, 255, 0.35);
  font-weight: 600;
  line-height: 1.4;
}
.advice-check li:before {
  content: "→";
  margin-right: 10px;
  color: #77bcff;
}
.advice-related {
  border: 0 !important;
}
.advice-related > div {
  display: grid;
  gap: 10px;
}
.advice-related a {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 0;
  border-bottom: 1px solid #c1d2e3;
  color: #07111f;
  font-size: 1.08rem;
  font-weight: 700;
  text-decoration: none;
}
.advice-related a:hover {
  color: #0a84ff;
}
.advice-related span {
  color: #0a84ff;
}
@media (max-width: 850px) {
  .advice-page {
    padding: 64px 24px 48px;
  }
  .advice-answer {
    padding: 30px 26px;
  }
  .advice-body {
    margin-top: 52px;
  }
  .advice-body > section {
    padding-bottom: 36px;
    margin-bottom: 36px;
  }
  .advice-check {
    padding: 28px !important;
  }
}
.advice-routes {
  text-align: center;
}
.advice-routes .body-copy {
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}
.contact-start {
  padding: 108px max(28px, calc((100vw - 1210px) / 2));
  background: #f4f8fc;
  color: #07111f;
}
.contact-start-head {
  text-align: center;
}
.contact-start h2,
.contact-reassurance h2 {
  margin: 0;
  font-size: clamp(3rem, 5vw, 5.4rem);
  letter-spacing: -0.08em;
  line-height: 0.88;
}
.contact-start h2 span,
.contact-reassurance h2 span {
  color: #0a84ff;
}
.contact-start-head > p {
  max-width: 600px;
  margin: 28px auto 0;
  color: #26394f;
  font-size: 1.1rem;
  line-height: 1.6;
}
.contact-start-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 54px;
}
.contact-start-grid a {
  display: block;
  min-height: 310px;
  padding: 34px;
  background: #07111f;
  color: #fff;
  text-decoration: none;
}
.contact-start-grid a:nth-child(2) {
  background: #0a84ff;
}
.contact-start-grid span {
  display: block;
  margin-bottom: 52px;
  color: #77bcff;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}
.contact-start-grid a:nth-child(2) span {
  color: #fff;
}
.contact-start-grid h3 {
  margin: 0 0 14px;
  font-size: clamp(2rem, 3vw, 3rem);
  letter-spacing: -0.065em;
  line-height: 0.95;
}
.contact-start-grid p {
  max-width: 390px;
  margin: 0;
  color: rgba(255, 255, 255, 0.77);
  font-size: 1.05rem;
  line-height: 1.55;
}
.contact-start-grid strong {
  display: inline-block;
  margin-top: 30px;
  padding: 13px 17px;
  border: 1px solid rgba(255, 255, 255, 0.7);
  color: #fff;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.contact-start-grid a:nth-child(2) strong {
  background: #fff;
  border-color: #fff;
  color: #0a84ff;
}
.contact-reassurance {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  padding: 106px max(28px, calc((100vw - 1210px) / 2));
  background: #07111f;
  color: #fff;
}
.contact-reassurance > div {
  max-width: 500px;
}
.contact-reassurance p {
  margin: 0 0 18px;
  color: rgba(255, 255, 255, 0.76);
  font-size: 1.08rem;
  line-height: 1.6;
}
@media (max-width: 850px) {
  .contact-start,
  .contact-reassurance {
    padding: 74px 28px;
  }
  .contact-start-head,
  .contact-reassurance {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .contact-start-grid {
    grid-template-columns: 1fr;
    margin-top: 38px;
  }
  .contact-start-grid a {
    min-height: 250px;
    padding: 28px;
  }
  .contact-start-grid span {
    margin-bottom: 34px;
  }
}
.contact-start-grid {
  gap: 0;
  margin-top: 54px;
  overflow: hidden;
  border: 1px solid #b9cce0;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 40px rgba(7, 17, 31, 0.07);
}
.contact-start-grid a {
  min-height: 286px;
  padding: 44px;
  background: #fff;
  color: #07111f;
  transition: background 0.18s ease;
}
.contact-start-grid a:nth-child(2) {
  border-left: 1px solid #b9cce0;
  background: #f8fbff;
}
.contact-start-grid a:hover {
  background: #f1f7fe;
}
.contact-start-grid h3 {
  color: #07111f;
}
.contact-start-grid p {
  max-width: 390px;
  color: #34475d;
}
.contact-start-grid strong {
  margin-top: 32px;
  padding: 14px 18px;
  border: 1px solid #07111f;
  background: #07111f;
  color: #fff;
}
.contact-start-grid a:nth-child(2) strong {
  background: #ef1b1b;
  border-color: #ef1b1b;
  color: #fff;
}
.contact-start-grid a:nth-child(2):hover strong {
  background: #d91818;
  border-color: #d91818;
}
@media (max-width: 850px) {
  .contact-start-grid {
    grid-template-columns: 1fr;
    margin-top: 38px;
  }
  .contact-start-grid a {
    min-height: 0;
    padding: 32px;
  }
  .contact-start-grid a:nth-child(2) {
    border-top: 1px solid #b9cce0;
    border-left: 0;
  }
}
.contact-form-section {
  display: grid;
  grid-template-columns: 0.78fr 1.22fr;
  gap: clamp(42px, 7vw, 100px);
  align-items: start;
  padding: 106px max(28px, calc((100vw - 1210px) / 2));
  background: #fff;
  color: #07111f;
}
.contact-form-section h2 {
  margin: 0 0 24px;
  font-size: clamp(3rem, 4.7vw, 5.1rem);
  letter-spacing: -0.08em;
  line-height: 0.88;
}
.contact-form-section h2 span {
  color: #0a84ff;
}
.contact-form-section > div > p {
  max-width: 390px;
  margin: 0;
  color: #34475d;
  font-size: 1.08rem;
  line-height: 1.6;
}
.contact-enquiry-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.contact-enquiry-form label {
  display: grid;
  gap: 9px;
  color: #07111f;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.contact-enquiry-form input,
.contact-enquiry-form textarea {
  box-sizing: border-box;
  width: 100%;
  border: 1px solid #b9cce0;
  border-radius: 0;
  padding: 14px 15px;
  background: #f7fbff;
  color: #07111f;
  font:
    400 1rem/1.4 Inter,
    sans-serif;
  outline: none;
}
.contact-enquiry-form input:focus,
.contact-enquiry-form textarea:focus {
  border-color: #0a84ff;
  background: #fff;
}
.contact-enquiry-form textarea {
  min-height: 144px;
  resize: vertical;
}
.contact-enquiry-form .full {
  grid-column: 1/-1;
}
.contact-enquiry-form button {
  justify-self: start;
  border: 0;
  cursor: pointer;
}
@media (max-width: 850px) {
  .contact-form-section {
    grid-template-columns: 1fr;
    padding: 74px 28px;
  }
  .contact-enquiry-form {
    grid-template-columns: 1fr;
  }
  .contact-enquiry-form .full {
    grid-column: auto;
  }
}
.mobile-nav-toggle {
  display: none;
}
@media (max-width: 850px) {
  .v2-header {
    position: relative;
    gap: 8px;
  }
  .v2-header > a:first-child img {
    width: 112px;
  }
  .v2-header .v2-button.compact {
    padding: 12px 10px;
    font-size: 9px;
  }
  .mobile-nav-toggle {
    display: block;
    padding: 10px 7px;
    border: 0;
    background: transparent;
    color: #fff;
    font:
      800 10px/1 Inter,
      sans-serif;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }
  .v2-header nav {
    display: none;
  }
  .v2-header nav.mobile-open {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 50;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 14px 24px 20px;
    background: #07111f;
    border-top: 1px solid rgba(255, 255, 255, 0.13);
    box-shadow: 0 18px 30px rgba(0, 0, 0, 0.22);
  }
  .v2-header nav.mobile-open > a,
  .v2-header nav.mobile-open > .solutions-menu > a,
  .v2-header nav.mobile-open > .advice-menu > a {
    padding: 12px 0;
    color: #fff;
    font-size: 13px;
  }
  .v2-header nav.mobile-open .solutions-menu,
  .v2-header nav.mobile-open .advice-menu {
    display: block;
  }
  .v2-header nav.mobile-open .solutions-flyout,
  .v2-header nav.mobile-open .advice-flyout {
    position: static;
    display: block;
    padding: 0 0 7px;
    border: 0;
    background: transparent;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
  }
  .v2-header nav.mobile-open .solutions-flyout a,
  .v2-header nav.mobile-open .advice-flyout a {
    padding: 7px 0 7px 18px !important;
    color: rgba(255, 255, 255, 0.72) !important;
    font-size: 12px !important;
  }
}
.build-outcomes {
  margin: 26px 0 0;
  padding: 0;
  list-style: none;
}
.build-outcomes li {
  padding: 13px 0;
  border-top: 1px solid rgba(112, 185, 255, 0.3);
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
}
.build-outcomes li:before {
  content: "→";
  margin-right: 10px;
  color: #77bcff;
}
.service-outcomes {
  margin: 26px 0 0;
  padding: 0;
  list-style: none;
}
.service-outcomes li {
  padding: 13px 0;
  border-top: 1px solid rgba(112, 185, 255, 0.3);
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
}
.service-outcomes li:before {
  content: "→";
  margin-right: 10px;
  color: #77bcff;
}
.service-foundations {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) minmax(520px, 1.2fr);
  gap: clamp(44px, 7vw, 108px);
  align-items: center;
  padding: 112px max(28px, calc((100vw - 1210px) / 2));
  background: #07111f;
  color: #fff;
}
.service-foundations h2 {
  margin: 0 0 26px;
  font-size: clamp(3.2rem, 5.1vw, 5.6rem);
  letter-spacing: -0.08em;
  line-height: 0.88;
}
.service-foundations h2 span {
  color: #0a84ff;
}
.service-foundations > div > p {
  max-width: 440px;
  margin: 0;
  color: rgba(255, 255, 255, 0.74);
  font-size: 1.07rem;
  line-height: 1.6;
}
.foundation-list {
  display: grid;
  gap: 1px;
  border: 1px solid rgba(112, 185, 255, 0.34);
  background: rgba(112, 185, 255, 0.34);
}
.foundation-list article {
  min-height: 142px;
  padding: 25px 28px;
  background: #0d1b2d;
}
.foundation-list strong {
  display: block;
  margin-bottom: 12px;
  color: #77bcff;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
}
.foundation-list h3 {
  margin: 0 0 7px;
  font-size: 1.45rem;
  letter-spacing: -0.05em;
}
.foundation-list p {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.45;
}
.service-care {
  background: #f4f8fc;
  color: #07111f;
}
.service-care > div > p,
.service-care .foundation-list p {
  color: rgba(7, 17, 31, 0.7);
}
.service-care .foundation-list {
  border-color: rgba(10, 132, 255, 0.34);
  background: rgba(10, 132, 255, 0.34);
}
.service-care .foundation-list article {
  background: #fff;
}
.service-care .foundation-list h3 {
  color: #07111f;
}
@media (max-width: 850px) {
  .service-foundations {
    grid-template-columns: 1fr;
    padding: 78px 28px;
  }
  .service-foundations h2 {
    font-size: clamp(3rem, 12vw, 4.4rem);
  }
  .foundation-list article {
    min-height: auto;
    padding: 24px;
  }
}
.service-proof {
  padding: 104px max(28px, calc((100vw - 1210px) / 2));
  background: #f5faff;
  color: #07111f;
}
.service-proof-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: end;
}
.service-proof h2 {
  margin: 0;
  font-size: clamp(2.8rem, 5vw, 5.5rem);
  letter-spacing: -0.075em;
  line-height: 0.88;
}
.service-proof h2 span {
  color: #0a84ff;
}
.service-proof-head > p {
  max-width: 480px;
  margin: 0;
  font-size: 1.08rem;
  line-height: 1.55;
}
.service-proof-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 52px;
}
.service-proof-grid article {
  min-height: 330px;
  display: flex;
  flex-direction: column;
  padding: 30px;
  background: #0d1b2d;
  color: #fff;
}
.service-proof-grid img {
  width: 180px;
  height: 74px;
  object-fit: contain;
  object-position: left center;
  margin-bottom: auto;
}
.service-proof-grid h3 {
  margin: 30px 0 10px;
  font-size: 1.55rem;
  letter-spacing: -0.05em;
}
.service-proof-grid p {
  margin: 0;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.5;
}
.service-proof-grid a {
  display: inline-block;
  margin-top: 18px;
  color: #fff;
  font-size: 0.76rem;
  font-weight: 800;
  text-decoration: none;
  text-transform: uppercase;
}
.service-proof-grid a:hover {
  color: #77bcff;
}
@media (max-width: 850px) {
  .service-proof {
    padding: 72px 28px;
  }
  .service-proof-head {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .service-proof-grid {
    grid-template-columns: 1fr;
    margin-top: 40px;
  }
  .service-proof-grid article {
    min-height: 270px;
  }
}
.service-showcase {
  display: grid;
  grid-template-columns: minmax(280px, 0.78fr) minmax(520px, 1.22fr);
  align-items: center;
  gap: clamp(44px, 7vw, 112px);
  padding: 112px max(28px, calc((100vw - 1210px) / 2));
  background: #f4f8fc;
  color: #07111f;
  overflow: hidden;
}
.service-showcase-copy h2 {
  margin: 0 0 28px;
  font-size: clamp(3.25rem, 5.4vw, 5.8rem);
  letter-spacing: -0.08em;
  line-height: 0.88;
}
.service-showcase-copy h2 span {
  color: #0a84ff;
}
.service-showcase-copy p {
  max-width: 430px;
  margin: 0;
  color: rgba(7, 17, 31, 0.7);
  font-size: 1.07rem;
  line-height: 1.62;
}
.service-showcase-link {
  display: inline-block;
  margin-top: 28px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(7, 17, 31, 0.5);
  color: #07111f;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-decoration: none;
  text-transform: uppercase;
}
.service-showcase-link:hover {
  color: #0a84ff;
  border-color: #0a84ff;
}
.service-frame {
  position: relative;
  display: block;
  height: 610px;
  overflow: hidden;
  border: 10px solid #0b1320;
  border-radius: 10px;
  background: #0b1320;
  box-shadow: 0 26px 58px rgba(7, 17, 31, 0.19);
  text-decoration: none;
}
.service-frame iframe {
  display: block;
  width: 142.86%;
  height: 142.86%;
  border: 0;
  transform: scale(0.7);
  transform-origin: 0 0;
  pointer-events: none;
  background: #fff;
}
.service-frame > span {
  position: absolute;
  left: 18px;
  bottom: 16px;
  padding: 7px 10px;
  background: #07111f;
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1;
}
@media (max-width: 850px) {
  .service-showcase {
    display: block;
    padding: 78px 28px;
  }
  .service-showcase-copy h2 {
    font-size: clamp(3rem, 12vw, 4.4rem);
  }
  .service-frame {
    height: 440px;
    margin-top: 48px;
    border-width: 8px;
  }
}
.about-direct {
  position: relative;
  overflow: hidden;
  background: #07111f;
  color: #fff;
}
.about-direct .section-title {
  max-width: 1030px;
  color: #fff;
}
.about-direct .body-copy {
  color: rgba(255, 255, 255, 0.72);
}
.about-principles {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px;
  margin-top: 66px;
  border: 0;
  border-radius: 0;
  overflow: visible;
}
.about-principles article {
  position: relative;
  min-height: 300px;
  padding: 34px 34px 30px;
  border: 1px solid rgba(112, 185, 255, 0.45);
  border-radius: 14px;
  background: #0d1b2d;
  overflow: hidden;
}
.about-principles article:after {
  position: absolute;
  right: 16px;
  bottom: -0.22em;
  color: #0a84ff;
  font-size: 9rem;
  font-weight: 800;
  letter-spacing: -0.12em;
  line-height: 1;
  opacity: 0.1;
  pointer-events: none;
}
.about-principles article:nth-child(1) {
  grid-column: span 7;
  background: #0f2035;
}
.about-principles article:nth-child(1):after {
  content: "01";
}
.about-principles article:nth-child(2) {
  grid-column: span 5;
  margin-top: 54px;
  background: #0a84ff;
  border-color: #0a84ff;
}
.about-principles article:nth-child(2):after {
  content: "02";
  color: #fff;
  opacity: 0.16;
}
.about-principles article:nth-child(3) {
  grid-column: span 5;
  margin-top: -34px;
  background: #111b2b;
}
.about-principles article:nth-child(3):after {
  content: "03";
}
.about-principles article:nth-child(4) {
  grid-column: span 7;
  margin-top: 20px;
  background: #f5faff;
  color: #07111f;
  border-color: #f5faff;
}
.about-principles article:nth-child(4):after {
  content: "04";
  color: #0a84ff;
  opacity: 0.12;
}
.about-principles strong {
  position: relative;
  z-index: 1;
  color: #77bcff;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.1em;
}
.about-principles article:nth-child(2) strong {
  color: #fff;
}
.about-principles article:nth-child(4) strong {
  color: #0a84ff;
}
.about-principles h3 {
  position: relative;
  z-index: 1;
  max-width: 410px;
  margin: 56px 0 16px;
  color: #fff;
  font-size: clamp(1.85rem, 2.7vw, 3.1rem);
  letter-spacing: -0.07em;
  line-height: 0.92;
}
.about-principles article:nth-child(4) h3 {
  color: #07111f;
}
.about-principles p {
  position: relative;
  z-index: 1;
  max-width: 370px;
  margin: 0;
  color: rgba(255, 255, 255, 0.76);
  font-size: 1rem;
  line-height: 1.48;
}
.about-principles article:nth-child(4) p {
  color: rgba(7, 17, 31, 0.74);
}
@media (max-width: 850px) {
  .about-direct {
    padding-bottom: 82px;
  }
  .about-principles {
    grid-template-columns: 1fr;
    gap: 14px;
    margin-top: 46px;
  }
  .about-principles article,
  .about-principles article:nth-child(n) {
    grid-column: auto;
    min-height: 240px;
    margin: 0;
    padding: 28px 24px;
    border: 1px solid rgba(112, 185, 255, 0.45);
  }
  .about-principles article:nth-child(2) {
    background: #0a84ff;
    border-color: #0a84ff;
  }
  .about-principles article:nth-child(4) {
    background: #f5faff;
    border-color: #f5faff;
  }
  .about-principles h3 {
    margin: 38px 0 13px;
    font-size: 2.25rem;
  }
}
.about-principles article > strong {
  display: none;
}
.about-principles h3 {
  margin-top: 30px;
}
@media (max-width: 850px) {
  .about-principles h3 {
    margin-top: 30px;
  }
}

/* Mobile navigation: one compact control that expands the full route list. */
.mobile-nav-toggle {
  display: none;
}
@media (max-width: 850px) {
  .v2-header {
    position: relative;
    gap: 8px;
  }
  .v2-header > a:first-child img {
    width: 112px;
  }
  .v2-header .v2-button.compact {
    padding: 12px 10px;
    font-size: 9px;
  }
  .mobile-nav-toggle {
    display: block;
    padding: 10px 7px;
    border: 0;
    background: transparent;
    color: #fff;
    font:
      800 10px/1 Inter,
      sans-serif;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }
  .v2-header nav {
    display: none;
  }
  .v2-header nav.mobile-open {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 50;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 14px 24px 20px;
    background: #07111f;
    border-top: 1px solid rgba(255, 255, 255, 0.13);
    box-shadow: 0 18px 30px rgba(0, 0, 0, 0.22);
  }
  .v2-header nav.mobile-open > a,
  .v2-header nav.mobile-open > .solutions-menu > a,
  .v2-header nav.mobile-open > .advice-menu > a {
    padding: 12px 0;
    color: #fff;
    font-size: 13px;
  }
  .v2-header nav.mobile-open .solutions-menu,
  .v2-header nav.mobile-open .advice-menu {
    display: block;
  }
  .v2-header nav.mobile-open .solutions-flyout,
  .v2-header nav.mobile-open .advice-flyout {
    position: static;
    display: block;
    padding: 0 0 7px;
    border: 0;
    background: transparent;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
  }
  .v2-header nav.mobile-open .solutions-flyout a,
  .v2-header nav.mobile-open .advice-flyout a {
    padding: 7px 0 7px 18px !important;
    color: rgba(255, 255, 255, 0.72) !important;
    font-size: 12px !important;
  }
}

@media (max-width: 850px) {
  .page-hero {
    min-height: 570px;
  }
  .page-hero > div {
    padding: 48px 22px 38px;
  }
  .page-hero .actions {
    margin-top: 22px;
    gap: 10px;
  }
  .page-hero .v2-button {
    min-height: 48px;
  }
}
@media (max-width: 850px) and (max-height: 760px) {
  .page-hero {
    min-height: 520px;
  }
  .page-hero > div {
    padding: 38px 22px 30px;
  }
  .page-hero h1 {
    font-size: clamp(2.7rem, 11.7vw, 3.25rem);
  }
  .page-hero p {
    margin-top: 18px;
    line-height: 1.4;
  }
  .page-hero .actions {
    margin-top: 18px;
    gap: 8px;
  }
  .page-hero .v2-button {
    min-height: 46px;
    font-size: 10px;
  }
}

/* Mobile Health Check: retain the complete report so the diagnostic stays legible. */
@media (max-width: 850px) {
  .health-art .health-report-image {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    object-fit: contain;
    transform: none;
  }
}

/* Shared phone treatment for every dynamic page. */
@media (max-width: 850px) {
  .v2-header {
    height: 64px;
    padding: 0 22px !important;
  }
  .v2-header .v2-button.compact {
    display: none !important;
  }
  .v2-header > a:first-child img {
    width: 112px !important;
  }
  .mobile-nav-toggle {
    position: relative !important;
    display: block !important;
    width: 31px !important;
    height: 28px !important;
    margin-left: auto !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: transparent !important;
    font-size: 0 !important;
  }
  .mobile-nav-toggle:before {
    content: "" !important;
    position: absolute !important;
    top: 6px !important;
    right: 1px !important;
    width: 25px !important;
    height: 2px !important;
    background: #fff !important;
    box-shadow:
      0 8px 0 #fff,
      0 16px 0 #fff !important;
  }
  .page-hero {
    min-height: 570px !important;
  }
  .v2-footer {
    padding: 30px 22px 16px !important;
  }
  .v2-footer .footer-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 19px 22px !important;
  }
  .v2-footer .footer-grid > div:first-child,
  .v2-footer .footer-grid > div:last-child {
    grid-column: 1/-1 !important;
  }
  .v2-footer img {
    width: 118px !important;
    filter: invert(1) hue-rotate(180deg) saturate(1.15) !important;
    mix-blend-mode: screen;
  }
  .v2-footer p {
    margin: 8px 0 0 !important;
    font-size: 12px !important;
    line-height: 1.42 !important;
  }
  .v2-footer h2 {
    margin-bottom: 7px !important;
    font-size: 12px !important;
  }
  .v2-footer a {
    margin-bottom: 4px !important;
    font-size: 11px !important;
    line-height: 1.35 !important;
  }
  .v2-footer .health-link {
    margin-top: 10px !important;
    padding-bottom: 3px !important;
  }
  .v2-footer .footer-bottom {
    margin-top: 19px !important;
    padding-top: 11px !important;
    font-size: 9px !important;
  }
}

/* Decorative hero marks were removed: the message should have the visual focus. */
.page-hero::after {
  display: none !important;
}

/* Match the homepage case-study treatment on phones: use the supplied complete
   capture rather than a live iframe (which can show its cookie dialog). */
@media (max-width: 850px) {
  .service-frame {
    height: auto !important;
    aspect-ratio: 1365 / 630 !important;
    background: #f75cb6 url("/images/cupcake-tizzle-hero-reference.png")
      center / contain no-repeat !important;
  }
  .service-frame iframe,
  .service-frame > span {
    display: none !important;
  }
}

/* Advice route cards read more cleanly as centred, self-contained choices on phones. */
@media (max-width: 850px) {
  .content-section.dark .route-list a {
    align-items: center !important;
    text-align: center !important;
  }
  .content-section.dark .route-list img {
    margin-left: auto !important;
    margin-right: auto !important;
  }
}
/* Shared desktop calibration: navigation stability and dependable hero CTA space. */
@media (min-width: 851px) {
  .solutions-menu .solutions-flyout,
  .advice-menu .advice-flyout {
    top: 100% !important;
    margin-top: 0 !important;
  }
  .page-hero[data-mark="48"] {
    min-height: calc(100svh - 76px);
  }
  .page-hero[data-mark="48"] > div {
    padding-top: 50px;
    padding-bottom: 50px;
  }
  .page-hero[data-mark="48"] h1 {
    max-width: 950px;
    font-size: clamp(3.25rem, 5.7vw, 5.8rem);
    line-height: 0.94;
  }
  .page-hero[data-mark="48"] p {
    margin-top: 20px;
  }
  .page-hero[data-mark="48"] .actions {
    margin-top: 24px;
  }
}
/* Shared desktop navigation baseline: match the approved homepage header. */
@media (min-width: 851px) {
  .v2-header {
    height: 80px;
    padding: 0 clamp(24px, 6vw, 96px);
  }
  .v2-header img {
    filter: invert(1) hue-rotate(180deg) saturate(1.15);
  }
  .v2-header .v2-button.compact {
    min-height: 42px;
    padding: 0 17px;
    font-size: 10px;
  }
}

/* Shared desktop footer baseline: match the approved homepage footer. */
@media (min-width: 851px) {
  .v2-footer {
    padding: 78px clamp(24px, 6vw, 96px) 28px;
    color: rgba(255, 255, 255, 0.72);
  }
  .v2-footer img {
    filter: invert(1) hue-rotate(180deg) saturate(1.15);
  }
  .v2-footer .footer-grid {
    grid-template-columns: 1.65fr 1fr 1fr 1.35fr 1.15fr;
    gap: 32px;
  }
}

/* Solution pages share one deliberately compact desktop hero.  This keeps the
   longest EVOLVE message, the calls to action and the starting price together
   in the first viewport rather than allowing copy length to change the layout. */
@media (min-width: 851px) {
  .page-hero[data-mark="01"],
  .page-hero[data-mark="02"],
  .page-hero[data-mark="03"],
  .page-hero[data-mark="04"] {
    height: 560px;
    min-height: 560px;
  }
  .page-hero[data-mark="01"] > div,
  .page-hero[data-mark="02"] > div,
  .page-hero[data-mark="03"] > div,
  .page-hero[data-mark="04"] > div {
    padding: 48px 24px 82px;
  }
  .page-hero[data-mark="01"] h1,
  .page-hero[data-mark="02"] h1,
  .page-hero[data-mark="03"] h1,
  .page-hero[data-mark="04"] h1 {
    font-size: clamp(3.5rem, 5.45vw, 5.35rem);
    line-height: 0.9;
  }
  .page-hero[data-mark="01"] p,
  .page-hero[data-mark="02"] p,
  .page-hero[data-mark="03"] p,
  .page-hero[data-mark="04"] p {
    margin-top: 20px;
  }
  .page-hero[data-mark="01"] .actions,
  .page-hero[data-mark="02"] .actions,
  .page-hero[data-mark="03"] .actions,
  .page-hero[data-mark="04"] .actions {
    margin-top: 22px;
  }
  .page-hero[data-mark="01"] .hero-price,
  .page-hero[data-mark="02"] .hero-price,
  .page-hero[data-mark="03"] .hero-price,
  .page-hero[data-mark="04"] .hero-price {
    right: max(28px, 6vw);
    bottom: 28px;
  }
}

/* Shared solution variants: the offer structure is data-driven and identical
   across BUILD, LAUNCH, EVOLVE and CARE. */
.solution-offers {
  padding-top: 112px;
  padding-bottom: 120px;
}
.solution-offers__intro {
  max-width: 720px;
  margin: 0 auto 58px;
  text-align: center;
}
.solution-offers__eyebrow {
  margin: 0 0 16px;
  color: #0a84ff;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.solution-offers__intro .section-title {
  font-size: clamp(3rem, 5.3vw, 5.8rem);
}
.solution-offers__intro .body-copy {
  margin: 23px auto 0;
}
.solution-offers__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  max-width: 1240px;
  margin: 0 auto;
  align-items: stretch;
}
.solution-offers__card {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 34px 30px 30px;
  background: #fff;
  color: #07111f;
  border: 1px solid rgba(105, 183, 255, 0.55);
  border-radius: 16px;
}
.solution-offers__top {
  padding-bottom: 27px;
  border-bottom: 1px solid rgba(7, 17, 31, 0.13);
}
.solution-offers__name {
  margin: 0;
  color: #0a84ff;
  font-size: clamp(1.8rem, 2.5vw, 2.4rem);
  font-weight: 800;
  letter-spacing: -0.065em;
  line-height: 0.95;
}
.solution-offers__price {
  margin: 13px 0 0;
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 1.1;
}
.solution-offers__position {
  min-height: 44px;
  margin: 15px 0 0;
  color: #415166;
  font-size: 0.97rem;
  font-weight: 700;
  line-height: 1.45;
}
.solution-offers h3 {
  margin: 0;
  color: #07111f;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.solution-offers__includes {
  padding: 26px 0 24px;
  border-bottom: 1px solid rgba(7, 17, 31, 0.13);
}
.solution-offers__includes ul {
  display: grid;
  gap: 10px;
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}
.solution-offers__includes li {
  position: relative;
  padding-left: 20px;
  font-size: 0.91rem;
  line-height: 1.42;
}
.solution-offers__includes li:before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #0a84ff;
  font-weight: 800;
}
.solution-offers__best {
  padding: 25px 0 27px;
}
.solution-offers__best p {
  margin: 14px 0 0;
  color: #415166;
  font-size: 0.91rem;
  line-height: 1.52;
}
.solution-offers__card .v2-button {
  width: 100%;
  margin-top: auto;
}
.solution-offers__custom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 32px;
  max-width: 1240px;
  margin: 24px auto 0;
  padding: 28px 30px;
  border: 1px solid rgba(105, 183, 255, 0.45);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.05);
}
.solution-offers__custom h3 {
  margin: 0;
  color: #fff;
  font-size: 1.05rem;
  letter-spacing: -0.025em;
  text-transform: none;
}
.solution-offers__custom p {
  max-width: 760px;
  margin: 8px 0 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 1.06rem;
  line-height: 1.5;
}

/* CTA-card copy should read as confidently as the offer it supports; button
   sizing remains unchanged. */
.contact-start-grid p {
  font-size: 1.12rem;
}
.solution-offers__custom .v2-button {
  flex: 0 0 auto;
  min-width: 230px;
}
@media (max-width: 850px) {
  .solution-offers {
    padding: 72px 20px 76px;
  }
  .solution-offers__intro {
    margin-bottom: 34px;
  }
  .solution-offers__intro .section-title {
    font-size: clamp(2.65rem, 12vw, 4rem);
  }
  .solution-offers__intro .body-copy {
    font-size: 1rem;
    line-height: 1.55;
  }
  .solution-offers__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .solution-offers__card {
    height: auto;
    padding: 28px 23px 24px;
  }
  .solution-offers__position {
    min-height: 0;
  }
  .solution-offers__includes {
    padding: 23px 0 21px;
  }
  .solution-offers__best {
    padding: 22px 0 24px;
  }
  .solution-offers__card .v2-button {
    margin-top: 0;
  }
  .solution-offers__custom {
    display: block;
    margin-top: 16px;
    padding: 24px 22px;
    text-align: center;
  }
  .solution-offers__custom p {
    margin-left: auto;
    margin-right: auto;
  }
  .solution-offers__custom .v2-button {
    width: 100%;
    margin-top: 20px;
  }
}

/* Shared heading outcome accent. */
main h2 > span {
  color: #0a84ff;
}

/* Live-work previews use the approved static screenshots everywhere, avoiding
   cookie pop-ups or external-site changes inside a presentation frame. */
.service-frame {
  height: auto !important;
  aspect-ratio: 1350 / 632 !important;
  border-width: 8px !important;
  background: #0b1320 !important;
}
.service-frame iframe {
  display: none !important;
}
.service-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  background: #0b1320;
}
.service-frame > span {
  right: 14px !important;
  bottom: 14px !important;
  left: auto !important;
  padding: 7px 10px !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #07111f !important;
  font-size: 10px !important;
}
.service-showcase__previews {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  align-items: start;
}
.service-showcase {
  display: block !important;
  padding: 108px max(28px, calc((100vw - 1210px) / 2)) !important;
}
.service-showcase-copy {
  max-width: 700px;
  margin: 0 auto 40px;
  text-align: center;
}
.service-showcase-copy p {
  margin-left: auto;
  margin-right: auto;
}
.service-showcase-link {
  margin-top: 24px;
}
.service-showcase__previews {
  max-width: 1240px;
  margin: 0 auto;
  gap: 24px;
}
@media (max-width: 850px) {
  .service-showcase {
    padding: 72px 24px !important;
  }
  .service-showcase-copy {
    margin-bottom: 30px;
  }
  .service-frame {
    margin-top: 34px !important;
    background: #0b1320 !important;
  }
  .service-frame > span {
    display: block !important;
  }
  .service-showcase__previews {
    grid-template-columns: 1fr;
    gap: 18px;
    margin-top: 34px;
  }
  .service-showcase__previews .service-frame {
    margin-top: 0 !important;
  }
}

/* Mobile Health Check sequence: read the context, see the report, then act. */
@media (max-width: 850px) {
  .health-art {
    display: flex;
    flex-direction: column;
  }
  .health-art > div {
    display: contents;
  }
  .health-art h2 {
    order: 1;
    margin: 0;
    padding: 52px 28px 0;
  }
  .health-art p {
    order: 2;
    margin: 18px 0 0;
    padding: 0 28px 28px;
  }
  .health-art .health-report-image {
    order: 3;
  }
  .health-art > div > a.v2-button {
    order: 4;
    align-self: stretch;
    margin: 28px;
  }
}

/* Phone heroes retain the same centred grid-led composition as desktop. */
@media (max-width: 850px) {
  .page-hero,
  .solutions-v2-hero {
    display: grid !important;
    place-items: center !important;
    min-height: 620px !important;
    background: #07111f !important;
    text-align: center !important;
  }
  .page-hero::before,
  .solutions-v2-hero::before {
    display: block !important;
    background-image:
      linear-gradient(rgba(104, 167, 221, 0.16) 1px, transparent 1px),
      linear-gradient(90deg, rgba(104, 167, 221, 0.16) 1px, transparent 1px) !important;
    background-size: 52px 52px !important;
    mask-image: none !important;
  }
  .page-hero > div,
  .solutions-v2-copy {
    position: relative !important;
    z-index: 1 !important;
    width: min(100%, 430px) !important;
    margin: 0 auto !important;
    padding: 62px 24px 48px !important;
    text-align: center !important;
  }
  .page-hero h1,
  .solutions-v2-copy h1,
  .page-hero p,
  .solutions-v2-copy p {
    text-align: center !important;
  }
  .page-hero .actions,
  .solutions-v2-copy .actions {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    gap: 12px !important;
  }
  .page-hero .actions .v2-button,
  .solutions-v2-copy .actions .button {
    width: 100% !important;
  }
}

/* Informational pages do not carry a service price. Keep their phone heroes
   compact so the centred copy has the same visual balance as the rest of the
   mobile site, without changing the desktop layout or service-page framing. */
@media (max-width: 850px) {
  .page-hero--informational {
    min-height: 570px !important;
  }

  .page-hero--informational > div {
    padding: 48px 24px 38px !important;
  }
}

/* About outcomes reuse the Launch48 outcome icons at a controlled card scale. */
.about-mission .three-up .outcome-icon {
  display: block;
  width: 66px;
  height: 66px;
  margin: 0 auto 22px;
  object-fit: contain;
}
@media (max-width: 850px) {
  .about-mission .three-up .outcome-icon {
    width: 56px;
    height: 56px;
    margin-bottom: 18px;
  }
}
