/* Main content styles for Home, About Us and Contact Us.
   Shared header, footer, fonts and animations remain in site.css. */

main {
  --blue: #155cd7;
  --cyan: #0bb3ea;
  --ink: #071733;
  --muted: #64728b;
  --line: #dfe8f1;
  --pale: #f3f8ff
}

main * {
  box-sizing: border-box
}

main h1,
main h2,
main h3,
main p {
  margin-top: 0
}

main a {
  text-decoration: none
}

main button,
main a {
  -webkit-tap-highlight-color: transparent
}

main .container-wide {
  max-width: 1440px;
  margin: auto;
  padding: 0 48px
}

main .btn-cta,
main .btn-white {
  display: inline-flex;
  justify-content: space-between;
  align-items: center;
  gap: 35px;
  background: var(--blue);
  color: #fff;
  font-weight: 700;
  font-size: 13px;
  padding: 17px 21px;
  border-radius: 5px;
  overflow: hidden;
  position: relative;
  isolation: isolate;
  transition: transform .3s, box-shadow .3s, background .3s;
  white-space: nowrap
}

main .btn-cta:before,
main .btn-white:before {
  content: '';
  position: absolute;
  inset: 0;
  background: #092d82;
  transform: translateY(102%);
  transition: transform .35s ease;
  z-index: -1
}

main .btn-cta:hover:before,
main .btn-white:hover:before {
  transform: translateY(0)
}

main .btn-cta:hover {
  color: white;
  box-shadow: 0 15px 30px #155cd72c;
  transform: translateY(-3px)
}

main .btn-cta span,
main .btn-white span,
main .btn-ghost span,
main .text-arrow span {
  font-size: 20px;
  line-height: 1;
  transition: transform .3s
}

main .btn-cta:hover span,
main .btn-ghost:hover span,
main .btn-white:hover span,
main .text-arrow:hover span {
  transform: translate(3px, -3px)
}

main .btn-ghost {
  display: inline-flex;
  gap: 28px;
  align-items: center;
  color: #0e2b53;
  font-size: 13px;
  font-weight: 800;
  border-bottom: 1px solid #bad0e5;
  padding: 15px 0;
  transition: color .3s
}

main .btn-ghost:hover,
main .text-arrow:hover {
  color: var(--blue)
}

main .hero {
  overflow: hidden;
  background: #f5f9ff
}

main .eyebrow {
  font-size: 11px;
  font-weight: 850;
  color: #84d9fb;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 27px
}

main .eyebrow.dark {
  color: var(--blue)
}

main .dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  background: var(--cyan);
  border-radius: 50%;
  box-shadow: 0 0 0 5px #1bb8ee20
}

main .hero h1 {
  font-size: clamp(56px, 5.7vw, 92px);
  line-height: 1.04;
  font-weight: 850;
  margin-bottom: 27px
}

main .hero h1 em,
main .about-content h2 em,
main .journal-grid em,
main .final-cta em {
  font-style: normal;
  color: var(--blue)
}

main .ticker {
  background: #092554;
  color: #dbecff;
  overflow: hidden;
  padding: 19px 0
}

main .ticker-track {
  white-space: nowrap;
  width: max-content;
  font-weight: 750;
  font-size: 11px;
  animation: marquee 38s linear infinite
}

main .section {
  padding: 112px 0
}

main .section-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 60px;
  margin-bottom: 45px
}

main .section-heading h2,
main .about-content h2,
main .why-heading h2,
main .location-content h2,
main .shop-note h2,
main .faq-intro h2,
main .final-cta h2 {
  font-size: clamp(39px, 4.2vw, 67px);
  line-height: 1.13;
  font-weight: 850;
  margin-bottom: 0
}

main .accent-dot {
  color: var(--cyan)
}

main .heading-aside {
  max-width: 410px;
  color: #62738b;
  font-size: 14px;
  line-height: 1.85
}

main .heading-aside p {
  margin: 0
}

main .service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 17px
}

main .service-card {
  min-height: 292px;
  border: 1px solid #e0eaf3;
  background: #fff;
  border-radius: 10px;
  padding: 27px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  transition: background .35s, border-color .35s, box-shadow .35s;
  overflow: hidden
}

main .service-card:before {
  content: '';
  position: absolute;
  inset: auto -50px -90px auto;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  background: #d7eeff55;
  transition: transform .45s;
  transform: translate(80px, 70px)
}

main .service-card:hover {
  border-color: #abd1ff;
  background: #f7fbff;
  box-shadow: 0 20px 45px #0d3c7314
}

main .service-card:hover:before {
  transform: translate(40px, 35px)
}

main .service-top {
  display: flex;
  justify-content: space-between;
  align-items: center
}

main .service-num {
  color: #8aa1bd;
  font-size: 12px;
  font-weight: 850
}

main .service-symbol {
  width: 51px;
  height: 51px;
  border-radius: 13px;
  background: #e8f3ff;
  color: var(--blue);
  font-size: 15px;
  font-weight: 850;
  display: grid;
  place-items: center
}

main .service-card h3 {
  font-size: 26px;
  font-weight: 800;
  margin-bottom: 12px
}

main .service-card p {
  color: #687991;
  font-size: 12px;
  line-height: 1.75;
  margin: 0;
  max-width: 96%
}

main .service-arrow {
  position: absolute;
  right: 25px;
  bottom: 25px;
  border: 1px solid #cfdfef;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #0d4dbc;
  transition: background .25s, color .25s, transform .25s
}

main .service-card:hover .service-arrow {
  background: var(--blue);
  color: #fff;
  transform: rotate(45deg)
}

main .split-section {
  background: #f3f7fc
}

main .about-layout {
  display: grid;
  grid-template-columns: 48% 52%;
  gap: 65px;
  align-items: center
}

main .about-visual {
  position: relative;
  min-height: 690px
}

main .about-content {
  padding-right: 60px
}

main .about-content h2 {
  margin-bottom: 23px
}

main .lead-text {
  color: #64718a;
  line-height: 1.8
}

main .process-list {
  margin: 38px 0 25px;
  border-top: 1px solid #dce5f0
}

main .process-step {
  padding: 21px 0 19px 48px;
  border-bottom: 1px solid #dce5f0;
  position: relative
}

main .step-index {
  position: absolute;
  top: 25px;
  left: 0;
  font-size: 13px;
  color: var(--blue);
  font-weight: 850
}

main .process-step h3 {
  font-size: 18px;
  font-weight: 800;
  margin-bottom: 8px
}

main .process-step p {
  font-size: 12px;
  line-height: 1.8;
  color: #64738d;
  margin: 0
}

main .text-arrow {
  display: inline-flex;
  align-items: center;
  gap: 30px;
  font-weight: 850;
  font-size: 13px;
  color: var(--blue);
  border-bottom: 1px solid #9bbce6;
  padding-bottom: 12px
}

main .why-section {
  background: #071d46;
  color: white
}

main .why-heading {
  max-width: 870px;
  margin-bottom: 49px
}

main .why-heading h2 {
  margin-top: 0
}

main .benefits-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: #ffffff23;
  border: 1px solid #ffffff23
}

main .benefit {
  background: #071d46;
  padding: 40px 32px;
  min-height: 273px;
  transition: background .3s
}

main .benefit:hover {
  background: #0b2b60
}

main .benefit-dot {
  color: #55d6ff;
  font-size: 27px;
  margin-bottom: 28px
}

main .benefit h3 {
  font-weight: 800;
  font-size: 21px;
  margin-bottom: 17px
}

main .benefit p {
  color: #adc0d9;
  font-size: 12px;
  line-height: 1.85;
  margin-bottom: 0
}

main .location-section {
  background: #eaf4ff
}

main .location-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center
}

main .location-content h2 {
  margin-bottom: 28px
}

main .location-content p {
  color: #5b6d86;
  font-size: 14px;
  line-height: 1.9;
  max-width: 560px
}

main .location-actions {
  display: flex;
  gap: 26px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 30px
}

main .location-card {
  border-radius: 12px;
  background: #0d51b7;
  color: #fff;
  min-height: 470px;
  padding: 35px;
  position: relative;
  overflow: hidden
}

main .location-card:before {
  content: '';
  position: absolute;
  width: 500px;
  height: 500px;
  border: 1px solid #ffffff3d;
  border-radius: 50%;
  bottom: -310px;
  right: -170px;
  box-shadow: 0 0 0 70px #ffffff0b, 0 0 0 140px #ffffff0b
}

main .location-card-top {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  font-weight: 850;
}

main .location-big {
  font-weight: 900;
  font-size: clamp(35px, 4vw, 64px);
  margin: 65px 0 24px;
  display: flex;
  justify-content: space-between
}

main .location-big span {
  font-size: 37px
}

main .location-lines {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  color: #d3eaff;
  font-size: 12px;
  line-height: 1.8
}

main .map-decoration {
  position: absolute;
  bottom: 26px;
  left: 35px;
  right: 35px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #80ccfa;
  font-size: 11px;
  font-weight: 800
}

main .map-point {
  color: white;
  font-size: 32px
}

main .shop-note {
  padding: 65px 0;
  border-bottom: 1px solid var(--line)
}

main .shop-note-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 45px
}

main .shop-note-inner>div {
  max-width: 760px
}

main .shop-note h2 {
  font-size: 36px;
  margin-bottom: 14px
}

main .shop-note p {
  font-size: 14px;
  line-height: 1.8;
  color: #677991
}

main .blog-section {
  background: #fff
}

main .journal-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px
}

main .journal-card {
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
  background: white;
  transition: box-shadow .3s
}

main .journal-card:hover {
  box-shadow: 0 20px 40px #091f4b16
}

main .journal-image {
  height: 220px;
  position: relative;
  overflow: hidden;
  background: #e8f1ff
}

main .journal-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .65s cubic-bezier(.2, .6, .2, 1)
}

main .journal-card:hover img {
  transform: scale(1.07)
}

main .journal-image>span {
  position: absolute;
  top: 17px;
  left: 17px;
  background: #fff;
  color: var(--blue);
  padding: 8px 13px;
  border-radius: 5px;
  font-size: 10px;
  font-weight: 800
}

main .journal-copy {
  padding: 27px
}

main .micro-label {
  font-size: 10px;
  color: #6286b4;
  font-weight: 800;
  margin-bottom: 12px
}

main .journal-copy h3 {
  font-size: 22px;
  line-height: 1.3;
  font-weight: 800;
  min-height: 58px
}

main .journal-copy a {
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
  display: flex;
  justify-content: space-between;
  margin-top: 23px
}

main .faq-section {
  background: #f5f8fd
}

main .faq-layout {
  display: grid;
  grid-template-columns: 38% 62%;
  gap: 70px
}

main .faq-intro h2 {
  margin-bottom: 20px
}

main .faq-intro p {
  font-size: 14px;
  color: #687c93;
  line-height: 1.8;
  margin-bottom: 26px
}

main .accordion {
  padding-right: 60px
}

main .accordion-item {
  border: 0;
  border-bottom: 1px solid #d9e2ef;
  background: none;
  border-radius: 0 !important
}

main .accordion-button {
  background: none !important;
  box-shadow: none !important;
  color: #0b244b !important;
  padding: 21px 12px 21px 0;
  font-size: 15px;
  font-weight: 750
}

main .accordion-button:not(.collapsed) {
  color: var(--blue) !important
}

main .accordion-button:after {
  background-image: none;
  content: '+';
  font-size: 24px;
  font-weight: 400;
  display: grid;
  place-items: center;
  transform: none !important
}

main .accordion-button:not(.collapsed):after {
  content: '−'
}

main .accordion-body {
  padding: 0 18px 22px 0;
  font-size: 13px;
  color: #61758e;
  line-height: 1.8
}

main .final-cta {
  background: #135fd0;
  color: #fff;
  padding: 92px 0;
  position: relative;
  overflow: hidden
}

main .final-cta:after {
  content: '✳';
  font-size: 550px;
  position: absolute;
  right: -80px;
  top: -260px;
  opacity: .08;
  pointer-events: none
}

main .final-cta-in {
  position: relative;
  z-index: 1
}

main .final-cta .eyebrow {
  color: #d1edff
}

main .final-cta h2 {
  font-size: clamp(55px, 7vw, 108px)
}

main .final-cta h2 em {
  color: #a1e7ff
}

main .cta-bottom {
  display: flex;
  gap: 30px;
  justify-content: space-between;
  align-items: end;
  margin-top: 30px
}

main .cta-bottom p {
  max-width: 420px;
  color: #d5edff;
  line-height: 1.8;
  font-size: 14px;
  margin-bottom: 0
}

main .btn-white {
  background: white;
  color: #08438e
}

main .btn-white:before {
  background: #dff4ff
}

main .btn-white:hover {
  color: #08438e;
  transform: translateY(-3px)
}

main .reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .75s ease, transform .75s cubic-bezier(.2, .7, .2, 1)
}

@media(max-width:1199px) {
main .container-wide {
    padding: 0 28px
  }

main .hero h1 {
    font-size: clamp(48px, 5vw, 68px)
  }

main .about-layout {
    gap: 35px
  }

main .about-content {
    padding-right: 0
  }

main .faq-layout {
    gap: 35px
  }

main .accordion {
    padding-right: 0
  }
}

@media(max-width:991px) {
main .hero h1 {
    font-size: clamp(58px, 8vw, 88px)
  }

main .section {
    padding: 85px 0
  }

main .service-grid {
    grid-template-columns: repeat(2, 1fr)
  }

main .about-layout,
main .location-layout {
    grid-template-columns: 1fr
  }

main .about-visual {
    min-height: 460px;
    order: 2
  }

main .about-content {
    order: 1
  }

main .benefits-grid {
    grid-template-columns: repeat(2, 1fr)
  }

main .faq-layout {
    grid-template-columns: 1fr
  }
}

@media(max-width:650px) {
main .container-wide {
    padding: 0 20px
  }

main .hero h1 {
    font-size: clamp(45px, 11.8vw, 66px);
    margin-bottom: 24px
  }

main .section {
    padding: 70px 0
  }

main .section-heading {
    display: block;
    margin-bottom: 30px
  }

main .section-heading h2,
main .about-content h2,
main .why-heading h2,
main .location-content h2,
main .faq-intro h2 {
    font-size: 42px
  }

main .heading-aside {
    margin-top: 20px
  }

main .service-grid,
main .benefits-grid,
main .journal-grid {
    grid-template-columns: 1fr
  }

main .service-card {
    min-height: 260px
  }

main .about-visual {
    min-height: 355px
  }

main .location-layout {
    gap: 35px
  }

main .location-card {
    min-height: 350px;
    padding: 25px
  }

main .location-big {
    margin-top: 48px
  }

main .location-lines {
    font-size: 10px
  }

main .map-decoration {
    left: 25px;
    right: 25px
  }

main .shop-note-inner {
    display: block
  }

main .shop-note h2 {
    font-size: 33px
  }

main .shop-note .btn-ghost {
    margin-top: 15px
  }

main .journal-image {
    height: 210px
  }

main .faq-layout {
    gap: 20px
  }

main .final-cta {
    padding: 70px 0
  }

main .final-cta h2 {
    font-size: 52px
  }

main .cta-bottom {
    display: block
  }

main .cta-bottom .btn-white {
    margin-top: 25px
  }

main .eyebrow {
    font-size: 9px;
  }
}

@media(prefers-reduced-motion:reduce) {
main *,
main *:before,
main *:after {
    scroll-behavior: auto !important;
    animation: none !important;
    transition: none !important
  }

main .reveal {
    opacity: 1;
    transform: none
  }
}

main {
  --blue: #155bdb;
  --cyan: #16a2dc;
  --ink: #0e1a31;
  --muted: #54627a;
  --line: #e2e8f0;
  --pale: #f6f9fd
}

main .container-wide {
  max-width: 1420px;
  padding-inline: clamp(20px, 4vw, 60px)
}

main .btn-cta,
main .btn-white {
  border-radius: 50px;
  padding: 19px 26px;
  font-size: 13px;
  min-height: 56px;
  box-shadow: 0 9px 25px #155bdb20;
  align-items: center
}

main .btn-cta:before,
main .btn-white:before {
  border-radius: 50px
}

main .btn-ghost {
  font-size: 13px
}

main .quick-facts {
  background: #f4f8ff
}

main .quick-facts-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  padding: 35px 0
}

main .quick-fact {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 16px 35px;
  border-right: 1px solid #d5e3f4
}

main .quick-fact:first-child {
  padding-left: 0
}

main .quick-fact:last-child {
  border-right: 0
}

main .qf-number {
  color: #0b7bd5;
  font-weight: 900;
  font-size: 15px
}

main .quick-fact strong {
  font-size: 15px;
  color: #0d254a;
}

main .quick-fact p {
  font-size: 11px;
  line-height: 1.65;
  color: #697a90;
  margin-top: 9px;
  margin-bottom: 0
}

main .section {
  padding: clamp(75px, 8vw, 120px) 0
}

main .section-heading h2,
main .about-content h2,
main .why-heading h2,
main .location-content h2,
main .faq-intro h2 {
  font-size: clamp(39px, 4vw, 65px);
  line-height: 1.1;
  font-weight: 900
}

main .section-heading .eyebrow {
  margin-bottom: 20px
}

main .service-grid {
  gap: 16px
}

main .service-card {
  border-radius: 18px;
  border: 1px solid #dce6f2;
  box-shadow: 0 10px 26px #07295b08
}

main .service-card:hover {
  box-shadow: 0 30px 50px #0e4faf15
}

main .why-section {
  background: #0b1f40
}

main .benefits-grid {
  gap: 14px;
  border: 0;
  background: transparent
}

main .benefit {
  border: 1px solid #ffffff20;
  border-radius: 16px;
  background: #142b50
}

main .benefit:hover {
  background: #183661
}

main .about-visual {
  border-radius: 24px;
  overflow: hidden
}

main .location-section {
  background: #f2f7fe
}

main .location-card {
  border-radius: 24px
}

main .journal-card {
  border-radius: 16px
}

main .journal-copy h3 {
  font-size: 21px
}

main .faq-section {
  background: #f7f9fd
}

main .final-cta {
  background: linear-gradient(110deg, #1151c0, #167ade);
  border-radius: 0
}

@media(max-width:991px) {
main .quick-facts-grid {
    grid-template-columns: 1fr
  }

main .quick-fact {
    border: 0;
    border-bottom: 1px solid #d5e3f4;
    padding: 23px 0
  }

main .quick-fact:last-child {
    border: 0
  }
}

@media(max-width:650px) {
main .quick-facts-grid {
    padding: 15px 0
  }

main .section-heading h2,
main .about-content h2,
main .why-heading h2,
main .location-content h2,
main .faq-intro h2 {
    font-size: clamp(36px, 9vw, 48px)
  }
}

main {
  --electric: #256dff;
  --ice: #7de8ff;
  --blue: #075de7;
  --midnight: #07142b;
  --ink: #0c1930;
  --sub: #59697d
}

main:is(main) {
  font-family: ImpactInter, Inter, Arial, sans-serif;
  color: var(--ink);
  background: #fff;
  -webkit-font-smoothing: antialiased;
 
}

main:is(main) p {
  font-size: 15px;
  line-height: 1.88
}

main:is(main) a,
main:is(main) button {
  -webkit-tap-highlight-color: transparent
}

main:is(main) .container-wide {
  max-width: 1500px;
  padding-left: clamp(22px, 5vw, 76px);
  padding-right: clamp(22px, 5vw, 76px)
}

main:is(main) .hero-v6 {
  position: relative;
  isolation: isolate;
  background: radial-gradient(circle at 57% 16%, #172f67 0, #0a1d44 34%, #06132c 69%, #050e20 100%);
  color: #fff;
  overflow: hidden
}

main .hero-orb {
  position: absolute;
  pointer-events: none;
  border-radius: 50%;
  filter: blur(5px);
  opacity: .5
}

main .hero-orb-a {
  width: 520px;
  height: 520px;
  top: -350px;
  left: 29%;
  background: #17428a
}

main .hero-orb-b {
  width: 300px;
  height: 300px;
  right: -200px;
  bottom: 0;
  background: #1354bb
}

main .hero-v6-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(0, .97fr);
  gap: clamp(22px, 3vw, 50px);
  align-items: center;
  padding-top: clamp(55px, 6vw, 94px);
  padding-bottom: clamp(62px, 6vw, 94px)
}

main .hero-v6-copy {
  position: relative;
  z-index: 5;
  min-width: 0
}

main .hero-v6-tag {
  font-size: 10px;
  font-weight: 700;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 11px;
  color: #b5c5e9;
  margin-bottom: 34px
}

main .pulse-dot {
  width: 9px;
  height: 9px;
  display: inline-block;
  border-radius: 50%;
  background: #54dcf7;
  box-shadow: 0 0 0 6px #54dcf71e
}

main .tag-arrow {
  color: #60cfff;
  font-size: 16px
}

main .hero-v6 h1 {
  max-width: 820px;
  margin: 0;
  font-size: clamp(55px, 6vw, 108px);
  font-weight: 800;
  line-height: 1.045;
  color: white
}

main .hero-v6 h1 em {
  font-style: normal;
  color: #69d9ff;
  position: relative
}

main .hero-period {
  font-size: .4em;
  color: #6098ff;
  display: inline-block;
  vertical-align: top;
  transform: translate(12px, 18px)
}

main .hero-heading-rule {
  height: 1px;
  background: linear-gradient(90deg, #7bb2ff79, transparent);
  max-width: 680px;
  margin: 36px 0 27px
}

main .hero-v6-intro {
  max-width: 625px
}

main .hero-v6-intro h2 {
  font-size: 17px !important;
  font-weight: 700;
  color: #fff;
  margin: 0 0 15px
}

main .hero-v6-intro p {
  color: #b8c7dd !important;
  font-size: 13px !important;
  line-height: 1.84 !important;
  margin: 0 0 11px
}

main .hero-v6-actions {
  display: flex;
  align-items: center;
  gap: 26px;
  flex-wrap: wrap;
  margin: 30px 0 39px
}
.hero-image-footer {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 18px;
  font-weight: 700;
  font-size: 9px;
  color: #9eb1da
}

.hero-image-footer b {
  color: #61dfff;
  font-size: 16px
}
main .impact-button {
  background: #2779ff;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 61px;
  padding: 7px 8px 7px 24px;
  border-radius: 11px;
  text-decoration: none !important;
  font-weight: 700;
  font-size: 13px;
  position: relative;
  overflow: hidden;
  transition: background .3s, box-shadow .3s, transform .3s
}

main .impact-button:after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-120%) skewX(-20deg);
  width: 70%;
  background: linear-gradient(90deg, transparent, #ffffff22, transparent);
  transition: transform .6s;
  pointer-events: none
}

main .impact-button:hover:after {
  transform: translateX(230%) skewX(-20deg)
}

main .impact-button:hover {
  background: #3d89ff;
  color: white;
  transform: translateY(-3px);
  box-shadow: 0 16px 34px #051d5c70
}

main .impact-button-icon {
  display: grid;
  place-items: center;
  background: #fff;
  color: #155bdd;
  width: 46px;
  height: 46px;
  border-radius: 7px;
  font-size: 19px;
  transition: transform .3s
}

main .impact-button:hover .impact-button-icon {
  transform: rotate(45deg)
}

main .impact-link {
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
  border-bottom: 1px solid #7596ca;
  padding: 11px 0
}

main .impact-link span {
  margin-left: 9px;
  color: #63d8ff
}

main .impact-link:hover {
  color: #7de8ff
}

main .hero-v6-proof {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 25px;
  border-top: 1px solid #ffffff29;
  padding-top: 24px
}

main .hero-v6-proof span {
  display: flex;
  flex-direction: column;
  color: #a8b8d7;
  gap: 7px;
  font-size: 9px;
  font-weight: 700
}

main .hero-v6-proof strong {
  color: white;
  font-size: 22px;
  font-weight: 800
}

main .hero-v6-visual {
  position: relative;
  min-width: 0;
  z-index: 2
}

main .hero-visual-track {
  min-height: 650px;
  position: relative;
  border-radius: 42px 42px 190px 42px;
  overflow: visible;
  background: radial-gradient(circle at 36% 28%, #83d5ff 0%, #367fff 28%, #0b54d0 59%, #082b86 100%);
  box-shadow: 0 40px 90px #020a1c90;
  isolation: isolate
}

main .hero-visual-track:before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(140deg, #ffffff24, transparent 42%);
  pointer-events: none;
  z-index: 4
}

main .ring {
  position: absolute;
  border: 1px solid #ffffff35;
  border-radius: 50%;
  width: 85%;
  aspect-ratio: 1;
  top: 6%;
  left: 8%
}

main .ring-b {
  width: 62%;
  top: 19%;
  left: 20%;
  border-style: dashed
}

main .hero-giant-outline {
  position: absolute;
  top: -9%;
  right: 8%;
  font-weight: 800;
  font-size: clamp(300px, 37vw, 530px);
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px #ffffff21;
  pointer-events: none;
  user-select: none
}

main .hero-floating {
  position: absolute;
  z-index: 6;
  display: flex;
  align-items: center;
  gap: 13px;
  background: #fff;
  color: #102447;
  border-radius: 13px;
  box-shadow: 0 22px 50px #05123073;
  padding: 13px 16px;
  animation: heroLevitate 6s ease-in-out infinite
}

main .hero-floating strong {
  display: block;
  white-space: nowrap;
  font-size: 12px;
  font-weight: 800
}

main .hero-floating small {
  font-size: 10px;
  color: #63768c;
  margin-top: 4px;
  display: block
}

main .hero-floating-top {
  top: 10%;
  left: -8%
}

main .floating-symbol {
  background: #eaf8ff;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  color: #1176cb;
  display: grid;
  place-items: center;
  font-size: 23px
}

main .hero-floating-bottom {
  bottom: 15%;
  right: -8%;
  animation-delay: -3s
}

main .mini-stars {
  color: #ebac24;
  font-size: 15px;
}

main .hero-vertical-label {
  position: absolute;
  right: 13px;
  bottom: 19%;
  writing-mode: vertical-rl;
  font-size: 9px;
  color: #d9edff;
  font-weight: 700;
  z-index: 5
}

main .hero-marquee {
  height: 73px;
  display: flex;
  align-items: center;
  background: #69dbfb;
  color: #061931;
  overflow: hidden
}

main .hero-marquee-inner {
  display: flex;
  align-items: center;
  gap: 40px;
  width: max-content;
  white-space: nowrap;
  animation: marqueeSlide 35s linear infinite
}

main .hero-marquee-inner span {
  font-size: 16px;
  font-weight: 800
}

main .hero-marquee-inner i {
  font-size: 24px;
  font-style: normal;
  color: #155bd7
}

@keyframes heroLevitate {
  50% {
    transform: translate3d(0, -13px, 0)
  }
}

@keyframes marqueeSlide {
  to {
    transform: translateX(-42%)
  }
}

main:is(main) .quick-facts {
  background: #f0f6ff
}

main:is(main) .quick-facts-grid {
  padding: 36px 0
}

main:is(main) .quick-fact strong {
  font-size: 16px
}

main:is(main) .quick-fact p {
  font-size: 12px
}

main:is(main) .section {
  padding: clamp(85px, 8vw, 136px) 0
}

main:is(main) .eyebrow {
  font-size: 11px;
  font-weight: 700;
}

main:is(main) .eyebrow.dark {
  color: #1269ea
}

main:is(main) .section-heading h2,
main:is(main) .about-content h2,
main:is(main) .why-heading h2,
main:is(main) .location-content h2,
main:is(main) .faq-intro h2 {
  font-family: ImpactInter, sans-serif;
  font-weight: 800 !important;
  font-size: clamp(39px, 4.7vw, 72px) !important;
  line-height: 1.09 !important;
}

main:is(main) .section-heading p {
  font-size: 15px;
  line-height: 1.82
}

main:is(main) .section-service {
  background: #fff
}

main:is(main) .section-service .section-heading {
  margin-bottom: 48px
}

main:is(main) .service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px
}

main:is(main) .service-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 475px;
  background: #f4f8ff;
  border: 1px solid #e5edf9;
  border-radius: 24px;
  padding: 26px;
  overflow: hidden;
  box-shadow: none;
  transition: border-color .32s, box-shadow .32s, background .32s, transform .32s
}

main:is(main) .service-card:hover {
  transform: translateY(-7px);
  background: #edf5ff;
  border-color: #9fc2ff;
  box-shadow: 0 25px 50px #1252a91c
}

main:is(main) .service-top {
  position: relative;
  z-index: 2
}

main:is(main) .service-num {
  font-size: 11px;
  color: #6986a9
}

main:is(main) .service-symbol {
  color: #176de4;
  font-weight: 800
}

main:is(main) .service-photo {
  height: 175px;
  display: grid;
  place-items: center;
  margin: 4px 0 20px;
  overflow: hidden;
  border-radius: 14px;
  background: #dceafa
}

main:is(main) .service-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .75s cubic-bezier(.2, .7, .25, 1)
}

main:is(main) .service-card:hover .service-photo img {
  transform: scale(1.065)
}

main:is(main) .service-card h3 {
  font-size: 23px;
  line-height: 1.2;
  font-weight: 800;
}

main:is(main) .service-card p {
  font-size: 12px;
  line-height: 1.77;
  color: #596e88
}

main:is(main) .service-arrow {
  background: #1565e9;
  color: white;
  width: 40px;
  height: 40px;
  min-height: 40px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  margin-top: auto;
  align-self: flex-end
}

main:is(main) .service-arrow:hover {
  background: #071b43;
  color: #fff
}

main:is(main) .split-section {
  background: #f3f7fc
}

main:is(main) .about-layout {
  gap: clamp(40px, 5vw, 86px)
}

main:is(main) .about-visual {
  min-height: 680px;
  position: relative;
  border-radius: 23px;
  overflow: hidden
}

main:is(main) .process-photo {
  position: absolute;
  width: 100%;
  height: 100%;
  inset: 0;
  object-fit: cover
}

main:is(main) .process-photo-stamp {
  position: absolute;
  left: 24px;
  bottom: 24px;
  background: #0b57dc;
  color: white;
  border-radius: 13px;
  padding: 22px 26px;
  display: flex;
  gap: 18px;
  align-items: center
}

main:is(main) .process-photo-stamp strong {
  font-weight: 800;
  font-size: 35px;
}

main:is(main) .process-photo-stamp span {
  font-size: 12px
}

main:is(main) .about-content .lead-text {
  font-size: 16px
}

main:is(main) .process-step {
  border-color: #dce5ef
}

main:is(main) .process-step h3 {
  font-size: 16px;
  font-weight: 700
}

main:is(main) .process-step p {
  font-size: 12px;
  color: #62738c
}

main:is(main) .why-section {
  background: #06152e;
  position: relative;
  overflow: hidden
}

main:is(main) .why-section:before {
  content: "";
  position: absolute;
  width: 450px;
  height: 450px;
  border-radius: 50%;
  background: #1a5bd1;
  filter: blur(170px);
  right: -180px;
  top: -220px;
  opacity: .4
}

main:is(main) .benefits-grid {
  gap: 18px
}

main:is(main) .benefit {
  background: #102549;
  border: 1px solid #ffffff25;
  border-radius: 19px;
  padding: 28px;
  transition: background .3s, transform .3s, border-color .3s
}

main:is(main) .benefit:hover {
  background: #183663;
  transform: translateY(-5px);
  border-color: #ffffff66
}

main:is(main) .benefit h3 {
  font-weight: 700;
  font-size: 21px;
  line-height: 1.28;
}

main:is(main) .benefit p {
  font-size: 12px;
  line-height: 1.85;
  color: #b6c5dc
}

main:is(main) .location-section {
  background: #fff
}

main:is(main) .location-card {
  border-radius: 23px
}

main:is(main) .location-content p {
  font-size: 14px;
  line-height: 1.9
}

main:is(main) .blog-section {
  background: #f3f8ff
}

main:is(main) .journal-grid {
  gap: 20px
}

main:is(main) .journal-card {
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 40px #0b316012;
  transition: transform .35s, box-shadow .35s
}

main:is(main) .journal-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 27px 45px #0b316024
}

main:is(main) .journal-copy h3 {
  font-size: 21px;
  font-weight: 700;
}

main:is(main) .faq-section {
  background: #fff
}

main:is(main) .accordion-item {
  border-radius: 9px !important
}

main:is(main) .accordion-button {
  font-family: ImpactInter, sans-serif;
  font-weight: 600;
  font-size: 15px
}

main:is(main) .final-cta {
  background: linear-gradient(120deg, #1258e3, #267efb);
  position: relative;
  overflow: hidden
}

main:is(main) .final-cta:after {
  content: "✳";
  position: absolute;
  font-size: 430px;
  right: -50px;
  top: -200px;
  opacity: .09;
  color: white;
  pointer-events: none
}

main:is(main) .reveal {
  transition: opacity .8s ease !important
}

@media(max-width:1250px) {
main .hero-v6-grid {
    grid-template-columns: 1.06fr .94fr
  }

main .hero-v6 h1 {
    font-size: clamp(51px, 6vw, 82px)
  }

main .hero-visual-track {
    min-height: 540px
  }

main .hero-v6-intro p {
    font-size: 12px !important
  }

main .hero-floating-top {
    left: -3%
  }

main .hero-floating-bottom {
    right: -3%
  }

main:is(main) .service-grid {
    gap: 16px
  }

main:is(main) .service-card {
    padding: 21px
  }
}

@media(max-width:991px) {
main .hero-v6-grid {
    grid-template-columns: 1fr;
    gap: 40px;
    padding-top: 62px
  }

main .hero-v6-copy {
    max-width: 790px
  }

main .hero-v6 h1 {
    font-size: clamp(64px, 10vw, 100px)
  }

main .hero-v6-visual {
    max-width: 650px;
    width: 90%;
    margin: 0 auto
  }

main .hero-visual-track {
    min-height: 600px
  }

main:is(main) .service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

main:is(main) .about-visual {
    min-height: 500px
  }
}

@media(max-width:650px) {
main:is(main) .hero-v6 .container-wide {
    padding-inline: 21px
  }

main .hero-v6-grid {
    padding-top: 45px;
    padding-bottom: 53px;
    gap: 26px
  }

main .hero-v6-tag {
    font-size: 9px;
    line-height: 1.9;
    gap: 8px;
    margin-bottom: 22px
  }

main .hero-v6 h1 {
    font-size: clamp(47px, 11.2vw, 66px);
  }

main .hero-period {
    transform: translate(4px, 10px)
  }

main .hero-heading-rule {
    margin: 27px 0 20px
  }

main .hero-v6-intro h2 {
    font-size: 15px !important
  }

main .hero-v6-intro p {
    font-size: 12px !important
  }

main .hero-v6-actions {
    gap: 13px;
    margin: 28px 0
  }

main .impact-button {
    min-height: 57px
  }

main .hero-v6-proof {
    justify-content: space-between;
    gap: 10px
  }

main .hero-v6-proof strong {
    font-size: 17px
  }

main .hero-v6-proof span {
    font-size: 8px
  }

main .hero-v6-visual {
    width: 100%
  }

main .hero-visual-track {
    min-height: 360px;
    border-radius: 24px 24px 100px 24px
  }

main .hero-floating {
    padding: 9px 10px;
    gap: 7px
  }

main .hero-floating strong {
    font-size: 9px
  }

main .hero-floating small {
    font-size: 8px
  }

main .hero-floating-top {
    left: -2%;
    top: 10%
  }

main .hero-floating-bottom {
    right: -2%;
    bottom: 12%
  }

main .mini-stars {
    font-size: 9px
  }

main .floating-symbol {
    width: 24px;
    height: 24px;
    font-size: 15px
  }

main .hero-vertical-label {
    font-size: 7px
  }

main .hero-marquee {
    height: 59px
  }

main .hero-marquee-inner span {
    font-size: 13px
  }

main:is(main) .service-grid {
    grid-template-columns: 1fr
  }

main:is(main) .service-card {
    min-height: 400px
  }

main:is(main) .service-photo {
    height: 200px
  }

main:is(main) .about-visual {
    min-height: 380px
  }

main:is(main) .section-heading h2,
main:is(main) .about-content h2,
main:is(main) .why-heading h2,
main:is(main) .location-content h2,
main:is(main) .faq-intro h2 {
    font-size: clamp(37px, 9vw, 51px) !important
  }

main:is(main) .section {
    padding: 80px 0
  }

main:is(main) .quick-facts-grid {
    padding: 20px 0
  }
}

@media(prefers-reduced-motion:reduce) {
main .hero-floating,
main .hero-marquee-inner {
    animation: none !important
  }
}

main {}

main:is(main) p,
main:is(main) li,
main:is(main) .accordion-body {
  line-height: 1.78;
}

main .hero-v6 h1 {
  line-height: 1.10 !important;
  overflow-wrap: normal;
}

main:is(main) .section-heading h2,
main:is(main) .about-content h2,
main:is(main) .why-heading h2,
main:is(main) .location-content h2,
main:is(main) .faq-intro h2 {
  line-height: 1.14 !important;
      color: var(--ink);
}

main:is(main) .service-card h3,
main:is(main) .benefit h3,
main:is(main) .journal-copy h3 {
  line-height: 1.3;
}

main .hero-v6-intro h2 {}

main .hero-v6-intro p {
  font-size: 14px !important;
  line-height: 1.8 !important;
}

main .hero-v6-proof strong {}

main:is(main) .service-card p,
main:is(main) .benefit p,
main:is(main) .process-step p {
  font-size: 13.5px;
  line-height: 1.78;
}

main:is(main) .impact-button {}

main .hero-device-carousel {
  position: absolute;
  inset: 0;
  z-index: 3;
  isolation: isolate;
  overflow: hidden;
  border-radius: inherit;
}

main .hero-device-slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 72px 34px 90px;
  opacity: 0;
  visibility: hidden;
  transform: scale(1.035);
  transition: opacity .85s cubic-bezier(.2, .65, .2, 1), transform 1.15s cubic-bezier(.2, .65, .2, 1), visibility 0s linear .85s;
  pointer-events: none;
}

main .hero-device-slide.is-active {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
  transition: opacity .85s cubic-bezier(.2, .65, .2, 1), transform 1.15s cubic-bezier(.2, .65, .2, 1), visibility 0s;
}

main .hero-carousel-image {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 22px 28px #00114866);
  border-radius: 10px;
}

main .hero-carousel-controls {
  position: absolute;
  bottom: 23px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: 30px;
  background: #05173e9c;
  z-index: 10;
}

main .hero-carousel-dot {
  cursor: pointer;
  border: 0;
  background: transparent;
  padding: 7px 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 29px;
  min-height: 30px;
}

main .hero-carousel-dot span {
  display: block;
  width: 20px;
  height: 5px;
  border-radius: 10px;
  background: #ffffff69;
  transition: width .35s ease, background .35s ease;
}

main .hero-carousel-dot.is-active span {
  background: white;
  width: 35px;
}

main .hero-carousel-dot:focus-visible {
  outline: 2px solid white;
  outline-offset: 2px;
  border-radius: 9px;
}

@media(max-width:1250px) {
main .hero-v6-intro p {
    font-size: 13.5px !important;
  }
}

@media(max-width:650px) {
main .hero-v6 h1 {}

main .hero-v6-intro p {
    font-size: 13px !important;
  }

main .hero-device-slide {
    padding: 50px 20px 72px;
  }

main .hero-carousel-controls {
    bottom: 12px;
  }

main:is(main) .service-card p,
main:is(main) .benefit p {
    font-size: 13px;
  }
}

@media(prefers-reduced-motion:reduce) {
main .hero-device-slide {
    transition: none !important;
    transform: none !important;
  }
}

main *,
main *::before,
main *::after {
  letter-spacing: normal !important
}

main p,
main li {
  line-height: 1.72
}

main .hero h1 {
  line-height: 1.08 !important
}

main .hero-v6 h1 {
  line-height: 1.06 !important
}

main:is(main) h1,
main:is(main) h2,
main:is(main) h3 {
  word-spacing: normal;
  overflow-wrap: break-word
}

main:is(main) p {
  font-size: clamp(15px, 1.15vw, 17px);
  line-height: 1.75
}

main .info-table td {
  padding: 13px;
  border-color: #e3eaf5
}

main .info-table tr:nth-child(even) {
  background: #f5f8fe
}

main .reveal {
  transition-property: opacity, transform;
  transition-duration: .75s;
  transition-timing-function: cubic-bezier(.2, .75, .25, 1)
}

@media(prefers-reduced-motion:reduce) {
main .reveal {
    transition: none !important
  }

main .hero-device-slide {
    transition: none !important
  }
}

main:is(main) {
  letter-spacing: normal !important
}

main:is(main) * {
  letter-spacing: normal !important
}

main.page-premium {
  overflow: hidden;
  background: #f6f8fd
}

main.page-premium .premium-hero {
  position: relative;
  min-height: 620px;
  padding: 110px 0 105px;
  background: #07162e;
  color: #fff;
  isolation: isolate;
  overflow: hidden
}

main.page-premium .premium-hero:before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 75% 40%, rgba(41, 121, 255, .37), transparent 49%), radial-gradient(ellipse at 25% 80%, rgba(14, 195, 240, .1), transparent 45%);
  z-index: -1
}

main.page-premium .premium-hero h1 {
  font-size: clamp(3.4rem, 6vw, 7.5rem);
  line-height: 1.035;
  font-weight: 800;
  color: white;
  max-width: 850px;
  margin: 20px 0 24px;
  letter-spacing: normal
}

main.page-premium .premium-hero p {
  font-size: clamp(1.06rem, 1.6vw, 1.28rem);
  line-height: 1.75;
  color: #d5e1f6;
  max-width: 620px
}

main .premium-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 12px;
  font-weight: 750;
  text-transform: uppercase;
  color: #6ee8fa !important
}

main .premium-eyebrow:before {
  content: '';
  width: 24px;
  height: 2px;
  background: #64dbf5
}

main .premium-hero .hero-photo {
  width: 100%;
  max-height: 490px;
  object-fit: cover;
  border-radius: 28px;
  transform: rotate(-3deg);
  box-shadow: 0 40px 90px rgba(0, 0, 0, .4)
}

main .premium-hero .hero-media {
  position: relative;
  padding: 15px 5px 30px 45px
}

main .hero-float {
  position: absolute;
  bottom: 0;
  left: 0;
  border: 1px solid #ffffff40;
  border-radius: 18px;
  padding: 17px 24px;
  background: #fff;
  color: #11264b;
  box-shadow: 0 18px 45px #0002;
  font-weight: 700
}

main.page-premium .premium-section {
  padding: 55px 0
}

main.page-premium .premium-section.alt {
  background: #fff
}

main .section-tag {
  display: block;
  font-size: 12px;
  text-transform: uppercase;
  font-weight: 800;
  color: #1f65e8;
  margin-bottom: 18px
}

main .section-title {
  font-size: clamp(2.1rem, 4vw, 4.1rem);
  line-height: 1.13;
  font-weight: 800;
  color: #0b1b37;
  margin: 0 0 24px
}

main .large-copy {
  font-size: 1.17rem;
  line-height: 1.85;
  color: #4a5a74
}

main .premium-card {
  padding: 34px;
  background: #fff;
  border: 1px solid #dfe8f5;
  border-radius: 24px;
  height: 100%;
  box-shadow: 0 15px 50px rgba(16, 40, 82, .035);
  transition: box-shadow .35s ease, transform .35s ease, border-color .35s ease
}

main .premium-card:hover {
  transform: translateY(-6px);
  border-color: #a9c8fd;
  box-shadow: 0 26px 70px rgba(20, 67, 142, .11)
}

main .premium-card h3 {
  font-weight: 760;
  font-size: 1.38rem;
  line-height: 1.35;
  color: #0b1b37;
  margin: 0 0 13px
}

main .premium-card p {
  font-size: 1rem;
  line-height: 1.78;
  color: #53647e;
  margin: 0
}

main .premium-icon {
  width: 53px;
  height: 53px;
  border-radius: 16px;
  background: #e5f2ff;
  color: #1560e9;
  font-size: 24px;
  display: grid;
  place-items: center;
  margin-bottom: 24px;
  font-weight: 800
}

main .premium-dark {
  background: #0b1b37;
  color: #fff !important
}

main .premium-dark .section-title,
main .premium-dark h2,
main .premium-dark h3 {
  color: white !important
}

main .premium-dark p {
  color: #cbd9ef
}

main .premium-dark .premium-card {
  background: #142a50;
  border-color: #284266
}

main .premium-dark .premium-card h3 {
  color: white
}

main .premium-dark .premium-card p {
  color: #ced9ec
}

main .premium-photo {
  width: 100%;
  min-height: 370px;
  max-height: 560px;
  object-fit: cover;
  border-radius: 26px
}

main .premium-proof {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px
}

main .premium-proof div {
  background: #edf4ff;
  padding: 24px;
  border-radius: 20px
}

main .premium-proof strong {
  font-size: clamp(1.7rem, 2.8vw, 2.8rem);
  display: block;
  color: #1162f1
}

main .premium-proof span {
  font-size: .93rem;
  line-height: 1.55;
  color: #4b5a73
}

main .premium-faq {
  max-width: 1000px;
  margin: auto
}

main .premium-faq details {
  background: #fff;
  border: 1px solid #dde5f3;
  border-radius: 18px;
  margin: 12px 0;
  padding: 21px 26px
}

main .premium-faq summary {
  cursor: pointer;
  font-weight: 720;
  font-size: 1.06rem;
  color: #112247;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px
}

main .premium-faq summary:after {
  content: '+';
  font-size: 24px;
  color: #1765e8
}

main .premium-faq details[open] summary:after {
  content: '−'
}

main .premium-faq p {
  color: #4c5b70;
  line-height: 1.8;
  margin: 16px 0 0
}

main .premium-btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  background: #286cf2;
  color: white !important;
  border: none;
  border-radius: 13px;
  padding: 17px 24px;
  text-decoration: none !important;
  font-weight: 750;
  min-height: 55px;
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease
}

main .premium-btn:hover {
  background: #1055d2;
  transform: translateY(-3px);
  box-shadow: 0 16px 36px #1765dd45
}

main .premium-btn:focus-visible {
  outline: 3px solid #8cc9ff;
  outline-offset: 3px
}

main .premium-btn.secondary {
  background: white;
  color: #145bd8 !important
}

main .section-lead {
  max-width: 750px
}

main .source-prose {
  font-size: 1rem;
  line-height: 1.85;
  color: #4b5b74
}

main .source-prose p {
  line-height: 1.85;
  margin-bottom: 18px
}

main .source-prose h3 {
  font-size: 1.3rem;
  font-weight: 780;
  color: #142e55;
  margin-top: 25px
}

main .premium-cta {
  padding: 80px 0;
  background: #1a65e5;
  color: #fff
}

main .premium-cta h2 {
  font-size: clamp(2rem, 4vw, 4rem);
  color: #fff;
  font-weight: 800
}

main .premium-cta p {
  color: #e4efff;
  line-height: 1.8
}

main .premium-cta .premium-btn {
  background: white;
  color: #115ad2 !important
}

main .reviews-section {
  background: #f2f7ff
}

main .reviews-section .reviews-score {
  font-size: clamp(4rem, 9vw, 8rem);
  font-weight: 850;
  color: #102c5f;
  line-height: 1
}

main .reviews-stars {
  font-size: 30px;
  color: #f3ad18;
  white-space: nowrap;
  line-height: 1.7
}

main .reviews-label {
  font-size: 1.08rem;
  color: #4d617c
}

main .review-preview-card {
  padding: 28px;
  border: 1px solid #dce7f5;
  background: #fff;
  border-radius: 21px;
  min-height: 100%;
  transition: transform .3s ease
}

main .review-preview-card:hover {
  transform: translateY(-5px)
}

main .review-preview-card strong {
  display: block;
  font-size: 1.15rem;
  color: #0f2a54
}

main .review-preview-card p {
  margin: 10px 0 0;
  color: #536780;
  line-height: 1.7
}

@media(max-width:991px) {
main.page-premium .premium-hero {
    padding: 70px 0 75px
  }

main.page-premium .premium-section {
    padding: 75px 0
  }

main .premium-hero .hero-media {
    margin-top: 45px;
    padding: 8px 25px
  }

main .premium-proof {
    grid-template-columns: repeat(3, 1fr)
  }
}

@media(max-width:575px) {
main.page-premium .premium-hero h1 {
    font-size: clamp(2.8rem, 13vw, 4.4rem)
  }

main.page-premium .premium-section {
    padding: 62px 0
  }

main .premium-proof {
    grid-template-columns: 1fr
  }

main .premium-hero .hero-photo {
    transform: none
  }

main .premium-hero .hero-media {
    padding: 0
  }

main .hero-float {
    position: relative;
    margin-top: -20px;
    margin-left: 14px;
    display: inline-block
  }

main .premium-card {
    padding: 26px
  }

main .premium-faq details {
    padding: 18px
  }
}

@media(prefers-reduced-motion:reduce) {
main .premium-card,
main .premium-btn,
main .review-preview-card {
    transition: none !important
  }
}

main .testimonial-v10-section {
  background: #060b15;
  color: #fff;
  padding: clamp(76px, 9vw, 132px) 0;
  overflow: hidden
}

main .testimonial-v10-top {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 38px
}

main .testimonial-v10-eyebrow {
  font-size: 13px;
  font-weight: 750;
  color: #37aeff;
  text-transform: uppercase;
  letter-spacing: 0
}

main .testimonial-v10-top h2 {
  font-size: clamp(36px, 5vw, 70px);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: 0;
  margin: 15px 0;
  color: #fff
}

main .testimonial-v10-top h2 em {
  font-style: normal;
  color: #4cafff
}

main .testimonial-v10-top p {
  font-size: 16px;
  line-height: 1.7;
  color: #adb9cd;
  margin: 0
}

main .testimonial-v10-controls {
  display: flex;
  gap: 12px;
  flex-shrink: 0
}

main .testimonial-v10-controls button {
  border: 1px solid #52627c;
  background: #111d30;
  color: white;
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-size: 22px;
  transition: background .25s ease, color .25s ease, border-color .25s ease
}

main .testimonial-v10-controls button:hover {
  background: #2f8cff;
  border-color: #2f8cff;
  color: #fff
}

main .testimonial-v10-viewport {
  overflow: hidden;
  outline-offset: 8px
}

main .testimonial-v10-track {
  display: flex;
  align-items: stretch;
  transition: transform .72s cubic-bezier(.22, 1, .36, 1);
  will-change: transform
}

main .testimonial-slide {
  flex: 0 0 50%;
  min-width: 0;
  padding: 0 13px;
  display: flex
}

main .testimonial-v10-card {
  background: #101b2d;
  border: 1px solid #243753;
  border-radius: 26px;
  padding: clamp(24px, 3vw, 38px);
  width: 100%;
  min-height: 350px;
  transition: border-color .3s ease, box-shadow .3s ease
}

main .testimonial-v10-card:hover {
  border-color: #267cff;
  box-shadow: 0 18px 55px #0003
}

main .testimonial-v10-person {
  display: flex;
  align-items: center;
  gap: 15px
}

main .testimonial-v10-person img {
  border-radius: 50%;
  object-fit: cover;
  width: 68px;
  height: 68px;
  border: 2px solid #3a5b80
}

main .testimonial-v10-person h3 {
  font-size: 19px;
  font-weight: 750;
  line-height: 1.25;
  color: #56baff;
  margin: 0 0 5px;
  letter-spacing: 0
}

main .testimonial-v10-person span {
  color: #b8c5d7;
  font-size: 14px
}

main .testimonial-quote-mark {
  margin-left: auto !important;
  font: 700 67px/1 Georgia, serif !important;
  color: #2b5d98 !important;
  align-self: start
}

main .testimonial-v10-stars {
  font-size: 21px;
  letter-spacing: 2px;
  color: #ffc638;
  margin: 21px 0 16px
}

main .testimonial-v10-card p {
  font-size: 15.5px;
  line-height: 1.8;
  color: #eef4ff;
  margin: 0;
  overflow-wrap: anywhere
}

main .testimonial-v10-bottom {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 29px;
  font-size: 13px;
  color: #a5b2c8
}

main .testimonial-v10-counter {
  color: #fff;
  font-weight: 700;
  white-space: nowrap
}

main .testimonial-v10-progress {
  width: min(240px, 40vw);
  height: 3px;
  background: #22334d;
  border-radius: 9px;
  overflow: hidden
}

main .testimonial-v10-progress>span {
  display: block;
  height: 100%;
  width: 25%;
  background: #3eaeff;
  transition: width .5s ease
}

@media(max-width:767px) {
main .testimonial-slide {
    flex-basis: 100%;
    padding: 0 5px
  }

main .testimonial-v10-top {
    align-items: start;
    flex-direction: column
  }

main .testimonial-v10-card {
    min-height: 0
  }

main .testimonial-v10-bottom {
    flex-wrap: wrap
  }
}

@media(prefers-reduced-motion:reduce) {
main .testimonial-v10-track,
main .testimonial-v10-progress>span {
    transition: none
  }
}

/* Contact Us overrides */

main.contact-page .container-wide {
  max-width: 1500px;
  margin: auto;
  padding: 0 clamp(22px, 5vw, 76px);
}

main.contact-page.page-premium {
  overflow: hidden;
  background: #f6f8fd
}

main.contact-page.page-premium .premium-hero {
  position: relative;
  min-height: 620px;
  padding: 110px 0 105px;
  background: #07162e;
  color: #fff;
  isolation: isolate;
  overflow: hidden
}

main.contact-page.page-premium .premium-hero:before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 75% 40%, rgba(41, 121, 255, .37), transparent 49%), radial-gradient(ellipse at 25% 80%, rgba(14, 195, 240, .1), transparent 45%);
  z-index: -1
}

main.contact-page.page-premium .premium-hero h1 {
  font-size: clamp(3.4rem, 6vw, 7.5rem);
  line-height: 1.035;
  font-weight: 800;
  color: white;
  max-width: 850px;
  margin: 20px 0 24px;
  letter-spacing: normal
}

main.contact-page.page-premium .premium-hero p {
  font-size: clamp(1.06rem, 1.6vw, 1.28rem);
  line-height: 1.75;
  color: #d5e1f6;
  max-width: 620px
}

main.contact-page .premium-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 12px;
  font-weight: 750;
  text-transform: uppercase;
  color: #6ee8fa !important
}

main.contact-page .premium-eyebrow:before {
  content: '';
  width: 24px;
  height: 2px;
  background: #64dbf5
}

main.contact-page .premium-hero .hero-photo {
  width: 100%;
  max-height: 490px;
  object-fit: cover;
  border-radius: 28px;
  transform: rotate(-3deg);
  box-shadow: 0 40px 90px rgba(0, 0, 0, .4)
}

main.contact-page .premium-hero .hero-media {
  position: relative;
  padding: 15px 5px 30px 45px
}

main.contact-page .hero-float {
  position: absolute;
  bottom: 0;
  left: 0;
  border: 1px solid #ffffff40;
  border-radius: 18px;
  padding: 17px 24px;
  background: #fff;
  color: #11264b;
  box-shadow: 0 18px 45px #0002;
  font-weight: 700
}

main.contact-page.page-premium .premium-section {
  padding: 55px 0
}

main.contact-page.page-premium .premium-section.alt {
  background: #fff
}

main.contact-page .section-tag {
  display: block;
  font-size: 12px;
  text-transform: uppercase;
  font-weight: 800;
  color: #1f65e8;
  margin-bottom: 18px
}

main.contact-page .section-title {
  font-size: clamp(2.1rem, 4vw, 4.1rem);
  line-height: 1.13;
  font-weight: 800;
  color: #0b1b37;
  margin: 0 0 24px
}

main.contact-page .premium-card {
  padding: 34px;
  background: #fff;
  border: 1px solid #dfe8f5;
  border-radius: 24px;
  height: 100%;
  box-shadow: 0 15px 50px rgba(16, 40, 82, .035);
  transition: box-shadow .35s ease, transform .35s ease, border-color .35s ease
}

main.contact-page .premium-card:hover {
  transform: translateY(-6px);
  border-color: #a9c8fd;
  box-shadow: 0 26px 70px rgba(20, 67, 142, .11)
}

main.contact-page .premium-card h3 {
  font-weight: 760;
  font-size: 1.38rem;
  line-height: 1.35;
  color: #0b1b37;
  margin: 0 0 13px
}

main.contact-page .premium-card p {
  font-size: 1rem;
  line-height: 1.78;
  color: #53647e;
  margin: 0
}

main.contact-page .premium-icon {
  width: 53px;
  height: 53px;
  border-radius: 16px;
  background: #e5f2ff;
  color: #1560e9;
  font-size: 24px;
  display: grid;
  place-items: center;
  margin-bottom: 24px;
  font-weight: 800
}

main.contact-page .premium-dark .section-title {
  color: white !important
}

main.contact-page .premium-dark .premium-card {
  background: #142a50;
  border-color: #284266
}

main.contact-page .premium-dark .premium-card h3 {
  color: white
}

main.contact-page .premium-dark .premium-card p {
  color: #ced9ec
}

main.contact-page .premium-faq {
  max-width: 1000px;
  margin: auto
}

main.contact-page .premium-faq details {
  background: #fff;
  border: 1px solid #dde5f3;
  border-radius: 18px;
  margin: 12px 0;
  padding: 21px 26px
}

main.contact-page .premium-faq summary {
  cursor: pointer;
  font-weight: 720;
  font-size: 1.06rem;
  color: #112247;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px
}

main.contact-page .premium-faq summary:after {
  content: '+';
  font-size: 24px;
  color: #1765e8
}

main.contact-page .premium-faq details[open] summary:after {
  content: '−'
}

main.contact-page .premium-faq p {
  color: #4c5b70;
  line-height: 1.8;
  margin: 16px 0 0
}

main.contact-page .contact-method {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  text-decoration: none !important;
  color: inherit !important
}

main.contact-page .contact-method .premium-icon {
  margin-bottom: 0;
  flex: none
}

main.contact-page .contact-method strong {
  display: block;
  font-size: 1.13rem;
  color: #122648
}

main.contact-page .contact-method span {
  display: block;
  color: #566780;
  margin-top: 5px;
  line-height: 1.6;
  overflow-wrap: anywhere
}

main.contact-page .premium-form {
  background: white;
  border: 1px solid #dce7f5;
  box-shadow: 0 28px 80px #153c7b12;
  border-radius: 28px;
  padding: clamp(23px, 4vw, 48px)
}

main.contact-page .premium-form label {
  font-weight: 720;
  font-size: 14px;
  color: #1b3255;
  margin-bottom: 9px
}

main.contact-page .premium-form .form-control,
main.contact-page .premium-form .form-select {
  min-height: 54px;
  border: 1px solid #d6e1ee;
  background: #f9fbff;
  border-radius: 12px;
  padding: 13px 16px;
  color: #152a47;
  font-size: 1rem
}

main.contact-page .premium-form textarea.form-control {
  min-height: 132px
}

main.contact-page .premium-form :is(.form-control,
.form-select):focus {
  border-color: #2872ef;
  box-shadow: 0 0 0 4px #1b73fa18
}

main.contact-page .premium-btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  background: #286cf2;
  color: white !important;
  border: none;
  border-radius: 13px;
  padding: 17px 24px;
  text-decoration: none !important;
  font-weight: 750;
  min-height: 55px;
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease
}

main.contact-page .premium-btn:hover {
  background: #1055d2;
  transform: translateY(-3px);
  box-shadow: 0 16px 36px #1765dd45
}

main.contact-page .premium-btn:focus-visible {
  outline: 3px solid #8cc9ff;
  outline-offset: 3px
}

main.contact-page .premium-btn.secondary {
  background: white;
  color: #145bd8 !important
}

main.contact-page .map-frame {
  width: 100%;
  height: 450px;
  border: 0;
  border-radius: 26px;
  background: #dce9fa
}

main.contact-page .map-note {
  font-size: .93rem;
  color: #546580;
  margin-top: 14px
}

main.contact-page .section-lead {
  max-width: 750px
}

main.contact-page .source-prose {
  font-size: 1rem;
  line-height: 1.85;
  color: #4b5b74
}

main.contact-page .source-prose p {
  line-height: 1.85;
  margin-bottom: 18px
}

main.contact-page .source-prose h3 {
  font-size: 1.3rem;
  font-weight: 780;
  color: #142e55;
  margin-top: 25px
}

main.contact-page .premium-cta {
  padding: 80px 0;
  background: #1a65e5;
  color: #fff
}

main.contact-page .premium-cta h2 {
  font-size: clamp(2rem, 4vw, 4rem);
  color: #fff;
  font-weight: 800
}

main.contact-page .premium-cta p {
  color: #e4efff;
  line-height: 1.8
}

main.contact-page .premium-cta .premium-btn {
  background: white;
  color: #115ad2 !important
}

@media(max-width:991px) {
main.contact-page.page-premium .premium-hero {
    padding: 70px 0 75px
  }

main.contact-page.page-premium .premium-section {
    padding: 75px 0
  }

main.contact-page .premium-hero .hero-media {
    margin-top: 45px;
    padding: 8px 25px
  }
}

@media(max-width:575px) {
main.contact-page.page-premium .premium-hero h1 {
    font-size: clamp(2.8rem, 13vw, 4.4rem)
  }

main.contact-page.page-premium .premium-section {
    padding: 62px 0
  }

main.contact-page .premium-hero .hero-photo {
    transform: none
  }

main.contact-page .premium-hero .hero-media {
    padding: 0
  }

main.contact-page .hero-float {
    position: relative;
    margin-top: -20px;
    margin-left: 14px;
    display: inline-block
  }

main.contact-page .premium-card {
    padding: 26px
  }

main.contact-page .premium-faq details {
    padding: 18px
  }

main.contact-page .map-frame {
    height: 335px
  }
}

@media(prefers-reduced-motion:reduce) {
main.contact-page .premium-card,
main.contact-page .premium-btn {
    transition: none !important
  }
}

main.contact-page .enquiry-title {
  font-size: 2.1rem;
}

main.contact-page .enquiry-description {
  color: #566780;
}

main.contact-page .enquiry-note {
  color: #61708a;
}

main .index-inline-1 { font-size: 0.33em; color: #6179a1; }

main .index-inline-2 { color: #175edc; font-weight: 750; }
