/* SANOME utilities — replacement for small Tailwind CDN usage */

/* display / position */
.block{display:block}
.inline-flex{display:inline-flex}
.flex{display:flex}
.grid{display:grid}
.hidden{display:none}
.relative{position:relative}
.absolute{position:absolute}
.fixed{position:fixed}
.sticky{position:sticky}
.inset-0{inset:0}
.inset-x-0{left:0;right:0}
.top-0{top:0}
.top-20{top:5rem}
.left-0{left:0}
.right-0{right:0}
.bottom-0{bottom:0}
.z-10{z-index:10}

/* sizing */
.w-full{width:100%}
.h-full{height:100%}
.min-w-0{min-width:0}
.max-w-none{max-width:none}
.max-w-4xl{max-width:56rem}
.max-w-5xl{max-width:64rem}
.max-w-7xl{max-width:80rem}
.mx-auto{margin-left:auto;margin-right:auto}

/* spacing */
.p-3{padding:.75rem}
.p-5{padding:1.25rem}
.p-6{padding:1.5rem}
.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.25rem;padding-right:1.25rem}
.px-6{padding-left:1.5rem;padding-right:1.5rem}
.py-1{padding-top:.25rem;padding-bottom:.25rem}
.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}
.py-2{padding-top:.5rem;padding-bottom:.5rem}
.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}
.py-4{padding-top:1rem;padding-bottom:1rem}
.py-6{padding-top:1.5rem;padding-bottom:1.5rem}
.py-8{padding-top:2rem;padding-bottom:2rem}
.py-14{padding-top:3.5rem;padding-bottom:3.5rem}
.py-20{padding-top:5rem;padding-bottom:5rem}
.pt-1{padding-top:.25rem}
.pt-2{padding-top:.5rem}
.pt-7{padding-top:1.75rem}
.pb-10{padding-bottom:2.5rem}
.mt-0\.5{margin-top:.125rem}
.mt-1{margin-top:.25rem}
.mt-6{margin-top:1.5rem}
.mt-10{margin-top:2.5rem}
.mt-16{margin-top:4rem}
.mb-1{margin-bottom:.25rem}
.mb-3{margin-bottom:.75rem}
.mb-4{margin-bottom:1rem}
.mb-5{margin-bottom:1.25rem}
.mb-6{margin-bottom:1.5rem}
.mb-8{margin-bottom:2rem}
.mb-12{margin-bottom:3rem}

/* gaps / layout */
.gap-0\.5{gap:.125rem}
.gap-1{gap:.25rem}
.gap-2{gap:.5rem}
.gap-3{gap:.75rem}
.gap-4{gap:1rem}
.gap-5{gap:1.25rem}
.gap-6{gap:1.5rem}
.gap-8{gap:2rem}
.space-y-2 > :not([hidden]) ~ :not([hidden]){margin-top:.5rem}
.space-y-3 > :not([hidden]) ~ :not([hidden]){margin-top:.75rem}
.flex-col{flex-direction:column}
.items-center{align-items:center}
.justify-center{justify-content:center}
.justify-between{justify-content:space-between}

/* grid */
.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}
.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}

/* typography */
.text-left{text-align:left}
.text-center{text-align:center}
.text-\[10px\]{font-size:10px}
.text-xs{font-size:.75rem;line-height:1rem}
.text-sm{font-size:.875rem;line-height:1.25rem}
.text-base{font-size:1rem;line-height:1.5rem}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-3xl{font-size:1.875rem;line-height:2.25rem}
.font-normal{font-weight:400}
.font-medium{font-weight:500}
.font-semibold{font-weight:600}
.font-bold{font-weight:700}
.uppercase{text-transform:uppercase}
.tracking-\[0\.15em\]{letter-spacing:.15em}
.tracking-\[0\.22em\]{letter-spacing:.22em}

/* colors */
.text-white{color:#fff}
.text-gray-300{color:#d1d5db}
.text-gray-400{color:#9ca3af}
.text-gray-500{color:#6b7280}
.text-gray-600{color:#4b5563}
.text-gray-700{color:#374151}
.text-gray-800{color:#1f2937}
.text-gray-900{color:#111827}
.bg-white{background-color:#fff}
.bg-gray-50{background-color:#f9fafb}
.bg-gray-200{background-color:#e5e7eb}
.bg-gray-900{background-color:#111827}
.bg-gray-900\/60{background-color:rgba(17,24,39,.6)}
.bg-blue-600{background-color:#2563eb}

/* border / radius / effects */
.border{border-width:1px;border-style:solid}
.border-2{border-width:2px;border-style:solid}
.border-t{border-top-width:1px;border-top-style:solid}
.border-b{border-bottom-width:1px;border-bottom-style:solid}
.border-b-2{border-bottom-width:2px;border-bottom-style:solid}
.border-transparent{border-color:transparent}
.border-gray-200{border-color:#e5e7eb}
.border-gray-300{border-color:#d1d5db}
.rounded-lg{border-radius:.5rem}
.rounded-2xl{border-radius:1rem}
.shadow{box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06)}
.overflow-hidden{overflow:hidden}
.object-cover{object-fit:cover}
.pointer-events-none{pointer-events:none}
.backdrop-blur-sm{backdrop-filter:blur(4px)}

/* responsive */
@media (min-width:640px){
  .sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media (min-width:768px){
  .md\:flex-row{flex-direction:row}
  .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .md\:py-8{padding-top:2rem;padding-bottom:2rem}
  .md\:text-4xl{font-size:2.25rem;line-height:2.5rem}
  .md\:w-\[30\%\]{width:30%}
}

@media (min-width:1024px){
  .lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}
}

/* Single pages layout utilities */
.flex-1{flex:1 1 0%}
.shrink-0{flex-shrink:0}
