/* ==========================================================================
   COMPOSITION & VIEWPORT — spacing, hierarchy, fit
   ========================================================================== */

:root {
  --header-h: 76px;
  --section-pad: clamp(2.25rem, 4.5vw, 4rem);
  --ease-premium: cubic-bezier(0.22, 1, 0.36, 1);
}

html {
  font-size: 106.25%;
}

@media (min-width: 1200px) {
  html { font-size: 112.5%; }
}

@media (min-width: 1600px) {
  html { font-size: 115%; }
}

/* ---- Global motion (softer) ---- */
.btn,
.nav__link,
.service-card,
.stat,
.testimonial,
.social-link,
.footer__nav-link,
.cta__feature-icon {
  transition-duration: 0.55s;
  transition-timing-function: var(--ease-premium);
}

.service-card:hover,
.service-card:focus-visible {
  transform: translateY(-4px) !important;
  box-shadow:
    0 14px 36px rgba(0, 0, 0, 0.45),
    0 0 24px rgba(182, 255, 0, 0.08) !important;
}

.stat:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.38), 0 0 20px rgba(182, 255, 0, 0.06) !important;
  border-color: rgba(182, 255, 0, 0.2) !important;
}

.testimonials__marquee .testimonial:hover {
  transform: none !important;
}

/* Hero — full viewport & cinema: see hero-cinema.css */

/* ---- Services: readable on scroll-in ---- */
.services.section {
  padding-top: clamp(2rem, 4vw, 3rem) !important;
  padding-bottom: clamp(2.5rem, 5vw, 4rem) !important;
}

.services .section__header {
  margin-bottom: clamp(1rem, 2.5vw, 1.75rem) !important;
}

.services .section__title {
  font-size: clamp(1.85rem, 3.8vw, 2.65rem) !important;
  margin-bottom: 0.5rem;
}

.services .section__desc {
  font-size: clamp(0.92rem, 1.8vw, 1.02rem) !important;
  margin-bottom: 0;
}

.services__grid {
  gap: 0.85rem !important;
}

.service-card__body {
  padding: 0.85rem 1rem 1rem !important;
}

.service-card__media {
  aspect-ratio: 5 / 4 !important;
}

.service-card__text {
  font-size: 0.82rem !important;
  line-height: 1.5 !important;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---- Stats: premium proportions ---- */
.stats {
  padding-block: clamp(2rem, 4vw, 3.25rem) !important;
}

.stats__grid {
  gap: 1rem !important;
}

.stat {
  padding: 1.1rem 1.15rem !important;
  gap: 1rem !important;
  border-radius: var(--radius-md) !important;
  min-height: 0;
}

.stat__icon {
  width: 48px !important;
  height: 48px !important;
  border-radius: 10px !important;
  background: rgba(182, 255, 0, 0.06) !important;
  border-color: rgba(182, 255, 0, 0.22) !important;
}

.stat__icon svg {
  width: 22px !important;
  height: 22px !important;
}

.stat__value {
  font-size: clamp(1.65rem, 2.8vw, 2.15rem) !important;
}

.stat__label {
  font-size: 0.78rem !important;
  line-height: 1.35 !important;
}

/* ---- About: compact ---- */
.about.section {
  padding-top: clamp(2rem, 4vw, 3rem) !important;
  padding-bottom: clamp(2rem, 4vw, 3.5rem) !important;
}

.about__inner {
  grid-template-columns: minmax(300px, 440px) minmax(0, 1fr) minmax(200px, 260px) !important;
  gap: clamp(1.5rem, 3vw, 2.5rem) !important;
  align-items: center !important;
}

.about__visual {
  width: 100%;
}

.about__frame {
  min-height: min(420px, 58vh) !important;
  max-height: none !important;
  width: 100%;
  align-items: flex-end !important;
  justify-content: center;
}

.about__photo-mask {
  width: 100%;
  max-width: 480px !important;
  max-height: min(68vh, 620px) !important;
}

.about__img {
  width: 100% !important;
  max-width: 480px !important;
  max-height: min(66vh, 600px) !important;
  object-fit: contain !important;
  object-position: center 12% !important;
}

.about__signature {
  bottom: 1rem !important;
}

.about__text {
  font-size: clamp(0.95rem, 1.7vw, 1.05rem) !important;
  margin-bottom: 1rem !important;
  line-height: 1.6 !important;
}

.about__highlights {
  margin-bottom: 1.25rem !important;
  gap: 0.35rem !important;
}

.about .section__title--left {
  font-size: clamp(1.75rem, 3.5vw, 2.35rem) !important;
  margin-bottom: 0.65rem;
}

.about__content .btn {
  margin-top: 0;
}

/* ---- CTA section ---- */
.cta {
  padding-block: clamp(2.5rem, 5vw, 4rem) !important;
}

.cta__inner {
  gap: 1.5rem !important;
  align-items: center !important;
}

.cta__title {
  font-size: clamp(1.65rem, 3.5vw, 2.35rem) !important;
  max-width: 22rem;
}

.cta__features {
  margin-top: 1rem !important;
  gap: 1rem 2rem !important;
}

.cta__features li {
  gap: 0.75rem !important;
}

.cta__feature-icon {
  width: 44px !important;
  height: 44px !important;
}

.cta__feature-icon .cta__icon-svg {
  width: 21px !important;
  height: 21px !important;
}

/* ---- Section headers global ---- */
.section {
  padding-block: var(--section-pad);
}

.section__header {
  margin-bottom: clamp(1.25rem, 3vw, 2rem);
}

.section__title {
  font-size: clamp(1.85rem, 4vw, 2.75rem) !important;
}

.section__desc {
  font-size: clamp(0.92rem, 1.8vw, 1.05rem) !important;
}

/* ---- Header compact ---- */
.header {
  height: var(--header-h);
}

.nav__cta {
  min-height: 44px !important;
  padding: 0.65rem 1.25rem !important;
  font-size: 0.72rem !important;
}

.btn {
  min-height: 46px;
}

/* ---- Testimonials ---- */
.testimonials.section {
  padding-top: clamp(2rem, 4vw, 3rem) !important;
}

@media (max-width: 768px) {
  .about__inner {
    grid-template-columns: 1fr !important;
  }

  .about__visual {
    max-width: min(100%, 420px) !important;
    margin-inline: auto;
  }

  .about__photo-mask,
  .about__img {
    max-width: 100% !important;
    max-height: min(62vh, 520px) !important;
  }

  .about__frame {
    min-height: 360px !important;
  }

  .stats__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Footer — nav on same vertical axis as logo & CTA */
@media (min-width: 769px) {
  .footer__top {
    align-items: center;
  }

  .logo--footer,
  .footer__nav,
  .footer__cta {
    min-height: 48px;
  }

  .footer__nav-link {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    padding: 0;
  }

  .logo--footer,
  .footer__cta {
    display: inline-flex;
    align-items: center;
  }
}
