/* ========================================
   Responsive CSS (Generic, Two Breakpoints)
   - Mobile (≤768px)
   - Not mobile (≥769px)
   Targets only global HTML tags and core layout wrappers
   ======================================== */

/* =====================
   Not mobile (≥769px)
   ===================== */
@media (min-width: 769px) {
  /* Visibility utilities */
  /* .mobile-only { display: none !important; }
  .desktop-only { display: flex !important; } */

  /* Sections: comfortable vertical rhythm; sides handled by container */
  body { 
    overflow-x: hidden; 
  }

  /* Container: center content with max width, no side padding */
  .container {
    margin-left: auto;
    margin-right: auto;
    max-width: var(--container-max, 1200px);
    padding-left: 0;
    padding-right: 0;
  }

  /* Content wrapper inside container: default grid behavior */
  .container .content {
    display: grid;
    grid-template-columns: var(--content-columns, 1fr 1fr);
    gap: var(--spacing-lg);
    align-items: stretch;
  }

  /* Typography scaling (desktop/tablet) */
  h1 { font-size: var(--text-5xl); }
  h2 { font-size: var(--text-4xl); }
  h3 { font-size: var(--text-2xl); }
  h4 { font-size: var(--text-xl); }
  h5 { font-size: var(--text-lg); }
  h6 { font-size: var(--text-base); }
  p  { font-size: var(--text-base); }
}

/* =====================
   Mobile (≤768px)
   ===================== */
@media (max-width: 768px) {

  /* body { 
    padding-top: var(--spacing-2xl);
  } */

  /* Visibility utilities */
  /* .mobile-only { display: flex !important; }
  .desktop-only { display: none !important; } */

  /* Section: vertical spacing, no side padding (container adds gutters) */
    section {
    padding-top: var(--spacing-xl);
    padding-bottom: var(--spacing-xl);
    padding-left: 0;
    padding-right: 0;
  }

  /* Container: full width with 8px gutters */
    .container {
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
    padding-left: var(--spacing-sm); /* 16px */
    padding-right: var(--spacing-sm); /* 16 px */
    }
    
  /* Content wrapper: single column, consistent gaps */
    .container .content {
    display: grid;
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
    align-items: stretch;
  }

  /* Typography scaling (mobile) */
  h1 { font-size: calc(var(--text-5xl) * 0.75)!important; font-weight: 800!important; letter-spacing: -0.025em; line-height: 1em; }
  h2 { font-size: calc(var(--text-4xl) * 0.8)!important; font-weight: 700!important; letter-spacing: -0.025em; }
  h3 { font-size: var(--text-2xl); }
  h4 { font-size: var(--text-lg); }
  h5 { font-size: var(--text-base); }
  h6 { font-size: var(--text-sm); }
  p  { font-size: var(--text-sm); }

  h1, h2, h3, h4 {
    text-align: center;
  }
  p { text-align: center!important; }

  .grid-cols-2 {
    grid-template-columns: 1fr !important;
  }
}

/* =====================
   Global accessibility
   ===================== */
@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
