:root {
      --blue: #087ff2;
      --blue-deep: #006ee5;
      --ink: #091726;
      --body: #41566f;
      --muted: #728299;
      --line: #dce6f0;
      --soft: #f2f8fd;
      --white: #fff;
      --radius: 11px;
      --container: 1180px;
      --shadow: 0 12px 32px rgba(14, 36, 58, .07);
    }

    *, *::before, *::after { box-sizing: border-box; }

    html {
      scroll-behavior: smooth;
      scroll-padding-top: 94px;
    }

    body {
      margin: 0;
      color: var(--ink);
      background: var(--white);
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      font-size: 16px;
      line-height: 1.55;
      -webkit-font-smoothing: antialiased;
    }

    img { display: block; max-width: 100%; height: auto; }
    a { color: inherit; text-decoration: none; }
    button { font: inherit; }

    a:focus-visible,
    button:focus-visible {
      outline: 3px solid rgba(8, 127, 242, .38);
      outline-offset: 4px;
    }

    .container {
      width: min(var(--container), calc(100% - 48px));
      margin-inline: auto;
    }

    .eyebrow {
      margin: 0 0 12px;
      color: var(--muted);
      font-size: 13px;
      font-weight: 600;
      letter-spacing: .19em;
      text-transform: uppercase;
    }

    .arrow {
      margin-left: 8px;
      font-size: 1.18em;
      line-height: 1;
      transition: transform .2s ease;
    }

    a:hover .arrow { transform: translateX(3px); }

    .button {
      display: inline-flex;
      min-height: 48px;
      align-items: center;
      justify-content: center;
      border: 1px solid transparent;
      border-radius: 8px;
      padding: 11px 25px;
      font-weight: 650;
      transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
    }

    .button:hover { transform: translateY(-2px); }

    .button-primary {
      color: var(--white);
      background: linear-gradient(135deg, var(--blue), var(--blue-deep));
      box-shadow: 0 10px 24px rgba(8, 127, 242, .2);
    }

    .button-primary:hover { box-shadow: 0 14px 28px rgba(8, 127, 242, .28); }

    .button-outline {
      min-height: 46px;
      color: var(--blue-deep);
      background: rgba(255, 255, 255, .72);
      border-color: var(--blue);
      box-shadow: none;
    }

    /* Header */
    .site-header {
      position: sticky;
      top: 0;
      z-index: 20;
      background: rgba(255, 255, 255, .96);
      border-bottom: 1px solid #edf1f5;
      backdrop-filter: blur(14px);
    }

    .navbar {
      position: relative;
      min-height: 94px;
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      align-items: center;
      gap: 30px;
    }

    .brand { width: 250px; }

    .brand img {
      width: 100%;
      height: auto;
    }

    .nav-links {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 38px;
      font-size: 15px;
      font-weight: 500;
    }

    .nav-links a {
      position: relative;
      min-height: 44px;
      display: inline-flex;
      align-items: center;
    }

    .nav-links a::after {
      content: "";
      position: absolute;
      right: 0;
      bottom: 2px;
      left: 0;
      height: 2px;
      border-radius: 99px;
      background: var(--blue);
      transform: scaleX(0);
      transition: transform .2s ease;
    }

    .nav-links a[aria-current] { color: var(--blue-deep); }
    .nav-links a[aria-current]::after,
    .nav-links a:hover::after { transform: scaleX(1); }

    .header-actions {
      justify-self: end;
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .nav-links .mobile-contact { display: none; }
    .footer-email { font-size: 13px; min-height: 44px; display: inline-flex; align-items: center; }
    .footer-email:hover { color: #63b4ff; }

    .contact-button {
      min-width: 121px;
      min-height: 46px;
      padding-inline: 20px;
    }

    .menu-toggle {
      width: 46px;
      height: 46px;
      display: none;
      align-items: center;
      justify-content: center;
      color: var(--ink);
      background: #f3f7fb;
      border: 0;
      border-radius: 8px;
      cursor: pointer;
    }

    .menu-toggle svg { width: 24px; height: 24px; }

    /* Hero */
    .hero {
      min-height: 458px;
      overflow: hidden;
      background:
        radial-gradient(circle at 69% 25%, rgba(8, 127, 242, .10), transparent 34%),
        linear-gradient(120deg, #fff 10%, #fbfdff 48%, #eff7fe 100%);
    }

    .hero-grid {
      min-height: 458px;
      display: grid;
      grid-template-columns: minmax(0, 1.12fr) minmax(280px, .72fr) minmax(130px, .32fr);
      align-items: center;
      column-gap: 30px;
    }

    .hero-copy { padding-bottom: 3px; }

    .hero h1 {
      max-width: 610px;
      margin: 0;
      font-size: clamp(47px, 5.35vw, 68px);
      font-weight: 750;
      letter-spacing: -.05em;
      line-height: .98;
    }

    .hero h1 span { color: var(--blue); }

    .hero-copy > p:not(.eyebrow) {
      max-width: 560px;
      margin: 23px 0 28px;
      color: var(--body);
      font-size: 17px;
      line-height: 1.48;
    }

    .hero-phone {
      height: 458px;
      align-self: end;
      display: flex;
      align-items: flex-start;
      justify-content: center;
      overflow: hidden;
    }

    .hero-phone img {
      width: min(100%, 350px);
      height: auto;
      aspect-ratio: 2 / 3;
      flex: none;
      max-width: none;
      object-fit: contain;
      filter: drop-shadow(0 25px 24px rgba(9, 23, 38, .18));
    }

    .hero-keywords {
      height: 310px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 25px;
      color: #8492a5;
      font-size: 13px;
      letter-spacing: .11em;
      text-transform: uppercase;
      white-space: nowrap;
    }

    .hero-keywords::before {
      content: "";
      width: 47px;
      height: 4px;
      margin-bottom: 4px;
      border-radius: 4px;
      background: var(--blue);
    }

    /* Feature strip */
    .feature-strip {
      min-height: 155px;
      display: flex;
      align-items: center;
      background: var(--white);
      border-bottom: 1px solid #eaf0f5;
    }

    .feature-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
    }

    .feature {
      min-height: 96px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: 0 24px;
      text-align: center;
      border-right: 1px solid var(--line);
    }

    .feature:last-child { border-right: 0; }

    .feature img {
      width: 36px;
      height: 36px;
      margin-bottom: 5px;
      object-fit: contain;
    }

    .feature h2 {
      margin: 0;
      font-size: 15px;
      font-weight: 700;
      line-height: 1.35;
    }

    .feature p {
      margin: 2px 0 0;
      color: var(--body);
      font-size: 13px;
      line-height: 1.35;
    }

    /* Apps */
    .apps-section {
      padding: 28px 0 30px;
      background:
        radial-gradient(circle at 15% 15%, rgba(255, 255, 255, .95), transparent 34%),
        linear-gradient(120deg, #f7fbfe, #edf5fb);
    }

    .apps-heading {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 30px;
      margin-bottom: 20px;
    }

    .apps-heading h2 {
      margin: 0 0 6px;
      font-size: clamp(31px, 3.5vw, 39px);
      line-height: 1.1;
      letter-spacing: -.04em;
    }

    .apps-heading .eyebrow { margin-bottom: 7px; }

    .apps-heading p:not(.eyebrow) {
      margin: 0;
      color: var(--body);
      font-size: 16px;
    }

    .apps-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 18px;
    }

    .app-card {
      min-height: 196px;
      display: grid;
      grid-template-columns: 96px 1fr;
      grid-template-rows: 1fr auto;
      column-gap: 18px;
      padding: 21px 22px;
      background: rgba(255, 255, 255, .93);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      transition: transform .2s ease, box-shadow .2s ease;
    }

    .app-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 18px 36px rgba(14, 36, 58, .12);
    }

    .app-icon {
      width: 92px;
      height: 92px;
      grid-row: 1 / -1;
      border-radius: 18px;
      object-fit: cover;
    }

    .app-card h3 {
      margin: 14px 0 5px;
      font-size: 19px;
      line-height: 1.2;
    }

    .app-card p {
      margin: 0;
      color: var(--body);
      font-size: 13px;
      line-height: 1.58;
    }

    .learn-more {
      align-self: end;
      min-height: 36px;
      display: inline-flex;
      align-items: center;
      color: var(--blue-deep);
      font-size: 14px;
      font-weight: 650;
    }

    /* CTA */
    .future-section {
      min-height: 293px;
      display: flex;
      align-items: center;
      color: var(--white);
      background:
        linear-gradient(90deg, rgba(8, 25, 41, .88), rgba(12, 38, 61, .70)),
        url("../img/footer/footer.png") center 56% / cover no-repeat;
    }

    .future-grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 245px;
      align-items: center;
      gap: 58px;
      padding-block: 32px;
    }

    .future-copy .eyebrow { margin-bottom: 12px; color: #b6c5d2; }

    .future-copy h2 {
      margin: 0 0 11px;
      font-size: clamp(29px, 3.45vw, 39px);
      line-height: 1.12;
      letter-spacing: -.035em;
    }

    .future-copy p:not(.eyebrow) {
      max-width: 720px;
      margin: 0 0 20px;
      color: #edf4fa;
      font-size: 15px;
      line-height: 1.5;
    }

    .future-points {
      min-height: 229px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 24px;
      padding-left: 29px;
      border-left: 1px solid var(--blue);
    }

    .future-point {
      display: grid;
      grid-template-columns: 30px 1fr;
      align-items: center;
      gap: 14px;
      font-size: 12px;
      font-weight: 600;
      letter-spacing: .1em;
      text-transform: uppercase;
    }

    .future-point img {
      width: 27px;
      height: 27px;
      object-fit: contain;
    }

    /* Footer */
    .site-footer {
      color: #f7fafc;
      background: radial-gradient(circle at 84% 30%, #17222d, #0b1117 58%);
    }

    .footer-main {
      min-height: 98px;
      display: grid;
      grid-template-columns: 220px 1fr auto;
      align-items: center;
      gap: 38px;
    }

    .footer-logo {
      width: 194px;
      height: auto;
      object-fit: contain;
      filter: brightness(0) invert(1);
    }

    .footer-links {
      display: flex;
      justify-content: center;
      gap: clamp(20px, 3.4vw, 45px);
      color: #e9eef2;
      font-size: 13px;
    }

    .footer-links a,
    .social-link {
      transition: color .2s ease, opacity .2s ease;
    }

    .footer-links a:hover { color: #63b4ff; }

    .social-links {
      display: flex;
      align-items: center;
      gap: 19px;
    }

    .social-link {
      width: 28px;
      height: 44px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: #f7fafc;
    }

    .social-link:hover { color: #63b4ff; }
    .social-link svg { width: 25px; height: 25px; fill: currentColor; }

    .footer-bottom {
      min-height: 60px;
      display: flex;
      align-items: start;
      justify-content: space-between;
      gap: 24px;
      color: #d0d8df;
      font-size: 12px;
    }

    @media (max-width: 980px) {
      .navbar { grid-template-columns: 1fr auto; }
      .menu-toggle { display: inline-flex; }
      .contact-button { min-width: auto; }

      .nav-links {
        position: absolute;
        top: calc(100% - 4px);
        right: 0;
        left: 0;
        display: none;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 10px 16px 16px;
        background: #fff;
        border: 1px solid #e5edf4;
        border-radius: 0 0 12px 12px;
        box-shadow: 0 18px 32px rgba(9, 23, 38, .12);
      }

      .nav-links.is-open { display: flex; }
      .nav-links .mobile-contact { display: inline-flex; }
      .nav-links a { padding: 8px 6px; }
      .nav-links a::after { display: none; }

      .hero-grid {
        grid-template-columns: minmax(0, 1fr) minmax(240px, .72fr);
      }

      .hero-keywords { display: none; }
      .apps-grid { grid-template-columns: repeat(2, 1fr); }
      .app-card:last-child { grid-column: 1 / -1; }
      .footer-main { grid-template-columns: 190px 1fr; }
      .footer-email { grid-column: 1 / -1; }
      .social-links { display: none; }
    }

    @media (max-width: 700px) {
      html { scroll-padding-top: 76px; }
      .container { width: min(var(--container), calc(100% - 32px)); }
      .navbar { min-height: 76px; gap: 12px; }
      .brand { width: 178px; }
      .contact-button { display: none; }

      .hero,
      .hero-grid { min-height: auto; }

      .hero-grid {
        grid-template-columns: 1fr;
        padding-top: 52px;
      }

      .hero-copy { text-align: left; }
      .hero h1 { max-width: 540px; font-size: clamp(43px, 13vw, 58px); }

      .hero-copy > p:not(.eyebrow) {
        max-width: 520px;
        font-size: 16px;
      }

      .hero-phone {
        height: 360px;
        margin-top: 18px;
      }

      .hero-phone img { width: 270px; transform: translateY(6px); }
      .feature-strip { padding-block: 18px; }
      .feature-grid { grid-template-columns: repeat(2, 1fr); }
      .feature { min-height: 118px; padding: 12px; }
      .feature:nth-child(odd) { border-right: 1px solid var(--line); }
      .feature:nth-child(even) { border-right: 0; }
      .feature:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }

      .apps-section { padding-block: 48px; }
      .apps-heading { align-items: flex-start; flex-direction: column; }
      .apps-grid { grid-template-columns: 1fr; }
      .app-card:last-child { grid-column: auto; }

      .future-grid { grid-template-columns: 1fr; gap: 30px; padding-block: 52px; }
      .future-points {
        min-height: auto;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 14px;
        padding: 24px 0 0;
        border-top: 1px solid var(--blue);
        border-left: 0;
      }

      .future-point {
        grid-template-columns: 1fr;
        justify-items: center;
        gap: 8px;
        text-align: center;
      }

      .footer-main {
        grid-template-columns: 1fr;
        gap: 22px;
        padding: 34px 0 25px;
      }

      .footer-links { justify-content: flex-start; flex-wrap: wrap; }
      .footer-bottom { min-height: 84px; flex-direction: column; gap: 6px; padding-bottom: 24px; }
    }

    @media (max-width: 430px) {
      .app-card { grid-template-columns: 76px 1fr; padding: 18px; }
      .app-icon { width: 72px; height: 72px; border-radius: 15px; }
      .app-card h3 { margin-top: 4px; }
      .future-points { grid-template-columns: 1fr; }
      .future-point { grid-template-columns: 28px 1fr; justify-items: start; text-align: left; }
    }

    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      *, *::before, *::after { transition-duration: .01ms !important; }
    }
