a {
    /* Inherit parent color (nav in white, content in dark, etc.) */
    color: inherit;
    /* Remove the default underline globally. Components that need */
    /* underlines (e.g. links in prose) re-add it locally. */
    text-decoration: none;
}

button {
    /* Strip the native button chrome so custom classes (.blue-btn, */
    /* .btn, .carousel-control-*) can style from a clean slate. */
    background: transparent;
    border: 0;
    padding: 0;
    margin: 0;
    font: inherit;
    color: inherit;
    cursor: pointer;
}

/* ==========================================================
   UTILITIES
   Minimal set of Tailwind-like utility classes replacing
   what tw-elements used to provide. Only classes actually
   used in the project's markup are included here.
   Dark-mode variants (dark:*) are intentionally omitted —
   the site doesn't support dark mode.
   ========================================================== */

/* --- Display --- */
.block          { display: block; }
.inline-block   { display: inline-block; }
.flex           { display: flex; }
.grid           { display: grid; }

/* --- Position --- */
.relative       { position: relative; }
.absolute       { position: absolute; }
.top-0          { top: 0; }
.bottom-0       { bottom: 0; }
.left-0         { left: 0; }
.right-0        { right: 0; }

/* --- Sizing --- */
.w-full         { width: 100%; }
.flex-1         { flex: 1 1 0%; }
.min-w-0        { min-width: 0; }

/* --- Flex alignment --- */
.items-center   { align-items: center; }
.justify-center { justify-content: center; }

/* --- Float --- */
.float-left     { float: left; }

/* --- Overflow --- */
.overflow-hidden { overflow: hidden; }

/* --- Padding --- */
.p-0            { padding: 0; }
.p-2\.5         { padding: 0.625rem; }       /* 10px */
.pb-0           { padding-bottom: 0; }
.pl-6           { padding-left: 1.5rem; }    /* 24px */

/* --- Margin --- */
.mb-0           { margin-bottom: 0; }
.mb-2           { margin-bottom: 0.5rem; }   /* 8px */
.mb-4           { margin-bottom: 1rem; }     /* 16px */

/* --- Background --- */
.bg-no-repeat   { background-repeat: no-repeat; }
.bg-gray-50     { background-color: #f9fafb; }

/* --- Border --- */
.border         { border: 1px solid #e5e7eb; }
.border-0       { border: 0; }
.border-gray-300 { border-color: #d1d5db; }
.rounded-lg     { border-radius: 0.5rem; }   /* 8px */
.rounded-none   { border-radius: 0; }

/* --- Text --- */
.text-center    { text-align: center; }
.text-sm        { font-size: 0.875rem; line-height: 1.25rem; }
.text-xl        { font-size: 1.25rem;  line-height: 1.75rem; }
.text-gray-900  { color: #111827; }
.uppercase      { text-transform: uppercase; }
.font-medium    { font-weight: 500; }
.font-bold      { font-weight: 700; }
.text-white     { color: white }

/* Screen-reader only content */
.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* --- Pseudo-states --- */

/* Focus — matches Tailwind's focus:ring-blue-500 */
.focus\:outline-none:focus,
.hover\:outline-none:hover {
    outline: 2px solid transparent;
    outline-offset: 2px;
}

.focus\:no-underline:focus,
.hover\:no-underline:hover {
    text-decoration: none;
}

.focus\:border-blue-500:focus {
    border-color: #3B82F6;
}

/* Blue glow around the focused element — Tailwind's ring utility */
.focus\:ring-blue-500:focus {
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.4);
}

/* --- Responsive (md: = tablet and up) --- */
@media (min-width: 768px) {
    .md\:block { display: block; }
}