@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Barlow:wght@300;400;500;600&display=swap');

:root {
      --ft-font-heading: "Inter", Arial, Helvetica, ui-sans-serif, system-ui, sans-serif;
      --ft-font-body: "Barlow", Arial, Helvetica, ui-sans-serif, system-ui, sans-serif;
      --ft-onyx: #020202;
      --ft-ink: #ffffff;
      --ft-blue-deep: #b2d5e5;
      --ft-blue-mid: #b2d5e5;
      --ft-blue-pale: #b2d5e5;
      --ft-aqua: #020202;
      --ft-candy: #b2d5e5;
      --ft-porcelain: #ffffff;
      --ft-ink-text: #020202;
      --ft-muted: rgba(2, 2, 2, .62);
      --ft-dim-light: rgba(2, 2, 2, .44);
      --ft-dim-dark: rgba(2, 2, 2, .62);
      --ft-hairline: rgba(178, 213, 229, .72);
      --ft-hairline-dark: rgba(178, 213, 229, .72);
      --ft-text: #020202;
      --ft-text-muted: rgba(2, 2, 2, .68);
      --ft-text-soft: rgba(2, 2, 2, .52);
      --ft-glass: rgba(255, 255, 255, .72);
      --ft-glass-strong: rgba(178, 213, 229, .84);
      --ft-glass-line: rgba(178, 213, 229, .9);
      --ft-shadow: 0 24px 70px rgba(178, 213, 229, .34);
      --ft-radius: 8px;
      --ft-radius-pill: 999px;
      --color-forest-canopy: #020202;
      --color-lime-sprout: var(--ft-blue-mid);
      --color-warm-parchment: #020202;
      --color-pale-stone: #b2d5e5;
      --font-seed-sans: var(--ft-font-heading);
      --spacing-8: 8px;
      --spacing-16: 16px;
      --spacing-24: 24px;
      --spacing-32: 32px;
      --spacing-40: 40px;
      --spacing-80: 80px;
      --spacing-96: 96px;
      --page-max-width: 1200px;
      --radius-2xl: var(--ft-radius);
      --radius-pills: var(--ft-radius-pill);
    }

html {
      color: #020202;
    }

* {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    body {
      font-family: var(--ft-font-body);
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      background: var(--ft-ink);
      color: var(--ft-text);
    }

    button,
    input {
      font: inherit;
    }

    a {
      color: inherit;
      text-decoration: none;
    }

    a:focus-visible,
    button:focus-visible,
    summary:focus-visible {
      outline: 2px solid var(--ft-blue-mid);
      outline-offset: 3px;
      border-radius: 4px;
    }

    .hero {
      position: relative;
      min-height: 100vh;
      min-height: 100svh;
      overflow: hidden;
      color: var(--ft-onyx);
      background: var(--ft-candy);
      font-family: "Inter", sans-serif;
    }

    .hero::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 1;
      background:
        linear-gradient(180deg, rgba(178, 213, 229, .72) 0%, rgba(255, 255, 255, .12) 35%, rgba(178, 213, 229, .18) 58%, rgba(178, 213, 229, .9) 100%),
        radial-gradient(circle at 50% 42%, rgba(255, 255, 255, 0) 0 38%, rgba(178, 213, 229, .24) 82%);
      pointer-events: none;
    }

    .hero-video-wrap {
      position: absolute;
      inset: 0;
      z-index: 0;
      overflow: hidden;
      transform: scale(1.08);
      transform-origin: center;
      will-change: transform;
    }

    .hero-video {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center center;
      display: block;
      filter: grayscale(1) contrast(.96);
    }

    .liquid-glass {
      position: relative;
      overflow: hidden;
      border: none;
      background: rgba(255, 255, 255, .72);
      background-blend-mode: luminosity;
      box-shadow: inset 0 1px 1px rgba(255, 255, 255, .1);
      backdrop-filter: blur(4px);
      -webkit-backdrop-filter: blur(4px);
    }

    .liquid-glass::before {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: inherit;
      padding: 1.4px;
      background: linear-gradient(180deg, rgba(255, 255, 255, .45) 0%, rgba(255, 255, 255, .15) 20%, rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 0) 60%, rgba(255, 255, 255, .15) 80%, rgba(255, 255, 255, .45) 100%);
      -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
      -webkit-mask-composite: xor;
      mask-composite: exclude;
      pointer-events: none;
    }

    .hero-header {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 50;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
      padding: 32px 40px;
      transition: padding .28s ease, background .28s ease, box-shadow .28s ease, backdrop-filter .28s ease;
    }

    .hero-header.is-scrolled {
      padding: 14px 40px;
      background: rgba(178, 213, 229, .94);
      box-shadow: 0 18px 54px rgba(178, 213, 229, .32);
      backdrop-filter: blur(22px) saturate(120%);
      -webkit-backdrop-filter: blur(22px) saturate(120%);
    }

    .hero-header.is-menu-open.is-scrolled {
      background: rgba(178, 213, 229, .94);
      box-shadow: 0 18px 54px rgba(178, 213, 229, .32);
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
    }

    .hero-wordmark {
      color: var(--ft-onyx);
      font-size: 17px;
      font-weight: 600;
      letter-spacing: -.01em;
      white-space: nowrap;
    }

    .hero-wordmark sup {
      margin-left: 2px;
      font-size: 8px;
      line-height: 0;
      vertical-align: super;
    }

    .hero-nav {
      display: flex;
      align-items: center;
      gap: 4px;
      padding: 8px;
      border-radius: 999px;
    }

    .hero-nav a {
      padding: 6px 16px;
      border-radius: 999px;
      color: rgba(2, 2, 2, .9);
      font-size: 11px;
      font-weight: 500;
      letter-spacing: .12em;
      transition: color .2s ease, background .2s ease;
    }

    .hero-nav a:hover,
    .hero-action:hover {
      color: var(--ft-onyx);
    }

    .hero-nav a:hover {
      background: rgba(178, 213, 229, .72);
    }

    .hero-action {
      padding: 10px 20px;
      border-radius: 999px;
      color: rgba(2, 2, 2, .9);
      font-size: 11px;
      font-weight: 500;
      letter-spacing: .12em;
      white-space: nowrap;
      transition: color .2s ease;
    }

    .hero-menu-button,
    .hero-mobile-menu {
      display: none;
    }

    .hero-menu-button {
      place-items: center;
      width: 42px;
      height: 42px;
      padding: 0;
      border-radius: 999px;
      color: rgba(2, 2, 2, .92);
      cursor: pointer;
    }

    .hero-menu-button svg {
      width: 19px;
      height: 19px;
      fill: none;
      stroke: currentColor;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .hero-mobile-menu {
      position: fixed;
      top: 82px;
      left: 20px;
      right: 20px;
      z-index: 60;
      padding: 10px;
      border-radius: 20px;
      background: rgba(178, 213, 229, .96);
      box-shadow: 0 22px 62px rgba(178, 213, 229, .34);
      backdrop-filter: blur(24px) saturate(140%);
      -webkit-backdrop-filter: blur(24px) saturate(140%);
      transform: translateZ(0);
    }

    .hero-mobile-menu.is-open {
      display: grid;
    }

    .hero-mobile-menu a {
      position: relative;
      z-index: 1;
      padding: 13px 14px;
      border-radius: 999px;
      color: rgba(2, 2, 2, .9);
      font-size: 11px;
      font-weight: 600;
      letter-spacing: .12em;
    }

    .hero-mobile-menu a:hover {
      background: rgba(255, 255, 255, .84);
      color: var(--ft-onyx);
    }

    .hero-headline {
      position: absolute;
      top: 120px;
      left: 50%;
      z-index: 20;
      width: min(100% - 32px, 1180px);
      text-align: center;
      transform: translateX(-50%);
    }

    .hero-headline h1 {
      display: grid;
      gap: 2px;
      margin: 0;
      color: #020202;
      font-family: "Inter", sans-serif;
      font-size: clamp(34px, 4.2vw, 62px);
      font-weight: 400;
      line-height: 1.1;
      letter-spacing: -.02em;
      text-shadow: none;
    }

    .hero-headline h1 span + span {
      color: rgba(2, 2, 2, .74);
    }

    .hero-bottom {
      position: absolute;
      left: 50%;
      bottom: 56px;
      z-index: 20;
      display: grid;
      justify-items: center;
      gap: 24px;
      width: min(100% - 32px, 680px);
      text-align: center;
      transform: translateX(-50%);
    }

    .hero-bottom p {
      max-width: 620px;
      margin: 0;
      color: #020202;
      font-family: "Barlow", sans-serif;
      font-size: 15px;
      line-height: 1.65;
      text-shadow: none;
    }

    .hero-bottom p span + span {
      color: rgba(2, 2, 2, .55);
    }

    .hero-cta {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 14px 32px;
      border: 0;
      border-radius: 999px;
      background: #fff;
      color: #020202;
      font-size: 15px;
      font-weight: 500;
      cursor: pointer;
      transition: transform .2s ease, box-shadow .2s ease;
    }

    .hero-cta:hover {
      transform: scale(1.03);
      box-shadow: 0 0 32px 4px rgba(255, 255, 255, .2);
    }

    .hero-cta:active {
      transform: scale(.97);
    }

    .join-top,
    .vl-section-cta {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 48px;
      padding: 14px 32px;
      border: 0;
      border-radius: var(--ft-radius-pill);
      background: #fff;
      color: var(--ft-onyx);
      font-family: var(--ft-font-body);
      font-size: 15px;
      font-weight: 500;
      line-height: 1;
      transition: transform .2s ease, box-shadow .2s ease;
    }

    .join-top:hover,
    .vl-section-cta:hover {
      transform: scale(1.03);
      box-shadow: 0 0 32px 4px rgba(255, 255, 255, .2);
    }

    .join-top:active,
    .vl-section-cta:active {
      transform: scale(.97);
    }

    .hero-secure {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      color: rgba(2, 2, 2, .7);
      font-size: 11px;
      font-weight: 500;
      letter-spacing: .14em;
    }

    .hero-secure svg {
      width: 13px;
      height: 13px;
      fill: none;
      stroke: currentColor;
      stroke-width: 1.5;
      stroke-linecap: round;
      stroke-linejoin: round;
      flex: 0 0 auto;
    }

    .reveal-on-load {
      opacity: 0;
      transform: translate(-50%, 24px);
      transition: opacity 1s ease, transform 1s ease;
    }

    .reveal-on-load.is-visible {
      opacity: 1;
      transform: translate(-50%, 0);
    }

    .reveal-delay {
      transition-delay: .3s;
    }

    @media (max-width: 900px) {
      .hero-header {
        padding: 22px 20px;
        justify-content: start;
      }

      .hero-header.is-scrolled {
        padding: 12px 20px;
      }

      .hero-nav {
        display: none;
      }

      .hero-wordmark {
        margin-right: auto;
      }

      .hero-action {
        padding: 10px 15px;
        font-size: 10px;
        letter-spacing: .1em;
      }

      .hero-menu-button {
        display: grid;
      }

      .hero-headline {
        top: 116px;
      }
    }

    @media (max-width: 640px) {
      .hero {
        min-height: 100svh;
      }

      .hero-video {
        object-position: center center;
      }

      .hero-header {
        gap: 12px;
        padding: 18px 16px;
      }

      .hero-header.is-scrolled {
        padding: 10px 16px;
      }

      .hero-wordmark {
        font-size: 15px;
      }

      .hero-action {
        max-width: 148px;
        padding: 9px 12px;
        text-align: center;
        line-height: 1.25;
      }

      .hero-menu-button {
        width: 40px;
        height: 40px;
      }

      .hero-mobile-menu {
        top: 68px;
        left: 16px;
        right: 16px;
      }

      .hero-headline {
        top: 108px;
      }

      .hero-headline h1 {
        font-size: clamp(30px, 9.4vw, 42px);
        line-height: 1.08;
      }

      .hero-bottom {
        bottom: 34px;
        gap: 18px;
      }

      .hero-bottom p {
        font-size: 14px;
        line-height: 1.48;
      }

      .hero-cta {
        padding: 13px 24px;
        font-size: 14px;
      }

      .hero-secure {
        max-width: 300px;
        font-size: 10px;
        line-height: 1.35;
      }
    }

    /* ============================================================
       LANDING — tipografija usklađena sa hero sekcijom (Inter)
       ============================================================ */

    .landing {
      overflow: clip;
      background: var(--ft-porcelain);
      color: var(--ft-ink-text);
      font-family: var(--ft-font-body);
    }

    .container {
      width: min(1180px, calc(100% - 40px));
      margin: 0 auto;
    }

    .landing h2,
    .landing h3 {
      margin: 0;
      color: var(--ft-ink-text);
      font-family: var(--ft-font-heading);
      letter-spacing: -.02em;
    }

    .landing h2 {
      font-size: clamp(38px, 5vw, 72px);
      font-weight: 400;
      line-height: 1.06;
    }

    .landing h3 {
      font-size: clamp(22px, 2.3vw, 32px);
      font-weight: 500;
      line-height: 1.1;
      letter-spacing: -.01em;
    }

    .landing h2 .dim {
      color: var(--ft-dim-light);
    }

    .regions h2 .dim,
    .protocol h2 .dim,
    .call h2 .dim {
      color: var(--ft-dim-dark);
    }

    .landing p {
      margin: 0;
      color: var(--ft-muted);
      font-size: 18px;
      line-height: 1.55;
    }

    .ft-label {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      width: fit-content;
      color: var(--ft-aqua);
      font-family: var(--ft-font-heading);
      font-size: 11px;
      font-weight: 500;
      letter-spacing: .14em;
      text-transform: uppercase;
    }

    .ft-label::before {
      content: "";
      width: 22px;
      height: 1px;
      background: currentColor;
      opacity: .6;
    }

    .fig-caption {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-top: 14px;
      color: var(--ft-muted);
      font-family: var(--ft-font-heading);
      font-size: 10px;
      font-weight: 500;
      letter-spacing: .14em;
      text-transform: uppercase;
    }

    .fig-caption::after {
      content: "";
      flex: 1;
      height: 1px;
      background: var(--ft-hairline);
    }

    [data-reveal] {
      opacity: 0;
      transform: translateY(34px);
      transition: opacity .75s ease, transform .75s ease;
    }

    [data-reveal].is-visible {
      opacity: 1;
      transform: translateY(0);
    }

    .landing h2[data-split] .w-mask {
      display: inline-block;
      overflow: hidden;
      vertical-align: bottom;
    }

    .landing h2[data-split] .w {
      display: inline-block;
      transform: translateY(115%);
      transition: transform .9s cubic-bezier(.22, .61, .36, 1);
      transition-delay: var(--w-delay, 0s);
    }

    .landing h2[data-split].is-split-visible .w {
      transform: none;
    }

    .landing [data-reveal] figure img:not([data-parallax]) {
      scale: 1.16;
      transition: scale 1.4s cubic-bezier(.22, .61, .36, 1);
    }

    .landing [data-reveal].is-visible figure img:not([data-parallax]) {
      scale: 1;
    }

    @media (prefers-reduced-motion: reduce) {
      [data-reveal] {
        opacity: 1;
        transform: none;
        transition: none;
      }

      .region h3,
      .call__phone::after,
      .faq-item summary::after,
      .svc,
      .svc img,
      .quote {
        transition: none !important;
      }

      .marquee__track,
      .services__rail[data-reveal].is-visible .svc {
        animation: none !important;
      }

      .quote {
        transform: none;
        filter: none;
      }

      .landing h2[data-split] .w {
        transform: none;
        transition: none;
      }

      .landing [data-reveal] figure img:not([data-parallax]) {
        scale: none;
        transition: none;
      }
    }

    /* ---------- Marquee traka ---------- */

    .marquee {
      overflow: hidden;
      padding: 20px 0;
      background: var(--ft-ink);
      border-bottom: 1px solid var(--ft-hairline-dark);
    }

    .marquee__track {
      display: flex;
      align-items: center;
      gap: 28px;
      width: max-content;
      animation: ft-marquee 32s linear infinite;
    }

    .marquee__track span {
      color: rgba(2, 2, 2, .78);
      font-family: var(--ft-font-heading);
      font-size: 12px;
      font-weight: 500;
      letter-spacing: .18em;
      text-transform: uppercase;
      white-space: nowrap;
    }

    .marquee__track i {
      color: var(--ft-onyx);
      font-style: normal;
      font-size: 10px;
    }

    @keyframes ft-marquee {
      from { transform: translateX(0); }
      to { transform: translateX(-50%); }
    }

    /* ---------- Intro ---------- */

    .intro {
      padding: clamp(96px, 11vw, 170px) 0 clamp(76px, 9vw, 130px);
    }

    .intro__meta {
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      gap: 16px;
      padding-bottom: 18px;
      border-bottom: 1px solid var(--ft-hairline);
    }

    .intro__meta span {
      color: var(--ft-muted);
      font-family: var(--ft-font-heading);
      font-size: 11px;
      font-weight: 500;
      letter-spacing: .14em;
      text-transform: uppercase;
    }

    .intro__meta span:first-child {
      color: var(--ft-aqua);
    }

    .intro h2 {
      max-width: 1060px;
      margin-top: clamp(36px, 5vw, 64px);
      font-size: clamp(42px, 6.2vw, 92px);
    }

    .intro__row {
      display: grid;
      grid-template-columns: 1fr minmax(300px, 440px);
      gap: clamp(28px, 5vw, 80px);
      align-items: end;
      margin-top: clamp(30px, 4vw, 52px);
    }

    .intro__row p {
      grid-column: 2;
      font-size: clamp(18px, 1.7vw, 21px);
      line-height: 1.5;
    }

    .intro__figure {
      margin: clamp(44px, 6vw, 84px) 0 0;
    }

    .intro__figure img {
      display: block;
      width: 100%;
      aspect-ratio: 21 / 9;
      object-fit: cover;
      border-radius: var(--ft-radius);
      box-shadow: 0 34px 90px rgba(178, 213, 229, .28);
    }

    .parallax-frame .pf-clip {
      display: block;
      overflow: hidden;
      border-radius: var(--ft-radius);
      box-shadow: 0 34px 90px rgba(178, 213, 229, .28);
    }

    .parallax-frame img {
      border-radius: 0;
      box-shadow: none;
      transform: scale(1.12);
      will-change: transform;
    }

    .stats {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 24px;
      margin-top: clamp(44px, 6vw, 72px);
      padding-top: clamp(24px, 3vw, 36px);
      border-top: 1px solid var(--ft-hairline);
    }

    .stats dt {
      color: var(--ft-ink-text);
      font-family: var(--ft-font-heading);
      font-size: clamp(38px, 4.6vw, 68px);
      font-weight: 400;
      line-height: 1;
      letter-spacing: -.03em;
    }

    .stats dd {
      margin-top: 10px;
      color: var(--ft-muted);
      font-family: var(--ft-font-heading);
      font-size: 11px;
      font-weight: 500;
      letter-spacing: .14em;
      text-transform: uppercase;
    }

    /* ---------- Tegobe: index regija ---------- */

    .regions {
      padding: clamp(92px, 11vw, 154px) 0;
      background:
        radial-gradient(circle at 88% 6%, rgba(178, 213, 229, .13), transparent 34%),
        var(--ft-ink);
      color: var(--ft-text);
    }

    .regions h2 {
      color: var(--ft-text);
    }

    .regions__head {
      display: grid;
      grid-template-columns: minmax(0, .38fr) 1fr;
      gap: clamp(28px, 5vw, 76px);
      align-items: start;
      margin-bottom: clamp(48px, 7vw, 84px);
    }

    .regions__head h2 {
      max-width: 780px;
      font-size: clamp(34px, 4.2vw, 60px);
    }

    .regions__list {
      border-top: 1px solid var(--ft-hairline-dark);
    }

    .region {
      display: grid;
      grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) 44px;
      gap: clamp(20px, 4vw, 64px);
      align-items: start;
      padding: clamp(30px, 4vw, 46px) 0;
      border-bottom: 1px solid var(--ft-hairline-dark);
    }

    .region h3 {
      color: var(--ft-text);
      font-size: clamp(26px, 3.4vw, 46px);
      transition: transform .35s cubic-bezier(.22, .61, .36, 1), color .35s ease;
    }

    .region:hover h3 {
      transform: translateX(14px);
      color: var(--ft-onyx);
    }

    .region p {
      color: var(--ft-text-muted);
      font-size: 17px;
    }

    .region__tags {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 16px;
    }

    .region__tags span {
      padding: 6px 12px;
      border: 1px solid rgba(255, 255, 255, .22);
      border-radius: var(--ft-radius-pill);
      color: rgba(2, 2, 2, .85);
      font-family: var(--ft-font-heading);
      font-size: 10px;
      font-weight: 500;
      letter-spacing: .12em;
      text-transform: uppercase;
      white-space: nowrap;
    }

    .region svg {
      width: 30px;
      height: 30px;
      justify-self: end;
      margin-top: 8px;
      fill: none;
      stroke: var(--ft-blue-pale);
      stroke-width: 1.6;
      stroke-linecap: round;
      stroke-linejoin: round;
      opacity: 0;
      transform: translate(-10px, 10px);
      transition: opacity .35s ease, transform .35s cubic-bezier(.22, .61, .36, 1);
    }

    .region:hover svg {
      opacity: 1;
      transform: translate(0, 0);
    }

    /* ---------- Tretmani: services carousel ---------- */

    .services {
      --svc-card-width: min(78vw, 420px);
      --svc-rail-edge: max(24px, calc((100vw - 1180px) / 2));
      overflow: hidden;
      padding: clamp(104px, 12vw, 180px) 0;
      background:
        radial-gradient(circle at 84% 10%, rgba(255, 255, 255, .5), transparent 36%),
        radial-gradient(circle at 8% 90%, rgba(255, 255, 255, .3), transparent 30%),
        var(--ft-candy);
    }

    .services .ft-label {
      color: #020202;
    }

    .services__head p {
      color: #020202;
    }

    .services__head {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      gap: 24px;
      margin-bottom: clamp(36px, 5vw, 60px);
    }

    .services__head > div:first-child {
      display: grid;
      gap: 20px;
    }

    .services__head h2 {
      font-size: clamp(34px, 4.2vw, 62px);
    }

    .services__head p {
      max-width: 460px;
    }

    .rail-nav {
      display: flex;
      align-items: center;
      gap: 14px;
      flex: 0 0 auto;
    }

    .rail-nav button {
      display: grid;
      place-items: center;
      width: 52px;
      height: 52px;
      padding: 0;
      border: 1px solid var(--ft-hairline);
      border-radius: 50%;
      background: #fff;
      color: var(--ft-ink-text);
      cursor: pointer;
      transition: background .25s ease, color .25s ease, transform .25s ease;
    }

    .rail-nav button:hover {
      background: var(--ft-candy);
      color: #020202;
      transform: scale(1.06);
    }

    .rail-nav button:active {
      transform: scale(.94);
    }

    .rail-nav svg {
      width: 18px;
      height: 18px;
      fill: none;
      stroke: currentColor;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .rail-nav span {
      min-width: 64px;
      text-align: center;
      color: var(--ft-muted);
      font-family: var(--ft-font-heading);
      font-size: 12px;
      font-weight: 500;
      letter-spacing: .14em;
    }

    .services__rail {
      display: flex;
      gap: clamp(18px, 2.4vw, 30px);
      width: 100vw;
      padding: 10px var(--svc-rail-edge) 26px;
      overflow-x: auto;
      overflow-y: hidden;
      overscroll-behavior-x: contain;
      scroll-snap-type: x proximity;
      scroll-padding-inline: var(--svc-rail-edge);
      scrollbar-width: none;
      -ms-overflow-style: none;
      -webkit-overflow-scrolling: touch;
      cursor: grab;
    }

    .services__rail::-webkit-scrollbar {
      width: 0;
      height: 0;
      display: none;
    }

    .services__rail.is-dragging {
      cursor: grabbing;
      scroll-snap-type: none;
      user-select: none;
    }

    .svc {
      flex: 0 0 var(--svc-card-width);
      display: grid;
      gap: 16px;
      align-content: start;
      padding: 14px 14px 26px;
      border: 1px solid rgba(255, 255, 255, .75);
      border-radius: 14px;
      background: rgba(255, 255, 255, .52);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      box-shadow: inset 0 1px 1px rgba(255, 255, 255, .6), 0 18px 44px rgba(178, 213, 229, .28);
      scroll-snap-align: start;
      transition: transform .35s cubic-bezier(.22, .61, .36, 1), box-shadow .35s ease, opacity .75s ease;
    }

    .svc:hover {
      transform: translateY(-8px);
      box-shadow: inset 0 1px 1px rgba(255, 255, 255, .6), 0 32px 70px rgba(178, 213, 229, .36);
    }

    .svc__link {
      display: grid;
      gap: 16px;
      align-content: start;
      height: 100%;
      color: inherit;
    }

    .svc__link:focus-visible {
      outline: 3px solid var(--ft-aqua);
      outline-offset: 5px;
    }

    .svc figure {
      overflow: hidden;
      border-radius: 8px;
    }

    .services .rail-nav button {
      border-color: rgba(255, 255, 255, .8);
      background: rgba(255, 255, 255, .85);
    }

    .services .rail-nav span {
      color: #020202;
    }

    .svc img {
      display: block;
      width: 100%;
      aspect-ratio: 4 / 3;
      object-fit: cover;
      transition: transform .6s cubic-bezier(.22, .61, .36, 1);
    }

    .svc:hover img {
      transform: scale(1.06);
    }

    .svc__head {
      display: flex;
      align-items: baseline;
      gap: 14px;
      padding: 8px 10px 0;
    }

    .svc__head i {
      color: var(--ft-aqua);
      font-family: var(--ft-font-heading);
      font-style: normal;
      font-size: 11px;
      font-weight: 500;
      letter-spacing: .14em;
    }

    .svc__head h3 {
      font-size: clamp(21px, 2vw, 26px);
    }

    .svc p {
      padding: 0 10px;
      font-size: 16px;
      line-height: 1.5;
    }

    .services__rail[data-reveal].is-visible .svc {
      animation: svc-in .7s cubic-bezier(.22, .61, .36, 1) backwards;
    }

    .services__rail .svc:nth-child(2) { animation-delay: .09s; }
    .services__rail .svc:nth-child(3) { animation-delay: .18s; }
    .services__rail .svc:nth-child(4) { animation-delay: .27s; }

    @keyframes svc-in {
      from {
        opacity: 0;
        transform: translateY(30px);
      }
    }

    /* ---------- Tretmani: kompletna lista ---------- */

    .services__all {
      margin-top: clamp(56px, 7vw, 100px);
    }

    .services__all p {
      max-width: 560px;
      margin-top: 12px;
    }

    .services__all-list {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 30px;
      list-style: none;
    }

    .services__all-list li {
      padding: 11px 20px;
      border: 1px solid rgba(178, 213, 229, .72);
      border-radius: var(--ft-radius-pill);
      background: rgba(255, 255, 255, .44);
      color: var(--ft-ink-text);
      font-family: var(--ft-font-heading);
      font-size: 13px;
      font-weight: 500;
      letter-spacing: .02em;
      white-space: nowrap;
    }

    .services__all-list a {
      display: block;
      color: inherit;
    }

    /* ---------- Proces: protokol ---------- */

    .protocol {
      padding: clamp(104px, 12vw, 176px) 0;
      background:
        radial-gradient(circle at 14% 16%, rgba(178, 213, 229, .16), transparent 36%),
        var(--ft-ink);
      color: var(--ft-text);
    }

    .protocol h2 {
      color: var(--ft-text);
      font-size: clamp(34px, 4.2vw, 58px);
    }

    .protocol__grid {
      display: grid;
      grid-template-columns: minmax(340px, .82fr) minmax(0, 1fr);
      gap: clamp(40px, 7vw, 104px);
      align-items: center;
    }

    .protocol__grid > figure img {
      display: block;
      width: 100%;
      aspect-ratio: 4 / 5;
      object-fit: cover;
    }

    .protocol__grid > figure .pf-clip {
      box-shadow: 0 34px 90px rgba(178, 213, 229, .38);
    }

    .protocol__grid > figure .fig-caption {
      color: var(--ft-text-soft);
    }

    .protocol__grid > figure .fig-caption::after {
      background: var(--ft-hairline-dark);
    }

    .protocol__copy {
      display: grid;
      gap: 28px;
    }

    .protocol__copy .ft-label {
      color: var(--ft-onyx);
    }

    .protocol__steps {
      display: grid;
      margin-top: 10px;
      border-top: 1px solid var(--ft-hairline-dark);
    }

    .protocol__steps article {
      display: grid;
      grid-template-columns: 132px 1fr;
      gap: clamp(20px, 3vw, 34px);
      padding: 30px 0;
      border-bottom: 1px solid var(--ft-hairline-dark);
    }

    .protocol__steps i {
      font-family: var(--ft-font-heading);
      font-style: normal;
      font-size: 11px;
      font-weight: 500;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--ft-onyx);
      padding-top: 6px;
    }

    .protocol__steps strong {
      display: block;
      margin-bottom: 8px;
      color: #020202;
      font-family: var(--ft-font-heading);
      font-size: 22px;
      font-weight: 500;
      letter-spacing: -.01em;
    }

    .protocol__steps p {
      color: var(--ft-text-muted);
      font-size: 17px;
    }

    /* ---------- Utisci: quote carousel ---------- */

    .quotes {
      padding: clamp(88px, 10vw, 150px) 0;
      background: #ffffff;
    }

    .quotes__head {
      display: grid;
      gap: 20px;
      margin-bottom: clamp(36px, 5vw, 56px);
    }

    .quotes__head h2 {
      font-size: clamp(34px, 4.2vw, 62px);
    }

    .quotes__stage {
      display: grid;
      min-height: clamp(260px, 30vw, 340px);
    }

    .quote {
      grid-area: 1 / 1;
      display: grid;
      gap: 26px;
      align-content: start;
      margin: 0;
      opacity: 0;
      transform: translateY(18px);
      filter: blur(10px);
      transition: opacity .55s ease, transform .55s cubic-bezier(.22, .61, .36, 1), filter .55s ease;
      pointer-events: none;
      visibility: hidden;
    }

    .quote.is-active {
      opacity: 1;
      transform: translateY(0);
      filter: blur(0);
      pointer-events: auto;
      visibility: visible;
    }

    .quote blockquote {
      margin: 0;
      max-width: 980px;
      font-family: var(--ft-font-heading);
      font-size: clamp(26px, 3.6vw, 52px);
      font-weight: 400;
      line-height: 1.14;
      letter-spacing: -.02em;
      color: var(--ft-ink-text);
    }

    .quote figcaption {
      display: flex;
      align-items: baseline;
      gap: 16px;
    }

    .quote figcaption strong {
      color: var(--ft-ink-text);
      font-family: var(--ft-font-heading);
      font-size: 16px;
      font-weight: 500;
    }

    .quote figcaption span {
      color: var(--ft-muted);
      font-family: var(--ft-font-heading);
      font-size: 11px;
      font-weight: 500;
      letter-spacing: .14em;
      text-transform: uppercase;
    }

    .quotes__nav {
      margin-top: clamp(24px, 3vw, 40px);
    }

    /* ---------- FAQ ---------- */

    .faq {
      padding: clamp(100px, 12vw, 168px) 0;
      background: var(--ft-porcelain);
    }

    .faq__grid {
      display: grid;
      grid-template-columns: minmax(0, .86fr) minmax(400px, 1fr);
      gap: clamp(44px, 8vw, 112px);
      align-items: start;
    }

    .faq__intro {
      display: grid;
      gap: 24px;
    }

    .faq__intro h2 {
      font-size: clamp(34px, 4vw, 56px);
    }

    .faq__intro img {
      display: block;
      width: 100%;
      aspect-ratio: 4 / 3;
      object-fit: cover;
      margin-top: 14px;
      border-radius: var(--ft-radius);
      box-shadow: 0 30px 80px rgba(178, 213, 229, .28);
    }

    .faq-list {
      border-top: 1px solid var(--ft-hairline);
    }

    .faq-item {
      border-bottom: 1px solid var(--ft-hairline);
    }

    .faq-item summary {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 20px;
      padding: 24px 0;
      cursor: pointer;
      list-style: none;
      color: var(--ft-ink-text);
      font-family: var(--ft-font-heading);
      font-size: clamp(18px, 1.8vw, 22px);
      font-weight: 500;
      letter-spacing: -.01em;
    }

    .faq-item summary::-webkit-details-marker {
      display: none;
    }

    .faq-item summary::after {
      content: "+";
      flex: 0 0 auto;
      color: var(--ft-aqua);
      font-family: var(--ft-font-heading);
      font-size: 20px;
      font-weight: 400;
      line-height: 1;
      transition: transform .3s ease;
    }

    .faq-item[open] summary::after {
      transform: rotate(45deg);
    }

    .faq-item p {
      max-width: 560px;
      padding: 0 0 24px;
    }

    /* ---------- Poziv: signature CTA ---------- */

    .call {
      padding: clamp(110px, 13vw, 190px) 0;
      text-align: center;
      background:
        radial-gradient(circle at 50% 0%, rgba(178, 213, 229, .18), transparent 38%),
        var(--ft-ink);
      color: var(--ft-text);
    }

    .call .container {
      display: grid;
      justify-items: center;
      gap: 24px;
    }

    .call h2 {
      max-width: 880px;
      color: var(--ft-text);
      font-size: clamp(32px, 4.2vw, 60px);
    }

    .call p {
      max-width: 560px;
      color: var(--ft-text-muted);
    }

    .call .ft-label {
      color: var(--ft-onyx);
    }

    .call__phone {
      position: relative;
      display: inline-block;
      margin-top: clamp(24px, 4vw, 44px);
      color: #020202;
      font-family: var(--ft-font-heading);
      font-size: clamp(34px, 8.4vw, 116px);
      font-weight: 400;
      line-height: 1;
      letter-spacing: -.03em;
      white-space: nowrap;
      transition: color .3s ease;
    }

    .call__phone::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: -.06em;
      height: .045em;
      background: var(--ft-blue-mid);
      transform: scaleX(0);
      transform-origin: left;
      transition: transform .45s cubic-bezier(.22, .61, .36, 1);
    }

    .call__phone:hover {
      color: var(--ft-onyx);
    }

    .call__phone:hover::after {
      transform: scaleX(1);
    }

    .call__meta {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 14px 32px;
      margin-top: clamp(20px, 3vw, 34px);
      color: var(--ft-text-soft);
      font-family: var(--ft-font-heading);
      font-size: 11px;
      font-weight: 500;
      letter-spacing: .14em;
      text-transform: uppercase;
    }

    /* ---------- Iskustva (video rail) — ZADRŽANO ---------- */

    .vl-section-heading h2,
    .vl-transformations h2,
    .vl-journal h2 {
      margin: 0;
      color: var(--color-forest-canopy);
      font-family: var(--ft-font-heading);
      font-weight: 400;
      letter-spacing: -.02em;
    }

    .vl-transformations {
      --vl-video-card-width: min(30vw, 440px);
      --vl-video-rail-edge: max(24px, calc((100vw - var(--vl-video-card-width)) / 2));
      overflow: hidden;
      padding: 156px 0 150px;
      background:
        radial-gradient(circle at 80% 8%, rgba(178, 213, 229, .2), transparent 34%),
        linear-gradient(180deg, var(--ft-porcelain) 0%, #b2d5e5 100%);
      color: var(--color-forest-canopy);
    }

    .vl-transformations .vl-section-heading {
      display: grid;
      grid-template-columns: 1fr;
      justify-items: center;
      gap: 24px;
      max-width: min(calc(100% - 48px), 900px);
      margin: 0 auto 104px;
      text-align: center;
    }

    .vl-transformations h2 {
      max-width: 760px;
      font-family: var(--font-seed-sans);
      font-size: clamp(38px, 4.1vw, 58px);
      font-weight: 400;
      line-height: 1.08;
      letter-spacing: -.02em;
    }

    .vl-transformations .vl-section-heading p {
      margin: 0;
      max-width: 620px;
      color: #020202;
      font-size: 21px;
      font-weight: 500;
      line-height: 1.24;
    }

    .vl-section-cta {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: fit-content;
      min-height: 48px;
      padding: 14px 32px;
      border: 0;
      border-radius: var(--ft-radius-pill);
      background: #fff;
      color: var(--ft-onyx);
      font-family: var(--ft-font-body);
      font-size: 15px;
      font-weight: 500;
      line-height: 1;
      transition: transform .2s ease, box-shadow .2s ease;
    }

    .vl-video-grid {
      display: flex;
      gap: 30px;
      width: 100vw;
      max-width: none;
      margin-left: 0;
      padding: 28px var(--vl-video-rail-edge) 22px;
      overflow-x: auto;
      overflow-y: hidden;
      overscroll-behavior-x: contain;
      scroll-snap-type: x proximity;
      scroll-padding-inline: var(--vl-video-rail-edge);
      scrollbar-width: none;
      -ms-overflow-style: none;
      -webkit-overflow-scrolling: touch;
    }

    .vl-video-grid::-webkit-scrollbar {
      width: 0;
      height: 0;
      display: none;
    }

    .vl-video-grid article {
      position: relative;
      flex: 0 0 var(--vl-video-card-width);
      display: block;
      min-height: 640px;
      overflow: hidden;
      border: 1px solid rgba(255, 255, 255, .7);
      background: var(--ft-candy);
      border-radius: var(--ft-radius);
      box-shadow: 0 24px 70px rgba(178, 213, 229, .3);
      opacity: 1;
      transform: scale(.975);
      scroll-snap-align: center;
      transition: opacity .2s ease, transform .2s ease;
      cursor: grab;
    }

    .vl-video-grid article.is-active {
      opacity: 1;
      transform: scale(1.035);
      z-index: 2;
    }

    /* bugfix: klik na neaktivnu karticu centrira karticu umesto da
       aktivira native video kontrole (duplo ponašanje) */
    .vl-video-grid article:not(.is-active) video {
      pointer-events: none;
    }

    .vl-video-grid.is-dragging,
    .vl-video-grid.is-dragging article {
      cursor: grabbing;
      user-select: none;
    }

    .vl-video-grid.is-dragging {
      scroll-snap-type: none;
    }

    .vl-video-grid img,
    .vl-video-grid video {
      display: block;
      width: 100%;
      height: 640px;
      aspect-ratio: auto;
      object-fit: cover;
      background: var(--ft-ink);
    }

    .vl-video-grid__featured img,
    .vl-video-grid__featured video {
      object-position: center 34%;
    }

    .vl-video-grid span {
      position: absolute;
      left: 36px;
      right: 28px;
      bottom: 86px;
      padding: 0;
      color: var(--color-warm-parchment);
      font-size: 27px;
      font-weight: 500;
      line-height: 1.08;
      letter-spacing: 0;
      text-shadow: none;
      z-index: 1;
      pointer-events: none;
    }

    .vl-video-grid p {
      position: absolute;
      left: 36px;
      right: 28px;
      bottom: 56px;
      max-width: 360px;
      margin: 0;
      padding: 0;
      color: var(--color-warm-parchment);
      font-size: 17px;
      font-weight: 400;
      line-height: 1.25;
      letter-spacing: 0;
      text-shadow: none;
      z-index: 1;
      pointer-events: none;
    }

    .vl-story-controls {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 4px;
      width: fit-content;
      margin: 16px auto 96px;
      padding: 8px;
      border: 1px solid rgba(178, 213, 229, .72);
      background: #b2d5e5;
      border-radius: var(--radius-pills);
      backdrop-filter: blur(18px);
      -webkit-backdrop-filter: blur(18px);
    }

    .vl-story-controls button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 9px;
      height: 44px;
      padding: 0 20px;
      background: #fff;
      border: 0;
      border-radius: var(--radius-pills);
      color: var(--ft-onyx);
      font-size: 14px;
      font-weight: 500;
      cursor: pointer;
    }

    .vl-story-controls button:nth-child(2) {
      min-width: 126px;
    }

    .vl-story-controls button:first-child {
      width: 44px;
      padding: 0;
      background: var(--ft-blue-deep);
      color: #020202;
      border-radius: 50%;
    }

    .vl-story-controls svg {
      width: 15px;
      height: 15px;
      flex: 0 0 auto;
      fill: none;
      stroke: currentColor;
      stroke-linecap: round;
      stroke-linejoin: round;
      stroke-width: 2.5;
    }

    .vl-story-controls button:nth-child(2) svg path:only-child {
      fill: currentColor;
      stroke: none;
    }

    .vl-story-controls i {
      width: 44px;
      height: 44px;
      flex: 0 0 auto;
      border: 3px solid #b2d5e5;
      background: url("../media/testimonial-public-figure.jpg") center / cover;
      border-radius: 50%;
    }

    /* ---------- Journal ---------- */

    .vl-journal {
      overflow: hidden;
      padding: 24px 0 116px;
      background:
        radial-gradient(circle at 18% 18%, rgba(178, 213, 229, .18), transparent 34%),
        linear-gradient(180deg, var(--ft-porcelain) 0%, #b2d5e5 100%);
      color: var(--color-forest-canopy);
    }

    .vl-journal .vl-section-heading {
      display: block;
      max-width: min(calc(100% - 48px), var(--page-max-width));
      margin: 0 auto 72px;
    }

    .vl-journal h2 {
      max-width: 610px;
      font-size: clamp(40px, 4vw, 56px);
      line-height: 1.04;
      letter-spacing: -.02em;
    }

    .vl-journal__grid {
      display: grid;
      grid-template-columns: 280px 280px 320px 320px 280px 286px;
      grid-auto-rows: 206px;
      gap: 16px;
      width: max-content;
      max-width: none;
      margin-left: clamp(-220px, calc((100vw - 1440px) / 2 - 320px), -88px);
      transform: translateX(var(--vl-story-shift, 0px));
      will-change: transform;
    }

    .vl-journal__grid article {
      position: relative;
      min-height: 0;
      padding: 0;
      overflow: hidden;
      border: 1px solid rgba(178, 213, 229, .72);
      background: #ffffff;
      border-radius: var(--ft-radius);
      box-shadow: 0 18px 46px rgba(178, 213, 229, .24);
    }

    .vl-journal__grid article:nth-child(1) {
      grid-row: span 2;
      border-radius: 0 180px 180px 0;
    }

    .vl-journal__grid article:nth-child(2),
    .vl-journal__grid article:nth-child(5),
    .vl-journal__grid article:nth-child(6) {
      grid-row: span 2;
    }

    .vl-journal__grid article:nth-child(3),
    .vl-journal__grid article:nth-child(8) {
      border-radius: 50%;
    }

    .vl-journal__quote {
      display: grid;
      place-items: center;
      padding: 40px !important;
      text-align: center;
    }

.vl-journal__quote--dark {
      background: var(--ft-candy) !important;
      color: var(--color-warm-parchment);
    }

    .vl-journal__quote p {
      margin: 0;
      color: inherit;
      font-size: 15px;
      line-height: 1.35;
    }

    .vl-journal__quote strong {
      color: inherit;
      font-family: var(--ft-font-heading);
      font-size: 30px;
      font-weight: 500;
    }

    .vl-journal img {
      display: block;
      width: 100%;
      height: 100%;
      aspect-ratio: auto;
      object-fit: cover;
      border-radius: inherit;
    }

    .vl-journal span {
      position: absolute;
      top: 34px;
      right: 30px;
      color: rgba(2, 2, 2, .8);
      font-family: var(--ft-font-heading);
      font-size: 10px;
      font-weight: 500;
      letter-spacing: .14em;
      text-transform: uppercase;
    }

    /* ---------- Završni CTA: zakazivanje ---------- */

    .book {
      padding: clamp(96px, 11vw, 160px) 0;
      text-align: center;
      background:
        radial-gradient(circle at 84% 10%, rgba(255, 255, 255, .5), transparent 36%),
        radial-gradient(circle at 8% 90%, rgba(255, 255, 255, .3), transparent 30%),
        var(--ft-candy);
      color: var(--ft-ink-text);
    }

    .book .container {
      display: grid;
      justify-items: center;
      gap: 22px;
    }

    .book h2 {
      max-width: 780px;
      font-size: clamp(32px, 4.2vw, 58px);
    }

    .book p {
      max-width: 520px;
    }

    .book__cta {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 56px;
      margin-top: 10px;
      padding: 18px 44px;
      border-radius: var(--ft-radius-pill);
      background: var(--ft-ink);
      color: #020202;
      font-family: var(--ft-font-body);
      font-size: 16px;
      font-weight: 500;
      line-height: 1;
      transition: transform .2s ease, box-shadow .2s ease;
    }

    .book__cta:hover {
      transform: scale(1.04);
      box-shadow: 0 18px 44px rgba(178, 213, 229, .34);
    }

    .book__cta:active {
      transform: scale(.97);
    }

    .book__meta {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 12px 28px;
      color: var(--ft-muted);
      font-family: var(--ft-font-heading);
      font-size: 11px;
      font-weight: 500;
      letter-spacing: .14em;
      text-transform: uppercase;
    }

    /* ---------- Footer ---------- */

    .landing-footer {
      padding: clamp(64px, 8vw, 96px) 0 30px;
      background:
        radial-gradient(circle at 12% 0%, rgba(178, 213, 229, .1), transparent 32%),
        var(--ft-ink);
      color: var(--ft-text);
    }

    .landing-footer .container {
      display: grid;
      gap: clamp(40px, 6vw, 64px);
    }

    .footer-grid {
      display: grid;
      grid-template-columns: 1.3fr .9fr .9fr;
      gap: 40px;
      align-items: start;
    }

    .footer-wordmark {
      display: block;
      margin-bottom: 16px;
      color: #020202;
      font-family: var(--ft-font-heading);
      font-size: clamp(26px, 3vw, 38px);
      font-weight: 400;
      letter-spacing: -.02em;
    }

    .footer-wordmark sup {
      margin-left: 3px;
      font-size: .32em;
      vertical-align: super;
    }

    .landing-footer p,
    .landing-footer a,
    .landing-footer address {
      color: var(--ft-text-muted);
      font-style: normal;
      font-size: 16px;
      line-height: 1.6;
    }

    .landing-footer a {
      display: block;
      width: fit-content;
      padding: 2px 0;
      transition: color .2s ease;
    }

    .landing-footer a:hover {
      color: #020202;
    }

    .landing-footer strong {
      display: block;
      margin-bottom: 14px;
      color: var(--ft-onyx);
      font-family: var(--ft-font-heading);
      font-size: 10px;
      font-weight: 500;
      letter-spacing: .16em;
      text-transform: uppercase;
    }

    .footer-bottom {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      gap: 10px 24px;
      padding-top: 22px;
      border-top: 1px solid var(--ft-hairline-dark);
      color: var(--ft-text-soft);
      font-family: var(--ft-font-heading);
      font-size: 10px;
      font-weight: 500;
      letter-spacing: .16em;
      text-transform: uppercase;
    }

    /* ---------- Responsive: landing ---------- */

    @media (max-width: 980px) {
      .intro__row,
      .regions__head,
      .protocol__grid,
      .faq__grid,
      .footer-grid {
        grid-template-columns: 1fr;
      }

      .intro__row p {
        grid-column: auto;
      }

      .stats {
        grid-template-columns: repeat(2, 1fr);
        gap: 32px 24px;
      }

      .services__head {
        flex-direction: column;
        align-items: flex-start;
      }

      .region {
        grid-template-columns: 1fr;
        gap: 14px;
      }

      .region svg {
        display: none;
      }

      .protocol__grid {
        align-items: start;
      }
    }

    @media (max-width: 640px) {
      .container {
        width: min(100% - 32px, 1180px);
      }

      .intro,
      .regions,
      .services,
      .protocol,
      .quotes,
      .faq,
      .call {
        padding-top: 84px;
        padding-bottom: 84px;
      }

      .intro__meta {
        flex-direction: column;
        gap: 6px;
      }

      .intro h2 {
        font-size: clamp(38px, 10.6vw, 54px);
      }

      .intro__figure img {
        aspect-ratio: 4 / 3;
      }

      .regions__head h2,
      .protocol h2,
      .faq__intro h2,
      .services__head h2,
      .quotes__head h2,
      .call h2 {
        font-size: clamp(32px, 9vw, 44px);
      }

      .region h3 {
        font-size: clamp(26px, 7.6vw, 34px);
      }

      .protocol__steps article {
        grid-template-columns: 1fr;
        gap: 10px;
        padding: 24px 0;
      }

      .quote blockquote {
        font-size: clamp(26px, 7.6vw, 34px);
      }

      .quotes__stage {
        min-height: 300px;
      }

      .stats dt {
        font-size: clamp(34px, 10vw, 44px);
      }

      .call__phone {
        font-size: clamp(30px, 8.4vw, 44px);
      }

      .call__meta {
        gap: 10px 20px;
        font-size: 10px;
      }
    }

    /* ---------- Responsive: video rail + journal (zadržano) ---------- */

    @media (max-width: 780px) {
      .vl-transformations,
      .vl-journal {
        width: 100%;
        margin: 0;
        padding-right: var(--spacing-24);
        padding-left: var(--spacing-24);
        overflow: hidden;
      }

      .vl-transformations > *,
      .vl-journal > * {
        min-width: 0;
        max-width: 100%;
      }

      .vl-transformations .vl-section-heading,
      .vl-journal .vl-section-heading,
      .vl-section-heading {
        display: grid;
        grid-template-columns: 1fr !important;
        width: 100%;
        gap: var(--spacing-24);
        margin-bottom: var(--spacing-40);
      }

      .vl-section-heading > * {
        min-width: 0;
        max-width: 100%;
      }

      .vl-transformations h2,
      .vl-journal h2 {
        font-size: clamp(40px, 10.7vw, 58px);
        line-height: 1.08;
        overflow-wrap: anywhere;
      }

      .vl-transformations .vl-section-heading {
        max-width: none;
        margin: 0 auto 62px;
        text-align: center;
        justify-items: center;
      }

      .vl-transformations .vl-section-heading p {
        font-size: 20px;
      }

      .vl-video-grid {
        --vl-video-card-width: min(82vw, 360px);
        --vl-video-rail-edge: max(24px, calc((100vw - var(--vl-video-card-width)) / 2));
        display: flex;
        gap: 18px;
        width: 100vw;
        max-width: none;
        margin-left: -24px;
        padding: 18px var(--vl-video-rail-edge);
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: var(--vl-video-rail-edge);
        scrollbar-width: none;
        -ms-overflow-style: none;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-x pan-y;
      }

      .vl-video-grid::-webkit-scrollbar {
        width: 0;
        height: 0;
        display: none;
      }

      .vl-video-grid article,
      .vl-video-grid article:not(.vl-video-grid__featured) {
        flex: 0 0 var(--vl-video-card-width);
        min-height: 560px;
        scroll-snap-align: center;
      }

      .vl-video-grid img,
      .vl-video-grid video {
        height: 560px;
        aspect-ratio: auto;
      }

      .vl-journal__grid {
        display: grid;
        grid-auto-flow: row;
        grid-template-columns: 230px 230px 260px 260px 230px 236px;
        grid-template-rows: none;
        grid-auto-columns: auto;
        grid-auto-rows: 168px;
        gap: 16px;
        width: max-content;
        max-width: none;
        margin-left: -190px;
        padding: 0;
        overflow: visible;
        scroll-snap-type: none;
        scrollbar-width: auto;
        transform: translateX(var(--vl-story-shift, 0px));
        will-change: transform;
        touch-action: auto;
      }

      .vl-video-grid article,
      .vl-journal__grid article {
        min-height: 0;
      }

      .vl-journal__grid article {
        border-radius: 12px;
      }

      .vl-journal__grid article:nth-child(1) {
        grid-row: span 2;
        border-radius: 0 180px 180px 0;
      }

      .vl-journal__grid article:nth-child(2),
      .vl-journal__grid article:nth-child(5),
      .vl-journal__grid article:nth-child(6) {
        grid-row: span 2;
      }

      .vl-journal__grid article:nth-child(3),
      .vl-journal__grid article:nth-child(8) {
        border-radius: 50%;
      }

      .vl-video-grid span {
        left: 28px;
        right: 24px;
        bottom: 78px;
        padding: 0;
        font-size: 24px;
      }

      .vl-video-grid p {
        left: 28px;
        right: 24px;
        bottom: 50px;
        padding: 0;
        font-size: 16px;
      }
    }
