@layer gfv-utilities {
  /* Spacing Utilities */
  .gfv-mt-0 {
    margin-top: 0;
  }
  .gfv-mt-1 {
    margin-top: var(--gfv-space-1);
  }
  .gfv-mt-2 {
    margin-top: var(--gfv-space-2);
  }
  .gfv-mt-3 {
    margin-top: var(--gfv-space-3);
  }
  .gfv-mt-4 {
    margin-top: var(--gfv-space-4);
  }
  .gfv-mt-6 {
    margin-top: var(--gfv-space-6);
  }
  .gfv-mt-8 {
    margin-top: var(--gfv-space-8);
  }

  .gfv-mb-0 {
    margin-bottom: 0;
  }
  .gfv-mb-1 {
    margin-bottom: var(--gfv-space-1);
  }
  .gfv-mb-2 {
    margin-bottom: var(--gfv-space-2);
  }
  .gfv-mb-3 {
    margin-bottom: var(--gfv-space-3);
  }
  .gfv-mb-4 {
    margin-bottom: var(--gfv-space-4);
  }
  .gfv-mb-6 {
    margin-bottom: var(--gfv-space-6);
  }
  .gfv-mb-8 {
    margin-bottom: var(--gfv-space-8);
  }

  /* Text Utilities */
  .gfv-text-center {
    text-align: center;
  }
  .gfv-text-left {
    text-align: left;
  }
  .gfv-text-right {
    text-align: right;
  }

  .gfv-font-bold {
    font-weight: var(--gfv-font-weight-bold);
  }
  .gfv-font-semibold {
    font-weight: var(--gfv-font-weight-semibold);
  }
  .gfv-font-medium {
    font-weight: var(--gfv-font-weight-medium);
  }
  .gfv-font-normal {
    font-weight: var(--gfv-font-weight-normal);
  }

  /* Display Utilities */
  .gfv-hidden {
    display: none;
  }
  .gfv-block {
    display: block;
  }
  .gfv-inline {
    display: inline;
  }
  .gfv-inline-block {
    display: inline-block;
  }
  .gfv-flex {
    display: flex;
  }
  .gfv-grid {
    display: grid;
  }

  /* Accessibility */
  .gfv-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  /* Print Styles */
  @media print {
    .gfv-header,
    .gfv-footer,
    .gfv-privacy-panel,
    .gfv-btn,
    .gfv-form {
      display: none !important;
    }

    .gfv-hero,
    .gfv-features,
    .gfv-showcase,
    .gfv-testimonials {
      padding: var(--gfv-space-4) 0 !important;
    }

    .gfv-hero__content,
    .gfv-showcase__content {
      grid-template-columns: 1fr !important;
    }

    .gfv-hero__media,
    .gfv-showcase__media {
      display: none !important;
    }

    body {
      font-size: 12pt !important;
      line-height: 1.4 !important;
      color: #000 !important;
      background: #fff !important;
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
      color: #000 !important;
      page-break-after: avoid;
    }

    p,
    li {
      orphans: 3;
      widows: 3;
    }

    .gfv-container {
      max-width: none !important;
      padding: 0 !important;
    }
  }
}
