/* =========================================
   utilities.css  |  汎用ユーティリティ (u-*)
   ========================================= */

/* Spacing (margin/padding) */
.u-mt-0{margin-top:0!important} .u-mb-0{margin-bottom:0!important}
.u-mt-1{margin-top:var(--space-2)!important} .u-mb-1{margin-bottom:var(--space-2)!important}
.u-mt-2{margin-top:var(--space-3)!important} .u-mb-2{margin-bottom:var(--space-3)!important}
.u-mt-3{margin-top:var(--space-4)!important} .u-mb-3{margin-bottom:var(--space-4)!important}
.u-mt-4{margin-top:var(--space-5)!important} .u-mb-4{margin-bottom:var(--space-5)!important}
.u-mt-5{margin-top:var(--space-6)!important} .u-mb-5{margin-bottom:var(--space-6)!important}
.u-mt-6{margin-top:var(--space-7)!important} .u-mb-6{margin-bottom:var(--space-7)!important}
.u-pt-0{padding-top:0!important} .u-pb-0{padding-bottom:0!important}
.u-px-4{padding-inline:var(--space-5)!important} .u-py-4{padding-block:var(--space-5)!important}

/* Layout helpers */
.u-center{display:grid;place-items:center;text-align:center}
.u-inline{display:inline!important}
.u-block{display:block!important}
.u-flex{display:flex!important}
.u-flex-center{display:flex!important;justify-content:center;align-items:center}
.u-wrap{flex-wrap:wrap!important}
.u-gap-2{gap:var(--space-3)!important}
.u-gap-3{gap:var(--space-4)!important}
.u-w-100{width:100%!important}
.u-maxw-720{max-width:720px!important}
.u-maxw-960{max-width:960px!important}
.u-maxw-1200{max-width:1200px!important}

/* Text */
.u-text-center{text-align:center!important}
.u-text-right{text-align:right!important}
.u-muted{color:var(--color-muted)!important}
.u-strong{font-weight:700!important}

/* Decoration */
.u-radius-sm{border-radius:var(--radius-sm)!important}
.u-radius-md{border-radius:var(--radius-md)!important}
.u-radius-lg{border-radius:var(--radius-lg)!important}
.u-shadow-sm{box-shadow:var(--shadow-sm)!important}
.u-shadow-md{box-shadow:var(--shadow-md)!important}
.u-shadow-lg{box-shadow:var(--shadow-lg)!important}
.u-border{border:1px solid var(--color-line)!important}

/* Aspect / Media */
.u-aspect-1-1{aspect-ratio:1/1}
.u-aspect-3-2{aspect-ratio:3/2}
.u-aspect-16-9{aspect-ratio:16/9}
.u-cover{object-fit:cover}
.u-contain{object-fit:contain}

/* Display guards */
@media (min-width: 768px){
  .u-hide-md-up{display:none!important}
}
@media (max-width: 767.98px){
  .u-hide-md-down{display:none!important}
}
