.reveal.reveal-left {
  transform: translateX(-80px) translateY(0) scale(1);
}
.reveal.reveal-left.visible {
  transform: translateX(0) translateY(0) scale(1);
}

.reveal.reveal-right {
  transform: translateX(80px) translateY(0) scale(1);
}
.reveal.reveal-right.visible {
  transform: translateX(0) translateY(0) scale(1);
}

.reveal.reveal-scale {
  transform: scale(.75) translateY(0);
}
.reveal.reveal-scale.visible {
  transform: scale(1) translateY(0);
}

.reveal.reveal-flip {
  transform: perspective(800px) rotateX(12deg) translateY(50px) scale(.97);
}
.reveal.reveal-flip.visible {
  transform: perspective(800px) rotateX(0) translateY(0) scale(1);
}

.reveal.reveal-blur {
  filter: blur(14px);
  transform: translateY(24px) scale(1);
}
.reveal.reveal-blur.visible {
  filter: blur(0);
  transform: translateY(0) scale(1);
}

.reveal.reveal-rotate {
  transform: rotate(-6deg) translateY(50px) scale(.92);
}
.reveal.reveal-rotate.visible {
  transform: rotate(0) translateY(0) scale(1);
}

.reveal.reveal-zoom {
  transform: scale(1.15) translateY(0);
  filter: blur(6px);
}
.reveal.reveal-zoom.visible {
  transform: scale(1) translateY(0);
  filter: blur(0);
}

@keyframes heroFadeSlideUp {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes heroTitleReveal {
  from {
    opacity: 0;
    transform: translateY(36px) scale(.96);
    letter-spacing: .12em;
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
    letter-spacing: inherit;
  }
}

.hero-content .hero-eyebrow,
.hero-content h1 .hero-title-light,
.hero-content h1 .hero-title-accent,
.hero-content .hero-subtitle,
.hero-content .hero-actions {
  opacity: 0;
}

.hero-content.visible .hero-eyebrow {
  animation: heroFadeSlideUp .7s var(--ease) .05s both;
}
.hero-content.visible h1 .hero-title-light {
  animation: heroFadeSlideUp .7s var(--ease) .12s both;
}
.hero-content.visible h1 .hero-title-accent {
  animation: heroFadeSlideUp .7s var(--ease) .18s both;
}
.hero-content.visible .hero-subtitle {
  animation: heroFadeSlideUp .7s var(--ease) .25s both;
}
.hero-content.visible .hero-actions {
  animation: heroFadeSlideUp .7s var(--ease) .32s both;
}

@keyframes heroAccentShine {
  0%   { background-position: 100% 0; }
  100% { background-position: 0% 0; }
}

.hero-content.visible .hero-title-accent {
  background-image: linear-gradient(
    100deg,
    #ffffff 0%,
    #ffffff 45%,
    rgba(255, 255, 255, 0.55) 50%,
    #ffffff 55%,
    #ffffff 100%
  );
  background-size: 300% 100%;
  background-repeat: no-repeat;
  background-position: 100% 0;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: heroFadeSlideUp .7s var(--ease) .18s both,
             heroAccentShine 1.8s cubic-bezier(.4, 0, .2, 1) 1.4s forwards;
}

@keyframes clipRevealLeft {
  from { clip-path: inset(0 100% 0 0); }
  to   { clip-path: inset(0 0 0 0); }
}
@keyframes clipRevealRight {
  from { clip-path: inset(0 0 0 100%); }
  to   { clip-path: inset(0 0 0 0); }
}
@keyframes clipRevealUp {
  from { clip-path: inset(100% 0 0 0); }
  to   { clip-path: inset(0 0 0 0); }
}

.about-img-main,
.about-img-secondary {
  clip-path: inset(0 100% 0 0);
}
.about-visuals.visible .about-img-main {
  animation: clipRevealLeft 1.2s var(--ease) .25s forwards;
}
.about-visuals.visible .about-img-secondary {
  animation: clipRevealRight 1.2s var(--ease) .55s forwards;
}

.service-card .service-img {
  clip-path: inset(0 0 0 0);
  transition: clip-path .6s var(--ease);
}
.service-card:hover .service-img {
  clip-path: inset(0 0 0 0);
}

.tilt-3d {
  transform-style: preserve-3d;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
  will-change: transform;
}
.tilt-3d:hover {
  z-index: 2;
}

.btn-primary,
.btn-outline {
  position: relative;
  overflow: hidden;
}
.btn-primary::after,
.btn-outline::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  background: radial-gradient(circle, rgba(255,255,255,.25), transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width .55s var(--ease), height .55s var(--ease), opacity .4s;
  pointer-events: none;
  opacity: 0;
}
.btn-primary:hover::after,
.btn-outline:hover::after {
  width: 320px;
  height: 320px;
  opacity: 1;
}

.partner-card:hover .partner-icon {
  transform: scale(1.18) rotate(6deg);
  transition: transform .4s var(--ease-spring);
}
.feature-icon {
  transition: transform .3s var(--ease);
}
.features-list li:hover .feature-icon {
  transform: scale(1.15) translateX(2px);
  transition: transform .4s var(--ease-spring);
}

.stat.counted .stat-number {
  animation: none !important;
}

.about-award-badge {
  animation: none;
}

.section-header::after {
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform .9s var(--ease) .3s;
}
.section-header.visible::after,
.reveal.visible .section-header::after,
.reveal.visible ~ .section-header::after {
  transform: scaleX(1);
}

.section-header-center::after {
  transform-origin: center center;
}

.section-header {
  opacity: 1;
}

.footer-col ul li a {
  position: relative;
  display: inline;
}
.footer-col ul li a::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background: rgba(255,255,255,.6);
  transition: width .35s var(--ease);
}
.footer-col ul li a:hover::after {
  width: 100%;
}

@keyframes bounceInUp {
  0%   { transform: translateY(140%) scale(.92); opacity: 0; }
  55%  { transform: translateY(-6%) scale(1.02); opacity: 1; }
  75%  { transform: translateY(2%); }
  100% { transform: translateY(0) scale(1); }
}

.cookie-consent.show {
  animation: bounceInUp .65s var(--ease) forwards;
}

@keyframes stickyBounce {
  0%   { transform: translate(-50%, calc(100% + 48px)); }
  65%  { transform: translate(-50%, -5px); }
  100% { transform: translate(-50%, 0); }
}

.sticky-bar.on {
  animation: stickyBounce .55s var(--ease) forwards;
}

.testimonial-card {
  transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
.testimonial-card:hover {
  transform: translateY(-10px) rotate(-.5deg);
}

@keyframes tagSlideIn {
  from { transform: translateX(20px); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}

.service-card.visible .service-tag,
.dev-card.visible .dev-badge {
  animation: tagSlideIn .5s var(--ease) .4s both;
}

.scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--primary), var(--accent));
  z-index: 1100;
  transform-origin: left;
  transform: scaleX(0);
  transition: transform .08s linear;
  pointer-events: none;
}

.social-btn {
  transition: background .3s var(--ease), transform .3s var(--ease-spring), box-shadow .3s;
}
.social-btn:hover {
  transform: translateY(-4px) scale(1.1);
  box-shadow: 0 6px 20px rgba(255,255,255,.15);
}

@keyframes focusRing {
  0%   { box-shadow: 0 0 0 0 rgba(26,26,26,.15); }
  50%  { box-shadow: 0 0 0 5px rgba(26,26,26,.08); }
  100% { box-shadow: 0 0 0 3px rgba(26,26,26,.06); }
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  animation: focusRing .4s var(--ease);
}

.off-market-banner {
  transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
.off-market-banner:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}
.off-market-img {
  transition: filter .6s var(--ease), transform .6s var(--ease);
}
.off-market-banner:hover .off-market-img {
  filter: grayscale(0%);
  transform: scale(1.01);
}

.skup-highlight {
  animation: none;
}

.hero-scroll {
  animation: none;
}

@keyframes preloaderPulse {
  0%,100% { opacity: .5; }
  50%     { opacity: 1; }
}

.preloader-text {
  animation: preloaderPulse 1.5s ease-in-out infinite;
}

.nav-link {
  transition: color .25s var(--ease), transform .25s var(--ease);
}
.nav-link:hover {
  transform: translateY(-1px);
}

.testimonial-stars {
  animation: none;
}

.hero {
  will-change: background-position;
}
.hero-content {
  will-change: transform, opacity;
  transition: none;
}

.dist-card,
.service-card,
.dev-card,
.testimonial-card,
.partner-card {
  will-change: transform;
}

.tilt-3d:hover {
  transform: var(--tilt-transform, none);
}

.stat .stat-number {
  will-change: auto;
}

@media (max-width: 1024px) {
  .two-col {
    gap: clamp(32px, 5vw, 60px);
  }
  .dist-grid,
  .services-grid,
  .dev-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .partners-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .hero-content {
    padding-left: clamp(20px, 6vw, 60px);
    padding-right: clamp(20px, 6vw, 60px);
  }
}

@media (max-width: 768px) {

  .nav-links.open {
    width: 100%;
    padding-top: 90px;
    padding-left: 28px;
    padding-right: 28px;
    backdrop-filter: blur(20px);
    background: rgba(255,255,255,.98);
  }

  .hero-content {
    padding-top: 100px;
    padding-bottom: clamp(140px, 24vw, 240px);
  }

  .dist-grid,
  .services-grid,
  .dev-grid,
  .testimonials-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .partners-grid {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }

  .about-img-stack {
    max-width: 100%;
    margin: 0 auto;
  }

  .two-col > .text {
    text-align: center;
  }
  .two-col > .text .eyebrow {
    justify-content: center;
  }
  .two-col > .text .lead {
    margin-left: auto;
    margin-right: auto;
  }
  .two-col > .text .features-list {
    text-align: left;
    display: inline-flex;
    flex-direction: column;
  }
  .two-col > .text .btn {
    align-self: center;
  }
  .two-col > .text .agent-credentials {
    text-align: left;
    align-items: center;
  }
  .two-col > .text .agent-quote {
    text-align: left;
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
  }

  .agent-visual {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .agent-photo {
    width: 100%;
    max-width: 440px;
    margin: 0 auto;
  }
  .agent-card-float {
    align-self: center;
  }

  .section-header {
    text-align: center;
    margin-bottom: clamp(24px, 4vw, 40px);
  }
  .section-header::after {
    margin-left: auto;
    margin-right: auto;
  }
  .section-header .section-desc {
    margin-left: auto;
    margin-right: auto;
  }

  .contact-cta-btns {
    justify-content: center;
  }

  .off-market-text {
    align-items: center;
    text-align: center;
  }
  .off-market-text .btn-primary {
    align-self: center;
  }

  .dist-card {
    padding: 24px 20px;
  }

  .contact-layout {
    gap: 24px;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    gap: 24px;
    text-align: center;
  }
  .footer-brand {
    text-align: center;
  }
  .footer-brand p {
    margin-left: auto;
    margin-right: auto;
  }
  .footer-social {
    justify-content: center;
  }
  .footer-col {
    text-align: center;
  }
  .footer-col ul {
    align-items: center;
  }
  .footer-address {
    align-items: center;
  }

  .reveal {
    transform: translateY(20px) scale(.985);
  }
  .reveal.reveal-left,
  .reveal.reveal-right {
    transform: translateY(20px) scale(.985);
  }
  .reveal.reveal-flip {
    transform: perspective(600px) rotateX(8deg) translateY(30px);
  }

  .off-market-img {
    min-height: 200px;
  }

  .agent-card-float {
    position: relative;
    left: 0;
    bottom: -12px;
    margin-top: -20px;
  }

  .tilt-3d {
    transform: none !important;
  }

  .sticky-bar {
    left: 12px;
    right: 12px;
    bottom: 12px;
    transform: translateX(0) translateY(calc(100% + 48px));
    border-radius: 12px;
    width: auto;
  }
  .sticky-bar.on {
    transform: translateX(0) translateY(0);
    animation: none;
  }
  .sticky-phone {
    padding: 8px 12px;
    font-size: .78rem;
    gap: 6px;
    flex: 1;
    justify-content: center;
  }
  .sticky-phone span {
    display: inline;
  }
  .sticky-offers {
    padding: 8px 12px;
    font-size: .78rem;
    flex: 1;
    text-align: center;
  }
  .sticky-close {
    padding: 8px 10px;
  }

  .section {
    padding-top: clamp(32px, 5vw, 48px);
    padding-bottom: clamp(32px, 5vw, 48px);
    padding-left: 0;
    padding-right: 0;
  }

  .two-col {
    gap: clamp(24px, 4vw, 40px);
  }

  .services-grid {
    margin-bottom: 24px;
  }
}

@media (max-width: 480px) {

  h1 {
    font-size: clamp(2rem, 8vw, 3rem);
  }
  .hero-content {
    padding-top: 90px;
    padding-bottom: 120px;
  }
  .hero-subtitle {
    font-size: .92rem;
  }
  .hero-actions {
    flex-direction: column;
    width: 100%;
  }
  .hero-actions .btn {
    width: 100%;
    justify-content: center;
  }

  .partners-grid {
    grid-template-columns: 1fr;
  }

  .stat-number {
    font-size: clamp(1.6rem, 8vw, 2.4rem);
  }

  .about-img-main {
    width: 85%;
    height: 65%;
  }
  .about-img-secondary {
    width: 50%;
    height: 40%;
  }

  .cookie-consent {
    left: 8px;
    bottom: 8px;
    width: calc(100vw - 16px);
    padding: 16px;
  }

  .contact-form,
  .contact-info-card {
    padding: 20px;
  }
  .contact-cta-btns {
    flex-direction: column;
  }
  .contact-cta-btns .btn {
    width: 100%;
    justify-content: center;
  }

  .off-market-text {
    padding: 24px 20px;
  }

  .form-row {
    grid-template-columns: 1fr;
  }

  .nav-cta {
    padding: 8px 14px;
    font-size: .75rem;
  }

  .sticky-bar {
    left: 8px;
    right: 8px;
    bottom: 8px;
  }
  .sticky-phone {
    padding: 7px 10px;
    font-size: .72rem;
  }
  .sticky-phone svg {
    width: 14px;
    height: 14px;
  }
  .sticky-offers {
    padding: 7px 10px;
    font-size: .72rem;
  }
  .sticky-close {
    padding: 7px 8px;
  }

  .footer-top {
    padding-left: 0;
    padding-right: 0;
  }
  .footer-bottom-inner {
    flex-direction: column;
    text-align: center;
    gap: 6px;
  }

  .hero-content.visible .hero-title-accent {
    background: none;
    -webkit-background-clip: unset;
    background-clip: unset;
    -webkit-text-fill-color: #ffffff;
    animation: heroFadeSlideUp .7s var(--ease) .18s both;
  }
}

@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal.reveal-left,
  .reveal.reveal-right,
  .reveal.reveal-scale,
  .reveal.reveal-flip,
  .reveal.reveal-blur,
  .reveal.reveal-rotate,
  .reveal.reveal-zoom {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
    animation: none;
  }
  .hero-content .hero-eyebrow,
  .hero-content h1 .hero-title-light,
  .hero-content h1 .hero-title-accent,
  .hero-content .hero-subtitle,
  .hero-content .hero-actions {
    opacity: 1;
    animation: none !important;
  }
  .about-img-main,
  .about-img-secondary {
    clip-path: none;
    animation: none !important;
  }
  .tilt-3d {
    transform: none !important;
  }
  .testimonial-stars {
    animation: none;
  }
  .about-award-badge {
    animation: none;
  }
  .cookie-consent.show {
    animation: none;
    transform: translateY(0);
  }
  .sticky-bar.on {
    animation: none;
    transform: translate(-50%, 0);
  }

  .hero-content {
    transform: none !important;
    opacity: 1 !important;
  }
}

@keyframes blink {
  0%,100% { opacity: .6; }
  50%     { opacity: 0; }
}

.listing-card {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .6s var(--ease), transform .6s var(--ease),
              box-shadow .3s var(--ease);
}
.listing-card.visible {
  opacity: 1;
  transform: translateY(0);
}

.listing-card:nth-child(1) { transition-delay: .0s; }
.listing-card:nth-child(2) { transition-delay: .1s; }
.listing-card:nth-child(3) { transition-delay: .2s; }
.listing-card:nth-child(4) { transition-delay: .3s; }
.listing-card:nth-child(5) { transition-delay: .35s; }
.listing-card:nth-child(6) { transition-delay: .4s; }

.listing-photo img {
  transition: transform .6s var(--ease);
}
.listing-card:hover .listing-photo img {
  transform: scale(1.06);
}

.page-header {
  animation: heroFadeSlideUp .8s var(--ease) .1s both;
}
