@layer gfv-components {
  /* Container Queries */
  .gfv-feature-card {
    container-type: inline-size;
  }

  @container (max-width: 300px) {
    .gfv-feature-card {
      padding: var(--gfv-space-4);
    }

    .gfv-feature-card__title {
      font-size: var(--gfv-font-size-lg);
    }
  }

  .gfv-testimonial-card {
    container-type: inline-size;
  }

  @container (max-width: 350px) {
    .gfv-testimonial-card {
      flex-direction: column;
      text-align: center;
    }
  }

  /* Responsive Adjustments */
  @media (max-width: 768px) {
    .gfv-nav__list {
      display: none;
    }

    .gfv-nav-toggle {
      display: flex;
    }

    .gfv-hero__content,
    .gfv-showcase__content,
    .gfv-lead__content,
    .gfv-footer__content {
      grid-template-columns: 1fr;
      gap: var(--gfv-space-8);
    }

    .gfv-hero__media,
    .gfv-showcase__media,
    .gfv-lead__media {
      order: -1;
    }

    .gfv-hero {
      padding: var(--gfv-space-12) 0;
    }

    .gfv-features,
    .gfv-showcase,
    .gfv-timeline,
    .gfv-testimonials,
    .gfv-lead {
      padding: var(--gfv-space-12) 0;
    }

    .gfv-hero__actions {
      flex-direction: column;
      align-items: stretch;
    }

    .gfv-btn {
      justify-content: center;
    }

    .gfv-timeline__content {
      grid-template-columns: 1fr;
    }

    .gfv-privacy-panel {
      width: 100vw;
      right: -100vw;
    }

    .gfv-footer__bottom {
      flex-direction: column;
      gap: var(--gfv-space-2);
      text-align: center;
    }
  }

  @media (max-width: 480px) {
    .gfv-container {
      padding: 0 var(--gfv-space-3);
    }

    .gfv-header__inner {
      padding: var(--gfv-space-3) 0;
    }

    .gfv-features__grid,
    .gfv-testimonials__grid {
      grid-template-columns: 1fr;
    }

    .gfv-stats__grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }

  /* Animation Classes */
  .gfv-fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity var(--gfv-transition-slow), transform var(--gfv-transition-slow);
  }

  .gfv-fade-in--visible {
    opacity: 1;
    transform: translateY(0);
  }

  .gfv-scale-in {
    opacity: 0;
    transform: scale(0.95);
    transition: opacity var(--gfv-transition-base), transform var(--gfv-transition-base);
  }

  .gfv-scale-in--visible {
    opacity: 1;
    transform: scale(1);
  }

  /* Focus Trap */
  .gfv-focus-trap {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: var(--gfv-z-modal);
    display: none;
  }

  .gfv-focus-trap--active {
    display: block;
  }
}
