  /* Basic styles for layout and external search elements */
        .desktop-search-input { background-color: #374151; border: 1px solid #4B5563; color: #f9fafb; padding: 0.5rem 1rem; border-radius: 0.25rem; flex-grow: 1;}
        .desktop-search-icon-button, .mobile-search-trigger { background-color: #DC2626; color: white; border: none; padding: 0.5rem 1rem; border-radius: 0.25rem; cursor: pointer; }
        #desktop-search-icon-button {
            margin-left:-25px !important;
        }
        .d-none { display: none; }
        @media (min-width: 768px) { .d-md-inline { display: inline-block; } .d-md-none { display: none; } }
        
        /* Styles for the Search Modal */
        #search_modal { position: fixed; inset: 0; background-color: rgba(0, 0, 0, 0.8); align-items: flex-start; justify-content: center; padding: 4rem 1rem; transition: opacity 0.3s ease-in-out; overflow-y: auto; z-index: 50; }
        #search_modal_content { width: 100%; max-width: 56rem; background-color: #1F2937; border-radius: 0.75rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); padding: 2rem; border: 1px solid #374151; position: relative; }
        #search_close_button { position: absolute; top: 1rem; right: 1rem; background: none; border: none; color: #9CA3AF; cursor: pointer; transition: color 0.2s; }
        #search_close_button:hover { color: #ffffff; }
        #search_close_button svg { width: 1.5rem; height: 1.5rem; }
        .search_form_container { display: flex; gap: 0.75rem; margin-top: 2rem; }
        #search_input { flex-grow: 1; width: 100%; padding: 0.75rem 1rem; color: #E5E7EB; background-color: #374151; border: 1px solid #4B5563; border-radius: 0.5rem; font-size: 1rem; transition: border-color 0.2s, box-shadow 0.2s; }
        #search_input::placeholder { color: #9CA3AF; }
        #search_input:focus { outline: none; border-color: #DC2626; box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.5); }
        #search_submit_button { background-color: #DC2626; color: #ffffff; border-radius: 0.5rem; border: none; cursor: pointer; font-size: 1rem; transition: background-color 0.2s; flex-shrink: 0; width: 3rem; height: auto; display: flex; align-items: center; justify-content: center; }
        #search_submit_button:hover { background-color: #B91C1C; }
        #search_submit_button:disabled { opacity: 0.7; cursor: not-allowed; }
        #search_quick_buttons { display: flex; gap: 0.75rem; margin-top: 1.25rem; justify-content: center; flex-wrap: wrap; }
        .search_quick_btn { background-color: #374151; color: #D1D5DB; border: 1px solid #4B5563; padding: 0.5rem 1rem; border-radius: 9999px; cursor: pointer; font-size: 1rem; transition: background-color 0.2s, color 0.2s; }
        .search_quick_btn:hover { background-color: #4B5563; color: #ffffff; }
        .search_notification_box { border-left-width: 4px; padding: 1rem; border-radius: 0.5rem; border-color: #EF4444; background-color: rgba(220, 38, 38, 0.1); color: #F87171; }
        #search_video_results { margin-top: 1rem; }
        #search_results_title { font-size: 1.25rem; font-weight: 600; margin-bottom: 1rem; color: #D1D5DB; }
        #search_video_grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
        .search_video_cover { transition: transform 0.2s ease-in-out; cursor: pointer; display: block; text-decoration: none; }
        .search_video_cover:hover { transform: scale(1.05); }
        .search_video_cover img { border-radius: 0.5rem; object-fit: cover; width: 100%; height: 100%; display: block; }
        .search_show_more_link { display: block; text-align: center; margin-top: 1.5rem; color: #9CA3AF; font-weight: 600; text-decoration: none; transition: color 0.2s; }
        .search_show_more_link:hover { color: #ffffff; text-decoration: underline; }
        .search_static_carousels { display: flex; flex-direction: column;  }
        .search_carousel_wrapper { position: relative; }
        .search_carousel_title { font-size: 1.5rem; font-weight: 600; margin-bottom: 1rem; color: #E5E7EB; }
        .search_carousel_grid { display: flex; overflow-x: auto; gap: 1rem; padding-bottom: 1rem; scrollbar-width: none; scroll-behavior: smooth; }
        .search_carousel_grid::-webkit-scrollbar { display: none; }
        .search_carousel_item { flex: 0 0 140px; }
        .search_carousel_arrow { position: absolute; top: 55%; transform: translateY(-50%); background-color: rgba(31, 41, 55, 0.8); color: #E5E7EB; border: 1px solid #4B5563; border-radius: 50%; width: 2.5rem; height: 2.5rem; font-size: 1rem; cursor: pointer; z-index: 10; transition: background-color 0.2s, color 0.2s; display: flex; align-items: center; justify-content: center; }
        .search_carousel_arrow:hover { background-color: #4B5563; color: #ffffff; }
        .search_carousel_arrow:disabled { opacity: 0.4; cursor: not-allowed; }
        .search_carousel_arrow--left { left: -1.25rem; }
        .search_carousel_arrow--right { right: -1.25rem; }
        .search_hidden { display: none !important; }
        .search_modal_visible { display: flex; }

        /* --- Desktop Breakpoints --- */
        @media (min-width: 640px) { 
            #search_video_grid { grid-template-columns: repeat(3, 1fr); } 
            .search_carousel_item { flex-basis: 160px; } 
        }
        @media (min-width: 768px) { #search_video_grid { grid-template-columns: repeat(4, 1fr); } }
        @media (min-width: 1024px) { #search_video_grid { grid-template-columns: repeat(5, 1fr); } .search_carousel_item { flex-basis: 180px; } }

        /* --- Mobile Responsiveness --- */
        @media (max-width: 640px) { 
            /* MODIFICATION: Make modal padding smaller on mobile */
            #search_modal {
                padding: 1rem 0.5rem;
            }
            #search_modal_content {
                padding: 1.5rem 1rem;
            }
            /* MODIFICATION: Keep search bar and button on the same line */
            .search_form_container { 
                flex-direction: row; /* This is the default, but we explicitly set it to override previous mobile styles */
            } 
            #search_submit_button { 
                width: 3rem; /* Revert to a fixed width */
                height: auto; 
            } 
            .search_carousel_arrow { 
                display: none; 
            }
            /* MODIFICATION: Make quick search buttons smaller */
            .search_quick_btn {
                font-size: 0.85rem;
                padding: 0.4rem 0.8rem;
            }
        }