/* Local Tailwind utility subset — replaces cdn.tailwindcss.com for this project.
   Only the ~22 classes actually used in the markup are included here. */

/* Display */
.hidden       { display: none !important; }
.flex         { display: flex !important; }
.inline-flex  { display: inline-flex !important; }
.block        { display: block !important; }

/* Position */
.relative { position: relative !important; }
.fixed    { position: fixed !important; }

/* Flex alignment */
.items-center    { align-items: center !important; }
.items-start     { align-items: flex-start !important; }
.justify-center  { justify-content: center !important; }
.justify-between { justify-content: space-between !important; }
.flex-col        { flex-direction: column !important; }
.flex-wrap       { flex-wrap: wrap !important; }
.flex-shrink-0   { flex-shrink: 0 !important; }

/* Gap */
.gap-2 { gap: 0.5rem !important; }
.gap-3 { gap: 0.75rem !important; }
.gap-4 { gap: 1rem !important; }

/* Sizing */
.w-12   { width: 3rem !important; }
.h-12   { height: 3rem !important; }
.w-full { width: 100% !important; }

/* Positioning offsets */
.bottom-8 { bottom: 2rem !important; }
.right-8  { right: 2rem !important; }
.z-50     { z-index: 50 !important; }

/* Typography */
.text-sm   { font-size: 0.875rem !important; line-height: 1.25rem !important; }
.text-xs   { font-size: 0.75rem !important;  line-height: 1rem !important; }
.text-white { color: #ffffff !important; }
.text-center { text-align: center !important; }
.font-sans  { font-family: 'Montserrat','DM Sans',system-ui,sans-serif !important; }
.antialiased { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* Border radius */
.rounded-full { border-radius: 9999px !important; }

/* Visibility / opacity */
.opacity-0  { opacity: 0 !important; }
.invisible  { visibility: hidden !important; }

/* Transitions — must stay separate so duration-300 can override */
.transition-all {
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}
.transition-colors {
    transition-property: color, background-color, border-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}
.duration-300 { transition-duration: 300ms !important; }

/* Responsive breakpoints */
@media (min-width: 1024px) {
    .lg\:flex   { display: flex !important; }
    .lg\:hidden { display: none !important; }
}
