html {
    scroll-behavior: smooth;
}
/* Prevent layout shift when body scroll is locked */
body.overflow-hidden {
    padding-right: 0px; /* Adjust if scrollbar width is an issue, but modern browsers handle this well with overlay */
}
.category-card {
    display: flex; /* Re-applied by JS filter */
    flex-direction: column;
    align-items: center; /* NEW: Center-align flex items */
    text-align: center; /* NEW: Center-align text */
    gap: 0.25rem; /* MODIFIED: Was 0.375rem */
    padding: 0.75rem; /* MODIFIED: Was 1rem */
    border-radius: 0.5rem; /* MODIFIED: Was 0.75rem */
    border: 1px solid rgba(241, 32, 61, 0.15); /* MODIFIED: Faint brand-red border */
    background: #ffffff; /* Solid white for better shadow */
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.05), 0 4px 6px -4px rgb(0 0 0 / 0.05); /* Smooth shadow */
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.category-card:hover {
    transform: translateY(-4px);
    border-color: #F1203D; /* MODIFIED: Solid brand-red on hover */
    box-shadow: 0 10px 30px rgba(241, 32, 61, 0.1); /* Prominent red-tinted shadow */
}
/* Applied H3 size via Tailwind */
.category-card h3 {
    font-family: 'Poppins', 'Inter', system-ui, sans-serif;
    font-weight: 600;
    color: #050505;
}
/* Applied desc text size via Tailwind */
.category-card p {
    color: rgb(71 85 105);
}
.category-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem; /* MODIFIED: Was 2rem */
    height: 1.75rem; /* MODIFIED: Was 2rem */
    border-radius: 9999px;
    font-size: 0.75rem; /* MODIFIED: Was 0.875rem */
    /* NEW: Gradient background for icons */
    background-image: linear-gradient(135deg, #f97316, #F1203D);
    color: white;
}
.subcategory-list {
    display: none;
    padding-left: 1rem; /* MODIFIED: Was 1.25rem */
    margin-top: 0.25rem;
    list-style: disc;
    color: rgb(100 116 139);
    font-size: 11px; /* MODIFIED: Was 12px */
}
.subcategory-list.is-visible {
    display: block;
}

/* MODIFIED: 
  Custom focus styles are now applied directly in the header HTML.
  This block can be simplified or removed, but we'll keep the base
  style for any *other* search bars just in case.
*/
#calculatorSearch:focus {
    outline: none;
}

/* REMOVED: .hide-scrollbar styles 
  (They are now injected by js/global.js) 
*/

/* --- Mobile Menu Link Styles --- */
/* These styles are used by the injected mobile menu */
.mobile-menu-link {
    display: flex;
    align-items: center;
    gap: 0.625rem; /* 10px */
    padding: 0.625rem 1rem; /* 10px 16px */
    border-radius: 0.5rem; /* 8px */
    font-size: 0.75rem; /* 12px (Was 13px) */
    font-weight: 800; /* Extra Bold */
    color: rgb(226 232 240); /* slate-200 */
    transition: background-color 0.2s ease;
}
.mobile-menu-link:hover, .mobile-menu-link:focus {
    background-color: rgba(255, 255, 255, 0.1);
    color: white;
}
.mobile-menu-link i {
    width: 1.25rem; /* 20px */
    text-align: center;
    color: rgb(241 32 61); /* brand-red */
    opacity: 0.9;
}

/* --- NEW: Form Styles --- */
/* Added styles for the new contact form */
.form-label {
    display: block;
    margin-bottom: 0.375rem; /* 6px (Was 4px) */
    font-size: 0.875rem; /* 14px (Was 12px) */
    font-weight: 500;
    color: rgb(71 85 105); /* slate-600 */
}

.form-input {
    display: block;
    width: 100%;
    border-radius: 0.5rem; /* 8px */
    border: 1px solid rgb(203 213 225); /* slate-300 */
    padding: 0.625rem 0.875rem; /* 10px 14px */
    font-size: 0.875rem; /* 14px */
    color: rgb(15 23 42); /* slate-900 */
    background-color: #ffffff;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.form-input:focus {
    outline: none;
    border-color: #F1203D; /* brand-red */
    box-shadow: 0 0 0 2px rgba(241, 32, 61, 0.2); /* brand-red focus ring */
}

/* --- NEW: Toast Notification Styles --- */
#clipboard-toast {
    position: fixed;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%) translateY(3rem); /* Start off-screen */
    background-color: #222; /* Dark background */
    color: white;
    padding: 0.75rem 1.5rem; /* 12px 24px */
    border-radius: 9999px; /* Full pill shape */
    font-size: 0.875rem; /* 14px */
    font-weight: 500;
    opacity: 0;
    transition: opacity 0.3s ease, transform 0.3s ease;
    z-index: 100;
    white-space: nowrap;
}

#clipboard-toast.toast-visible {
    opacity: 1;
    transform: translateX(-50%) translateY(0); /* Slide up */
}

/* --- NEW: Centralized Page Widths --- */
.main-container {
    max-width: 1050px;
}
.category-container {
    max-width: 1050px; /* MODIFIED: Increased from 1000px */
}