.ek-scroll-progress { display: none; }
.ek-word { white-space: normal; }
.location-map { min-width: 0; max-width: 100%; }

@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
    --ek-ease: cubic-bezier(.16, 1, .3, 1);
  }

  .ek-motion-active .ek-scroll-progress {
    display: block;
    position: fixed;
    z-index: 45;
    inset: 0 0 auto;
    height: 3px;
    background: var(--gold);
    transform: scaleX(0);
    transform-origin: left;
    pointer-events: none;
  }

  .site-header {
    transition: box-shadow 550ms ease, border-color 550ms ease;
  }

  .site-header.ek-header-scrolled {
    box-shadow: 0 12px 40px rgba(70, 65, 62, .1);
    border-bottom-color: var(--gold-soft);
  }

  .brand-logo { transition: transform 650ms var(--ek-ease); }
  .brand:hover .brand-logo { transform: scale(1.045); }

  .hero-visual, .service-tile-media { overflow: hidden; }
  .hero-visual { transform-origin: right center; }

  .ek-motion-active .hero-visual > img {
    transform: translate3d(var(--ek-hero-x, 0px),
      calc(var(--ek-hero-y, 0px) + var(--ek-hero-scroll, 0px)), 0) scale(1.065);
    transition: transform 850ms var(--ek-ease);
    animation: ek-photo-breathe 12s ease-in-out infinite alternate paused;
  }

  .ek-motion-active:not(.ek-page-idle) .hero.ek-in-view .hero-visual > img {
    animation-play-state: running;
  }

  .button, .nav-cta {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    translate: var(--ek-magnet-x, 0px) var(--ek-magnet-y, 0px);
    transition: translate 220ms var(--ek-ease), transform 350ms var(--ek-ease),
      box-shadow 350ms ease, background 300ms ease, color 300ms ease;
  }

  .button > span:not(.ek-ripple), .button > svg, .nav-cta > span:not(.ek-ripple),
  .service-tile > span > svg {
    transition: transform 450ms var(--ek-ease);
  }

  .hero-actions .button::before, .booking-cta-actions .button::before {
    position: absolute;
    z-index: -1;
    inset: -50% auto -50% -70%;
    width: 45%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, .24), transparent);
    content: "";
    transform: translateX(0) skewX(-18deg);
    animation: ek-button-light 6s ease-in-out infinite paused;
    pointer-events: none;
  }

  .ek-motion-active:not(.ek-page-idle) .hero.ek-in-view .button::before,
  .ek-motion-active:not(.ek-page-idle) .booking-cta-section.ek-in-view .button::before {
    animation-play-state: running;
  }

  .booking-cta-actions .button::before { animation-delay: 1.5s; }

  .button > .ek-ripple, .nav-cta > .ek-ripple {
    position: absolute;
    z-index: -1;
    width: var(--ek-ripple-size);
    height: var(--ek-ripple-size);
    margin: 0;
    border-radius: 50%;
    background: currentColor;
    opacity: .18;
    pointer-events: none;
  }

  .button:active, .nav-cta:active {
    transform: translateY(0) scale(.96);
    box-shadow: none;
    transition-duration: 100ms;
  }

  .service-tile, .team-card {
    position: relative;
    isolation: isolate;
    transform: perspective(1100px) rotateX(var(--ek-tilt-x, 0deg))
      rotateY(var(--ek-tilt-y, 0deg)) translateY(0);
    transition: transform 500ms var(--ek-ease), border-color 400ms ease,
      box-shadow 500ms ease;
  }

  .service-tile::after, .team-card::after {
    position: absolute;
    z-index: 3;
    inset: 0;
    background: radial-gradient(420px circle at var(--ek-glare-x, 50%) var(--ek-glare-y, 50%),
      rgba(185, 161, 125, .18), transparent 65%);
    content: "";
    opacity: 0;
    transition: opacity 450ms ease;
    pointer-events: none;
  }

  .service-tile-media > img {
    transform: scale(var(--ek-scroll-zoom, 1));
    scale: var(--ek-photo-hover, 1);
    transition: transform 850ms var(--ek-ease), scale 850ms var(--ek-ease);
  }

  .approach-image > img {
    scale: var(--ek-approach-zoom, 1);
    transition: scale 1000ms var(--ek-ease);
  }

  .image-tag {
    translate: 0 var(--ek-tag-y, 0px);
    transition: translate 1000ms var(--ek-ease);
  }

  .offer-icon { position: relative; }

  .offer-icon::after {
    position: absolute;
    inset: -8px;
    border: 1px solid var(--gold);
    border-radius: inherit;
    content: "";
    opacity: 0;
    animation: ek-orbit-pulse 4s ease-out infinite paused;
    pointer-events: none;
  }

  .offer-icon > svg, .quote-mark > svg {
    animation: ek-sparkle-float 5s ease-in-out infinite paused;
  }

  .ek-motion-active:not(.ek-page-idle) .offer-banner.ek-in-view .offer-icon::after,
  .ek-motion-active:not(.ek-page-idle) .offer-banner.ek-in-view .offer-icon > svg,
  .ek-motion-active:not(.ek-page-idle) .testimonial-section.ek-in-view .quote-mark > svg {
    animation-play-state: running;
  }

  .partners-list img {
    transition: transform 600ms var(--ek-ease), opacity 400ms ease;
  }

  .partners-list li:hover img { transform: translateY(-5px) scale(1.035); }

  .contact-form {
    transition: box-shadow 600ms ease, transform 600ms var(--ek-ease);
  }

  .contact-form:focus-within {
    box-shadow: 0 18px 55px rgba(70, 65, 62, .14), 0 0 0 1px var(--gold-soft);
  }

  .contact-form input, .contact-form textarea, .contact-form select {
    transition: border-color 300ms ease, box-shadow 300ms ease;
  }

  .site-nav > a:not(.nav-cta), .text-link { position: relative; }

  .site-nav > a:not(.nav-cta)::after {
    position: absolute;
    inset: auto 0 -6px;
    height: 1px;
    background: var(--gold);
    content: "";
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 500ms var(--ek-ease);
  }

  .site-nav > a:not(.nav-cta):focus-visible::after,
  .site-nav > a:not(.nav-cta):hover::after {
    transform: scaleX(1);
    transform-origin: left;
  }

  .text-link > span { display: inline-block; transition: translate 400ms var(--ek-ease); }
  .text-link:hover > span { translate: 5px 0; }

  .services-menu, .nav-dropdown:focus-within .services-menu {
    transform-origin: top center;
    animation: ek-menu-enter 450ms var(--ek-ease) both;
  }

  .menu-toggle span:not(.sr-only) { transition: transform 400ms var(--ek-ease); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { transform: translateY(3px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-3px) rotate(-45deg); }

  @media (hover: hover) and (pointer: fine) and (min-width: 721px) {
    .button:hover, .nav-cta:hover {
      transform: translateY(-5px) scale(1.025);
      box-shadow: 0 14px 30px rgba(70, 65, 62, .18);
    }

    .button:hover > span:not(.ek-ripple), .button:hover > svg,
    .nav-cta:hover > span:not(.ek-ripple) { transform: translate(4px, -2px); }
    .button:active, .nav-cta:active { transform: translateY(0) scale(.96); }

    a.service-tile:hover, .team-card:hover {
      transform: perspective(1100px) rotateX(var(--ek-tilt-x, 0deg))
        rotateY(var(--ek-tilt-y, 0deg)) translateY(-10px);
      box-shadow: 0 24px 55px rgba(70, 65, 62, .15);
    }

    a.service-tile:active { transform: translateY(-3px) scale(.99); }
    .service-tile:hover::after, .team-card:hover::after { opacity: 1; }
    .service-tile:hover > span > svg { transform: translateX(7px); }
    .service-tile:hover .service-tile-media > img { --ek-photo-hover: 1.065; }
    .approach-image:hover > img { scale: calc(var(--ek-approach-zoom, 1) + .025); }
  }

  @media (max-width: 720px) {
    .site-nav.is-open, .site-nav .services-menu {
      animation: ek-menu-enter 400ms var(--ek-ease) both;
    }
    .site-nav > a:not(.nav-cta)::after { bottom: 6px; }
    .ek-motion-active .hero-visual > img { transform: translateY(var(--ek-hero-scroll, 0px)) scale(1.055); }
    a.service-tile:hover { transform: none; }
    a.service-tile:active { transform: scale(.985); }
  }

  @keyframes ek-photo-breathe {
    from { scale: 1; }
    to { scale: 1.035; }
  }

  @keyframes ek-button-light {
    0%, 62% { transform: translateX(0) skewX(-18deg); }
    90%, 100% { transform: translateX(520%) skewX(-18deg); }
  }

  @keyframes ek-orbit-pulse {
    0% { opacity: .4; scale: .8; }
    75%, 100% { opacity: 0; scale: 1.28; }
  }

  @keyframes ek-sparkle-float {
    0%, 100% { translate: 0 3px; rotate: -10deg; }
    50% { translate: 0 -5px; rotate: 12deg; }
  }

  @keyframes ek-menu-enter {
    from { opacity: 0; translate: 0 -14px; scale: .98; }
    to { opacity: 1; translate: 0 0; scale: 1; }
  }
}

@media (prefers-reduced-motion: reduce) {
  .button:hover, .nav-cta:hover, a.service-tile:hover { transform: none; }
}
