/* ==========================================================
   UTILITY CLASSES  (Bootstrap-style spacing + helpers)
   Scale: 0=0 | 1=.25rem | 2=.5rem | 3=.75rem | 4=1rem
          5=1.5rem | 6=2rem | 7=3rem | 8=4rem | 9=6rem
   Usage: mt-4, mb-6, px-5, py-7, m-0, mx-auto, gap-4 ...
   ========================================================== */

/* ---------- Margin ---------- */
.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-3{margin:.75rem}.m-4{margin:1rem}.m-5{margin:1.5rem}.m-6{margin:2rem}.m-7{margin:3rem}.m-8{margin:4rem}.m-9{margin:6rem}
.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.5rem}.mt-6{margin-top:2rem}.mt-7{margin-top:3rem}.mt-8{margin-top:4rem}.mt-9{margin-top:6rem}
.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.5rem}.mb-6{margin-bottom:2rem}.mb-7{margin-bottom:3rem}.mb-8{margin-bottom:4rem}.mb-9{margin-bottom:6rem}
.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-5{margin-left:1.5rem}.ml-6{margin-left:2rem}.ml-7{margin-left:3rem}.ml-8{margin-left:4rem}
.mr-0{margin-right:0}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-5{margin-right:1.5rem}.mr-6{margin-right:2rem}.mr-7{margin-right:3rem}.mr-8{margin-right:4rem}
.mx-0{margin-left:0;margin-right:0}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-5{margin-left:1.5rem;margin-right:1.5rem}.mx-6{margin-left:2rem;margin-right:2rem}.mx-auto{margin-left:auto;margin-right:auto}
.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-5{margin-top:1.5rem;margin-bottom:1.5rem}.my-6{margin-top:2rem;margin-bottom:2rem}.my-7{margin-top:3rem;margin-bottom:3rem}.my-8{margin-top:4rem;margin-bottom:4rem}
.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}

/* ---------- Padding ---------- */
.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.5rem}.p-6{padding:2rem}.p-7{padding:3rem}.p-8{padding:4rem}.p-9{padding:6rem}
.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.5rem}.pt-6{padding-top:2rem}.pt-7{padding-top:3rem}.pt-8{padding-top:4rem}.pt-9{padding-top:6rem}
.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.5rem}.pb-6{padding-bottom:2rem}.pb-7{padding-bottom:3rem}.pb-8{padding-bottom:4rem}.pb-9{padding-bottom:6rem}
.pl-0{padding-left:0}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.5rem}.pl-6{padding-left:2rem}.pl-7{padding-left:3rem}.pl-8{padding-left:4rem}
.pr-0{padding-right:0}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.5rem}.pr-6{padding-right:2rem}.pr-7{padding-right:3rem}.pr-8{padding-right:4rem}
.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.5rem;padding-right:1.5rem}.px-6{padding-left:2rem;padding-right:2rem}.px-7{padding-left:3rem;padding-right:3rem}.px-8{padding-left:4rem;padding-right:4rem}
.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.5rem;padding-bottom:1.5rem}.py-6{padding-top:2rem;padding-bottom:2rem}.py-7{padding-top:3rem;padding-bottom:3rem}.py-8{padding-top:4rem;padding-bottom:4rem}.py-9{padding-top:6rem;padding-bottom:6rem}

/* ---------- Gap ---------- */
.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.5rem}.gap-6{gap:2rem}.gap-7{gap:3rem}.gap-8{gap:4rem}

/* ---------- Display / Flex ---------- */
.d-none{display:none}.d-block{display:block}.d-flex{display:flex}.d-grid{display:grid}.d-inline-flex{display:inline-flex}
.flex-wrap{flex-wrap:wrap}.flex-column{flex-direction:column}
.align-center{align-items:center}.align-start{align-items:flex-start}.align-end{align-items:flex-end}
.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}

/* ---------- Text ---------- */
.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}
.fw-500{font-weight:500}.fw-600{font-weight:600}.fw-700{font-weight:700}
.text-white{color:#fff}.text-primary{color:var(--primary)}.text-accent{color:var(--accent)}.text-muted{color:var(--muted)}

/* ---------- Misc ---------- */
.w-100{width:100%}.h-100{height:100%}.position-relative{position:relative}.overflow-hidden{overflow:hidden}
.rounded{border-radius:var(--radius)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:999px}
.shadow-sm{box-shadow:var(--shadow-sm)}.shadow{box-shadow:var(--shadow)}.shadow-lg{box-shadow:var(--shadow-lg)}

/* ---------- Responsive utilities ---------- */
@media (max-width:991px){
  .d-lg-none{display:none!important}
  .mt-lg-0{margin-top:0}.mb-lg-5{margin-bottom:1.5rem}.py-lg-7{padding-top:3rem;padding-bottom:3rem}
  .text-lg-center{text-align:center}
}
@media (max-width:575px){
  .d-sm-none{display:none!important}
  .px-sm-4{padding-left:1rem;padding-right:1rem}
  .py-sm-6{padding-top:2rem;padding-bottom:2rem}
}
@media (min-width:992px){
  .d-lg-block{display:block}.d-lg-flex{display:flex}
}
