/* ============================================================
   SHARED.CSS — Universal resets & utility classes
   Used by: onlyfansgenerator.com, only-fans-ai.com,
            ai-bitches.com, ai-ofcontent.com
   Each site loads this FIRST, then its own site-specific CSS.
   ============================================================ */

/* --- Reset --- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; -webkit-text-size-adjust: 100%; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; line-height: 1.7; }
img, video, svg { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
button { cursor: pointer; border: none; background: none; font: inherit; }
ul, ol { list-style: none; padding: 0; margin: 0; }
h1, h2, h3, h4, h5, h6 { line-height: 1.3; font-weight: 700; }
p { margin-bottom: 1rem; }
input, textarea, select { font: inherit; }
table { border-collapse: collapse; width: 100%; }

/* --- Utility: Layout --- */
.container { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }
.container-sm { max-width: 800px; margin: 0 auto; padding: 0 1.5rem; }
.container-lg { max-width: 1400px; margin: 0 auto; padding: 0 1.5rem; }
.flex { display: flex; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.gap-1 { gap: .5rem; }
.gap-2 { gap: 1rem; }
.gap-3 { gap: 1.5rem; }
.gap-4 { gap: 2rem; }
.grid { display: grid; }

/* --- Utility: Spacing --- */
.section { padding: 5rem 0; }
.section-sm { padding: 3rem 0; }
.section-lg { padding: 7rem 0; }
.mt-1 { margin-top: .5rem; }
.mt-2 { margin-top: 1rem; }
.mt-3 { margin-top: 1.5rem; }
.mt-4 { margin-top: 2rem; }
.mb-1 { margin-bottom: .5rem; }
.mb-2 { margin-bottom: 1rem; }
.mb-3 { margin-bottom: 1.5rem; }
.mb-4 { margin-bottom: 2rem; }

/* --- Utility: Text --- */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }
.font-bold { font-weight: 700; }
.font-semibold { font-weight: 600; }
.font-medium { font-weight: 500; }
.uppercase { text-transform: uppercase; }
.tracking-wide { letter-spacing: .05em; }

/* --- Utility: Display --- */
.block { display: block; }
.inline-block { display: inline-block; }
.hidden { display: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.overflow-hidden { overflow: hidden; }
.relative { position: relative; }

/* --- Utility: Responsive --- */
@media (max-width: 768px) {
  .md-hidden { display: none; }
  .section { padding: 3rem 0; }
}
@media (min-width: 769px) {
  .md-visible { display: block; }
}
@media (max-width: 480px) {
  .sm-hidden { display: none; }
  .container { padding: 0 1rem; }
}

/* --- Print --- */
@media print {
  body { background: #fff; color: #000; }
  .no-print { display: none !important; }
}
