﻿/* utilities.css — helper utilities and responsive rules */
@media (max-width: 1050px) {
  .topbar .container {
    align-items: flex-start;
    flex-direction: column;
  }

  .brand {
    margin-left: 0;
    padding-left: 0;
  }

  .header-nav {
    justify-content: flex-start;
    width: 100%;
    margin-right: 0;
    padding-right: 0;
  }

  .cards,
  .two-col,
  .faq,
  .services-grid {
    grid-template-columns: 1fr;
  }

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

  .value-block h2 {
    min-height: 0;
  }

  .hero-content h1 {
    font-size: 42px;
  }

}

@media (max-width: 640px) {
  .container {
    padding: 0 16px;
  }

  .header-nav {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 18px;
  }

  .header-link {
    justify-content: flex-start;
    padding: 4px 0;
    font-size: 12px;
    white-space: normal;
    text-align: left;
  }

  .hero-banner {
    padding: 64px 0 72px;
  }

  .hero-content h1 {
    font-size: 34px;
  }

  .hero-content .sub {
    font-size: 18px;
  }

  .value-block h2 {
    font-size: 28px;
  }

  .about-section .section-title,
  .pricing .section-title {
    font-size: 32px;
  }

  .about-section .section-text,
  .pricing .section-text {
    font-size: 18px;
  }

  .signal-list li {
    font-size: 16px;
  }

  .section-title {
    font-size: 28px;
  }

  .card h3 {
    font-size: 30px;
  }

  .price {
    font-size: 22px;
  }
}

@media (max-width: 760px) {
  .cards {
    height: 440px;
    perspective: 1000px;
  }

  .card {
    width: min(330px, calc(100% - 48px));
  }

  .card.is-active {
    transform: translateX(-50%) scale(1);
  }

  .card.is-prev {
    opacity: 0.32;
    --card-dither: 0.48;
    transform: translateX(-112%) translateZ(-165px) rotateY(-24deg) scale(0.76);
  }

  .card.is-next {
    opacity: 0.32;
    --card-dither: 0.48;
    transform: translateX(12%) translateZ(-165px) rotateY(24deg) scale(0.76);
  }

  .pricing-arrow {
    width: 42px;
    height: 42px;
  }

  .pricing-arrow-prev {
    left: -4px;
  }

  .pricing-arrow-next {
    right: -4px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .card {
    transition: none;
  }
}
