/*
Theme Name: Twenty Twenty-Four
Theme URI: https://wordpress.org/themes/twentytwentyfour/
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Four is designed to be flexible, versatile and applicable to any website. Its collection of templates and patterns tailor to different needs, such as presenting a business, blogging and writing or showcasing work. A multitude of possibilities open up with just a few adjustments to color and typography. Twenty Twenty-Four comes with style variations and full page designs to help speed up the site building process, is fully compatible with the site editor, and takes advantage of new design tools introduced in WordPress 6.4.
Requires at least: 6.4
Tested up to: 6.9
Requires PHP: 7.0
Version: 1.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfour
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/

/* =============================================================================
   TV GUIDE GLOBAL STYLES
============================================================================= */

.tv-guide-container, .tvg-home, .tvg-results, .tvg-channel-wrap {
    width: 100% !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
}

.table-responsive {
    width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
}

/* Controls */
.tv-guide-controls {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 20px !important;
    margin: 25px 0 !important;
    width: 100% !important;
}

.tv-guide-controls select,
.tv-guide-controls select:focus,
.tv-guide-controls select:active {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    display: inline-block !important;
    height: 46px !important;
    padding: 0 42px 0 14px !important;
    border: 1px solid #ccc !important;
    border-radius: 8px !important;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2012%2012%22%3E%3Cpath%20fill%3D%22%23333%22%20d%3D%22M10.293%203.293L6%207.586%201.707%203.293%200.293%204.707%206%2010.414l5.707-5.707z%22%2F%3E%3C%2Fsvg%3E") !important;
    background-color: #fff !important;
    background-repeat: no-repeat !important;
    background-position: right 13px center !important;
    background-size: 12px !important;
    font-size: 1em !important;
    font-family: inherit !important;
    color: #333 !important;
    line-height: 1 !important;
    cursor: pointer !important;
    flex: 0 1 auto !important;
    min-width: 140px !important;
    max-width: 300px !important;
    box-shadow: 0 2px 5px rgba(0,0,0,.05) !important;
    margin: 0 15px 0 0 !important;
}

.tv-guide-controls select:last-child {
    margin-right: 0 !important;
}

.tv-guide-controls select:focus {
    border-color: #888 !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(0,0,0,.08) !important;
}

/* Table */
table.tv-guide {
    width: 100% !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    margin-top: 15px !important;
    font-family: inherit !important;
    table-layout: auto !important;
    background: #fff !important;
    border: 1px solid #ddd !important;
    box-sizing: border-box !important;
}

table.tv-guide th,
table.tv-guide td {
    border: 1px solid #ddd !important;
    padding: 14px 15px !important;
    text-align: left !important;
    vertical-align: middle !important;
    word-wrap: break-word !important;
    box-sizing: border-box !important;
    line-height: 1.4 !important;
}

table.tv-guide th {
    background: #f8f8f8 !important;
    font-weight: bold !important;
    color: #333 !important;
    text-transform: uppercase !important;
    font-size: 0.83em !important;
    letter-spacing: 0.05em !important;
    white-space: nowrap !important;
}

/* Explicit column widths for Action/Status column */
table.tv-guide th:nth-child(1),
table.tv-guide td:nth-child(1) { width: 100px !important; }

table.tv-guide th:last-child,
table.tv-guide td:last-child {
    width: 1% !important;
    white-space: nowrap !important;
    text-align: center !important;
}

/* Status colors */
table.tv-guide tr.now, 
table.tv-guide tr.now td { background: #fffbea !important; }
table.tv-guide tr.past { opacity: 0.6 !important; }

/* Badges */
.now-badge, .next-badge {
    display: inline-block !important;
    font-weight: bold !important;
    padding: 2px 7px !important;
    border-radius: 4px !important;
    font-size: 0.72em !important;
    margin-right: 5px !important;
    vertical-align: middle !important;
    line-height: 1.5 !important;
}
.now-badge  { background: #ffe8a1 !important; color: #333 !important; }
.next-badge { background: #eee    !important; color: #333 !important; }

/* Buttons */
.show-all-btn, .show-all-btn:visited {
    display: inline-block !important;
    padding: 7px 14px !important;
    background: #000 !important;
    color: #fff !important;
    text-decoration: none !important;
    border-radius: 4px !important;
    font-size: 0.84em !important;
    font-weight: bold !important;
    text-align: center !important;
    white-space: nowrap !important;
    line-height: 1.4 !important;
    border: none !important;
}
.show-all-btn:hover, .show-all-btn:focus {
    background: #333 !important;
    color: #fff !important;
}

/* Typography elements */
.prog-title {
    font-weight: 600 !important;
    font-size: 0.9em !important;
    color: #111 !important;
    display: inline !important;
    vertical-align: middle !important;
}
.prog-time {
    display: block !important;
    margin-top: 4px !important;
    font-size: 0.8em !important;
    color: #555 !important;
}
.channel-name {
    font-size: 0.95em !important;
    color: #000 !important;
    font-weight: bold !important;
    display: block !important;
}

/* Pagination */
.pagination {
    margin: 40px 0 !important;
    display: flex !important;
    gap: 8px !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
}
.pagination a, .pagination span {
    display: inline-block !important;
    padding: 9px 18px !important;
    border: 1px solid #ddd !important;
    text-decoration: none !important;
    color: #000 !important;
    border-radius: 50px !important;
    font-size: 0.88em !important;
    font-weight: 600 !important;
    background: #fff !important;
    line-height: 1.4 !important;
    transition: background 0.2s, color 0.2s !important;
}
.pagination .current, .pagination a:hover, .pagination a:focus {
    background: #000 !important;
    color: #fff !important;
    border-color: #000 !important;
}

/* Search bar */
.tvg-search-bar {
    width: 60%;
    margin: 0 auto;
    display: flex;
    justify-content: center;
}
.tvg-search-bar .wp-block-search { width: 100%; }

/* Page specific */
h1.tv-title {
    font-size: clamp(1.8rem, 5vw, 2.5rem) !important;
    margin-top: 0 !important;
    margin-bottom: 0.5em !important;
    font-weight: bold !important;
    line-height: 1.2 !important;
}

.channel-desc {
    background: #f9f9f9 !important;
    padding: 25px !important;
    border-radius: 12px !important;
    margin: 30px 0 !important;
    line-height: 1.7 !important;
    color: #333 !important;
    border: 1px solid #eee !important;
}

/* Mobile */
@media screen and (max-width: 768px) {
    .tv-guide-controls select {
        min-width: 140px !important;
        flex: 1 !important;
        max-width: 100% !important;
    }
    .tvg-search-bar { width: 90%; }
}

/* =============================================================================
   CONTACT FORM STYLES
============================================================================= */

.tvg-contact-form {
    background: #fff !important;
    padding: 40px !important;
    border-radius: 12px !important;
    border: 1px solid #eee !important;
    max-width: 650px !important;
    margin: 40px auto !important;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05) !important;
}

.tvg-contact-form .form-group {
    margin-bottom: 25px !important;
}

.tvg-contact-form label {
    display: block !important;
    font-weight: 600 !important;
    margin-bottom: 10px !important;
    color: #111 !important;
    font-size: 0.95em !important;
}

.tvg-contact-form input,
.tvg-contact-form textarea {
    width: 100% !important;
    padding: 14px 18px !important;
    border: 1px solid #ddd !important;
    border-radius: 10px !important;
    font-family: inherit !important;
    font-size: 1em !important;
    box-sizing: border-box !important;
    transition: all 0.2s ease !important;
    background: #fdfdfd !important;
}

.tvg-contact-form input:focus,
.tvg-contact-form textarea:focus {
    border-color: #000 !important;
    outline: none !important;
    box-shadow: 0 0 0 4px rgba(0,0,0,0.06) !important;
    background: #fff !important;
}

.tvg-submit-btn {
    background: #000 !important;
    color: #fff !important;
    border: none !important;
    padding: 16px 30px !important;
    border-radius: 10px !important;
    font-weight: bold !important;
    cursor: pointer !important;
    width: 100% !important;
    font-size: 1.1em !important;
    transition: background 0.2s, transform 0.1s !important;
    letter-spacing: 0.02em !important;
}

.tvg-submit-btn:hover {
    background: #333 !important;
}

.tvg-submit-btn:active {
    transform: translateY(1px) !important;
}

.tvg-alert {
    padding: 18px !important;
    border-radius: 10px !important;
    margin-bottom: 30px !important;
    font-weight: 500 !important;
    font-size: 0.95em !important;
    line-height: 1.5 !important;
}

.tvg-alert-success {
    background: #f0fff4 !important;
    color: #22543d !important;
    border: 1px solid #c6f6d5 !important;
}

.tvg-alert-error {
    background: #fff5f5 !important;
    color: #822727 !important;
    border: 1px solid #fed7d7 !important;
}

@media screen and (max-width: 600px) {
    .tvg-contact-form {
        padding: 25px !important;
        margin: 20px auto !important;
    }
}

/* =============================================================================
   FOOTER STYLES (SIMPLE ROW)
============================================================================= */

.site-footer {
    background: transparent !important;
    color: #333 !important;
    padding: 50px 20px !important;
    border-top: 1px solid #eee !important;
    font-family: inherit !important;
}

.footer-container {
    max-width: 1100px !important;
    margin: 0 auto !important;
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 30px !important;
}

.footer-links, .footer-social {
    display: flex !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    gap: 25px !important;
    flex-wrap: wrap !important;
}

.footer-links a, .footer-social a {
    color: #555 !important;
    text-decoration: none !important;
    font-size: 0.88rem !important;
    font-weight: 500 !important;
    transition: color 0.2s !important;
}

.footer-links a:hover, .footer-social a:hover {
    color: #000 !important;
}

.footer-bottom {
    margin-top: 30px !important;
    text-align: center !important;
    color: #999 !important;
    font-size: 0.8rem !important;
    width: 100% !important;
}

@media screen and (max-width: 850px) {
    .footer-container {
        flex-direction: column !important;
        text-align: center !important;
        gap: 20px !important;
    }
    .footer-links, .footer-social {
        justify-content: center !important;
        gap: 15px !important;
    }
}
