/*
Theme Name: المتخصص للتدريب
Theme URI: #
Author: You
Author URI: #
Description: قالب مخصص لمركز المتخصص للتدريب، يتميز بتصميم عصري وداكن.
Version: 1.0
Text Domain: elmotakhases
*/
/*
Theme Name: المتخصص للتدريب
Theme URI: #
Author: You
Author URI: #
Description: قالب مخصص لمركز المتخصص للتدريب، يتميز بتصميم عصري وداكن.
Version: 1.0
Text Domain: elmotakhases
*/

/* General Body Styling & Font */
body {
    font-family: 'Cairo', sans-serif;
    background-color: #1a202c; /* brand-dark equivalent */
    color: #cbd5e0; /* gray-300 equivalent */
    line-height: 1.6;
    direction: rtl; /* Ensure RTL for Arabic content */
    text-align: right; /* Default text alignment for RTL */
}

/* Ensure all elements inherit RTL direction */
* {
    box-sizing: border-box;
}

/* Headings Styling */
h1, h2, h3, h4, h5, h6 {
    font-weight: 700; /* Bold */
    color: #ffffff; /* White */
    margin-bottom: 0.5em;
    text-align: center; /* Center headings by default, can be overridden by Tailwind */
}

/* Links Styling */
a {
    color: #facc15; /* brand-gold equivalent */
    text-decoration: none;
    transition: color 0.3s ease-in-out;
}

a:hover {
    color: #eab308; /* A slightly darker gold for hover */
}

/* Buttons (General Tailwind-based styling) */
.btn-primary {
    @apply bg-brand-gold text-brand-dark font-bold py-3 px-8 rounded-full shadow-lg hover:bg-yellow-400 transition-all duration-300;
}

.btn-secondary {
    @apply bg-transparent border-2 border-white text-white font-bold py-3 px-8 rounded-full shadow-lg hover:bg-white hover:text-brand-dark transition-all duration-300;
}

/* Container for consistent padding */
.container {
    padding-left: 1.5rem; /* px-6 */
    padding-right: 1.5rem; /* px-6 */
}

/* Custom Tailwind Colors (from tailwind.config.js if it were a full setup) */
/* For CDN, we define them here for reference or use direct hex values */
.bg-brand-dark { background-color: #1a202c; }
.text-brand-dark { color: #1a202c; }
.bg-brand-blue { background-color: #2d3748; }
.text-brand-blue { color: #2d3748; }
.bg-brand-gold { background-color: #facc15; }
.text-brand-gold { color: #facc15; }
.hover\:bg-yellow-400:hover { background-color: #facc15; } /* Tailwind's yellow-400 is close to brand-gold */


/* =======================================
   Responsive & Mobile Menu Styling
   ======================================= */

/* Mobile menu specific styles */
#mobile-menu {
    position: fixed;
    top: 0;
    right: 0; /* Align to right for RTL */
    width: 80%; /* Adjust as needed */
    max-width: 300px;
    height: 100%;
    background-color: #2d3748; /* brand-blue */
    z-index: 50;
    transform: translateX(100%); /* Start off-screen to the right for RTL */
    transition: transform 0.3s ease-out;
    padding: 2rem;
    box-shadow: -4px 0 10px rgba(0, 0, 0, 0.3); /* Shadow on left side for RTL */
}

#mobile-menu.active {
    transform: translateX(0); /* Slide in */
}

#mobile-menu .menu-item {
    padding: 0.75rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

#mobile-menu .menu-item:last-child {
    border-bottom: none;
}

#mobile-menu .close-button {
    position: absolute;
    top: 1rem;
    left: 1rem; /* Position on left for RTL */
    font-size: 2rem;
    color: #ffffff;
    cursor: pointer;
}

/* Overlay for mobile menu */
.overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    z-index: 40;
    display: none; /* Hidden by default */
}

/* Show overlay when mobile menu is active */
#mobile-menu.active + .overlay {
    display: block;
}

/* Adjust main content when mobile menu is open (optional, but good for UX) */
body.mobile-menu-open {
    overflow: hidden; /* Prevent scrolling of main content */
}


/* =======================================
   Animations
   ======================================= */

/* Fade In Up Animation */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fade-in-up {
    animation: fadeInUp 0.6s ease-out forwards;
    opacity: 0; /* Hidden by default until animation runs */
}

/* Utility classes for animation delays */
.animation-delay-100 { animation-delay: 0.1s; }
.animation-delay-200 { animation-delay: 0.2s; }
.animation-delay-300 { animation-delay: 0.3s; }
.animation-delay-400 { animation-delay: 0.4s; }
.animation-delay-500 { animation-delay: 0.5s; }
.animation-delay-600 { animation-delay: 0.6s; }
.animation-delay-700 { animation-delay: 0.7s; }
.animation-delay-800 { animation-delay: 0.8s; }
.animation-delay-900 { animation-delay: 0.9s; }
.animation-delay-1000 { animation-delay: 1s; }

/* Spin on hover */
.hover-spin:hover {
    transform: rotate(360deg);
    transition: transform 0.5s ease-in-out;
}

/* Scale on hover */
.hover-scale:hover {
    transform: scale(1.05);
    transition: transform 0.3s ease-in-out;
}

/* Shadow on hover */
.hover-shadow-lg:hover {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.2), 0 4px 6px -2px rgba(0, 0, 0, 0.1);
    transition: box-shadow 0.3s ease-in-out;
}

/* List styling for RTL (e.g., in single-course, single-instructor) */
.list-disc {
    list-style-type: disc;
    padding-right: 1.5rem; /* Adjust for RTL bullet points */
    text-align: right;
}

.list-disc li {
    margin-bottom: 0.5rem;
}

/* Specific adjustments for RTL flex items to align icons correctly */
.flex-row-reverse {
    flex-direction: row-reverse;
}

.ml-auto {
    margin-right: auto;
    margin-left: 0;
}

.mr-auto {
    margin-left: auto;
    margin-right: 0;
}

.ml-2 {
    margin-right: 0.5rem; /* Adjust for RTL */
    margin-left: 0;
}

.mr-2 {
    margin-left: 0.5rem; /* Adjust for RTL */
    margin-right: 0;
}

/* Accordion icon rotation (from single-course.php, moved here for global styling) */
.accordion-header .fa-chevron-down {
    transform: rotate(0deg);
    transition: transform 0.3s ease-in-out;
}
.accordion-header.active .fa-chevron-down {
    transform: rotate(180deg);
}

/* RTL adjustment for list-none in features (from single-course.php, moved here) */
.list-none li.flex {
    justify-content: flex-end; /* Align content to the right for RTL */
}
.list-none li.flex span {
    margin-right: 0;
    margin-left: 0.75rem; /* Space between text and icon */
}

/* Ensure list-disc for accordion content is RTL friendly (from single-course.php, moved here) */
.list-disc {
    list-style-type: disc;
    padding-right: 1.5rem; /* Adjust for RTL bullet points */
    text-align: right;
}

/* Admin booking status styles (from functions.php, moved here for proper CSS file) */
.post-type-booking .subsubsub li a .dashicons {
    vertical-align: text-bottom;
}
.post-type-booking .subsubsub li a .fa-hourglass-half {
    color: orange;
}
.post-type-booking .subsubsub li a .fa-check-circle {
    color: green;
}
.post-type-booking .subsubsub li a .fa-times-circle {
    color: red;
}
.post-type-booking .subsubsub li a .fa-trash {
    color: #888;
}
.post-type-booking .subsubsub li a .fa-ban { /* Style for cancelled icon */
    color: gray;
}
.post-type-booking .status-pending {
    color: orange;
    font-weight: bold;
}
.post-type-booking .status-accepted {
    color: green;
    font-weight: bold;
}
.post-type-booking .status-rejected {
    color: red;
    font-weight: bold;
}
.post-type-booking .status-cancelled { /* Style for cancelled status */
    color: gray;
    font-weight: bold;
}
.post-type-booking .row-actions .accept a {
    color: green;
}
.post-type-booking .row-actions .reject a {
    color: red;
}
.post-type-booking .row-actions .pending a {
    color: orange;
}
/* =======================================
   Course Cards Enhanced Styles
   ======================================= */

/* Enhanced Course Card Hover Effects */
.course-card {
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.course-card:hover {
    transform: translateY(-8px) scale(1.02);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
}

/* Star Rating Animation */
.star-rating {
    display: inline-flex;
    gap: 2px;
}

.star-rating .fa-star {
    transition: all 0.3s ease;
}

.star-rating:hover .fa-star {
    transform: scale(1.1);
}

/* Course Badge Animation */
.course-badge {
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.8;
    }
}

/* Gradient Text Effect */
.gradient-text {
    background: linear-gradient(135deg, #facc15, #f59e0b);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Enhanced Button Hover Effects */
.btn-enhanced {
    position: relative;
    overflow: hidden;
}

.btn-enhanced::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s;
}

.btn-enhanced:hover::before {
    left: 100%;
}

/* Course Image Overlay Effect */
.course-image-overlay {
    position: relative;
    overflow: hidden;
}

.course-image-overlay::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(45deg, rgba(250, 204, 21, 0.1), rgba(30, 58, 95, 0.1));
    opacity: 0;
    transition: opacity 0.3s ease;
}

.course-image-overlay:hover::after {
    opacity: 1;
}

/* Course Card Image Quality Improvements */
.course-card img {
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
    image-rendering: optimize-contrast;
    -ms-interpolation-mode: nearest-neighbor;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
}

/* Ensure course images maintain quality during scaling */
.group:hover .course-card img {
    will-change: transform;
}

/* Community Hub Styling */

/* Quick Approval System Styling */
.approve-post, .reject-post {
    transition: all 0.3s ease !important;
    border-radius: 4px !important;
    font-weight: bold !important;
    text-shadow: none !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
}

.approve-post:hover {
    background: #00a32a !important;
    border-color: #00a32a !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 8px rgba(0,163,42,0.3) !important;
}

.reject-post:hover {
    background: #d63638 !important;
    border-color: #d63638 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 8px rgba(214,54,56,0.3) !important;
}

.approve-post:disabled, .reject-post:disabled {
    opacity: 0.6 !important;
    cursor: not-allowed !important;
    transform: none !important;
}

/* Status column styling */
.post_status span {
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 12px;
    display: inline-block;
    min-width: 80px;
    text-align: center;
}

/* Quick actions column styling */
.quick_actions {
    min-width: 120px;
}

.quick_actions div {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
}

/* Admin notifications styling */
.notice {
    border-left: 4px solid #00a32a !important;
    background: #f0f8ff !important;
    border: 1px solid #c3e6cb !important;
    border-radius: 4px !important;
    padding: 12px !important;
    margin: 0 !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1) !important;
}

.notice.notice-error {
    border-left-color: #d63638 !important;
    background: #fff5f5 !important;
    border-color: #f5c6cb !important;
}

.notice p {
    margin: 0 !important;
    font-weight: 500 !important;
}

/* Loading animation */
@keyframes pulse {
    0% { opacity: 1; }
    50% { opacity: 0.5; }
    100% { opacity: 1; }
}

.approve-post:disabled, .reject-post:disabled {
    animation: pulse 1.5s infinite;
}

/* Community Hub Success/Error Messages */
.community-message {
    animation: slideDown 0.5s ease-out;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    position: relative;
    overflow: hidden;
}

.community-message::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #10b981, #059669);
}

.community-message.error::before {
    background: linear-gradient(90deg, #ef4444, #dc2626);
}

.community-message i {
    font-size: 1.2em;
    margin-left: 8px;
}

.community-message ul {
    margin-top: 8px;
    padding-right: 20px;
}

.community-message li {
    margin-bottom: 4px;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Auto-hide animation for success messages */
.community-message.success {
    animation: slideDown 0.5s ease-out, fadeOut 3s ease-in 2s forwards;
}

@keyframes fadeOut {
    to {
        opacity: 0;
        transform: translateY(-10px);
    }
}
.comment-vote-button {
    background: #4a5568; /* gray-700 */
    color: white;
    border: none;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    font-size: 1.2rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.comment-vote-button:hover {
    background: #2d3748; /* brand-blue */
}

.comment-vote-button.voted {
    background: #facc15; /* brand-gold */
    color: #1a202c; /* brand-dark */
}

.vote-count {
    color: #cbd5e0; /* gray-300 */
}

.mark-best-answer-button {
    background: none;
    border: 1px solid #4a5568;
    color: #9ca3af; /* gray-400 */
    padding: 4px 12px;
    border-radius: 20px;
    cursor: pointer;
    font-size: 0.8rem;
    transition: all 0.2s ease;
}

.mark-best-answer-button:hover {
    background: #4a5568;
    color: white;
}

.mark-best-answer-button.marked {
    background: #16a34a; /* green-600 */
    border-color: #16a34a;
    color: white;
    font-weight: bold;
}

.comment-body.best-answer {
    border: 2px solid #16a34a; /* green-600 */
    border-radius: 0.5rem;
    padding: 1.5rem;
    background-color: rgba(22, 163, 74, 0.1);
}

/* Community Post Form Styling */
#submit-post-form input[type="text"],
#submit-post-form input[type="file"],
#submit-post-form select,
#submit-post-form textarea {
    transition: all 0.3s ease;
}

#submit-post-form input[type="text"]:focus,
#submit-post-form input[type="file"]:focus,
#submit-post-form select:focus,
#submit-post-form textarea:focus {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(250, 204, 21, 0.3);
}

#submit-post-form input[type="checkbox"] {
    accent-color: #facc15; /* brand-gold */
}

#submit-post-form .form-group {
    position: relative;
}

#submit-post-form .form-group::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, #facc15, #f59e0b);
    transition: width 0.3s ease;
}

#submit-post-form .form-group:focus-within::after {
    width: 100%;
}

/* Floating Animation for Course Cards */
@keyframes float {
    0%, 100% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-10px);
    }
}

.course-card:nth-child(odd) {
    animation: float 6s ease-in-out infinite;
}

.course-card:nth-child(even) {
    animation: float 6s ease-in-out infinite reverse;
}

/* =======================================
   Student Dashboard Styles
   ======================================= */
.tab-button {
    transition: all 0.3s ease;
    border-bottom: 3px solid transparent;
}

.tab-button.active {
    border-bottom-color: #facc15; /* brand-gold */
    color: #facc15;
}

.tab-content {
    display: none;
}

.tab-content.active {
    display: block;
    animation: fadeIn 0.5s ease-in-out;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.progress-bar-bg {
    background-color: #4a5568; /* gray-700 */
}

.progress-bar-fill {
    transition: width 0.5s ease-in-out;
}