@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');


/* =====================================================
   Global
===================================================== */

:root {

  --white: #ffffff;

  --off-white: #f6f7f8;

  --soft-gray: #eef1f3;

  --soft-blue: #edf5fa;

  --blue: #3899df;

  --blue-dark: #2679b8;

  --blue-light: #7fc4ef;

  --navy: #0d3b65;

  --navy-dark: #092f52;

  --steel-blue: #2d5f8e;

  --silver: #cfd3d7;

  --silver-dark: #929aa2;

  --text: #213f59;

  --text-soft: #667987;

  --border:
    rgba(13, 59, 101, 0.12);

  --shadow-small:
    0 1.2rem 3rem
    rgba(13, 59, 101, 0.08);

  --shadow-large:
    0 2.5rem 7rem
    rgba(13, 59, 101, 0.14);

  --page-width: 132rem;

}


* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}


html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}


body {

  font-family:
    "Manrope",
    sans-serif;

  background:
    var(--white);

  color:
    var(--text);

  line-height: 1.5;

  overflow-x: hidden;

}


body.menu-open {
  overflow: hidden;
}


img {
  width: 100%;
  display: block;
}


a {
  color: inherit;
  text-decoration: none;
}


button,
input,
textarea,
select {
  font: inherit;
}


button {
  border: 0;
  background: none;
  cursor: pointer;
}


/** end of global */





/* =====================================================
   Navigation
===================================================== */

.site-header {

  position: fixed;

  top: 0;
  left: 0;

  width: 100%;

  z-index: 1000;

  background:
    rgba(255, 255, 255, 0.95);

  border-bottom:
    1px solid
    rgba(13, 59, 101, 0.08);

  backdrop-filter:
    blur(1.5rem);

  transition:
    background 0.25s ease,
    box-shadow 0.25s ease;

}


.site-header.is-scrolled {

  background:
    rgba(255, 255, 255, 0.985);

  box-shadow:
    0 1rem 3rem
    rgba(13, 59, 101, 0.08);

}


.nav-container {

  width:
    min(
      calc(100% - 6rem),
      var(--page-width)
    );

  min-height: 8.8rem;

  margin: 0 auto;

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 3rem;

}


/* Brand */

.nav-brand {

  flex-shrink: 0;

  display: flex;

  align-items: center;

  gap: 1.3rem;

}


.nav-brand-mark {

  width: 4.8rem;

  height: 4.8rem;

  display: grid;

  place-items: center;

  border-radius: 50%;

  background:
    linear-gradient(
      145deg,
      var(--blue),
      var(--blue-light)
    );

  color:
    var(--white);

  font-size: 2.5rem;

  box-shadow:
    0 0.8rem 2.2rem
    rgba(74, 166, 239, 0.2);

}


.nav-brand-text {

  display: flex;

  flex-direction: column;

  gap: 0.25rem;

  line-height: 1;

}


.nav-brand-name {

  color:
    var(--navy);

  font-size: 2.3rem;

  font-weight: 800;

  letter-spacing: -0.04em;

}


.nav-brand-subtitle {

  color:
    var(--steel-blue);

  font-size: 1rem;

  font-weight: 700;

  letter-spacing: 0.08em;

  text-transform: uppercase;

}


/* Desktop Navigation */

.desktop-nav {

  display: flex;

  align-items: center;

  gap: 3.3rem;

}


.nav-link {

  position: relative;

  color:
    var(--text);

  font-size: 1.4rem;

  font-weight: 600;

  transition:
    color 0.2s ease;

}


.nav-link::after {

  content: "";

  position: absolute;

  left: 0;

  bottom: -0.9rem;

  width: 100%;

  height: 0.2rem;

  background:
    var(--blue);

  transform:
    scaleX(0);

  transform-origin: right;

  transition:
    transform 0.25s ease;

}


.nav-link:hover {
  color: var(--blue-dark);
}


.nav-link:hover::after {

  transform: scaleX(1);

  transform-origin: left;

}


/* Desktop Actions */

.nav-actions {

  display: flex;

  align-items: center;

  gap: 2rem;

}


.nav-phone {

  color:
    var(--navy);

  font-size: 1.35rem;

  font-weight: 700;

  white-space: nowrap;

}


.nav-cta {

  min-height: 4.8rem;

  padding:
    0 2.2rem;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  border-radius: 0.8rem;

  background:
    linear-gradient(
      135deg,
      var(--blue),
      #3b9de7
    );

  color:
    var(--white);

  font-size: 1.35rem;

  font-weight: 700;

  box-shadow:
    0 1rem 2.5rem
    rgba(74, 166, 239, 0.2);

  transition:
    background 0.2s ease,
    transform 0.2s ease,
    box-shadow 0.2s ease;

}


.nav-cta:hover {

  background:
    linear-gradient(
      135deg,
      var(--blue-dark),
      #287cb9
    );

  transform:
    translateY(-0.2rem);

  box-shadow:
    0 1.4rem 3rem
    rgba(47, 130, 196, 0.24);

}


/* Mobile Toggle */

.nav-toggle {

  width: 4.5rem;

  height: 4.5rem;

  display: none;

  align-items: center;

  justify-content: center;

  flex-direction: column;

  gap: 0.55rem;

  border-radius: 0.7rem;

}


.nav-toggle span {

  width: 2.5rem;

  height: 0.2rem;

  border-radius: 10rem;

  background:
    var(--navy);

  transition:
    transform 0.22s ease,
    opacity 0.18s ease;

}


.nav-toggle.is-active span:nth-child(1) {

  transform:
    translateY(0.75rem)
    rotate(45deg);

}


.nav-toggle.is-active span:nth-child(2) {
  opacity: 0;
}


.nav-toggle.is-active span:nth-child(3) {

  transform:
    translateY(-0.75rem)
    rotate(-45deg);

}


/* Mobile Navigation */

.mobile-nav {
  display: none;
}


/* -----------------------------
   Navigation - 1100px
----------------------------- */

@media (max-width: 1100px) {

  .nav-container {

    width:
      min(
        calc(100% - 4rem),
        var(--page-width)
      );

  }


  .desktop-nav {
    gap: 2.2rem;
  }


  .nav-phone {
    display: none;
  }

}


/* -----------------------------
   Navigation - 900px
----------------------------- */

@media (max-width: 900px) {

  .nav-container {
    min-height: 7.8rem;
  }


  .desktop-nav,
  .nav-actions {
    display: none;
  }


  .nav-toggle {
    display: flex;
  }


  .mobile-nav {

    position: fixed;

    top: 7.8rem;

    left: 0;

    width: 100%;

    height:
      calc(100dvh - 7.8rem);

    display: block;

    background:
      rgba(255, 255, 255, 0.99);

    opacity: 0;

    visibility: hidden;

    transform:
      translateY(-1rem);

    pointer-events: none;

    transition:
      opacity 0.2s ease,
      visibility 0.2s ease,
      transform 0.2s ease;

  }


  .mobile-nav.is-open {

    opacity: 1;

    visibility: visible;

    transform:
      translateY(0);

    pointer-events: auto;

  }


  .mobile-nav-inner {

    width:
      min(
        calc(100% - 5rem),
        60rem
      );

    height: 100%;

    margin: 0 auto;

    padding:
      5rem 0;

    display: flex;

    flex-direction: column;

  }


  .mobile-nav-inner > a {

    padding:
      1.8rem 0;

    border-bottom:
      1px solid
      var(--border);

    color:
      var(--navy);

    font-size: 2rem;

    font-weight: 700;

  }


  .mobile-nav-actions {

    margin-top: auto;

    display: flex;

    flex-direction: column;

    gap: 1.2rem;

  }


  .mobile-nav-phone,
  .mobile-nav-cta {

    min-height: 5.5rem;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 0.8rem;

    font-size: 1.5rem;

    font-weight: 700;

  }


  .mobile-nav-phone {

    border:
      1px solid
      var(--border);

    background:
      var(--white);

    color:
      var(--navy);

  }


  .mobile-nav-cta {

    background:
      var(--blue);

    color:
      var(--white);

  }

}


/* -----------------------------
   Navigation - 600px
----------------------------- */

@media (max-width: 600px) {

  .nav-container {
    width: calc(100% - 3rem);
  }


  .nav-brand-mark {

    width: 4.2rem;

    height: 4.2rem;

    font-size: 2.1rem;

  }


  .nav-brand-name {
    font-size: 2rem;
  }


  .nav-brand-subtitle {
    font-size: 0.85rem;
  }


  .mobile-nav-inner {

    width:
      calc(100% - 4rem);

    padding:
      3.5rem 0;

  }

}


/** end of navigation */





/* =====================================================
   Hero
===================================================== */

.hero {

  position: relative;

  min-height: 100vh;

  padding-top: 8.8rem;

  overflow: hidden;

  isolation: isolate;

  background:
    linear-gradient(
      118deg,
      #ffffff 0%,
      #fafafa 38%,
      #f3f5f6 72%,
      #edf1f4 100%
    );

}


/* Marble Veining */

.hero::before {

  content: "";

  position: absolute;

  inset: 0;

  z-index: -2;

  pointer-events: none;

  background:

    linear-gradient(
      124deg,
      transparent 0%,
      transparent 11%,
      rgba(130, 140, 150, 0.04) 11.2%,
      rgba(135, 145, 155, 0.11) 11.6%,
      rgba(205, 210, 214, 0.14) 12%,
      transparent 12.6%,
      transparent 100%
    ),

    linear-gradient(
      117deg,
      transparent 0%,
      transparent 27%,
      rgba(156, 165, 174, 0.045) 27.4%,
      rgba(126, 137, 148, 0.09) 27.8%,
      rgba(217, 220, 223, 0.1) 28.25%,
      transparent 29%,
      transparent 100%
    ),

    linear-gradient(
      133deg,
      transparent 0%,
      transparent 43%,
      rgba(136, 147, 158, 0.04) 43.3%,
      rgba(118, 130, 142, 0.085) 43.8%,
      rgba(212, 216, 219, 0.11) 44.3%,
      transparent 45%,
      transparent 100%
    ),

    linear-gradient(
      109deg,
      transparent 0%,
      transparent 60%,
      rgba(151, 160, 169, 0.04) 60.2%,
      rgba(120, 132, 143, 0.09) 60.65%,
      rgba(216, 220, 223, 0.12) 61.15%,
      transparent 61.9%,
      transparent 100%
    ),

    linear-gradient(
      138deg,
      transparent 0%,
      transparent 76%,
      rgba(125, 136, 146, 0.075) 76.4%,
      rgba(195, 201, 206, 0.1) 77%,
      transparent 77.8%
    ),

    linear-gradient(
      103deg,
      transparent 0%,
      transparent 87%,
      rgba(127, 138, 149, 0.07) 87.4%,
      rgba(211, 215, 219, 0.1) 88%,
      transparent 88.7%
    );

  background-size:
    74rem 74rem,
    93rem 93rem,
    110rem 110rem,
    84rem 84rem,
    97rem 97rem,
    120rem 120rem;

  background-position:
    -18rem -9rem,
    8rem -15rem,
    32rem 2rem,
    58rem -20rem,
    82rem 8rem,
    105rem -10rem;

  opacity: 1;

}


/* Marble Clouding / Soft Brand Tone */

.hero::after {

  content: "";

  position: absolute;

  inset: 0;

  z-index: -1;

  pointer-events: none;

  background:

    radial-gradient(
      ellipse at 10% 22%,
      rgba(74, 166, 239, 0.09),
      transparent 30%
    ),

    radial-gradient(
      ellipse at 44% 58%,
      rgba(255, 255, 255, 0.82),
      transparent 34%
    ),

    radial-gradient(
      ellipse at 88% 18%,
      rgba(255, 255, 255, 0.9),
      transparent 30%
    ),

    radial-gradient(
      ellipse at 86% 74%,
      rgba(13, 59, 101, 0.045),
      transparent 34%
    ),

    linear-gradient(
      128deg,
      transparent 17%,
      rgba(154, 164, 174, 0.055) 18%,
      transparent 19%
    ),

    linear-gradient(
      116deg,
      transparent 51%,
      rgba(141, 151, 161, 0.05) 52%,
      transparent 53.2%
    ),

    linear-gradient(
      140deg,
      transparent 73%,
      rgba(160, 169, 178, 0.045) 74%,
      transparent 75%
    );

}


.hero-container {

  position: relative;

  z-index: 2;

  width:
    min(
      calc(100% - 6rem),
      var(--page-width)
    );

  min-height:
    calc(100vh - 18rem);

  margin: 0 auto;

  display: grid;

  grid-template-columns:
    minmax(0, 0.92fr)
    minmax(0, 1.08fr);

  align-items: center;

  gap: 7rem;

  padding:
    7rem 0 8rem;

}


/* Hero Content */

.hero-content {

  position: relative;

  z-index: 3;

  max-width: 62rem;

  opacity: 0;

  transform:
    translateY(2.5rem);

  transition:
    opacity 0.75s ease,
    transform 0.75s ease;

}


.hero.is-loaded .hero-content {

  opacity: 1;

  transform:
    translateY(0);

}


.hero-eyebrow {

  margin-bottom: 2.2rem;

  display: flex;

  align-items: center;

  gap: 1.2rem;

  color:
    var(--blue-dark);

  font-size: 1.2rem;

  font-weight: 800;

  letter-spacing: 0.1em;

  text-transform: uppercase;

}


.hero-eyebrow-line {

  width: 3.8rem;

  height: 0.2rem;

  background:
    var(--blue);

}


.hero-title {

  max-width: 62rem;

  color:
    var(--navy-dark);

  font-size:
    clamp(
      5.4rem,
      5.3vw,
      8rem
    );

  font-weight: 800;

  line-height: 0.98;

  letter-spacing: -0.055em;

}


.hero-title span {

  display: block;

  margin-top: 0.8rem;

  color:
    var(--blue);

}


.hero-description {

  max-width: 56rem;

  margin-top: 2.7rem;

  color:
    var(--text-soft);

  font-size: 1.75rem;

  font-weight: 500;

  line-height: 1.7;

}


/* Rotating Highlight */

.hero-highlight {

  margin-top: 3rem;

  display: flex;

  align-items: center;

  gap: 1.4rem;

}


.hero-highlight-label {

  flex-shrink: 0;

  color:
    var(--navy);

  font-size: 1.2rem;

  font-weight: 700;

}


.hero-highlight-rotator {

  position: relative;

  width: 19rem;

  height: 2.4rem;

  overflow: hidden;

}


.hero-highlight-item {

  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  color:
    var(--blue-dark);

  font-size: 1.35rem;

  font-weight: 800;

  opacity: 0;

  transform:
    translateY(1.4rem);

  transition:
    opacity 0.4s ease,
    transform 0.4s ease;

}


.hero-highlight-item.is-active {

  opacity: 1;

  transform:
    translateY(0);

}


/* Hero Actions */

.hero-actions {

  margin-top: 3.8rem;

  display: flex;

  align-items: center;

  gap: 1.3rem;

}


.hero-primary-btn,
.hero-secondary-btn {

  min-height: 5.6rem;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  gap: 1rem;

  padding:
    0 2.6rem;

  border-radius: 0.8rem;

  font-size: 1.45rem;

  font-weight: 700;

  transition:
    transform 0.2s ease,
    background 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;

}


.hero-primary-btn {

  background:
    linear-gradient(
      135deg,
      var(--blue),
      #3a9de7
    );

  color:
    var(--white);

  box-shadow:
    0 1.5rem 3.5rem
    rgba(74, 166, 239, 0.21);

}


.hero-primary-btn span {

  font-size: 2rem;

  transition:
    transform 0.2s ease;

}


.hero-primary-btn:hover {

  background:
    linear-gradient(
      135deg,
      var(--blue-dark),
      #287ab6
    );

  transform:
    translateY(-0.2rem);

  box-shadow:
    0 1.8rem 4rem
    rgba(47, 130, 196, 0.27);

}


.hero-primary-btn:hover span {
  transform: translateX(0.4rem);
}


.hero-secondary-btn {

  border:
    1px solid
    rgba(146, 154, 162, 0.4);

  background:
    rgba(255, 255, 255, 0.76);

  backdrop-filter:
    blur(1rem);

  color:
    var(--navy);

}


.hero-secondary-btn:hover {

  border-color:
    var(--blue-light);

  background:
    rgba(255, 255, 255, 0.96);

  transform:
    translateY(-0.2rem);

}


/* Trust Points */

.hero-trust {

  margin-top: 4rem;

  display: flex;

  flex-wrap: wrap;

  gap:
    1.2rem 2.2rem;

}


.hero-trust-item {

  display: flex;

  align-items: center;

  gap: 0.8rem;

  color:
    var(--text-soft);

  font-size: 1.15rem;

  font-weight: 600;

}


.hero-trust-icon {

  width: 2rem;

  height: 2rem;

  display: grid;

  place-items: center;

  border-radius: 50%;

  background:
    rgba(237, 245, 250, 0.92);

  border:
    1px solid
    rgba(74, 166, 239, 0.16);

  color:
    var(--blue-dark);

  font-size: 1.1rem;

  font-weight: 800;

}


/* Hero Visual */

.hero-visual {

  --hero-move-x: 0px;

  --hero-move-y: 0px;

  position: relative;

  width: 100%;

  opacity: 0;

  transform:
    translateY(2.5rem);

  transition:
    opacity 0.9s ease 0.12s,
    transform 0.9s ease 0.12s;

}


.hero.is-loaded .hero-visual {

  opacity: 1;

  transform:
    translateY(0);

}


.hero-image-frame {

  position: relative;

  width: 100%;

  height:
    clamp(
      55rem,
      67vh,
      74rem
    );

  overflow: hidden;

  border:
    1px solid
    rgba(13, 59, 101, 0.09);

  border-radius:
    2.2rem 2.2rem 8rem 2.2rem;

  box-shadow:
    var(--shadow-large);

  transform:
    translate(
      var(--hero-move-x),
      var(--hero-move-y)
    );

  transition:
    transform 0.25s ease-out;

}


.hero-image {

  width: 100%;

  height: 100%;

  object-fit: cover;

  object-position: center;

  transform:
    scale(1.025);

}


.hero-image-frame::after {

  content: "";

  position: absolute;

  inset: 0;

  background:
    linear-gradient(
      180deg,
      transparent 55%,
      rgba(9, 47, 82, 0.1)
    );

  pointer-events: none;

}


/* Floating Card */

.hero-floating-card {

  position: absolute;

  left: -5rem;

  bottom: 5rem;

  width: 27rem;

  padding:
    2.2rem 2.4rem;

  border:
    1px solid
    rgba(197, 203, 208, 0.85);

  border-radius: 1.4rem;

  background:
    rgba(255, 255, 255, 0.9);

  backdrop-filter:
    blur(1.4rem);

  box-shadow:
    var(--shadow-large);

}


.hero-floating-eyebrow {

  display: block;

  margin-bottom: 0.8rem;

  color:
    var(--blue-dark);

  font-size: 1rem;

  font-weight: 800;

  letter-spacing: 0.09em;

  text-transform: uppercase;

}


.hero-floating-card strong {

  display: block;

  color:
    var(--navy);

  font-size: 1.7rem;

  font-weight: 800;

  line-height: 1.35;

}


.hero-floating-card strong span {

  display: block;

  color:
    var(--text-soft);

  font-weight: 600;

}


/* Decorative Brand Shapes */

.hero-decoration {

  position: absolute;

  pointer-events: none;

}


.hero-decoration-one {

  top: -3rem;

  right: -3rem;

  width: 12rem;

  height: 12rem;

  border:
    1.4rem solid
    rgba(74, 166, 239, 0.1);

  border-radius: 50%;

}


.hero-decoration-two {

  right: -5rem;

  bottom: 7rem;

  width: 12rem;

  height: 24rem;

  border-radius:
    12rem 0 0 12rem;

  background:
    linear-gradient(
      180deg,
      rgba(74, 166, 239, 0.18),
      rgba(146, 154, 162, 0.06)
    );

  z-index: -1;

}


/* Bottom Trust Bar */

.hero-bottom {

  position: relative;

  z-index: 5;

  background:
    linear-gradient(
      90deg,
      #164874 0%,
      var(--navy) 46%,
      #082f52 100%
    );

  border-top:
    1px solid
    rgba(255, 255, 255, 0.08);

}


.hero-bottom-container {

  width:
    min(
      calc(100% - 6rem),
      var(--page-width)
    );

  min-height: 9rem;

  margin: 0 auto;

  display: grid;

  grid-template-columns:
    1fr auto
    1fr auto
    1fr auto
    1fr;

  align-items: center;

  gap: 2.5rem;

}


.hero-bottom-item {
  text-align: center;
}


.hero-bottom-item strong {

  display: block;

  color:
    var(--white);

  font-size: 1.55rem;

  font-weight: 800;

}


.hero-bottom-item span {

  display: block;

  margin-top: 0.25rem;

  color:
    rgba(255, 255, 255, 0.65);

  font-size: 1.05rem;

  font-weight: 500;

}


.hero-bottom-divider {

  width: 1px;

  height: 3rem;

  background:
    rgba(255, 255, 255, 0.16);

}


/* -----------------------------
   Hero - 1100px
----------------------------- */

@media (max-width: 1100px) {

  .hero-container {

    width:
      min(
        calc(100% - 4rem),
        var(--page-width)
      );

    gap: 4rem;

  }


  .hero-title {

    font-size:
      clamp(
        5rem,
        6vw,
        6.8rem
      );

  }


  .hero-floating-card {

    left: -2rem;

    bottom: 3rem;

  }


  .hero-bottom-container {

    width:
      calc(100% - 4rem);

    gap: 1.8rem;

  }

}


/* -----------------------------
   Hero - 900px
----------------------------- */

@media (max-width: 900px) {

  .hero {

    min-height: auto;

    padding-top: 7.8rem;

  }


  .hero::before {

    background-size:
      58rem 58rem,
      69rem 69rem,
      82rem 82rem,
      64rem 64rem,
      76rem 76rem,
      92rem 92rem;

    background-position:
      -20rem -5rem,
      0 18rem,
      15rem 3rem,
      25rem 40rem,
      5rem 70rem,
      30rem 78rem;

    opacity: 0.95;

  }


  .hero-container {

    min-height: auto;

    grid-template-columns: 1fr;

    gap: 5rem;

    padding:
      7rem 0;

  }


  .hero-content {
    max-width: 70rem;
  }


  .hero-title {

    max-width: 68rem;

    font-size:
      clamp(
        5.4rem,
        9vw,
        7.5rem
      );

  }


  .hero-description {
    max-width: 62rem;
  }


  .hero-trust {
    display: none;
  }


  .hero-visual {

    max-width: 78rem;

    margin: 0 auto;

  }


  .hero-image-frame {

    height: 62rem;

    border-radius:
      2rem 2rem 6rem 2rem;

    transform: none;

  }


  .hero-floating-card {
    left: 2rem;
  }


  .hero-decoration-two {
    right: -2rem;
  }


  .hero-bottom-container {

    grid-template-columns:
      1fr 1fr;

    gap: 0;

    padding:
      2rem 0;

  }


  .hero-bottom-item {
    padding: 1.8rem;
  }


  .hero-bottom-divider {
    display: none;
  }

}


/* -----------------------------
   Hero - 600px
----------------------------- */

@media (max-width: 600px) {

  .hero-container {

    width:
      calc(100% - 3rem);

    gap: 4rem;

    padding:
      5.5rem 0;

  }


  .hero::before {

    background-size:
      46rem 46rem,
      54rem 54rem,
      64rem 64rem,
      50rem 50rem,
      58rem 58rem,
      70rem 70rem;

    background-position:
      -17rem -5rem,
      -8rem 18rem,
      10rem 5rem,
      15rem 42rem,
      -5rem 68rem,
      20rem 80rem;

    opacity: 0.85;

  }


  .hero::after {

    background:

      radial-gradient(
        ellipse at 10% 20%,
        rgba(74, 166, 239, 0.075),
        transparent 34%
      ),

      radial-gradient(
        ellipse at 84% 40%,
        rgba(255, 255, 255, 0.78),
        transparent 38%
      ),

      radial-gradient(
        ellipse at 68% 82%,
        rgba(13, 59, 101, 0.03),
        transparent 36%
      );

  }


  .hero-eyebrow {

    margin-bottom: 1.8rem;

    font-size: 1rem;

  }


  .hero-eyebrow-line {
    width: 2.8rem;
  }


  .hero-title {

    font-size:
      clamp(
        4.3rem,
        13.5vw,
        6rem
      );

    line-height: 1;

  }


  .hero-description {

    margin-top: 2.2rem;

    font-size: 1.55rem;

    line-height: 1.65;

  }


  .hero-highlight {

    margin-top: 2.5rem;

    align-items: flex-start;

    flex-direction: column;

    gap: 0.7rem;

  }


  .hero-highlight-rotator {
    width: 100%;
  }


  .hero-actions {

    margin-top: 3rem;

    flex-direction: column;

    align-items: stretch;

  }


  .hero-primary-btn,
  .hero-secondary-btn {

    width: 100%;

    min-height: 5.4rem;

  }


  .hero-image-frame {

    height: 49rem;

    border-radius:
      1.5rem 1.5rem 4rem 1.5rem;

  }


  .hero-floating-card {

    left: 1.5rem;

    right: 1.5rem;

    bottom: 1.5rem;

    width: auto;

    padding:
      1.8rem 2rem;

  }


  .hero-decoration-one,
  .hero-decoration-two {
    display: none;
  }


  .hero-bottom-container {

    width: 100%;

    grid-template-columns:
      1fr 1fr;

    padding:
      1rem;

  }


  .hero-bottom-item {
    padding: 1.6rem 1rem;
  }


  .hero-bottom-item strong {
    font-size: 1.4rem;
  }


  .hero-bottom-item span {
    font-size: 0.95rem;
  }

}


/* -----------------------------
   Hero - 430px
----------------------------- */

@media (max-width: 430px) {

  .hero-container {
    padding-top: 4.5rem;
  }


  .hero-title {

    font-size:
      clamp(
        4rem,
        13vw,
        5rem
      );

  }


  .hero-image-frame {
    height: 43rem;
  }


  .hero-bottom-container {
    grid-template-columns: 1fr;
  }


  .hero-bottom-item {

    border-bottom:
      1px solid
      rgba(255, 255, 255, 0.1);

  }


  .hero-bottom-item:last-child {
    border-bottom: 0;
  }

}


/** end of hero */

/* =====================================================
   Why Smooth
===================================================== */

.why-smooth {

  position: relative;

  padding:
    12rem 0;

  overflow: hidden;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f7f9fa 100%
    );

}


/* Subtle Marble Detail */

.why-smooth::before {

  content: "";

  position: absolute;

  inset: 0;

  pointer-events: none;

  background:

    linear-gradient(
      128deg,
      transparent 0%,
      transparent 24%,
      rgba(136, 146, 155, 0.055) 24.4%,
      rgba(205, 210, 214, 0.07) 25%,
      transparent 25.7%,
      transparent 100%
    ),

    linear-gradient(
      116deg,
      transparent 0%,
      transparent 68%,
      rgba(125, 136, 147, 0.045) 68.4%,
      rgba(212, 216, 219, 0.065) 69%,
      transparent 69.7%
    );

  background-size:
    100rem 100rem,
    120rem 120rem;

  opacity: 0.7;

}


.why-smooth::after {

  content: "";

  position: absolute;

  top: -18rem;
  right: -18rem;

  width: 48rem;
  height: 48rem;

  border-radius: 50%;

  background:
    radial-gradient(
      circle,
      rgba(56, 153, 223, 0.09),
      transparent 68%
    );

  pointer-events: none;

}


.why-smooth-container {

  position: relative;

  z-index: 2;

  width:
    min(
      calc(100% - 6rem),
      var(--page-width)
    );

  margin:
    0 auto;

}


/* Section Intro */

.why-smooth-intro {

  margin-bottom: 6.5rem;

}


.section-eyebrow {

  margin-bottom: 2rem;

  display: flex;

  align-items: center;

  gap: 1.2rem;

  color:
    var(--blue-dark);

  font-size: 1.15rem;

  font-weight: 800;

  letter-spacing: 0.11em;

  text-transform: uppercase;

}


.section-eyebrow-line {

  width: 3.8rem;

  height: 0.2rem;

  flex-shrink: 0;

  background:
    var(--blue);

}


.why-smooth-heading-wrap {

  display: grid;

  grid-template-columns:
    minmax(0, 1.1fr)
    minmax(30rem, 0.7fr);

  align-items: end;

  gap: 7rem;

}


.why-smooth-title {

  max-width: 72rem;

  color:
    var(--navy-dark);

  font-size:
    clamp(
      4.5rem,
      5vw,
      7rem
    );

  font-weight: 800;

  line-height: 1.02;

  letter-spacing: -0.05em;

}


.why-smooth-title span {

  display: block;

  color:
    var(--blue);

}


.why-smooth-description {

  max-width: 48rem;

  padding-bottom: 0.6rem;

  color:
    var(--text-soft);

  font-size: 1.65rem;

  font-weight: 500;

  line-height: 1.75;

}


/* Interactive Layout */

.why-smooth-features {

  display: grid;

  grid-template-columns:
    minmax(34rem, 0.82fr)
    minmax(0, 1.18fr);

  align-items: stretch;

  gap: 2rem;

}


/* Feature Tabs */

.why-smooth-tabs {

  display: flex;

  flex-direction: column;

  gap: 1rem;

}


.why-smooth-tab {

  position: relative;

  width: 100%;

  min-height: 10rem;

  padding:
    2rem 2.2rem;

  display: grid;

  grid-template-columns:
    auto 1fr auto;

  align-items: center;

  gap: 1.8rem;

  overflow: hidden;

  border:
    1px solid
    rgba(13, 59, 101, 0.1);

  border-radius: 1.2rem;

  background:
    rgba(255, 255, 255, 0.82);

  text-align: left;

  box-shadow:
    0 0.8rem 2rem
    rgba(13, 59, 101, 0.025);

  transition:
    background 0.3s ease,
    border-color 0.3s ease,
    box-shadow 0.3s ease,
    transform 0.3s ease;

}


.why-smooth-tab::before {

  content: "";

  position: absolute;

  top: 0;
  left: 0;

  width: 0.4rem;
  height: 100%;

  background:
    var(--blue);

  transform:
    scaleY(0);

  transform-origin:
    center;

  transition:
    transform 0.3s ease;

}


.why-smooth-tab:hover {

  border-color:
    rgba(56, 153, 223, 0.28);

  background:
    var(--white);

  transform:
    translateX(0.3rem);

}


.why-smooth-tab.is-active {

  border-color:
    rgba(56, 153, 223, 0.28);

  background:
    var(--white);

  box-shadow:
    0 1.4rem 3.5rem
    rgba(13, 59, 101, 0.08);

  transform:
    translateX(0.5rem);

}


.why-smooth-tab.is-active::before {

  transform:
    scaleY(1);

}


.why-smooth-tab-number {

  min-width: 3rem;

  color:
    var(--silver-dark);

  font-size: 1.1rem;

  font-weight: 800;

  letter-spacing: 0.08em;

  transition:
    color 0.3s ease;

}


.why-smooth-tab.is-active
.why-smooth-tab-number {

  color:
    var(--blue);

}


.why-smooth-tab-content {

  display: flex;

  flex-direction: column;

  gap: 0.45rem;

}


.why-smooth-tab-content strong {

  color:
    var(--navy);

  font-size: 1.55rem;

  font-weight: 800;

  transition:
    color 0.3s ease;

}


.why-smooth-tab-content > span {

  color:
    var(--text-soft);

  font-size: 1.15rem;

  font-weight: 500;

  line-height: 1.5;

}


.why-smooth-tab.is-active
.why-smooth-tab-content strong {

  color:
    var(--blue-dark);

}


.why-smooth-tab-arrow {

  width: 3.5rem;
  height: 3.5rem;

  display: grid;

  place-items: center;

  border-radius: 50%;

  background:
    var(--soft-blue);

  color:
    var(--blue-dark);

  font-size: 1.6rem;

  transform:
    translateX(-0.3rem);

  transition:
    background 0.3s ease,
    color 0.3s ease,
    transform 0.3s ease;

}


.why-smooth-tab.is-active
.why-smooth-tab-arrow {

  background:
    var(--blue);

  color:
    var(--white);

  transform:
    translateX(0);

}


/* Detail Panel */

.why-smooth-panel-wrap {

  position: relative;

  min-height: 43rem;

  overflow: hidden;

  border-radius: 2rem;

  background:
    linear-gradient(
      145deg,
      #0e426f 0%,
      var(--navy) 52%,
      var(--navy-dark) 100%
    );

  box-shadow:
    0 2.5rem 6rem
    rgba(9, 47, 82, 0.18);

}


.why-smooth-panel-wrap::before {

  content: "";

  position: absolute;

  top: -12rem;
  right: -10rem;

  width: 34rem;
  height: 34rem;

  border-radius: 50%;

  border:
    5rem solid
    rgba(255, 255, 255, 0.035);

  pointer-events: none;

}


.why-smooth-panel-wrap::after {

  content: "";

  position: absolute;

  right: -7rem;
  bottom: -14rem;

  width: 32rem;
  height: 32rem;

  border-radius: 50%;

  background:
    radial-gradient(
      circle,
      rgba(56, 153, 223, 0.3),
      transparent 68%
    );

  pointer-events: none;

}


.why-smooth-panel {

  position: absolute;

  inset: 0;

  z-index: 2;

  padding:
    5rem;

  display: flex;

  flex-direction: column;

  justify-content: center;

  opacity: 0;

  transform:
    translateY(2rem);

  pointer-events: none;

  transition:
    opacity 0.35s ease,
    transform 0.35s ease;

}


.why-smooth-panel.is-active {

  opacity: 1;

  transform:
    translateY(0);

  pointer-events: auto;

}


.why-smooth-panel-label {

  margin-bottom: 2rem;

  display: inline-flex;

  align-items: center;

  width: fit-content;

  padding:
    0.65rem 1rem;

  border:
    1px solid
    rgba(255, 255, 255, 0.14);

  border-radius: 10rem;

  background:
    rgba(255, 255, 255, 0.06);

  color:
    var(--blue-light);

  font-size: 1rem;

  font-weight: 800;

  letter-spacing: 0.1em;

  text-transform: uppercase;

}


.why-smooth-panel h3 {

  max-width: 58rem;

  color:
    var(--white);

  font-size:
    clamp(
      3.4rem,
      3.6vw,
      5.4rem
    );

  font-weight: 800;

  line-height: 1.07;

  letter-spacing: -0.045em;

}


.why-smooth-panel p {

  max-width: 55rem;

  margin-top: 2.2rem;

  color:
    rgba(255, 255, 255, 0.7);

  font-size: 1.55rem;

  font-weight: 500;

  line-height: 1.75;

}


.why-smooth-panel-stat {

  margin-top: 4rem;

  padding-top: 2.5rem;

  display: flex;

  align-items: baseline;

  gap: 1.2rem;

  border-top:
    1px solid
    rgba(255, 255, 255, 0.12);

}


.why-smooth-panel-stat strong {

  color:
    var(--blue-light);

  font-size: 2.7rem;

  font-weight: 800;

  letter-spacing: -0.04em;

}


.why-smooth-panel-stat span {

  color:
    rgba(255, 255, 255, 0.6);

  font-size: 1.15rem;

  font-weight: 600;

}


/* Bottom Brand Line */

.why-smooth-bottom {

  margin-top: 5rem;

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 1.4rem;

  color:
    var(--steel-blue);

  font-size: 1.1rem;

  font-weight: 700;

  letter-spacing: 0.09em;

  text-transform: uppercase;

}


.why-smooth-bottom-dot {

  width: 0.4rem;
  height: 0.4rem;

  border-radius: 50%;

  background:
    var(--blue);

}


/* -----------------------------
   Why Smooth - 1100px
----------------------------- */

@media (max-width: 1100px) {

  .why-smooth {

    padding:
      10rem 0;

  }


  .why-smooth-container {

    width:
      min(
        calc(100% - 4rem),
        var(--page-width)
      );

  }


  .why-smooth-heading-wrap {

    gap: 4rem;

  }


  .why-smooth-features {

    grid-template-columns:
      minmax(31rem, 0.8fr)
      minmax(0, 1.2fr);

  }


  .why-smooth-panel {

    padding:
      4rem;

  }

}


/* -----------------------------
   Why Smooth - 900px
----------------------------- */

@media (max-width: 900px) {

  .why-smooth {

    padding:
      9rem 0;

  }


  .why-smooth-intro {

    margin-bottom:
      5rem;

  }


  .why-smooth-heading-wrap {

    grid-template-columns: 1fr;

    gap: 2.5rem;

  }


  .why-smooth-description {

    max-width: 62rem;

    padding-bottom: 0;

  }


  .why-smooth-features {

    grid-template-columns: 1fr;

    gap: 2rem;

  }


  .why-smooth-tabs {

    display: grid;

    grid-template-columns:
      1fr 1fr;

  }


  .why-smooth-tab {

    min-height: 11rem;

  }


  .why-smooth-tab:hover,
  .why-smooth-tab.is-active {

    transform:
      translateY(-0.2rem);

  }


  .why-smooth-panel-wrap {

    min-height: 42rem;

  }


  .why-smooth-panel {

    padding:
      4.5rem;

  }

}


/* -----------------------------
   Why Smooth - 600px
----------------------------- */

@media (max-width: 600px) {

  .why-smooth {

    padding:
      7rem 0;

  }


  .why-smooth-container {

    width:
      calc(100% - 3rem);

  }


  .why-smooth-intro {

    margin-bottom:
      4rem;

  }


  .section-eyebrow {

    margin-bottom: 1.6rem;

    font-size: 1rem;

  }


  .section-eyebrow-line {

    width: 2.8rem;

  }


  .why-smooth-title {

    font-size:
      clamp(
        3.8rem,
        11vw,
        5rem
      );

  }


  .why-smooth-description {

    font-size: 1.5rem;

    line-height: 1.7;

  }


  .why-smooth-tabs {

    grid-template-columns: 1fr;

    gap: 0.8rem;

  }


  .why-smooth-tab {

    min-height: 8.5rem;

    padding:
      1.6rem 1.7rem;

    gap: 1.3rem;

    border-radius: 1rem;

  }


  .why-smooth-tab-content strong {

    font-size: 1.4rem;

  }


  .why-smooth-tab-content > span {

    font-size: 1.05rem;

  }


  .why-smooth-tab-arrow {

    width: 3.2rem;
    height: 3.2rem;

  }


  .why-smooth-panel-wrap {

    min-height: 42rem;

    border-radius: 1.5rem;

  }


  .why-smooth-panel {

    padding:
      3.2rem 2.5rem;

  }


  .why-smooth-panel-label {

    margin-bottom:
      1.7rem;

  }


  .why-smooth-panel h3 {

    font-size:
      clamp(
        3.1rem,
        9vw,
        4rem
      );

  }


  .why-smooth-panel p {

    margin-top: 1.8rem;

    font-size: 1.4rem;

    line-height: 1.7;

  }


  .why-smooth-panel-stat {

    margin-top: 3rem;

    padding-top: 2rem;

    flex-direction: column;

    align-items: flex-start;

    gap: 0.2rem;

  }


  .why-smooth-panel-stat strong {

    font-size: 2.4rem;

  }


  .why-smooth-bottom {

    margin-top: 4rem;

    flex-wrap: wrap;

    gap:
      0.8rem 1.2rem;

    font-size: 0.95rem;

  }

}


/* -----------------------------
   Why Smooth - 430px
----------------------------- */

@media (max-width: 430px) {

  .why-smooth {

    padding:
      6rem 0;

  }


  .why-smooth-title {

    font-size:
      clamp(
        3.5rem,
        10vw,
        4.4rem
      );

  }


  .why-smooth-tab {

    grid-template-columns:
      auto 1fr auto;

  }


  .why-smooth-tab-number {

    min-width: 2.4rem;

    font-size: 1rem;

  }


  .why-smooth-tab-content > span {

    display: none;

  }


  .why-smooth-panel-wrap {

    min-height: 40rem;

  }


  .why-smooth-panel {

    padding:
      2.8rem 2.2rem;

  }


  .why-smooth-panel h3 {

    font-size:
      clamp(
        2.9rem,
        8.5vw,
        3.6rem
      );

  }

}


/** end of why smooth */

/* =====================================================
   Services
===================================================== */

.services-section {

  position: relative;

  padding:
    13rem 0;

  overflow: hidden;

  background:
    linear-gradient(
      135deg,
      #0b355b 0%,
      var(--navy) 48%,
      #092f52 100%
    );

}


.services-section::before {

  content: "";

  position: absolute;

  inset: 0;

  pointer-events: none;

  background:

    radial-gradient(
      circle at 7% 12%,
      rgba(56, 153, 223, 0.15),
      transparent 25%
    ),

    radial-gradient(
      circle at 91% 85%,
      rgba(56, 153, 223, 0.11),
      transparent 30%
    ),

    linear-gradient(
      124deg,
      transparent 0%,
      transparent 29%,
      rgba(255, 255, 255, 0.018) 29.4%,
      transparent 30.1%
    ),

    linear-gradient(
      115deg,
      transparent 0%,
      transparent 66%,
      rgba(255, 255, 255, 0.018) 66.4%,
      transparent 67%
    );

}


.services-container {

  position: relative;

  z-index: 2;

  width:
    min(
      calc(100% - 6rem),
      var(--page-width)
    );

  margin:
    0 auto;

  display: grid;

  grid-template-columns:
    minmax(32rem, 0.72fr)
    minmax(0, 1.28fr);

  align-items: start;

  gap: 10rem;

}


/* Services Intro */

.services-intro {

  position: sticky;

  top: 14rem;

  opacity: 0;

  transform:
    translateY(2.5rem);

  transition:
    opacity 0.7s ease,
    transform 0.7s ease;

}


.services-intro.is-visible {

  opacity: 1;

  transform:
    translateY(0);

}


.services-intro .section-eyebrow {

  color:
    var(--blue-light);

}


.services-intro .section-eyebrow-line {

  background:
    var(--blue);

}


.services-title {

  max-width:
    54rem;

  margin-top:
    2rem;

  color:
    var(--white);

  font-size:
    clamp(
      4.6rem,
      4.8vw,
      6.8rem
    );

  font-weight:
    800;

  line-height:
    1.03;

  letter-spacing:
    -0.05em;

}


.services-title span {

  display: block;

  color:
    var(--blue);

}


.services-description {

  max-width:
    48rem;

  margin-top:
    2.6rem;

  color:
    rgba(255, 255, 255, 0.64);

  font-size:
    1.55rem;

  font-weight:
    500;

  line-height:
    1.75;

}


.services-intro-link {

  width:
    fit-content;

  margin-top:
    3.5rem;

  padding-bottom:
    0.7rem;

  display: inline-flex;

  align-items: center;

  gap:
    1rem;

  border-bottom:
    1px solid
    rgba(255, 255, 255, 0.26);

  color:
    var(--white);

  font-size:
    1.3rem;

  font-weight:
    700;

  transition:
    color 0.2s ease,
    border-color 0.2s ease;

}


.services-intro-link span {

  color:
    var(--blue-light);

  font-size:
    1.8rem;

  transition:
    transform 0.2s ease;

}


.services-intro-link:hover {

  color:
    var(--blue-light);

  border-color:
    var(--blue);

}


.services-intro-link:hover span {

  transform:
    translateX(0.4rem);

}


/* Services Content */

.services-content {

  position: relative;

  padding-left:
    5rem;

}


/* Vertical Progress Line */

.services-progress {

  position: absolute;

  top: 1rem;
  bottom: 1rem;
  left: 0;

  width:
    1px;

  background:
    rgba(255, 255, 255, 0.12);

}


.services-progress-fill {

  position: absolute;

  top: 0;
  left: 0;

  width:
    100%;

  height:
    100%;

  background:
    linear-gradient(
      180deg,
      var(--blue),
      var(--blue-light)
    );

  transform:
    scaleY(0);

  transform-origin:
    top;

  transition:
    transform 1.5s
    cubic-bezier(
      0.22,
      1,
      0.36,
      1
    );

}


.services-progress-fill.is-visible {

  transform:
    scaleY(1);

}


/* Service Row */

.service-row {

  position: relative;

  min-height:
    24rem;

  padding:
    4.2rem 1rem
    4.2rem 0;

  display: grid;

  grid-template-columns:
    6rem
    minmax(0, 1fr)
    auto;

  align-items: start;

  gap:
    2.5rem;

  border-bottom:
    1px solid
    rgba(255, 255, 255, 0.12);

  opacity: 0;

  transform:
    translateY(3rem);

  transition:
    opacity 0.7s ease,
    transform 0.7s ease,
    border-color 0.25s ease;

}


.service-row:first-of-type {

  padding-top:
    1rem;

}


.service-row:last-child {

  border-bottom:
    0;

}


.service-row.is-visible {

  opacity: 1;

  transform:
    translateY(0);

}


.service-row:hover {

  border-color:
    rgba(56, 153, 223, 0.38);

}


/* Service Number */

.service-row-number {

  padding-top:
    0.4rem;

  color:
    var(--blue-light);

  font-size:
    1.1rem;

  font-weight:
    800;

  letter-spacing:
    0.12em;

}


/* Service Content */

.service-row-content {

  max-width:
    59rem;

}


.service-row-label {

  display: block;

  margin-bottom:
    1.2rem;

  color:
    rgba(255, 255, 255, 0.45);

  font-size:
    1rem;

  font-weight:
    700;

  letter-spacing:
    0.12em;

  text-transform:
    uppercase;

}


.service-row h3 {

  color:
    var(--white);

  font-size:
    clamp(
      2.8rem,
      3vw,
      4.2rem
    );

  font-weight:
    800;

  line-height:
    1.1;

  letter-spacing:
    -0.04em;

}


.service-row p {

  max-width:
    54rem;

  margin-top:
    1.5rem;

  color:
    rgba(255, 255, 255, 0.61);

  font-size:
    1.4rem;

  font-weight:
    500;

  line-height:
    1.75;

}


/* Service Mark */

.service-row-mark {

  width:
    4.6rem;

  height:
    4.6rem;

  margin-top:
    2.6rem;

  display: grid;

  place-items: center;

  border:
    1px solid
    rgba(255, 255, 255, 0.17);

  border-radius:
    50%;

  color:
    var(--blue-light);

  font-size:
    1.7rem;

  transition:
    background 0.25s ease,
    border-color 0.25s ease,
    color 0.25s ease,
    transform 0.25s ease;

}


.service-row:hover
.service-row-mark {

  border-color:
    var(--blue);

  background:
    var(--blue);

  color:
    var(--white);

  transform:
    rotate(8deg);

}


/* -----------------------------
   Services - 1100px
----------------------------- */

@media (max-width: 1100px) {

  .services-section {

    padding:
      11rem 0;

  }


  .services-container {

    width:
      min(
        calc(100% - 4rem),
        var(--page-width)
      );

    grid-template-columns:
      minmax(28rem, 0.7fr)
      minmax(0, 1.3fr);

    gap:
      6rem;

  }


  .services-content {

    padding-left:
      4rem;

  }


  .service-row {

    grid-template-columns:
      5rem
      minmax(0, 1fr)
      auto;

    gap:
      2rem;

  }

}


/* -----------------------------
   Services - 900px
----------------------------- */

@media (max-width: 900px) {

  .services-section {

    padding:
      9rem 0;

  }


  .services-container {

    grid-template-columns:
      1fr;

    gap:
      6rem;

  }


  .services-intro {

    position:
      relative;

    top:
      auto;

    max-width:
      68rem;

  }


  .services-description {

    max-width:
      60rem;

  }


  .services-content {

    padding-left:
      4rem;

  }


  .service-row {

    min-height:
      21rem;

  }

}


/* -----------------------------
   Services - 600px
----------------------------- */

@media (max-width: 600px) {

  .services-section {

    padding:
      7rem 0;

  }


  .services-container {

    width:
      calc(100% - 3rem);

    gap:
      4.5rem;

  }


  .services-title {

    font-size:
      clamp(
        3.8rem,
        11vw,
        5rem
      );

  }


  .services-description {

    margin-top:
      2rem;

    font-size:
      1.45rem;

  }


  .services-content {

    padding-left:
      2.6rem;

  }


  .service-row {

    min-height:
      auto;

    padding:
      3rem 0;

    grid-template-columns:
      3.5rem
      1fr;

    gap:
      1.3rem;

  }


  .service-row-number {

    grid-column:
      1;

  }


  .service-row-content {

    grid-column:
      2;

  }


  .service-row-mark {

    display:
      none;

  }


  .service-row h3 {

    font-size:
      clamp(
        2.6rem,
        7vw,
        3.4rem
      );

  }


  .service-row p {

    font-size:
      1.3rem;

  }

}


/* -----------------------------
   Services - 430px
----------------------------- */

@media (max-width: 430px) {

  .services-section {

    padding:
      6rem 0;

  }


  .services-content {

    padding-left:
      2rem;

  }


  .service-row {

    grid-template-columns:
      1fr;

  }


  .service-row-number {

    grid-column:
      1;

    margin-bottom:
      -0.5rem;

  }


  .service-row-content {

    grid-column:
      1;

  }

}


/** end of services */

/* =====================================================
   Modern Bathroom Feature
===================================================== */

.modern-feature {

  position: relative;

  padding:
    12rem 0;

  overflow: hidden;

  background:
    linear-gradient(
      135deg,
      #ffffff 0%,
      #f7f9fa 52%,
      #edf2f5 100%
    );

}


/* Background Texture */

.modern-feature::before {

  content: "";

  position: absolute;

  inset: 0;

  pointer-events: none;

  background:

    linear-gradient(
      126deg,
      transparent 0%,
      transparent 21%,
      rgba(121, 132, 143, 0.045) 21.4%,
      rgba(192, 199, 205, 0.07) 22%,
      transparent 22.8%
    ),

    linear-gradient(
      117deg,
      transparent 0%,
      transparent 59%,
      rgba(125, 136, 147, 0.04) 59.4%,
      rgba(202, 208, 213, 0.065) 60%,
      transparent 60.8%
    ),

    linear-gradient(
      138deg,
      transparent 0%,
      transparent 82%,
      rgba(123, 135, 146, 0.04) 82.4%,
      transparent 83.3%
    );

  background-size:
    100rem 100rem,
    120rem 120rem,
    92rem 92rem;

  background-position:
    -22rem -12rem,
    34rem 8rem,
    84rem -10rem;

  opacity: 0.8;

}


.modern-feature::after {

  content: "";

  position: absolute;

  top: -18rem;
  right: -18rem;

  width: 50rem;
  height: 50rem;

  border-radius: 50%;

  background:
    radial-gradient(
      circle,
      rgba(56, 153, 223, 0.09),
      transparent 68%
    );

  pointer-events: none;

}


.modern-feature-container {

  position: relative;

  z-index: 2;

  width:
    min(
      calc(100% - 6rem),
      var(--page-width)
    );

  margin:
    0 auto;

}


/* Section Heading */

.modern-feature-heading {

  max-width:
    90rem;

  margin-bottom:
    6rem;

  opacity: 0;

  transform:
    translateY(2.5rem);

  transition:
    opacity 0.75s ease,
    transform 0.75s ease;

}


.modern-feature-heading.is-visible {

  opacity: 1;

  transform:
    translateY(0);

}


.modern-feature-title {

  margin-top:
    2rem;

  color:
    var(--navy-dark);

  font-size:
    clamp(
      4.8rem,
      5.4vw,
      7.4rem
    );

  font-weight:
    800;

  line-height:
    1.02;

  letter-spacing:
    -0.055em;

}


.modern-feature-title span {

  display: block;

  color:
    var(--blue);

}


/* Main Layout */

.modern-feature-layout {

  display: grid;

  grid-template-columns:
    minmax(34rem, 0.82fr)
    minmax(0, 1.18fr);

  align-items: center;

  gap:
    8rem;

}


/* Feature Content */

.modern-feature-content {

  opacity: 0;

  transform:
    translateY(2.5rem);

  transition:
    opacity 0.75s ease 0.08s,
    transform 0.75s ease 0.08s;

}


.modern-feature-content.is-visible {

  opacity: 1;

  transform:
    translateY(0);

}


.modern-feature-lead {

  max-width:
    52rem;

  color:
    var(--text-soft);

  font-size:
    1.65rem;

  font-weight:
    500;

  line-height:
    1.8;

}


/* Feature List */

.modern-feature-list {

  margin-top:
    4rem;

  border-top:
    1px solid
    var(--border);

}


.modern-feature-item {

  padding:
    2.4rem 0;

  display: grid;

  grid-template-columns:
    4rem 1fr;

  gap:
    1.6rem;

  border-bottom:
    1px solid
    var(--border);

}


.modern-feature-number {

  padding-top:
    0.25rem;

  color:
    var(--blue);

  font-size:
    1rem;

  font-weight:
    800;

  letter-spacing:
    0.1em;

}


.modern-feature-item h3 {

  color:
    var(--navy);

  font-size:
    1.6rem;

  font-weight:
    800;

  line-height:
    1.3;

}


.modern-feature-item p {

  max-width:
    43rem;

  margin-top:
    0.7rem;

  color:
    var(--text-soft);

  font-size:
    1.25rem;

  font-weight:
    500;

  line-height:
    1.7;

}


/* Feature Link */

.modern-feature-link {

  width:
    fit-content;

  margin-top:
    3.5rem;

  display:
    inline-flex;

  align-items:
    center;

  gap:
    1rem;

  padding-bottom:
    0.6rem;

  border-bottom:
    1px solid
    rgba(13, 59, 101, 0.25);

  color:
    var(--navy);

  font-size:
    1.3rem;

  font-weight:
    800;

  transition:
    color 0.2s ease,
    border-color 0.2s ease;

}


.modern-feature-link span {

  color:
    var(--blue);

  font-size:
    1.8rem;

  transition:
    transform 0.2s ease;

}


.modern-feature-link:hover {

  color:
    var(--blue-dark);

  border-color:
    var(--blue);

}


.modern-feature-link:hover span {

  transform:
    translateX(0.4rem);

}


/* Feature Visual */

.modern-feature-visual {

  position: relative;

  opacity: 0;

  transform:
    translateY(2.5rem);

  transition:
    opacity 0.8s ease 0.15s,
    transform 0.8s ease 0.15s;

}


.modern-feature-visual.is-visible {

  opacity: 1;

  transform:
    translateY(0);

}


.modern-feature-image-wrap {

  --modern-image-shift: 0px;

  position: relative;

  height:
    46rem;

  overflow: hidden;

  border-radius:
    2rem;

  border:
    1px solid
    rgba(13, 59, 101, 0.09);

  background:
    var(--soft-gray);

  box-shadow:
    0 2.6rem 6rem
    rgba(9, 47, 82, 0.14);

}


/* Branded Edge */

.modern-feature-image-wrap::before {

  content: "";

  position: absolute;

  top: 0;
  left: 0;

  z-index: 3;

  width:
    0.6rem;

  height:
    100%;

  background:
    linear-gradient(
      180deg,
      var(--blue),
      var(--steel-blue)
    );

}


.modern-feature-image-wrap::after {

  content: "";

  position: absolute;

  inset: 0;

  z-index: 2;

  background:
    linear-gradient(
      180deg,
      rgba(9, 47, 82, 0.01) 0%,
      transparent 48%,
      rgba(9, 47, 82, 0.13) 100%
    );

  pointer-events: none;

}


.modern-feature-image {

  position: absolute;

  top: -4rem;
  left: 0;

  width:
    100%;

  height:
    calc(100% + 8rem);

  object-fit:
    cover;

  object-position:
    center 68%;

  transform:
    translateY(
      var(--modern-image-shift)
    )
    scale(1.035);

  will-change:
    transform;

}


/* Brand Statement */

.modern-feature-statement {

  position: relative;

  z-index: 4;

  width:
    calc(100% - 7rem);

  margin:
    -5rem auto 0;

  padding:
    2.8rem 3rem;

  border:
    1px solid
    rgba(13, 59, 101, 0.09);

  border-radius:
    1.4rem;

  background:
    rgba(255, 255, 255, 0.95);

  backdrop-filter:
    blur(1.2rem);

  box-shadow:
    0 1.8rem 4rem
    rgba(9, 47, 82, 0.11);

}


.modern-feature-statement > span {

  display: block;

  margin-bottom:
    0.8rem;

  color:
    var(--blue-dark);

  font-size:
    0.95rem;

  font-weight:
    800;

  letter-spacing:
    0.09em;

  text-transform:
    uppercase;

}


.modern-feature-statement strong {

  display: block;

  color:
    var(--navy);

  font-size:
    clamp(
      2.1rem,
      2.3vw,
      3rem
    );

  font-weight:
    800;

  line-height:
    1.2;

  letter-spacing:
    -0.035em;

}


.modern-feature-statement em {

  display: inline;

  color:
    var(--blue);

  font-style:
    normal;

}


/* Bottom Brand Strip */

.modern-feature-bottom {

  margin-top:
    7rem;

  padding:
    2.5rem 0;

  display: flex;

  align-items: center;

  justify-content: center;

  flex-wrap: wrap;

  gap:
    1.5rem 2.4rem;

  border-top:
    1px solid
    var(--border);

  border-bottom:
    1px solid
    var(--border);

  color:
    var(--steel-blue);

  font-size:
    1rem;

  font-weight:
    800;

  letter-spacing:
    0.09em;

  text-transform:
    uppercase;

  opacity: 0;

  transform:
    translateY(2rem);

  transition:
    opacity 0.75s ease 0.2s,
    transform 0.75s ease 0.2s;

}


.modern-feature-bottom.is-visible {

  opacity: 1;

  transform:
    translateY(0);

}


.modern-feature-bottom i {

  width:
    0.45rem;

  height:
    0.45rem;

  flex-shrink: 0;

  border-radius:
    50%;

  background:
    var(--blue);

}


/* -----------------------------
   Modern Bathroom Feature - 1100px
----------------------------- */

@media (max-width: 1100px) {

  .modern-feature {

    padding:
      10rem 0;

  }


  .modern-feature-container {

    width:
      min(
        calc(100% - 4rem),
        var(--page-width)
      );

  }


  .modern-feature-heading {

    margin-bottom:
      5rem;

  }


  .modern-feature-layout {

    grid-template-columns:
      minmax(31rem, 0.85fr)
      minmax(0, 1.15fr);

    gap:
      5rem;

  }


  .modern-feature-image-wrap {

    height:
      43rem;

  }


  .modern-feature-statement {

    width:
      calc(100% - 5rem);

  }

}


/* -----------------------------
   Modern Bathroom Feature - 900px
----------------------------- */

@media (max-width: 900px) {

  .modern-feature {

    padding:
      9rem 0;

  }


  .modern-feature-layout {

    grid-template-columns:
      1fr;

    gap:
      5rem;

  }


  .modern-feature-content {

    max-width:
      68rem;

  }


  .modern-feature-lead {

    max-width:
      62rem;

  }


  .modern-feature-list {

    max-width:
      68rem;

  }


  .modern-feature-visual {

    max-width:
      78rem;

    width:
      100%;

    margin:
      0 auto;

  }


  .modern-feature-image-wrap {

    height:
      45rem;

  }


  .modern-feature-image {

    top: 0;

    height:
      100%;

    transform:
      none;

    object-position:
      center 68%;

  }


  .modern-feature-bottom {

    display:
      none;

  }

}


/* -----------------------------
   Modern Bathroom Feature - 600px
----------------------------- */

@media (max-width: 600px) {

  .modern-feature {

    padding:
      7rem 0;

  }


  .modern-feature-container {

    width:
      calc(100% - 3rem);

  }


  .modern-feature-heading {

    margin-bottom:
      4rem;

  }


  .modern-feature-title {

    font-size:
      clamp(
        3.8rem,
        11vw,
        5rem
      );

  }


  .modern-feature-layout {

    gap:
      4rem;

  }


  .modern-feature-lead {

    font-size:
      1.45rem;

    line-height:
      1.75;

  }


  .modern-feature-list {

    margin-top:
      3rem;

  }


  .modern-feature-item {

    padding:
      2rem 0;

    grid-template-columns:
      3.2rem 1fr;

    gap:
      1.2rem;

  }


  .modern-feature-item h3 {

    font-size:
      1.45rem;

  }


  .modern-feature-item p {

    font-size:
      1.15rem;

  }


  .modern-feature-link {

    margin-top:
      3rem;

  }


  .modern-feature-image-wrap {

    height:
      34rem;

    border-radius:
      1.4rem;

  }


  .modern-feature-image {

    object-position:
      center 65%;

  }


  .modern-feature-statement {

    width:
      calc(100% - 3rem);

    margin-top:
      -3.5rem;

    padding:
      2rem;

    border-radius:
      1.1rem;

  }


  .modern-feature-statement strong {

    font-size:
      2rem;

  }

}


/* -----------------------------
   Modern Bathroom Feature - 430px
----------------------------- */

@media (max-width: 430px) {

  .modern-feature {

    padding:
      6rem 0;

  }


  .modern-feature-title {

    font-size:
      clamp(
        3.5rem,
        10vw,
        4.4rem
      );

  }


  .modern-feature-item {

    grid-template-columns:
      1fr;

    gap:
      0.5rem;

  }


  .modern-feature-image-wrap {

    height:
      29rem;

  }


  .modern-feature-statement {

    width:
      calc(100% - 2rem);

    margin-top:
      -2.5rem;

    padding:
      1.8rem;

  }


  .modern-feature-statement > span {

    font-size:
      0.82rem;

  }


  .modern-feature-statement strong {

    font-size:
      1.8rem;

  }

}


/** end of modern bathroom feature */
/* =====================================================
   Process
===================================================== */

.process-section {

  position: relative;

  padding:
    12rem 0;

  overflow: hidden;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f6f8f9 100%
    );

}


.process-section::before {

  content: "";

  position: absolute;

  inset: 0;

  pointer-events: none;

  background:

    linear-gradient(
      128deg,
      transparent 0%,
      transparent 24%,
      rgba(126, 138, 149, 0.04) 24.4%,
      rgba(201, 207, 212, 0.06) 25%,
      transparent 25.8%
    ),

    linear-gradient(
      116deg,
      transparent 0%,
      transparent 71%,
      rgba(128, 139, 149, 0.04) 71.4%,
      rgba(205, 210, 214, 0.055) 72%,
      transparent 72.8%
    );

  background-size:
    105rem 105rem,
    125rem 125rem;

  background-position:
    -20rem -10rem,
    45rem 10rem;

}


.process-section::after {

  content: "";

  position: absolute;

  top: -18rem;
  left: -18rem;

  width:
    50rem;

  height:
    50rem;

  border-radius:
    50%;

  background:
    radial-gradient(
      circle,
      rgba(56, 153, 223, 0.08),
      transparent 68%
    );

  pointer-events: none;

}


.process-container {

  position: relative;

  z-index: 2;

  width:
    min(
      calc(100% - 6rem),
      var(--page-width)
    );

  margin:
    0 auto;

}


/* Process Intro */

.process-intro {

  max-width:
    82rem;

  margin-bottom:
    7rem;

  opacity:
    0;

  transform:
    translateY(2.5rem);

  transition:
    opacity 0.7s ease,
    transform 0.7s ease;

}


.process-intro.is-visible {

  opacity:
    1;

  transform:
    translateY(0);

}


.process-title {

  margin-top:
    2rem;

  color:
    var(--navy-dark);

  font-size:
    clamp(
      4.7rem,
      5.2vw,
      7.2rem
    );

  font-weight:
    800;

  line-height:
    1.02;

  letter-spacing:
    -0.055em;

}


.process-title span {

  display:
    block;

  color:
    var(--blue);

}


.process-description {

  max-width:
    58rem;

  margin-top:
    2.5rem;

  color:
    var(--text-soft);

  font-size:
    1.6rem;

  font-weight:
    500;

  line-height:
    1.75;

}


/* Process Layout */

.process-layout {

  position:
    relative;

  max-width:
    105rem;

  margin:
    0 auto;

  padding-left:
    8rem;

}


/* Process Rail */

.process-rail {

  position:
    absolute;

  top:
    3rem;

  bottom:
    3rem;

  left:
    2.4rem;

  width:
    2px;

  background:
    rgba(13, 59, 101, 0.12);

  overflow:
    hidden;

}


.process-rail-fill {

  --process-progress: 0;

  position:
    absolute;

  top:
    0;

  left:
    0;

  width:
    100%;

  height:
    100%;

  background:
    linear-gradient(
      180deg,
      var(--blue),
      var(--steel-blue)
    );

  transform:
    scaleY(
      var(--process-progress)
    );

  transform-origin:
    top;

  will-change:
    transform;

}


/* Process Step */

.process-step {

  position:
    relative;

  min-height:
    22rem;

  padding:
    3.5rem 0;

  display:
    grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto;

  align-items:
    center;

  gap:
    5rem;

  border-bottom:
    1px solid
    var(--border);

  opacity:
    0;

  transform:
    translateY(2.5rem);

  transition:
    opacity 0.7s ease,
    transform 0.7s ease;

}


.process-step.is-visible {

  opacity:
    1;

  transform:
    translateY(0);

}


.process-step-final {

  border-bottom:
    0;

}


/* Step Marker */

.process-step-marker {

  position:
    absolute;

  top:
    50%;

  left:
    -8rem;

  width:
    4.8rem;

  height:
    4.8rem;

  display:
    grid;

  place-items:
    center;

  border:
    2px solid
    rgba(13, 59, 101, 0.16);

  border-radius:
    50%;

  background:
    #f8f9fa;

  transform:
    translateY(-50%);

  z-index:
    3;

  transition:
    background 0.35s ease,
    border-color 0.35s ease,
    box-shadow 0.35s ease,
    transform 0.35s ease;

}


.process-step-marker span {

  color:
    var(--silver-dark);

  font-size:
    1rem;

  font-weight:
    800;

  letter-spacing:
    0.08em;

  transition:
    color 0.35s ease;

}


.process-step.is-active
.process-step-marker {

  border-color:
    var(--blue);

  background:
    var(--blue);

  box-shadow:
    0 0 0 0.7rem
    rgba(56, 153, 223, 0.1);

  transform:
    translateY(-50%)
    scale(1.04);

}


.process-step.is-active
.process-step-marker span {

  color:
    var(--white);

}


/* Step Content */

.process-step-content {

  max-width:
    64rem;

}


.process-step-label {

  display:
    block;

  margin-bottom:
    1rem;

  color:
    var(--silver-dark);

  font-size:
    0.95rem;

  font-weight:
    800;

  letter-spacing:
    0.12em;

  text-transform:
    uppercase;

  transition:
    color 0.35s ease;

}


.process-step h3 {

  color:
    #82909c;

  font-size:
    clamp(
      2.8rem,
      3vw,
      4.1rem
    );

  font-weight:
    800;

  line-height:
    1.1;

  letter-spacing:
    -0.04em;

  transition:
    color 0.35s ease;

}


.process-step p {

  max-width:
    58rem;

  margin-top:
    1.4rem;

  color:
    #8c99a4;

  font-size:
    1.35rem;

  font-weight:
    500;

  line-height:
    1.75;

  transition:
    color 0.35s ease;

}


.process-step.is-active
.process-step-label {

  color:
    var(--blue-dark);

}


.process-step.is-active h3 {

  color:
    var(--navy-dark);

}


.process-step.is-active p {

  color:
    var(--text-soft);

}


/* Large Step Word */

.process-step-word {

  min-width:
    16rem;

  color:
    rgba(13, 59, 101, 0.045);

  font-size:
    clamp(
      4.8rem,
      6vw,
      8rem
    );

  font-weight:
    800;

  line-height:
    1;

  letter-spacing:
    -0.06em;

  text-align:
    right;

  user-select:
    none;

  transition:
    color 0.35s ease,
    transform 0.35s ease;

}


.process-step.is-active
.process-step-word {

  color:
    rgba(56, 153, 223, 0.1);

  transform:
    translateX(-0.5rem);

}


/* Process CTA */

.process-cta {

  margin-top:
    7rem;

  padding:
    3.5rem 4rem;

  display:
    flex;

  align-items:
    center;

  justify-content:
    space-between;

  gap:
    4rem;

  overflow:
    hidden;

  border-radius:
    1.6rem;

  background:
    linear-gradient(
      130deg,
      var(--navy) 0%,
      var(--navy-dark) 100%
    );

  box-shadow:
    0 2rem 5rem
    rgba(9, 47, 82, 0.14);

  opacity:
    0;

  transform:
    translateY(2rem);

  transition:
    opacity 0.7s ease,
    transform 0.7s ease;

}


.process-cta.is-visible {

  opacity:
    1;

  transform:
    translateY(0);

}


.process-cta-label {

  display:
    block;

  margin-bottom:
    0.6rem;

  color:
    var(--blue-light);

  font-size:
    0.95rem;

  font-weight:
    800;

  letter-spacing:
    0.1em;

  text-transform:
    uppercase;

}


.process-cta strong {

  display:
    block;

  max-width:
    57rem;

  color:
    var(--white);

  font-size:
    clamp(
      2.2rem,
      2.6vw,
      3.4rem
    );

  font-weight:
    800;

  line-height:
    1.2;

  letter-spacing:
    -0.035em;

}


.process-cta-btn {

  min-height:
    5.4rem;

  padding:
    0 2.4rem;

  flex-shrink:
    0;

  display:
    inline-flex;

  align-items:
    center;

  justify-content:
    center;

  gap:
    1rem;

  border-radius:
    0.8rem;

  background:
    var(--blue);

  color:
    var(--white);

  font-size:
    1.3rem;

  font-weight:
    700;

  box-shadow:
    0 1.2rem 3rem
    rgba(0, 0, 0, 0.12);

  transition:
    background 0.2s ease,
    transform 0.2s ease,
    box-shadow 0.2s ease;

}


.process-cta-btn span {

  font-size:
    1.8rem;

  transition:
    transform 0.2s ease;

}


.process-cta-btn:hover {

  background:
    #2679b8;

  transform:
    translateY(-0.2rem);

  box-shadow:
    0 1.6rem 3.5rem
    rgba(0, 0, 0, 0.16);

}


.process-cta-btn:hover span {

  transform:
    translateX(0.4rem);

}


/* -----------------------------
   Process - 1100px
----------------------------- */

@media (max-width: 1100px) {

  .process-section {

    padding:
      10rem 0;

  }


  .process-container {

    width:
      min(
        calc(100% - 4rem),
        var(--page-width)
      );

  }


  .process-layout {

    max-width:
      95rem;

  }


  .process-step {

    gap:
      3rem;

  }


  .process-step-word {

    min-width:
      13rem;

  }

}


/* -----------------------------
   Process - 900px
----------------------------- */

@media (max-width: 900px) {

  .process-section {

    padding:
      9rem 0;

  }


  .process-intro {

    margin-bottom:
      5.5rem;

  }


  .process-layout {

    padding-left:
      6.5rem;

  }


  .process-rail {

    left:
      2rem;

  }


  .process-step-marker {

    left:
      -6.5rem;

    width:
      4rem;

    height:
      4rem;

  }


  .process-step {

    min-height:
      20rem;

    grid-template-columns:
      1fr;

    gap:
      1rem;

  }


  .process-step-word {

    position:
      absolute;

    right:
      0;

    bottom:
      2.5rem;

    min-width:
      auto;

    font-size:
      5rem;

  }


  .process-cta {

    padding:
      3rem;

  }

}


/* -----------------------------
   Process - 600px
----------------------------- */

@media (max-width: 600px) {

  .process-section {

    padding:
      7rem 0;

  }


  .process-container {

    width:
      calc(100% - 3rem);

  }


  .process-title {

    font-size:
      clamp(
        3.8rem,
        11vw,
        5rem
      );

  }


  .process-description {

    margin-top:
      2rem;

    font-size:
      1.45rem;

    line-height:
      1.7;

  }


  .process-layout {

    padding-left:
      5rem;

  }


  .process-rail {

    left:
      1.6rem;

  }


  .process-step {

    min-height:
      auto;

    padding:
      3.2rem 0;

  }


  .process-step-marker {

    left:
      -5rem;

    width:
      3.4rem;

    height:
      3.4rem;

  }


  .process-step-marker span {

    font-size:
      0.85rem;

  }


  .process-step-label {

    font-size:
      0.85rem;

  }


  .process-step h3 {

    font-size:
      clamp(
        2.6rem,
        7.5vw,
        3.4rem
      );

  }


  .process-step p {

    font-size:
      1.25rem;

  }


  .process-step-word {

    display:
      none;

  }


  .process-cta {

    margin-top:
      5rem;

    padding:
      2.5rem;

    flex-direction:
      column;

    align-items:
      flex-start;

    gap:
      2.5rem;

  }


  .process-cta strong {

    font-size:
      2.3rem;

  }


  .process-cta-btn {

    width:
      100%;

    min-height:
      5.4rem;

  }

}


/* -----------------------------
   Process - 430px
----------------------------- */

@media (max-width: 430px) {

  .process-section {

    padding:
      6rem 0;

  }


  .process-title {

    font-size:
      clamp(
        3.5rem,
        10vw,
        4.4rem
      );

  }


  .process-layout {

    padding-left:
      4.4rem;

  }


  .process-rail {

    left:
      1.4rem;

  }


  .process-step-marker {

    left:
      -4.4rem;

    width:
      3rem;

    height:
      3rem;

  }


  .process-step {

    padding:
      2.8rem 0;

  }


  .process-step h3 {

    font-size:
      clamp(
        2.4rem,
        7vw,
        3rem
      );

  }


  .process-cta {

    padding:
      2.2rem;

    border-radius:
      1.2rem;

  }

}


/** end of process */


/* =====================================================
   Financing
===================================================== */

.financing-section {

  position: relative;

  padding:
    12rem 0;

  overflow: hidden;

  background:
    linear-gradient(
      135deg,
      #0b355b 0%,
      var(--navy) 50%,
      #092f52 100%
    );

}


.financing-section::before {

  content: "";

  position: absolute;

  inset: 0;

  pointer-events: none;

  background:

    radial-gradient(
      circle at 10% 18%,
      rgba(56, 153, 223, 0.18),
      transparent 28%
    ),

    radial-gradient(
      circle at 90% 78%,
      rgba(56, 153, 223, 0.12),
      transparent 32%
    ),

    linear-gradient(
      125deg,
      transparent 0%,
      transparent 30%,
      rgba(255, 255, 255, 0.02) 30.4%,
      transparent 31%
    ),

    linear-gradient(
      115deg,
      transparent 0%,
      transparent 66%,
      rgba(255, 255, 255, 0.018) 66.4%,
      transparent 67%
    );

}


.financing-container {

  position: relative;

  z-index: 2;

  width:
    min(
      calc(100% - 6rem),
      var(--page-width)
    );

  margin:
    0 auto;

  display: grid;

  grid-template-columns:
    minmax(0, 0.9fr)
    minmax(38rem, 1.1fr);

  align-items: center;

  gap:
    9rem;

}


/* Financing Content */

.financing-content {

  max-width:
    58rem;

  opacity: 0;

  transform:
    translateY(2.5rem);

  transition:
    opacity 0.75s ease,
    transform 0.75s ease;

}


.financing-content.is-visible {

  opacity: 1;

  transform:
    translateY(0);

}


.financing-eyebrow {

  display: flex;

  align-items: center;

  gap:
    1.2rem;

  color:
    var(--blue-light);

  font-size:
    1.1rem;

  font-weight:
    800;

  letter-spacing:
    0.11em;

  text-transform:
    uppercase;

}


.financing-eyebrow-line {

  width:
    3.8rem;

  height:
    0.2rem;

  background:
    var(--blue);

}


.financing-title {

  margin-top:
    2rem;

  color:
    var(--white);

  font-size:
    clamp(
      4.8rem,
      5vw,
      7rem
    );

  font-weight:
    800;

  line-height:
    1.02;

  letter-spacing:
    -0.055em;

}


.financing-title span {

  display:
    block;

  color:
    var(--blue);

}


.financing-description {

  max-width:
    54rem;

  margin-top:
    2.7rem;

  color:
    rgba(255, 255, 255, 0.68);

  font-size:
    1.6rem;

  font-weight:
    500;

  line-height:
    1.75;

}


/* Financing Actions */

.financing-actions {

  margin-top:
    3.8rem;

  display:
    flex;

  align-items:
    center;

  flex-wrap:
    wrap;

  gap:
    2rem;

}


.financing-primary-btn {

  min-height:
    5.6rem;

  padding:
    0 2.5rem;

  display:
    inline-flex;

  align-items:
    center;

  justify-content:
    center;

  gap:
    1rem;

  border-radius:
    0.8rem;

  background:
    var(--blue);

  color:
    var(--white);

  font-size:
    1.35rem;

  font-weight:
    700;

  box-shadow:
    0 1.4rem 3.4rem
    rgba(0, 0, 0, 0.14);

  transition:
    background 0.2s ease,
    transform 0.2s ease,
    box-shadow 0.2s ease;

}


.financing-primary-btn span {

  font-size:
    1.9rem;

  transition:
    transform 0.2s ease;

}


.financing-primary-btn:hover {

  background:
    #2679b8;

  transform:
    translateY(-0.2rem);

  box-shadow:
    0 1.8rem 4rem
    rgba(0, 0, 0, 0.18);

}


.financing-primary-btn:hover span {

  transform:
    translateX(0.4rem);

}


.financing-secondary-link {

  position:
    relative;

  color:
    rgba(255, 255, 255, 0.82);

  font-size:
    1.25rem;

  font-weight:
    700;

  transition:
    color 0.2s ease;

}


.financing-secondary-link::after {

  content: "";

  position:
    absolute;

  left:
    0;

  bottom:
    -0.5rem;

  width:
    100%;

  height:
    1px;

  background:
    rgba(255, 255, 255, 0.3);

  transition:
    background 0.2s ease;

}


.financing-secondary-link:hover {

  color:
    var(--blue-light);

}


.financing-secondary-link:hover::after {

  background:
    var(--blue-light);

}


/* Financing Note */

.financing-note {

  max-width:
    51rem;

  margin-top:
    2.5rem;

  color:
    rgba(255, 255, 255, 0.42);

  font-size:
    1.05rem;

  font-weight:
    500;

  line-height:
    1.65;

}


/* Financing Visual */

.financing-visual {

  position:
    relative;

  min-height:
    53rem;

  opacity:
    0;

  transform:
    translateY(2.5rem);

  transition:
    opacity 0.8s ease 0.12s,
    transform 0.8s ease 0.12s;

}


.financing-visual.is-visible {

  opacity:
    1;

  transform:
    translateY(0);

}


.financing-background-word {

  position:
    absolute;

  top:
    -4rem;

  right:
    -2rem;

  color:
    rgba(255, 255, 255, 0.025);

  font-size:
    clamp(
      8rem,
      10vw,
      14rem
    );

  font-weight:
    800;

  line-height:
    1;

  letter-spacing:
    -0.06em;

  user-select:
    none;

  pointer-events:
    none;

}


/* Visual Panel */

.financing-visual-inner {

  position:
    relative;

  z-index:
    2;

  min-height:
    53rem;

  padding:
    4rem;

  display:
    flex;

  flex-direction:
    column;

  overflow:
    hidden;

  border:
    1px solid
    rgba(255, 255, 255, 0.12);

  border-radius:
    2rem;

  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, 0.095),
      rgba(255, 255, 255, 0.035)
    );

  backdrop-filter:
    blur(1.2rem);

  box-shadow:
    0 2.5rem 6rem
    rgba(0, 0, 0, 0.15);

}


.financing-visual-inner::before {

  content: "";

  position:
    absolute;

  top:
    -12rem;

  right:
    -10rem;

  width:
    32rem;

  height:
    32rem;

  border-radius:
    50%;

  border:
    5rem solid
    rgba(255, 255, 255, 0.025);

  pointer-events:
    none;

}


.financing-visual-inner::after {

  content: "";

  position:
    absolute;

  left:
    -8rem;

  bottom:
    -12rem;

  width:
    30rem;

  height:
    30rem;

  border-radius:
    50%;

  background:
    radial-gradient(
      circle,
      rgba(56, 153, 223, 0.18),
      transparent 68%
    );

  pointer-events:
    none;

}


/* Visual Header */

.financing-visual-top {

  position:
    relative;

  z-index:
    2;

  display:
    flex;

  align-items:
    center;

  justify-content:
    space-between;

  gap:
    2rem;

  padding-bottom:
    2.5rem;

  border-bottom:
    1px solid
    rgba(255, 255, 255, 0.12);

}


.financing-visual-top span {

  color:
    rgba(255, 255, 255, 0.58);

  font-size:
    1rem;

  font-weight:
    800;

  letter-spacing:
    0.1em;

  text-transform:
    uppercase;

}


.financing-visual-top strong {

  color:
    var(--white);

  font-size:
    2.2rem;

  font-weight:
    800;

  letter-spacing:
    -0.035em;

}


/* Financing Path */

.financing-path {

  position:
    relative;

  z-index:
    2;

  flex:
    1;

  margin-top:
    3.5rem;

  padding-left:
    5.5rem;

  display:
    flex;

  flex-direction:
    column;

  justify-content:
    center;

  gap:
    3.2rem;

}


.financing-path-line {

  position:
    absolute;

  top:
    2.4rem;

  bottom:
    2.4rem;

  left:
    1.8rem;

  width:
    2px;

  overflow:
    hidden;

  background:
    rgba(255, 255, 255, 0.12);

}


.financing-path-fill {

  position:
    absolute;

  top:
    0;

  left:
    0;

  width:
    100%;

  height:
    100%;

  background:
    linear-gradient(
      180deg,
      var(--blue),
      var(--blue-light)
    );

  transform:
    scaleY(0);

  transform-origin:
    top;

  transition:
    transform 1.5s
    cubic-bezier(
      0.22,
      1,
      0.36,
      1
    );

}


.financing-path-fill.is-visible {

  transform:
    scaleY(1);

}


/* Financing Step */

.financing-path-step {

  position:
    relative;

  display:
    grid;

  grid-template-columns:
    auto 1fr;

  align-items:
    start;

  gap:
    1.8rem;

  opacity:
    0;

  transform:
    translateY(1.5rem);

  transition:
    opacity 0.5s ease,
    transform 0.5s ease;

}


.financing-path-step.is-visible {

  opacity:
    1;

  transform:
    translateY(0);

}


.financing-path-marker {

  width:
    4rem;

  height:
    4rem;

  margin-left:
    -5.7rem;

  display:
    grid;

  place-items:
    center;

  border:
    1px solid
    rgba(255, 255, 255, 0.2);

  border-radius:
    50%;

  background:
    var(--navy);

  color:
    var(--blue-light);

  font-size:
    0.9rem;

  font-weight:
    800;

  letter-spacing:
    0.08em;

  box-shadow:
    0 0 0 0.7rem
    rgba(9, 47, 82, 0.55);

}


.financing-path-step strong {

  display:
    block;

  color:
    var(--white);

  font-size:
    1.65rem;

  font-weight:
    800;

  line-height:
    1.3;

}


.financing-path-step div > span {

  display:
    block;

  margin-top:
    0.5rem;

  color:
    rgba(255, 255, 255, 0.52);

  font-size:
    1.15rem;

  font-weight:
    500;

  line-height:
    1.55;

}


/* Visual Footer */

.financing-visual-bottom {

  position:
    relative;

  z-index:
    2;

  margin-top:
    3rem;

  padding-top:
    2.5rem;

  display:
    flex;

  align-items:
    baseline;

  gap:
    0.7rem;

  border-top:
    1px solid
    rgba(255, 255, 255, 0.12);

}


.financing-visual-bottom span {

  color:
    rgba(255, 255, 255, 0.55);

  font-size:
    1.15rem;

  font-weight:
    600;

}


.financing-visual-bottom strong {

  color:
    var(--blue-light);

  font-size:
    1.6rem;

  font-weight:
    800;

}


/* -----------------------------
   Financing - 1100px
----------------------------- */

@media (max-width: 1100px) {

  .financing-section {

    padding:
      10rem 0;

  }


  .financing-container {

    width:
      min(
        calc(100% - 4rem),
        var(--page-width)
      );

    grid-template-columns:
      minmax(0, 0.9fr)
      minmax(34rem, 1.1fr);

    gap:
      6rem;

  }


  .financing-visual-inner {

    padding:
      3.5rem;

  }

}


/* -----------------------------
   Financing - 900px
----------------------------- */

@media (max-width: 900px) {

  .financing-section {

    padding:
      9rem 0;

  }


  .financing-container {

    grid-template-columns:
      1fr;

    gap:
      6rem;

  }


  .financing-content {

    max-width:
      68rem;

  }


  .financing-description {

    max-width:
      62rem;

  }


  .financing-visual {

    width:
      100%;

    max-width:
      76rem;

    min-height:
      50rem;

    margin:
      0 auto;

  }


  .financing-visual-inner {

    min-height:
      50rem;

  }

}


/* -----------------------------
   Financing - 600px
----------------------------- */

@media (max-width: 600px) {

  .financing-section {

    padding:
      7rem 0;

  }


  .financing-container {

    width:
      calc(100% - 3rem);

    gap:
      4.5rem;

  }


  .financing-eyebrow {

    font-size:
      1rem;

  }


  .financing-eyebrow-line {

    width:
      2.8rem;

  }


  .financing-title {

    font-size:
      clamp(
        3.8rem,
        11vw,
        5rem
      );

  }


  .financing-description {

    margin-top:
      2.2rem;

    font-size:
      1.45rem;

    line-height:
      1.7;

  }


  .financing-actions {

    margin-top:
      3rem;

    flex-direction:
      column;

    align-items:
      stretch;

    gap:
      1.6rem;

  }


  .financing-primary-btn {

    width:
      100%;

    min-height:
      5.5rem;

  }


  .financing-secondary-link {

    width:
      fit-content;

    margin:
      0 auto;

  }


  .financing-note {

    margin-top:
      2rem;

    font-size:
      0.95rem;

  }


  .financing-visual {

    min-height:
      48rem;

  }


  .financing-visual-inner {

    min-height:
      48rem;

    padding:
      2.7rem 2.2rem;

    border-radius:
      1.5rem;

  }


  .financing-visual-top strong {

    font-size:
      1.9rem;

  }


  .financing-path {

    margin-top:
      3rem;

    padding-left:
      4.8rem;

    gap:
      2.7rem;

  }


  .financing-path-line {

    left:
      1.55rem;

  }


  .financing-path-marker {

    width:
      3.5rem;

    height:
      3.5rem;

    margin-left:
      -5rem;

  }


  .financing-path-step {

    gap:
      1.5rem;

  }


  .financing-path-step strong {

    font-size:
      1.45rem;

  }


  .financing-path-step div > span {

    font-size:
      1.05rem;

  }


  .financing-visual-bottom {

    flex-direction:
      column;

    align-items:
      flex-start;

    gap:
      0.3rem;

  }

}


/* -----------------------------
   Financing - 430px
----------------------------- */

@media (max-width: 430px) {

  .financing-section {

    padding:
      6rem 0;

  }


  .financing-title {

    font-size:
      clamp(
        3.5rem,
        10vw,
        4.4rem
      );

  }


  .financing-visual {

    min-height:
      46rem;

  }


  .financing-visual-inner {

    min-height:
      46rem;

    padding:
      2.3rem 1.8rem;

  }


  .financing-visual-top {

    align-items:
      flex-start;

    flex-direction:
      column;

    gap:
      0.7rem;

  }


  .financing-path {

    padding-left:
      4.3rem;

  }


  .financing-path-line {

    left:
      1.4rem;

  }


  .financing-path-marker {

    width:
      3.2rem;

    height:
      3.2rem;

    margin-left:
      -4.6rem;

    font-size:
      0.8rem;

  }


  .financing-path-step strong {

    font-size:
      1.35rem;

  }

}


/** end of financing */

/* =====================================================
   FAQ
===================================================== */

.faq-section {

  position: relative;

  padding:
    11rem 0;

  overflow: hidden;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f7f9fa 100%
    );

}


.faq-section::before {

  content: "";

  position: absolute;

  inset: 0;

  pointer-events: none;

  background:

    linear-gradient(
      128deg,
      transparent 0%,
      transparent 23%,
      rgba(126, 138, 149, 0.04) 23.5%,
      rgba(202, 207, 212, 0.06) 24%,
      transparent 24.8%
    ),

    linear-gradient(
      116deg,
      transparent 0%,
      transparent 72%,
      rgba(126, 138, 149, 0.04) 72.4%,
      rgba(205, 210, 214, 0.055) 73%,
      transparent 73.8%
    );

  background-size:
    105rem 105rem,
    125rem 125rem;

  background-position:
    -20rem -12rem,
    48rem 8rem;

}


.faq-section::after {

  content: "";

  position: absolute;

  top: -18rem;
  right: -16rem;

  width:
    48rem;

  height:
    48rem;

  border-radius:
    50%;

  background:
    radial-gradient(
      circle,
      rgba(56, 153, 223, 0.08),
      transparent 68%
    );

  pointer-events: none;

}


.faq-container {

  position: relative;

  z-index: 2;

  width:
    min(
      calc(100% - 6rem),
      var(--page-width)
    );

  margin:
    0 auto;

  display: grid;

  grid-template-columns:
    minmax(30rem, 0.72fr)
    minmax(0, 1.28fr);

  align-items: start;

  gap:
    9rem;

}


/* FAQ Intro */

.faq-intro {

  position: sticky;

  top: 14rem;

  opacity: 0;

  transform:
    translateY(2.5rem);

  transition:
    opacity 0.7s ease,
    transform 0.7s ease;

}


.faq-intro.is-visible {

  opacity: 1;

  transform:
    translateY(0);

}


.faq-title {

  margin-top:
    2rem;

  color:
    var(--navy-dark);

  font-size:
    clamp(
      4.6rem,
      4.8vw,
      6.8rem
    );

  font-weight:
    800;

  line-height:
    1.02;

  letter-spacing:
    -0.055em;

}


.faq-title span {

  display: block;

  color:
    var(--blue);

}


.faq-description {

  max-width:
    48rem;

  margin-top:
    2.5rem;

  color:
    var(--text-soft);

  font-size:
    1.5rem;

  font-weight:
    500;

  line-height:
    1.75;

}


/* FAQ List */

.faq-list {

  border-top:
    1px solid
    var(--border);

  opacity: 0;

  transform:
    translateY(2.5rem);

  transition:
    opacity 0.75s ease 0.08s,
    transform 0.75s ease 0.08s;

}


.faq-list.is-visible {

  opacity: 1;

  transform:
    translateY(0);

}


/* FAQ Item */

.faq-item {

  border-bottom:
    1px solid
    var(--border);

  transition:
    border-color 0.25s ease;

}


.faq-item.is-open {

  border-color:
    rgba(56, 153, 223, 0.35);

}


/* Question */

.faq-question {

  width: 100%;

  min-height:
    10rem;

  padding:
    2.5rem 0;

  display: grid;

  grid-template-columns:
    4.5rem
    minmax(0, 1fr)
    auto;

  align-items: center;

  gap:
    2rem;

  text-align: left;

  cursor: pointer;

}


.faq-number {

  color:
    var(--silver-dark);

  font-size:
    1rem;

  font-weight:
    800;

  letter-spacing:
    0.1em;

  transition:
    color 0.25s ease;

}


.faq-question-text {

  color:
    var(--navy-dark);

  font-size:
    clamp(
      2rem,
      2.3vw,
      3rem
    );

  font-weight:
    800;

  line-height:
    1.2;

  letter-spacing:
    -0.035em;

  transition:
    color 0.25s ease;

}


.faq-question:hover
.faq-question-text {

  color:
    var(--blue-dark);

}


.faq-item.is-open
.faq-number {

  color:
    var(--blue);

}


.faq-item.is-open
.faq-question-text {

  color:
    var(--blue-dark);

}


/* Plus / Minus Icon */

.faq-icon {

  position: relative;

  width:
    4rem;

  height:
    4rem;

  flex-shrink: 0;

  display: grid;

  place-items: center;

  border:
    1px solid
    rgba(13, 59, 101, 0.14);

  border-radius:
    50%;

  background:
    rgba(255, 255, 255, 0.8);

  transition:
    background 0.25s ease,
    border-color 0.25s ease,
    transform 0.25s ease;

}


.faq-icon span {

  position: absolute;

  width:
    1.5rem;

  height:
    0.18rem;

  border-radius:
    10rem;

  background:
    var(--navy);

  transition:
    background 0.25s ease,
    transform 0.25s ease,
    opacity 0.25s ease;

}


.faq-icon span:nth-child(2) {

  transform:
    rotate(90deg);

}


.faq-question:hover
.faq-icon {

  border-color:
    var(--blue);

}


.faq-item.is-open
.faq-icon {

  border-color:
    var(--blue);

  background:
    var(--blue);

  transform:
    rotate(180deg);

}


.faq-item.is-open
.faq-icon span {

  background:
    var(--white);

}


.faq-item.is-open
.faq-icon span:nth-child(2) {

  opacity: 0;

}


/* Answer */

.faq-answer {

  max-height:
    0;

  overflow:
    hidden;

  transition:
    max-height 0.35s ease;

}


.faq-answer-inner {

  max-width:
    67rem;

  padding:
    0 6.5rem 3.5rem;

}


.faq-answer-inner p {

  color:
    var(--text-soft);

  font-size:
    1.4rem;

  font-weight:
    500;

  line-height:
    1.8;

}


.faq-answer-link {

  width:
    fit-content;

  margin-top:
    1.7rem;

  display:
    inline-flex;

  align-items:
    center;

  gap:
    0.8rem;

  color:
    var(--navy);

  font-size:
    1.2rem;

  font-weight:
    800;

  border-bottom:
    1px solid
    rgba(13, 59, 101, 0.22);

  padding-bottom:
    0.4rem;

  transition:
    color 0.2s ease,
    border-color 0.2s ease;

}


.faq-answer-link span {

  color:
    var(--blue);

  font-size:
    1.5rem;

  transition:
    transform 0.2s ease;

}


.faq-answer-link:hover {

  color:
    var(--blue-dark);

  border-color:
    var(--blue);

}


.faq-answer-link:hover span {

  transform:
    translateX(0.3rem);

}


/* FAQ Bottom */

.faq-bottom {

  grid-column:
    2;

  margin-top:
    4rem;

  padding-top:
    3rem;

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap:
    2rem;



  opacity: 0;

  transform:
    translateY(2rem);

  transition:
    opacity 0.7s ease 0.12s,
    transform 0.7s ease 0.12s;

}


.faq-bottom.is-visible {

  opacity: 1;

  transform:
    translateY(0);

}


.faq-bottom p {

  color:
    var(--text-soft);

  font-size:
    1.3rem;

  font-weight:
    600;

}


.faq-bottom a {

  display: inline-flex;

  align-items: center;

  gap:
    0.9rem;

  color:
    var(--navy);

  font-size:
    1.25rem;

  font-weight:
    800;

}


.faq-bottom a span {

  color:
    var(--blue);

  font-size:
    1.7rem;

  transition:
    transform 0.2s ease;

}


.faq-bottom a:hover span {

  transform:
    translateX(0.4rem);

}


/* -----------------------------
   FAQ - 1100px
----------------------------- */

@media (max-width: 1100px) {

  .faq-section {

    padding:
      10rem 0;

  }


  .faq-container {

    width:
      min(
        calc(100% - 4rem),
        var(--page-width)
      );

    grid-template-columns:
      minmax(28rem, 0.7fr)
      minmax(0, 1.3fr);

    gap:
      6rem;

  }

}


/* -----------------------------
   FAQ - 900px
----------------------------- */

@media (max-width: 900px) {

  .faq-section {

    padding:
      9rem 0;

  }


  .faq-container {

    grid-template-columns:
      1fr;

    gap:
      5rem;

  }


  .faq-intro {

    position:
      relative;

    top:
      auto;

    max-width:
      70rem;

  }


  .faq-description {

    max-width:
      60rem;

  }


  .faq-bottom {

    grid-column:
      1;

    margin-top:
      1rem;

  }

}


/* -----------------------------
   FAQ - 600px
----------------------------- */

@media (max-width: 600px) {

  .faq-section {

    padding:
      7rem 0;

  }


  .faq-container {

    width:
      calc(100% - 3rem);

    gap:
      4rem;

  }


  .faq-title {

    font-size:
      clamp(
        3.8rem,
        11vw,
        5rem
      );

  }


  .faq-description {

    margin-top:
      2rem;

    font-size:
      1.4rem;

    line-height:
      1.7;

  }


  .faq-question {

    min-height:
      8.5rem;

    padding:
      2rem 0;

    grid-template-columns:
      3rem
      minmax(0, 1fr)
      auto;

    gap:
      1.2rem;

  }


  .faq-question-text {

    font-size:
      1.75rem;

  }


  .faq-icon {

    width:
      3.5rem;

    height:
      3.5rem;

  }


  .faq-answer-inner {

    padding:
      0 4.2rem 2.8rem;

  }


  .faq-answer-inner p {

    font-size:
      1.3rem;

    line-height:
      1.75;

  }


  .faq-bottom {

    flex-direction:
      column;

    align-items:
      flex-start;

    gap:
      1rem;

  }

}


/* -----------------------------
   FAQ - 430px
----------------------------- */

@media (max-width: 430px) {

  .faq-section {

    padding:
      6rem 0;

  }


  .faq-title {

    font-size:
      clamp(
        3.5rem,
        10vw,
        4.4rem
      );

  }


  .faq-question {

    grid-template-columns:
      1fr auto;

  }


  .faq-number {

    display: none;

  }


  .faq-question-text {

    font-size:
      1.6rem;

  }


  .faq-answer-inner {

    padding:
      0 4.7rem 2.5rem 0;

  }

}


/** end of faq */

/* =====================================================
   Contact / Final CTA
===================================================== */

.contact-section {

  position: relative;

  padding:
    12rem 0;

  overflow: hidden;

  background:
    linear-gradient(
      135deg,
      #0b355b 0%,
      var(--navy) 52%,
      #082d4e 100%
    );

}


.contact-section::before {

  content: "";

  position: absolute;

  inset: 0;

  pointer-events: none;

  background:

    radial-gradient(
      circle at 8% 18%,
      rgba(56, 153, 223, 0.18),
      transparent 27%
    ),

    radial-gradient(
      circle at 91% 80%,
      rgba(56, 153, 223, 0.12),
      transparent 31%
    ),

    linear-gradient(
      126deg,
      transparent 0%,
      transparent 27%,
      rgba(255, 255, 255, 0.02) 27.5%,
      transparent 28.2%
    ),

    linear-gradient(
      114deg,
      transparent 0%,
      transparent 67%,
      rgba(255, 255, 255, 0.018) 67.5%,
      transparent 68.2%
    );

}


.contact-section::after {

  content: "";

  position: absolute;

  top: -18rem;
  right: -16rem;

  width:
    52rem;

  height:
    52rem;

  border:
    6rem solid
    rgba(255, 255, 255, 0.025);

  border-radius:
    50%;

  pointer-events: none;

}


.contact-container {

  position: relative;

  z-index: 2;

  width:
    min(
      calc(100% - 6rem),
      var(--page-width)
    );

  margin:
    0 auto;

  display: grid;

  grid-template-columns:
    minmax(0, 0.95fr)
    minmax(38rem, 1.05fr);

  align-items: start;

  gap:
    9rem;

}


/* Main CTA */

.contact-main {

  position: sticky;

  top:
    14rem;

  max-width:
    59rem;

  opacity: 0;

  transform:
    translateY(2.5rem);

  transition:
    opacity 0.75s ease,
    transform 0.75s ease;

}


.contact-main.is-visible {

  opacity: 1;

  transform:
    translateY(0);

}


.contact-eyebrow {

  display: flex;

  align-items: center;

  gap:
    1.2rem;

  color:
    var(--blue-light);

  font-size:
    1.05rem;

  font-weight:
    800;

  letter-spacing:
    0.11em;

  text-transform:
    uppercase;

}


.contact-eyebrow-line {

  width:
    3.8rem;

  height:
    0.2rem;

  background:
    var(--blue);

}


.contact-title {

  margin-top:
    2rem;

  color:
    var(--white);

  font-size:
    clamp(
      5rem,
      5.2vw,
      7.2rem
    );

  font-weight:
    800;

  line-height:
    1.01;

  letter-spacing:
    -0.055em;

}


.contact-title span {

  display:
    block;

  color:
    var(--blue);

}


.contact-description {

  max-width:
    54rem;

  margin-top:
    2.6rem;

  color:
    rgba(255, 255, 255, 0.66);

  font-size:
    1.55rem;

  font-weight:
    500;

  line-height:
    1.75;

}


/* Contact Actions */

.contact-actions {

  margin-top:
    3.7rem;

  display: flex;

  align-items: center;

  flex-wrap: wrap;

  gap:
    1.4rem;

}


.contact-primary-btn,
.contact-secondary-btn {

  min-height:
    5.6rem;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  gap:
    1rem;

  border-radius:
    0.8rem;

  font-size:
    1.3rem;

  font-weight:
    700;

  transition:
    transform 0.2s ease,
    background 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;

}


.contact-primary-btn {

  padding:
    0 2.4rem;

  background:
    var(--blue);

  color:
    var(--white);

  box-shadow:
    0 1.4rem 3.5rem
    rgba(0, 0, 0, 0.15);

}


.contact-primary-btn span {

  font-size:
    1.8rem;

  transition:
    transform 0.2s ease;

}


.contact-primary-btn:hover {

  background:
    #2679b8;

  transform:
    translateY(-0.2rem);

  box-shadow:
    0 1.8rem 4rem
    rgba(0, 0, 0, 0.19);

}


.contact-primary-btn:hover span {

  transform:
    translateX(0.4rem);

}


.contact-secondary-btn {

  padding:
    0 2.2rem;

  border:
    1px solid
    rgba(255, 255, 255, 0.2);

  background:
    rgba(255, 255, 255, 0.06);

  color:
    var(--white);

  backdrop-filter:
    blur(1rem);

}


.contact-secondary-btn:hover {

  border-color:
    rgba(255, 255, 255, 0.38);

  background:
    rgba(255, 255, 255, 0.1);

  transform:
    translateY(-0.2rem);

}



/* Contact Details */

.contact-details {

  border-top:
    1px solid
    rgba(255, 255, 255, 0.14);

  opacity: 0;

  transform:
    translateY(2.5rem);

  transition:
    opacity 0.8s ease 0.1s,
    transform 0.8s ease 0.1s;

}


.contact-details.is-visible {

  opacity: 1;

  transform:
    translateY(0);

}


.contact-detail {

  position: relative;

  min-height:
    13rem;

  padding:
    2.7rem 0;

  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto;

  grid-template-rows:
    auto auto;

  align-items: center;

  column-gap:
    2rem;

  border-bottom:
    1px solid
    rgba(255, 255, 255, 0.14);

  transition:
    padding 0.25s ease,
    border-color 0.25s ease;

}


.contact-detail::before {

  content: "";

  position: absolute;

  left: 0;
  bottom: -1px;

  width:
    0;

  height:
    1px;

  background:
    var(--blue);

  transition:
    width 0.35s ease;

}


.contact-detail:hover {

  padding-left:
    1rem;

  border-color:
    rgba(56, 153, 223, 0.28);

}


.contact-detail:hover::before {

  width:
    100%;

}


.contact-detail-label {

  grid-column:
    1;

  color:
    rgba(255, 255, 255, 0.42);

  font-size:
    0.9rem;

  font-weight:
    800;

  letter-spacing:
    0.1em;

  text-transform:
    uppercase;

}


.contact-detail strong {

  grid-column:
    1;

  margin-top:
    0.7rem;

  color:
    var(--white);

  font-size:
    clamp(
      2rem,
      2.4vw,
      3rem
    );

  font-weight:
    800;

  line-height:
    1.2;

  letter-spacing:
    -0.035em;

}


.contact-detail-arrow {

  grid-column:
    2;

  grid-row:
    1 / span 2;

  width:
    4.4rem;

  height:
    4.4rem;

  display: grid;

  place-items: center;

  border:
    1px solid
    rgba(255, 255, 255, 0.16);

  border-radius:
    50%;

  color:
    var(--blue-light);

  font-size:
    1.6rem;

  transition:
    background 0.25s ease,
    color 0.25s ease,
    border-color 0.25s ease,
    transform 0.25s ease;

}


.contact-detail:hover
.contact-detail-arrow {

  border-color:
    var(--blue);

  background:
    var(--blue);

  color:
    var(--white);

  transform:
    translate(
      0.2rem,
      -0.2rem
    );

}


/* Closing Brand Statement */

.contact-brand {

  grid-column:
    1 / -1;

  margin-top:
    7rem;

  padding-top:
    4rem;

  display: flex;

  align-items: flex-end;

  justify-content: space-between;

  gap:
    4rem;


  opacity: 0;

  transform:
    translateY(2rem);

  transition:
    opacity 0.75s ease 0.16s,
    transform 0.75s ease 0.16s;

}


.contact-brand.is-visible {

  opacity: 1;

  transform:
    translateY(0);

}


.contact-brand > span {

  color:
    rgba(255, 255, 255, 0.45);

  font-size:
    1rem;

  font-weight:
    800;

  letter-spacing:
    0.1em;

  text-transform:
    uppercase;

}


.contact-brand strong {

  color:
    var(--white);

  font-size:
    clamp(
      2.5rem,
      3vw,
      4rem
    );

  font-weight:
    800;

  line-height:
    1.15;

  letter-spacing:
    -0.04em;

  text-align:
    right;

}


.contact-brand em {

  color:
    var(--blue);

  font-style:
    normal;

}


/* -----------------------------
   Contact - 1100px
----------------------------- */

@media (max-width: 1100px) {

  .contact-section {

    padding:
      10rem 0;

  }


  .contact-container {

    width:
      min(
        calc(100% - 4rem),
        var(--page-width)
      );

    grid-template-columns:
      minmax(0, 0.9fr)
      minmax(34rem, 1.1fr);

    gap:
      6rem;

  }


  .contact-title {

    font-size:
      clamp(
        4.6rem,
        5vw,
        6.4rem
      );

  }

}


/* -----------------------------
   Contact - 900px
----------------------------- */

@media (max-width: 900px) {

  .contact-section {

    padding:
      9rem 0;

  }


  .contact-container {

    grid-template-columns:
      1fr;

    gap:
      5.5rem;

  }


  .contact-main {

    position:
      relative;

    top:
      auto;

    max-width:
      68rem;

  }


  .contact-description {

    max-width:
      61rem;

  }


  .contact-details {

    width:
      100%;

  }


  .contact-brand {

    grid-column:
      1;

    margin-top:
      2rem;

  }

}


/* -----------------------------
   Contact - 600px
----------------------------- */

@media (max-width: 600px) {

  .contact-section {

    padding:
      7rem 0;

  }


  .contact-container {

    width:
      calc(100% - 3rem);

    gap:
      4.5rem;

  }


  .contact-eyebrow {

    font-size:
      0.95rem;

  }


  .contact-eyebrow-line {

    width:
      2.8rem;

  }


  .contact-title {

    font-size:
      clamp(
        3.8rem,
        11vw,
        5rem
      );

  }


  .contact-description {

    margin-top:
      2.2rem;

    font-size:
      1.45rem;

    line-height:
      1.7;

  }


  .contact-actions {

    margin-top:
      3rem;

    flex-direction:
      column;

    align-items:
      stretch;

  }


  .contact-primary-btn,
  .contact-secondary-btn {

    width:
      100%;

    min-height:
      5.5rem;

  }


  .contact-service-line {

    margin-top:
      3rem;

    padding-top:
      2.4rem;

    font-size:
      0.85rem;

  }


  .contact-detail {

    min-height:
      11rem;

    padding:
      2.3rem 0;

  }


  .contact-detail strong {

    font-size:
      2rem;

  }


  .contact-detail-arrow {

    width:
      3.8rem;

    height:
      3.8rem;

  }


  .contact-brand {

    margin-top:
      1rem;

    padding-top:
      3rem;

    flex-direction:
      column;

    align-items:
      flex-start;

    gap:
      1.5rem;

  }


  .contact-brand strong {

    text-align:
      left;

    font-size:
      2.6rem;

  }

}


/* -----------------------------
   Contact - 430px
----------------------------- */

@media (max-width: 430px) {

  .contact-section {

    padding:
      6rem 0;

  }


  .contact-title {

    font-size:
      clamp(
        3.5rem,
        10vw,
        4.4rem
      );

  }


  .contact-service-line {

    flex-direction:
      column;

    align-items:
      flex-start;

    gap:
      0.7rem;

  }


  .contact-service-line i {

    display:
      none;

  }


  .contact-detail {

    grid-template-columns:
      1fr auto;

    column-gap:
      1.2rem;

  }


  .contact-detail strong {

    max-width:
      25rem;

    font-size:
      1.75rem;

    overflow-wrap:
      anywhere;

  }


  .contact-detail-arrow {

    width:
      3.5rem;

    height:
      3.5rem;

  }


  .contact-brand strong {

    font-size:
      2.3rem;

  }

}


/** end of contact / final CTA */

/* =====================================================
   Footer
===================================================== */

.site-footer {

  position: relative;

  padding:
    7rem 0 3rem;

  overflow: hidden;

  background:
    #071f35;

  color:
    var(--white);

}


.site-footer::before {

  content: "";

  position: absolute;

  inset: 0;

  pointer-events: none;

  background:

    radial-gradient(
      circle at 8% 12%,
      rgba(56, 153, 223, 0.1),
      transparent 24%
    ),

    linear-gradient(
      128deg,
      transparent 0%,
      transparent 34%,
      rgba(255, 255, 255, 0.012) 34.4%,
      transparent 35%
    ),

    linear-gradient(
      116deg,
      transparent 0%,
      transparent 72%,
      rgba(255, 255, 255, 0.012) 72.4%,
      transparent 73%
    );

}


.footer-container {

  position: relative;

  z-index: 2;

  width:
    min(
      calc(100% - 6rem),
      var(--page-width)
    );

  margin:
    0 auto;

}


/* Footer Main */

.footer-main {

  display: grid;

  grid-template-columns:
    minmax(30rem, 1.5fr)
    repeat(3, minmax(15rem, 0.7fr));

  align-items: start;

  gap:
    6rem;

  padding-bottom:
    6rem;

}


/* Footer Brand */

.footer-brand {

  max-width:
    39rem;

}


.footer-logo {

  width:
    fit-content;

  display: flex;

  align-items: center;

  gap:
    1.3rem;

}


.footer-logo-mark {

  width:
    4.7rem;

  height:
    4.7rem;

  display: grid;

  place-items: center;

  flex-shrink: 0;

  border-radius:
    50%;

  background:
    linear-gradient(
      145deg,
      var(--blue),
      var(--blue-light)
    );

  color:
    var(--white);

  font-size:
    2.3rem;

  box-shadow:
    0 1rem 2.5rem
    rgba(0, 0, 0, 0.18);

}


.footer-logo-text {

  display: flex;

  flex-direction: column;

  gap:
    0.3rem;

}


.footer-logo-text strong {

  color:
    var(--white);

  font-size:
    2.4rem;

  font-weight:
    800;

  line-height:
    1;

  letter-spacing:
    -0.04em;

}


.footer-logo-text > span {

  color:
    rgba(255, 255, 255, 0.5);

  font-size:
    0.92rem;

  font-weight:
    700;

  letter-spacing:
    0.08em;

  text-transform:
    uppercase;

}


.footer-tagline {

  margin-top:
    2.7rem;

  color:
    var(--white);

  font-size:
    1.8rem;

  font-weight:
    800;

  line-height:
    1.3;

  letter-spacing:
    -0.025em;

}


.footer-tagline span {

  color:
    var(--blue-light);

}


.footer-brand-description {

  max-width:
    36rem;

  margin-top:
    1.4rem;

  color:
    rgba(255, 255, 255, 0.48);

  font-size:
    1.25rem;

  font-weight:
    500;

  line-height:
    1.7;

}


/* Footer Columns */

.footer-column-title {

  display: block;

  margin-bottom:
    2.2rem;

  color:
    var(--blue-light);

  font-size:
    0.9rem;

  font-weight:
    800;

  letter-spacing:
    0.12em;

  text-transform:
    uppercase;

}


.footer-nav,
.footer-contact,
.footer-links {

  display: flex;

  flex-direction: column;

  align-items:
    flex-start;

  gap:
    1.35rem;

}


.footer-nav a,
.footer-contact a,
.footer-links a {

  position: relative;

  color:
    rgba(255, 255, 255, 0.68);

  font-size:
    1.2rem;

  font-weight:
    600;

  line-height:
    1.5;

  transition:
    color 0.2s ease;

}


.footer-contact > span {

  color:
    rgba(255, 255, 255, 0.42);

  font-size:
    1.15rem;

  font-weight:
    600;

}


.footer-nav a:hover,
.footer-contact a:hover,
.footer-links a:hover {

  color:
    var(--white);

}


.footer-links a {

  display: inline-flex;

  align-items: center;

  gap:
    0.7rem;

}


.footer-links a span {

  color:
    var(--blue);

  font-size:
    1.4rem;

  transition:
    transform 0.2s ease;

}


.footer-links a:hover span {

  transform:
    translate(
      0.2rem,
      -0.2rem
    );

}


/* Footer Bottom */

.footer-bottom {

  min-height:
    7rem;

  padding-top:
    2.5rem;

  display: grid;

  grid-template-columns:
    1fr auto 1fr;

  align-items: center;

  gap:
    3rem;

  border-top:
    1px solid
    rgba(255, 255, 255, 0.1);

}


.footer-bottom > p {

  color:
    rgba(255, 255, 255, 0.38);

  font-size:
    1rem;

  font-weight:
    500;

}


/* Footer Service Line */

.footer-bottom-services {

  display: flex;

  align-items: center;

  justify-content: center;

  gap:
    1rem;

  color:
    rgba(255, 255, 255, 0.46);

  font-size:
    0.85rem;

  font-weight:
    800;

  letter-spacing:
    0.08em;

  text-transform:
    uppercase;

}


.footer-bottom-services i {

  width:
    0.35rem;

  height:
    0.35rem;

  flex-shrink: 0;

  border-radius:
    50%;

  background:
    var(--blue);

}


/* Back To Top */

.footer-back-top {

  justify-self:
    end;

  display: inline-flex;

  align-items: center;

  gap:
    0.8rem;

  color:
    rgba(255, 255, 255, 0.62);

  font-size:
    1rem;

  font-weight:
    700;

  transition:
    color 0.2s ease;

}


.footer-back-top span {

  width:
    3rem;

  height:
    3rem;

  display: grid;

  place-items: center;

  border:
    1px solid
    rgba(255, 255, 255, 0.14);

  border-radius:
    50%;

  color:
    var(--blue-light);

  font-size:
    1.3rem;

  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease;

}


.footer-back-top:hover {

  color:
    var(--white);

}


.footer-back-top:hover span {

  border-color:
    var(--blue);

  background:
    var(--blue);

  color:
    var(--white);

  transform:
    translateY(-0.2rem);

}


/* -----------------------------
   Footer - 1100px
----------------------------- */

@media (max-width: 1100px) {

  .site-footer {

    padding-top:
      6rem;

  }


  .footer-container {

    width:
      min(
        calc(100% - 4rem),
        var(--page-width)
      );

  }


  .footer-main {

    grid-template-columns:
      minmax(28rem, 1.3fr)
      repeat(3, 1fr);

    gap:
      4rem;

  }


  .footer-bottom {

    gap:
      2rem;

  }

}


/* -----------------------------
   Footer - 900px
----------------------------- */

@media (max-width: 900px) {

  .footer-main {

    grid-template-columns:
      1.3fr 1fr;

    gap:
      5rem 4rem;

  }


  .footer-brand {

    max-width:
      45rem;

  }


  .footer-bottom {

    grid-template-columns:
      1fr auto;

    row-gap:
      2rem;

  }


  .footer-bottom-services {

    grid-column:
      1 / -1;

    grid-row:
      1;

    justify-content:
      flex-start;

  }


  .footer-bottom > p {

    grid-column:
      1;

    grid-row:
      2;

  }


  .footer-back-top {

    grid-column:
      2;

    grid-row:
      2;

  }

}


/* -----------------------------
   Footer - 600px
----------------------------- */

@media (max-width: 600px) {

  .site-footer {

    padding:
      5.5rem 0 2.5rem;

  }


  .footer-container {

    width:
      calc(100% - 3rem);

  }


  .footer-main {

    grid-template-columns:
      1fr 1fr;

    gap:
      4.5rem 2.5rem;

    padding-bottom:
      4.5rem;

  }


  .footer-brand {

    grid-column:
      1 / -1;

  }


  .footer-logo-mark {

    width:
      4.2rem;

    height:
      4.2rem;

    font-size:
      2rem;

  }


  .footer-logo-text strong {

    font-size:
      2.1rem;

  }


  .footer-tagline {

    margin-top:
      2.3rem;

    font-size:
      1.65rem;

  }


  .footer-brand-description {

    font-size:
      1.15rem;

  }


  .footer-column-title {

    margin-bottom:
      1.8rem;

  }


  .footer-nav,
  .footer-contact,
  .footer-links {

    gap:
      1.15rem;

  }


  .footer-nav a,
  .footer-contact a,
  .footer-links a {

    font-size:
      1.1rem;

  }


  .footer-bottom {

    min-height:
      auto;

    padding-top:
      2.5rem;

    grid-template-columns:
      1fr auto;

    gap:
      2rem;

  }


  .footer-bottom-services {

    grid-column:
      1 / -1;

    flex-wrap:
      wrap;

  }


  .footer-bottom > p {

    font-size:
      0.9rem;

  }

}


/* -----------------------------
   Footer - 430px
----------------------------- */

@media (max-width: 430px) {

  .site-footer {

    padding-top:
      5rem;

  }


  .footer-main {

    grid-template-columns:
      1fr;

    gap:
      3.5rem;

  }


  .footer-brand {

    grid-column:
      1;

  }


  .footer-logo-text > span {

    font-size:
      0.8rem;

  }


  .footer-column {

    padding-top:
      0.5rem;

    border-top:
      1px solid
      rgba(255, 255, 255, 0.08);

  }


  .footer-column-title {

    margin-top:
      2rem;

  }


  .footer-bottom {

    grid-template-columns:
      1fr;

  }


  .footer-bottom-services {

    grid-column:
      1;

    grid-row:
      auto;

    flex-direction:
      column;

    align-items:
      flex-start;

    gap:
      0.55rem;

  }


  .footer-bottom-services i {

    display:
      none;

  }


  .footer-bottom > p {

    grid-column:
      1;

    grid-row:
      auto;

    line-height:
      1.6;

  }


  .footer-back-top {

    grid-column:
      1;

    grid-row:
      auto;

    justify-self:
      start;

  }

}


/** end of footer */


.footer-privacy-link {

  margin-left:
    1rem;

  padding-left:
    1rem;

  border-left:
    1px solid
    rgba(255, 255, 255, 0.14);

  color:
    rgba(255, 255, 255, 0.48);

  font-size:
    inherit;

  font-weight:
    600;

  transition:
    color 0.2s ease;

}


.footer-privacy-link:hover {

  color:
    var(--white);

}


@media (max-width: 600px) {

  .footer-privacy-link {

    margin-left:
      0.6rem;

    padding-left:
      0.6rem;

  }

}

/* =====================================================
   Privacy Policy 001
===================================================== */

.privacy-header001 {

  position: sticky;

  top: 0;

  z-index: 100;

  background:
    rgba(255, 255, 255, 0.94);

  backdrop-filter:
    blur(1.4rem);

  border-bottom:
    1px solid
    var(--border);

}


.privacy-nav-container001 {

  width:
    min(
      calc(100% - 6rem),
      var(--page-width)
    );

  min-height:
    8rem;

  margin:
    0 auto;

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap:
    3rem;

}


.privacy-brand001 {

  display: flex;

  flex-direction: column;

  gap:
    0.25rem;

}


.privacy-brand-name001 {

  color:
    var(--navy-dark);

  font-size:
    2.2rem;

  font-weight:
    800;

  line-height:
    1;

  letter-spacing:
    -0.04em;

}


.privacy-brand-subtitle001 {

  color:
    var(--text-soft);

  font-size:
    0.82rem;

  font-weight:
    700;

  letter-spacing:
    0.08em;

  text-transform:
    uppercase;

}


.privacy-home-link001 {

  padding-bottom:
    0.4rem;

  border-bottom:
    1px solid
    rgba(13, 59, 101, 0.24);

  color:
    var(--navy);

  font-size:
    1.15rem;

  font-weight:
    700;

  transition:
    color 0.2s ease,
    border-color 0.2s ease;

}


.privacy-home-link001:hover {

  color:
    var(--blue-dark);

  border-color:
    var(--blue);

}


/* Privacy Hero */

.privacy-hero001 {

  position: relative;

  padding:
    11rem 0 8rem;

  overflow: hidden;

  background:
    linear-gradient(
      135deg,
      #ffffff 0%,
      #f7f9fa 52%,
      #edf2f5 100%
    );

}


.privacy-hero001::before {

  content: "";

  position: absolute;

  inset: 0;

  pointer-events: none;

  background:

    radial-gradient(
      circle at 12% 20%,
      rgba(56, 153, 223, 0.08),
      transparent 28%
    ),

    linear-gradient(
      127deg,
      transparent 0%,
      transparent 29%,
      rgba(130, 140, 150, 0.05) 29.5%,
      transparent 30.3%
    ),

    linear-gradient(
      116deg,
      transparent 0%,
      transparent 69%,
      rgba(130, 140, 150, 0.04) 69.5%,
      transparent 70.3%
    );

}


.privacy-container001 {

  position: relative;

  z-index: 2;

  width:
    min(
      calc(100% - 6rem),
      96rem
    );

  margin:
    0 auto;

}


.privacy-eyebrow001 {

  color:
    var(--blue-dark);

  font-size:
    1rem;

  font-weight:
    800;

  letter-spacing:
    0.12em;

  text-transform:
    uppercase;

}


.privacy-hero001 h1 {

  margin-top:
    1.8rem;

  color:
    var(--navy-dark);

  font-size:
    clamp(
      5rem,
      7vw,
      8rem
    );

  font-weight:
    800;

  line-height:
    1;

  letter-spacing:
    -0.055em;

}


.privacy-updated001 {

  margin-top:
    2rem;

  color:
    var(--blue-dark);

  font-size:
    1.05rem;

  font-weight:
    700;

}


.privacy-intro001 {

  max-width:
    70rem;

  margin-top:
    2.7rem;

  color:
    var(--text-soft);

  font-size:
    1.6rem;

  font-weight:
    500;

  line-height:
    1.8;

}


/* Privacy Content */

.privacy-content001 {

  padding:
    10rem 0 12rem;

  background:
    var(--white);

}


.privacy-content-container001 {

  max-width:
    96rem;

}


.privacy-section001 {

  display: grid;

  grid-template-columns:
    6rem minmax(0, 1fr);

  gap:
    3rem;

  padding:
    4.5rem 0;

  border-bottom:
    1px solid
    var(--border);

}


.privacy-section001:first-child {

  padding-top:
    0;

}


.privacy-number001 {

  padding-top:
    0.5rem;

  color:
    var(--blue);

  font-size:
    1rem;

  font-weight:
    800;

  letter-spacing:
    0.1em;

}


.privacy-section001 h2 {

  color:
    var(--navy-dark);

  font-size:
    clamp(
      2.4rem,
      3vw,
      3.5rem
    );

  font-weight:
    800;

  line-height:
    1.2;

  letter-spacing:
    -0.035em;

}


.privacy-section001 p {

  max-width:
    76rem;

  margin-top:
    1.6rem;

  color:
    var(--text-soft);

  font-size:
    1.35rem;

  font-weight:
    500;

  line-height:
    1.85;

}


.privacy-section001 p + p {

  margin-top:
    1.4rem;

}


/* Privacy Contact */

.privacy-contact-section001 {

  border-bottom:
    0;

}


.privacy-contact-details001 {

  margin-top:
    2.5rem;

  padding:
    2.5rem 0 0;

  display: flex;

  flex-direction: column;

  align-items:
    flex-start;

  gap:
    1rem;

  border-top:
    1px solid
    var(--border);

}


.privacy-contact-details001 strong {

  color:
    var(--navy);

  font-size:
    1.45rem;

  font-weight:
    800;

}


.privacy-contact-details001 a {

  color:
    var(--blue-dark);

  font-size:
    1.25rem;

  font-weight:
    700;

  transition:
    color 0.2s ease;

}


.privacy-contact-details001 a:hover {

  color:
    var(--navy);

}


.privacy-contact-details001 span {

  color:
    var(--text-soft);

  font-size:
    1.15rem;

  font-weight:
    600;

}


/* Privacy Footer */

.privacy-footer001 {

  background:
    #071f35;

  color:
    var(--white);

}


.privacy-footer-container001 {

  width:
    min(
      calc(100% - 6rem),
      var(--page-width)
    );

  min-height:
    9rem;

  margin:
    0 auto;

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap:
    3rem;

}


.privacy-footer-container001 p {

  color:
    rgba(255, 255, 255, 0.46);

  font-size:
    1rem;

  font-weight:
    500;

}


.privacy-footer-container001 a {

  padding-bottom:
    0.4rem;

  border-bottom:
    1px solid
    rgba(255, 255, 255, 0.18);

  color:
    rgba(255, 255, 255, 0.7);

  font-size:
    1rem;

  font-weight:
    700;

  transition:
    color 0.2s ease,
    border-color 0.2s ease;

}


.privacy-footer-container001 a:hover {

  color:
    var(--white);

  border-color:
    var(--blue);

}


/* -----------------------------
   Privacy Policy 001 - 900px
----------------------------- */

@media (max-width: 900px) {

  .privacy-nav-container001,
  .privacy-footer-container001 {

    width:
      min(
        calc(100% - 4rem),
        var(--page-width)
      );

  }


  .privacy-container001 {

    width:
      min(
        calc(100% - 4rem),
        96rem
      );

  }


  .privacy-hero001 {

    padding:
      9rem 0 7rem;

  }


  .privacy-content001 {

    padding:
      8rem 0 10rem;

  }

}


/* -----------------------------
   Privacy Policy 001 - 600px
----------------------------- */

@media (max-width: 600px) {

  .privacy-nav-container001 {

    width:
      calc(100% - 3rem);

    min-height:
      7rem;

  }


  .privacy-brand-name001 {

    font-size:
      1.9rem;

  }


  .privacy-brand-subtitle001 {

    font-size:
      0.72rem;

    letter-spacing:
      0.06em;

  }


  .privacy-home-link001 {

    font-size:
      1rem;

  }


  .privacy-container001 {

    width:
      calc(100% - 3rem);

  }


  .privacy-hero001 {

    padding:
      7rem 0 5.5rem;

  }


  .privacy-hero001 h1 {

    font-size:
      clamp(
        4rem,
        13vw,
        5.5rem
      );

  }


  .privacy-intro001 {

    font-size:
      1.45rem;

    line-height:
      1.75;

  }


  .privacy-content001 {

    padding:
      6.5rem 0 8rem;

  }


  .privacy-section001 {

    grid-template-columns:
      4rem minmax(0, 1fr);

    gap:
      1.8rem;

    padding:
      3.7rem 0;

  }


  .privacy-section001 h2 {

    font-size:
      2.35rem;

  }


  .privacy-section001 p {

    font-size:
      1.25rem;

    line-height:
      1.8;

  }


  .privacy-footer-container001 {

    width:
      calc(100% - 3rem);

    min-height:
      auto;

    padding:
      2.5rem 0;

    align-items:
      flex-start;

    flex-direction:
      column;

    gap:
      1.2rem;

  }

}


/* -----------------------------
   Privacy Policy 001 - 430px
----------------------------- */

@media (max-width: 430px) {

  .privacy-nav-container001 {

    gap:
      1.5rem;

  }


  .privacy-brand-subtitle001 {

    max-width:
      16rem;

    line-height:
      1.35;

  }


  .privacy-home-link001 {

    flex-shrink:
      0;

    font-size:
      0.9rem;

  }


  .privacy-hero001 {

    padding:
      6rem 0 5rem;

  }


  .privacy-hero001 h1 {

    font-size:
      clamp(
        3.7rem,
        12vw,
        4.8rem
      );

  }


  .privacy-intro001 {

    font-size:
      1.35rem;

  }


  .privacy-section001 {

    grid-template-columns:
      1fr;

    gap:
      1rem;

  }


  .privacy-number001 {

    padding-top:
      0;

  }


  .privacy-section001 h2 {

    font-size:
      2.15rem;

  }


  .privacy-section001 p {

    font-size:
      1.2rem;

  }


  .privacy-contact-details001 {

    gap:
      0.9rem;

  }


  .privacy-contact-details001 strong {

    font-size:
      1.3rem;

  }


  .privacy-contact-details001 a {

    font-size:
      1.15rem;

    overflow-wrap:
      anywhere;

  }

}


/** end of privacy policy 001 */