/** Homepage hero: minimal white stage with live illuminated chevrons. */

/* Homepage navigation sits on a white canvas in both theme modes. */
html[data-theme] body.home .nav,
html[data-theme] body.home .nav[data-transparent="1"],
html[data-theme] body.home .nav.scrolled,
html[data-theme] body.home .nav[data-transparent="1"].scrolled {
  background:rgba(255,255,255,.96)!important;
  border-bottom-color:rgba(9,53,59,.09)!important;
  color:#171d24!important;
  box-shadow:0 8px 30px rgba(21,45,48,.055)!important;
}
html[data-theme] body.home .nav .nav-trigger,
html[data-theme] body.home .nav .nav-trigger-plain {
  color:#232a33!important;
}
html[data-theme] body.home .nav .nav-trigger:is(:hover,:focus-visible,.is-active),
html[data-theme] body.home .nav .nav-trigger-plain:is(:hover,:focus-visible,.is-active),
html[data-theme="dark"] body.home .nav .nav-trigger:is(:hover,:focus-visible,.is-active),
html[data-theme="dark"] body.home .nav .nav-trigger-plain:is(:hover,:focus-visible,.is-active) {
  color:#008a96!important;
}
html[data-theme] body.home .nav .nav-caret { border-color:currentColor!important }
html[data-theme] body.home .nav .hamburger i { background:#171d24!important }
html[data-theme] body.home .nav .nav-logo-wordmark { color:#171d24!important }
html[data-theme] body.home .nav .brand-logo-img--nav {
  filter:drop-shadow(0 2px 3px rgba(7,31,35,.28)) contrast(1.05);
}
html[data-theme] body.home .nav .nav-cta,
html[data-theme] body.home .nav .nav-cta span {
  color:#fff!important;
}

html[data-theme] body.home .hero,
html[data-theme] body.home .hero[data-design-surface] {
  --hero-ink:#070a0b;
  --hero-copy:#445054;
  --hero-teal:#0099a2;
  min-height:max(700px,100svh);
  position:relative;
  isolation:isolate;
  display:grid;
  place-items:center;
  overflow:hidden;
  padding:clamp(8.5rem,16vh,11rem) clamp(1.25rem,4vw,4rem) clamp(4rem,8vh,6rem);
  border-bottom:1px solid rgba(14,45,49,.06);
  background:radial-gradient(circle at 50% 45%,#fff 0 42%,#fbfcfc 78%,#f6f8f8 100%)!important;
  color:var(--hero-ink)!important;
  border-color:rgba(14,45,49,.06)!important;
}
body.home .hero::before {
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  display:block;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(232,238,239,.48),transparent 21%,transparent 79%,rgba(232,238,239,.48));
}
.hero-shell {
  position:relative;
  z-index:3;
  display:block;
  width:min(820px,58vw);
  margin:0 auto;
  transform:translateY(-2.5vh);
}
body.home .hero .hero-content {
  width:100%;
  max-width:820px!important;
  margin:0 auto!important;
  text-align:center!important;
}
body.home .hero .hero-eyebrow {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.72rem;
  width:auto;
  min-width:330px;
  margin:0 auto clamp(2rem,4vh,3rem)!important;
  padding:.58rem 1rem;
  border:1px solid rgba(0,139,151,.45);
  border-radius:999px;
  background:rgba(255,255,255,.68);
  box-shadow:inset 0 1px 0 #fff,0 8px 28px rgba(17,76,80,.05);
  color:#087f89;
  font-size:.68rem;
  font-weight:750;
  line-height:1;
  letter-spacing:.13em;
  text-transform:uppercase;
  backdrop-filter:blur(12px);
}
body.home .hero .hero-eyebrow-dot {
  width:7px;
  height:7px;
  flex:0 0 auto;
  border-radius:50%;
  background:var(--hero-teal);
  box-shadow:0 0 0 4px rgba(0,153,162,.08),0 0 14px rgba(0,153,162,.55);
  animation:heroBadgePulse 1.4s ease-in-out infinite;
}
html[data-theme] body.home .hero .hero-eyebrow,
html[data-theme] body.home .hero .hero-eyebrow span {
  color:#087f89!important;
}
body.home .hero .hero-content h1 {
  max-width:12ch!important;
  margin:0 auto clamp(1.6rem,3.2vh,2.25rem)!important;
  color:var(--hero-ink)!important;
  font-family:var(--font-display);
  font-size:clamp(3.45rem,5vw,6rem)!important;
  font-weight:760!important;
  line-height:.96!important;
  letter-spacing:-.065em!important;
  text-align:center!important;
  text-wrap:balance;
}
.hero-line { display:block;overflow:hidden }
.hero-line-inner { display:inline-block }
body.home .hero .hero-line-inner.hero-accent { width:100% }
.hero-solution-slot {
  display:inline-grid;
  width:100%;
  overflow:hidden;
  vertical-align:bottom;
}
.hero-solution-slot > span {
  grid-area:1 / 1;
  display:block;
  white-space:nowrap;
  color:var(--accent-teal,#00827e)!important;
  -webkit-text-fill-color:var(--accent-teal,#00827e)!important;
  background:none!important;
  background-image:none!important;
  -webkit-background-clip:border-box;
  background-clip:border-box;
  will-change:transform,opacity;
  transition:opacity .3s ease,transform .42s var(--ease-expo);
}
.hero-solution-slot > span.is-exiting {
  opacity:0;
  transform:translateY(-.28em);
}
.hero-solution-slot > span.is-entering {
  opacity:0;
  transform:translateY(.28em);
}
body.home .hero .hero-accent {
  color:var(--accent-teal,#00827e)!important;
  -webkit-text-fill-color:var(--accent-teal,#00827e)!important;
  background:none!important;
  background-image:none!important;
  -webkit-background-clip:border-box;
  background-clip:border-box;
}
html[data-theme] body.home .hero .hero-line-inner {
  color:#070a0b!important;
  -webkit-text-fill-color:#070a0b!important;
  background-image:none!important;
}
html[data-theme] body.home .hero .hero-line-inner.hero-accent {
  color:var(--accent-teal,#00827e)!important;
  -webkit-text-fill-color:var(--accent-teal,#00827e)!important;
  background:none!important;
  background-image:none!important;
  -webkit-background-clip:border-box;
  background-clip:border-box;
}

/* Exact homepage heading colour map: the static opening/closing lines stay
   black, while every rotating solution phrase stays one solid teal. */
html[data-theme] body.home .hero :is(#hl1,#hl3) {
  color:#070a0b!important;
  -webkit-text-fill-color:#070a0b!important;
}
html[data-theme] body.home .hero :is(#hl2,#heroSolutionText) {
  color:#00827e!important;
  -webkit-text-fill-color:#00827e!important;
  background:none!important;
  background-image:none!important;
}
body.home .hero .hero-sub {
  width:min(100%,560px);
  max-width:560px!important;
  margin:0 auto clamp(2.4rem,4.5vh,3.5rem)!important;
  color:var(--hero-copy)!important;
  font-size:clamp(.98rem,1.25vw,1.16rem);
  line-height:1.7;
  text-align:center!important;
}
body.home .hero .hero-btns {
  display:flex;
  align-items:center;
  justify-content:center!important;
  gap:clamp(.85rem,1.7vw,1.35rem);
  width:auto;
  margin:0 auto!important;
}
body.home .hero .hero-btns .btn {
  min-width:190px;
  min-height:54px;
  padding:.9rem 1.7rem;
  border-radius:999px;
  font-size:.88rem;
  font-weight:650;
  letter-spacing:-.01em;
}
body.home .hero .btn-fill {
  border:1px solid #078b95;
  background:linear-gradient(100deg,#078590,#0aa9ad);
  color:#fff;
  box-shadow:0 12px 30px -16px rgba(0,126,136,.65),inset 0 1px 0 rgba(255,255,255,.22);
}
html[data-theme] body.home .hero .btn-fill {
  border-color:#078b95!important;
  background:linear-gradient(100deg,#078590,#0aa9ad)!important;
  color:#fff!important;
}
html[data-theme] body.home .hero .btn-fill span { color:#fff!important }
body.home .hero .btn-fill:hover,
body.home .hero .btn-fill:focus-visible {
  transform:translateY(-3px);
  box-shadow:0 18px 38px -15px rgba(0,126,136,.72),0 0 0 4px rgba(0,153,162,.08);
}
body.home .hero .hero-secondary {
  border:1px solid rgba(0,137,148,.65);
  background:rgba(255,255,255,.76);
  color:#0b1112;
  box-shadow:inset 0 1px 0 #fff,0 10px 26px -20px rgba(13,56,61,.5);
  backdrop-filter:blur(10px);
}
html[data-theme] body.home .hero .hero-secondary,
html[data-theme] body.home .hero .hero-secondary span {
  color:#0b1112!important;
}
body.home .hero .hero-secondary:hover,
body.home .hero .hero-secondary:focus-visible {
  border-color:#008e98;
  background:#fff;
  transform:translateY(-3px);
  box-shadow:0 16px 32px -22px rgba(0,100,109,.55),0 0 0 4px rgba(0,153,162,.07);
}

/* The hero's only decorative system: dimensional white chevrons and energy. */
.hero-chevron-field {
  position:absolute;
  z-index:1;
  top:50%;
  width:min(32.3vw,620px);
  height:min(72vh,660px);
  min-height:520px;
  pointer-events:none;
  transform:translateY(-45%);
  will-change:transform;
  backface-visibility:hidden;
}
.hero-chevron-field--left { left:max(-5.2vw,-100px) }
.hero-chevron-field--right { right:max(-5.2vw,-100px);transform:translateY(-45%) }
.hero-chevron-field svg { display:block;width:100%;height:100%;overflow:visible }
.hero-chevron-base path {
  fill:none;
  stroke:rgba(248,250,250,.92);
  stroke-width:23;
  stroke-linecap:square;
  stroke-linejoin:miter;
  vector-effect:non-scaling-stroke;
}
.hero-energy path {
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
  stroke-dasharray:180 820;
  animation:heroEnergyTravel 3.2s linear infinite;
}
.hero-energy {
  transform:translate(9px,7px);
}
.hero-energy path:nth-child(2) { animation-delay:-.8s }
.hero-energy path:nth-child(3) { animation-delay:-1.6s }
.hero-energy path:nth-child(4) { animation-delay:-2.4s }
.hero-chevron-field--right .hero-energy path:nth-child(1) { animation-delay:-2s }
.hero-chevron-field--right .hero-energy path:nth-child(2) { animation-delay:-2.8s }
.hero-chevron-field--right .hero-energy path:nth-child(3) { animation-delay:-.4s }
.hero-chevron-field--right .hero-energy path:nth-child(4) { animation-delay:-1.2s }
.hero-energy--blur path {
  stroke:rgba(0,213,210,.82);
  stroke-width:16;
  opacity:.9;
}
.hero-energy--core path {
  stroke:#25fff6;
  stroke-width:3.5;
  filter:drop-shadow(0 0 3px #fff) drop-shadow(0 0 8px #00dcd7);
}
@keyframes heroEnergyTravel {
  0% { stroke-dashoffset:1100;opacity:.62 }
  42% { opacity:1 }
  55% { opacity:1 }
  100% { stroke-dashoffset:100;opacity:.76 }
}
@keyframes heroBadgePulse {
  0%,100% { opacity:.78;transform:scale(.88) }
  50% { opacity:1;transform:scale(1.18) }
}

@media (max-width:1100px) {
  .hero-shell { width:min(720px,66vw) }
  .hero-chevron-field { width:38vw;opacity:.92 }
  .hero-chevron-field--left { left:-18vw }
  .hero-chevron-field--right { right:-18vw }
}
@media (max-width:760px) {
  body.home .hero { min-height:max(660px,100svh);padding:7.5rem 1.15rem 3.5rem }
  .hero-shell { width:min(100%,580px) }
  body.home .hero .hero-content h1 { max-width:11ch!important;font-size:clamp(3rem,13vw,4.8rem)!important }
  .hero-chevron-field { width:62vw;height:67vh;min-height:440px;opacity:.58;transform:translateY(-42%) }
  .hero-chevron-field--left { left:-49vw }
  .hero-chevron-field--right { right:-49vw;transform:translateY(-42%) }
  .hero-chevron-base path { stroke-width:25 }
}
@media (max-width:520px) {
  body.home .hero .hero-eyebrow { min-width:0;max-width:100%;margin-bottom:1.8rem!important;font-size:.58rem;letter-spacing:.1em }
  body.home .hero .hero-content h1 { font-size:clamp(2.8rem,13.2vw,4.15rem)!important }
  body.home .hero .hero-sub { max-width:32ch!important;font-size:.96rem }
  body.home .hero .hero-btns { flex-direction:column;width:min(100%,310px) }
  body.home .hero .hero-btns .btn { width:100%;min-width:0 }
  .hero-chevron-field { opacity:.48 }
}
@media (prefers-reduced-motion:reduce) {
  .hero-energy path,body.home .hero .hero-eyebrow-dot { animation:none!important }
  .hero-energy path { stroke-dashoffset:540 }
  .hero-solution-slot > span { transition:none!important }
}
