/**
 * tailwind-utilities.css
 * Reemplazo local del CDN de Tailwind.
 * Solo incluye las clases tw-* realmente usadas en los templates PHP.
 * Generado a partir del inventario de clases extraído del tema.
 */

/* ==============================
   Layout / Display
   ============================== */
.tw-flex          { display: flex; }
.tw-inline-flex   { display: inline-flex; }
.tw-inline-block  { display: inline-block; }
.tw-grid          { display: grid; }
.tw-relative      { position: relative; }

/* ==============================
   Flexbox
   ============================== */
.tw-flex-1        { flex: 1 1 0%; }
.tw-flex-wrap     { flex-wrap: wrap; }
.tw-items-center  { align-items: center; }
.tw-items-start   { align-items: flex-start; }
.tw-justify-between { justify-content: space-between; }
.tw-justify-center  { justify-content: center; }
.tw-self-start    { align-self: flex-start; }
.tw-shrink-0      { flex-shrink: 0; }
.tw-min-w-0       { min-width: 0; }

/* ==============================
   Grid
   ============================== */
.tw-grid-cols-1   { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.tw-grid-cols-2   { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tw-grid-cols-3   { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* ==============================
   Gap
   ============================== */
.tw-gap-3  { gap: 0.75rem; }
.tw-gap-5  { gap: 1.25rem; }
.tw-gap-6  { gap: 1.5rem; }

/* ==============================
   Width / Height
   ============================== */
.tw-w-12   { width: 3rem; }
.tw-w-14   { width: 3.5rem; }
.tw-w-28   { width: 7rem; }
.tw-w-full { width: 100%; }
.tw-h-12   { height: 3rem; }
.tw-h-14   { height: 3.5rem; }
.tw-h-28   { height: 7rem; }
.tw-h-auto { height: auto; }

/* ==============================
   Margin
   ============================== */
.tw-m-0    { margin: 0; }
.tw-mt-0   { margin-top: 0; }
.tw-mt-1   { margin-top: 0.25rem; }
.tw-mt-2   { margin-top: 0.5rem; }
.tw-mt-3   { margin-top: 0.75rem; }
.tw-mt-4   { margin-top: 1rem; }
.tw-mt-8   { margin-top: 2rem; }
.tw-mt-auto { margin-top: auto; }
.tw-mb-1   { margin-bottom: 0.25rem; }
.tw-mb-2   { margin-bottom: 0.5rem; }
.tw-mb-3   { margin-bottom: 0.75rem; }
.tw-mb-4   { margin-bottom: 1rem; }
.tw-mb-5   { margin-bottom: 1.25rem; }
.tw-mb-6   { margin-bottom: 1.5rem; }
.tw-mb-8   { margin-bottom: 2rem; }
.tw-mb-10  { margin-bottom: 2.5rem; }
.tw-mr-2   { margin-right: 0.5rem; }

/* ==============================
   Padding
   ============================== */
.tw-px-2   { padding-left: 0.5rem; padding-right: 0.5rem; }
.tw-py-0\.5 { padding-top: 0.125rem; padding-bottom: 0.125rem; }
.tw-py-1   { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.tw-py-16  { padding-top: 4rem; padding-bottom: 4rem; }

/* ==============================
   Typography
   ============================== */
.tw-text-xs   { font-size: 0.75rem; line-height: 1rem; }
.tw-text-sm   { font-size: 0.875rem; line-height: 1.25rem; }
.tw-text-base { font-size: 1rem; line-height: 1.5rem; }
.tw-text-lg   { font-size: 1.125rem; line-height: 1.75rem; }
.tw-text-xl   { font-size: 1.25rem; line-height: 1.75rem; }
.tw-text-3xl  { font-size: 1.875rem; line-height: 2.25rem; }
.tw-font-bold     { font-weight: 700; }
.tw-font-semibold { font-weight: 600; }
.tw-text-center   { text-align: center; }
.tw-underline     { text-decoration: underline; }
.tw-antialiased   { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* ==============================
   Colors  (custom med palette)
   ============================== */
.tw-text-med-blue   { color: #2E4A7D; }
.tw-text-slate-800  { color: #1e293b; }

/* ==============================
   Borders / Rounded / Shadow
   ============================== */
.tw-border-2      { border-width: 2px; }
.tw-border-white  { border-color: #fff; }
.tw-rounded-full  { border-radius: 9999px; }
.tw-rounded-lg    { border-radius: 0.5rem; }
.tw-rounded-xl    { border-radius: 0.75rem; }
.tw-shadow        { box-shadow: 0 1px 3px 0 rgba(0,0,0,.1), 0 1px 2px -1px rgba(0,0,0,.1); }
.tw-shadow-sm     { box-shadow: 0 1px 2px 0 rgba(0,0,0,.05); }
.tw-shadow-md     { box-shadow: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1); }

/* ==============================
   Object
   ============================== */
.tw-object-cover  { object-fit: cover; }

/* ==============================
   Hover states
   ============================== */
.hover\:tw-underline:hover { text-decoration: underline; }

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

/* ==============================
   Responsive: lg (≥1024px)
   ============================== */
@media (min-width: 1024px) {
    .lg\:tw-grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
