/* ════════════════════════════════════════════════════════════════
   Course Product Page – v16
   ════════════════════════════════════════════════════════════════ */
:root {
    --cpp-gold:        #B07D1F;
    --cpp-gold-dark:   #8f6419;
    --cpp-gold-mid:    #c9922a;
    --cpp-gold-light:  #f9f3e8;
    --cpp-gold-border: rgba(176,125,31,.25);
    --cpp-dark:        #1a1a1a;
    --cpp-text:        #333;
    --cpp-text-muted:  #777;
    --cpp-border:      #e5e5e5;
    --cpp-bg:          #f7f7f7;
    --cpp-white:       #ffffff;
    --cpp-radius:      8px;
    --cpp-shadow:      0 4px 28px rgba(0,0,0,.10);
    --cpp-header-h:    90px;
}
.cpp-page { font-family: 'Cairo', sans-serif; direction: rtl; background: var(--cpp-white); color: var(--cpp-text); padding: 36px 0 70px; }
.cpp-wrap { max-width: 1300px; margin: 0 auto; padding: 0 24px; display: flex; gap: 32px; align-items: flex-start; }
.cpp-main { flex: 1 1 0; min-width: 0; }

.cpp-video-facade {
    position: relative; padding-bottom: 56.25%; height: 0;
    border-radius: 10px; background: #000; overflow: hidden;
    cursor: pointer; box-shadow: 0 8px 32px rgba(0,0,0,.18);
    margin-bottom: 28px;
}
.cpp-video-cover {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    object-fit: cover; opacity: 0.85; transition: opacity .3s;
}
.cpp-video-facade:hover .cpp-video-cover { opacity: 0.65; }

/* ── زر التشغيل המخصص ── */
.cpp-play-btn {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    width: 80px !important; height: 80px !important; 
    background: transparent !important; 
    border: none !important; outline: none !important; box-shadow: none !important;
    display: flex !important; align-items: center !important; justify-content: center !important; 
    cursor: pointer !important; transition: transform .3s !important; z-index: 10; padding: 0 !important;
}
.cpp-play-icon { 
    width: 100% !important; height: 100% !important; max-width: none !important; 
    object-fit: contain !important; opacity: 0.9 !important; display: block !important; 
    margin: 0 !important; transition: opacity .3s !important;
}
.cpp-video-facade:hover .cpp-play-btn { transform: translate(-50%, -50%) scale(1.1) !important; }
.cpp-video-facade:hover .cpp-play-icon { opacity: 1 !important; }

.cpp-thumb { width: 100% !important; border-radius: 10px; display: block; margin-bottom: 28px;}

/* ── الترويسة وبطاقات الخانات الـ 3 ── */
.cpp-header { padding-bottom: 22px; margin-bottom: 28px; border-bottom: 2px solid var(--cpp-border); }
.cpp-header-rating { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.cpp-stars { display: flex; align-items: center; gap: 2px; }
.cpp-header-rating-num { font-size: 14px; font-weight: 700; color: var(--cpp-text); }
.cpp-header-pos { font-size: 13px; color: var(--cpp-text-muted); font-weight: 600; }
.cpp-course-title { font-size: 28px; font-weight: 900; color: var(--cpp-dark); margin: 0 0 20px 0; line-height: 1.5; }

.cpp-meta-row { display: flex; flex-wrap: wrap; gap: 0; border: 1px solid var(--cpp-border); border-radius: var(--cpp-radius); overflow: hidden; }
.cpp-meta-box { flex: 1; min-width: 130px; display: flex; align-items: center; gap: 10px; padding: 14px 15px; background: var(--cpp-white); border-left: 1px solid var(--cpp-border); }
.cpp-meta-box:first-child { border-left: none; }
.cpp-meta-icon { width: 36px; height: 36px; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; background: var(--cpp-gold-light); color: var(--cpp-gold); }
.cpp-meta-icon svg { width: 18px; height: 18px; }
.cpp-meta-label { display: block; font-size: 11px; color: var(--cpp-text-muted); margin-bottom: 2px; white-space: nowrap;}
.cpp-meta-val { display: block; font-size: 14px; font-weight: 800; color: var(--cpp-dark); line-height: 1.2;}

.cpp-block { margin-bottom: 36px; }
.cpp-block-title { font-size: 22px; font-weight: 900; color: var(--cpp-dark); margin: 0 0 18px 0; padding-bottom: 12px; border-bottom: 3px solid var(--cpp-gold); display: flex; align-items: center; gap: 10px; }
.cpp-desc { font-size: 16px; line-height: 2; color: #444; }
.cpp-desc h1,.cpp-desc h2,.cpp-desc h3 { font-size: 18px; font-weight: 800; color: var(--cpp-dark); margin: 1.4em 0 .5em; }
.cpp-desc p { margin-bottom: 1em; }
.cpp-desc ul { list-style: none; padding-right: 0; margin-bottom: 1.3em; }
.cpp-desc ul li { position: relative; padding-right: 22px; margin-bottom: 10px; }
.cpp-desc ul li::before { content: ''; position: absolute; right: 0; top: 9px; width: 7px; height: 7px; background: var(--cpp-gold); border-radius: 50%; }

.cpp-acc { border: 1px solid var(--cpp-border); border-radius: var(--cpp-radius); margin-bottom: 10px; overflow: hidden; transition: box-shadow .2s; }
.cpp-acc:hover { box-shadow: 0 2px 12px rgba(176,125,31,.10); }
.cpp-acc-trigger { width: 100%; display: flex; align-items: center; gap: 10px; padding: 15px 18px; background: #f6f6f6; border: none; cursor: pointer; text-align: right; font-family: 'Cairo'; font-size: 15px; font-weight: 700; transition: background .2s; }
.cpp-acc-trigger:hover { background: #efefef; }
.cpp-acc-trigger[aria-expanded="true"] { background: var(--cpp-gold-light); color: white !important; }
.cpp-acc-arrow { color: white !important; transition: transform .28s; flex-shrink: 0; display: flex; }
.cpp-acc-trigger[aria-expanded="true"] .cpp-acc-arrow { transform: rotate(180deg); color: white !important; }
.cpp-acc-name { flex: 1; text-align: right; }
.cpp-acc-meta { display: flex; align-items: center; gap: 6px; flex-shrink: 0; flex-wrap: wrap; }
.cpp-acc-pill { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 20px; white-space: nowrap; }
.cpp-acc-pill--lessons { background: var(--cpp-gold); color: #fff; }
.cpp-acc-pill--preview { background: var(--cpp-gold-light); color: var(--cpp-gold-dark); border: 1px solid var(--cpp-gold-border); }

.cpp-acc-body { display: none; background: var(--cpp-white); border-top: 1px solid var(--cpp-border); }
.cpp-acc-body.is-open { display: block; }
.cpp-lesson { display: flex; align-items: center; gap: 10px; padding: 12px 18px; border-bottom: 1px solid #f5f5f5; font-size: 14px; transition: background .15s; }
.cpp-lesson:last-child { border-bottom: none; }
.cpp-lesson:hover { background: #fafaf8; }
.cpp-lesson-icon { color: #ccc; flex-shrink: 0; display: flex; }
.has-preview .cpp-lesson-icon { color: var(--cpp-gold); }
.cpp-lesson-title { flex: 1; color: var(--cpp-text); line-height: 1.55; }
.cpp-preview-btn { display: inline-flex; align-items: center; gap: 4px; background: #B07D11; color: var(--cpp-gold-dark); border: 1px solid var(--cpp-gold-border); border-radius: 5px; padding: 3px 5px; font-size: 12px; font-weight: 700; cursor: pointer; font-family: 'Cairo'; transition: background .18s, color .18s; flex-shrink: 0; }
.cpp-preview-btn:hover { background: var(--cpp-gold); color: #fff; }
.cpp-lesson-dur { font-size: 12px; color: var(--cpp-text-muted); flex-shrink: 0; direction: ltr; background: #f2f2f2; padding: 2px 8px; border-radius: 4px; }

.cpp-rating-summary { display: flex; align-items: center; gap: 20px; padding: 20px 22px; background: var(--cpp-gold-light); border-radius: var(--cpp-radius); margin-bottom: 22px; border: 1px solid var(--cpp-gold-border); }
.cpp-rating-big { font-size: 56px; font-weight: 900; color: var(--cpp-gold); line-height: 1; flex-shrink: 0; }
.cpp-rating-detail { flex: 1; }
.cpp-rating-detail .cpp-stars { margin-bottom: 6px; }
.cpp-rating-detail small { font-size: 13px; color: var(--cpp-text-muted); }

.cpp-reviews-inner ol.commentlist { display: block !important; list-style: none !important; margin: 0 !important; padding: 0 !important; }
.cpp-reviews-inner ol.commentlist li.comment { display: block !important; padding: 0 !important; border: none !important; margin-bottom: 20px !important; }
.cpp-reviews-inner ol.commentlist li.comment .comment-text { display: block !important; background: var(--cpp-white) !important; border: 1px solid var(--cpp-border) !important; border-radius: var(--cpp-radius) !important; padding: 18px 22px !important; margin: 0 !important; }
.cpp-reviews-inner ol.commentlist li img.avatar { width: 44px !important; height: 44px !important; border-radius: 50% !important; float: right; margin-left: 14px; margin-bottom: 0; border: 2px solid var(--cpp-gold-border); }
.cpp-reviews-inner p.meta { margin: 0 0 8px; font-size: 13px; overflow: hidden; }
.cpp-reviews-inner p.meta strong.woocommerce-review__author { font-weight: 800; color: var(--cpp-dark); font-size: 15px; display: block; }
.cpp-reviews-inner p.meta time { color: var(--cpp-text-muted); font-size: 12px; }
.cpp-reviews-inner .star-rating { float: none; display: inline-flex; gap: 1px; margin-bottom: 8px; }
.cpp-reviews-inner .star-rating span { color: var(--cpp-gold); }
.cpp-reviews-inner .description p { font-size: 14px; line-height: 1.85; color: #444; margin: 0; }
.cpp-reviews-inner #review_form_wrapper { margin-top: 28px; padding-top: 22px; border-top: 2px solid var(--cpp-border); }
.cpp-reviews-inner #review_form_wrapper h3, .cpp-reviews-inner #reply-title { font-size: 18px; font-weight: 800; color: var(--cpp-dark); margin-bottom: 16px; }
.cpp-reviews-inner .comment-form input[type="text"], .cpp-reviews-inner .comment-form input[type="email"], .cpp-reviews-inner .comment-form textarea { width: 100%; padding: 11px 14px; border: 1px solid var(--cpp-border); border-radius: 7px; font-family: 'Cairo'; font-size: 14px; direction: rtl; outline: none; box-sizing: border-box; }
.cpp-reviews-inner .comment-form input:focus, .cpp-reviews-inner .comment-form textarea:focus { border-color: var(--cpp-gold); box-shadow: 0 0 0 3px rgba(176,125,31,.12); }
.cpp-reviews-inner .comment-form-rating { margin-bottom: 14px; }
.cpp-reviews-inner .comment-form-rating .stars a { color: var(--cpp-gold); font-size: 24px; }
.cpp-reviews-inner #submit, .cpp-reviews-inner input[type="submit"] { background: var(--cpp-gold) !important; color: #fff !important; border: none !important; border-radius: 8px !important; padding: 13px 30px !important; font-family: 'Cairo' !important; font-size: 15px !important; font-weight: 700 !important; cursor: pointer !important; }

.cpp-instructor { display: flex; align-items: flex-start; gap: 20px; padding: 28px; background: var(--cpp-white); border: 1px solid var(--cpp-border); border-radius: 12px; border-right: 4px solid var(--cpp-gold); box-shadow: var(--cpp-shadow); }
.cpp-instructor-avatar { width: 90px; height: 90px; border-radius: 50%; object-fit: cover; flex-shrink: 0; border: 3px solid var(--cpp-gold); box-shadow: 0 4px 16px rgba(176,125,31,.20); }
.cpp-instructor-avatar-placeholder { width: 90px; height: 90px; border-radius: 50%; background: var(--cpp-gold-light); border: 3px solid var(--cpp-gold-border); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--cpp-gold); }
.cpp-instructor-body { flex: 1; }
.cpp-instructor-label { font-size: 12px; font-weight: 700; color: var(--cpp-gold); margin-bottom: 4px; }
.cpp-instructor-name { font-size: 20px; font-weight: 900; color: var(--cpp-dark); margin: 0 0 4px; }
.cpp-instructor-role { font-size: 13px; color: var(--cpp-text-muted); margin-bottom: 10px; }
.cpp-instructor-bio { font-size: 14px; line-height: 1.85; color: #555; margin: 0; }
.cpp-instructor-stats { display: flex; gap: 20px; margin-top: 14px; flex-wrap: wrap; }
.cpp-instructor-stat { text-align: center; }
.cpp-instructor-stat-val { display: block; font-size: 20px; font-weight: 900; color: var(--cpp-gold); }
.cpp-instructor-stat-label { font-size: 11px; color: var(--cpp-text-muted); }

.cpp-sidebar { width: 305px; flex-shrink: 0; position: sticky; top: calc(var(--cpp-header-h) + 18px); }
.cpp-price-card { background: var(--cpp-white); border: 1px solid var(--cpp-border); border-radius: 14px; overflow: hidden; box-shadow: var(--cpp-shadow); }
.cpp-card-top-bar { height: 5px; background: linear-gradient(90deg, var(--cpp-gold), var(--cpp-gold-mid)); }
.cpp-card-inner { padding: 24px 22px 22px; }
.cpp-card-price-row { display: flex; align-items: baseline; gap: 8px; margin-bottom: 6px; flex-wrap: wrap; }
.cpp-card-discount { font-size: 13px; font-weight: 700; color: var(--cpp-gold-dark); background: var(--cpp-gold-light); padding: 2px 8px; border-radius: 20px; border: 1px solid var(--cpp-gold-border); }
.cpp-card-old { font-size: 15px; color: #aaa; text-decoration: line-through; }
.cpp-card-new { font-size: 34px; font-weight: 900; color: var(--cpp-dark); line-height: 1; }
.cpp-card-payment { text-align: center; padding: 14px 0; border-bottom: 1px solid var(--cpp-border); margin-bottom: 18px; }
.cpp-card-payment-label { font-size: 12px; color: var(--cpp-text-muted); margin: 0 0 10px 0; font-weight: 600; }
.cpp-card-payment-icons { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; }
.cpp-payment-img { width: 100%; max-width: 240px; height: auto; object-fit: contain; display: block; margin: 0 auto; }

.cpp-card-cta { display: flex; flex-direction: column; align-items: stretch; width: 100%; }
.cpp-card-cta form.cart { display: flex !important; flex-direction: column !important; align-items: stretch !important; width: 100% !important; margin: 0 !important; padding: 0 !important; }
.cpp-card-cta .quantity { display: none !important; }
.cpp-card-cta button.single_add_to_cart_button { display: flex !important; justify-content: center !important; align-items: center !important; width: 100% !important; max-width: 100% !important; margin: 0 auto !important; background: linear-gradient(135deg, var(--cpp-gold) 0%, var(--cpp-gold-mid) 100%) !important; color: #fff !important; border: none !important; border-radius: 10px !important; padding: 16px 20px !important; font-family: 'Cairo', sans-serif !important; font-size: 18px !important; font-weight: 900 !important; text-align: center !important; cursor: pointer !important; transition: opacity .2s, transform .15s, box-shadow .2s !important; box-shadow: 0 4px 16px rgba(176,125,31,.35) !important; }
.cpp-card-cta button.single_add_to_cart_button:hover { opacity: .92 !important; transform: translateY(-2px) !important; box-shadow: 0 6px 22px rgba(176,125,31,.45) !important; }

.cpp-modal { position: fixed !important; inset: 0 !important; z-index: 999999 !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.cpp-modal[hidden] { display: none !important; }
.cpp-modal-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.80); backdrop-filter: blur(4px); cursor: pointer; }
.cpp-modal-box { position: relative; z-index: 1; background: #111; border-radius: 12px; width: 90%; max-width: 860px; box-shadow: 0 24px 72px rgba(0,0,0,.55); overflow: hidden; }
.cpp-modal-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 18px; background: #1c1c1c; border-bottom: 1px solid rgba(176,125,31,.3); }
.cpp-modal-title { font-size: 14px; font-weight: 600; color: #eee; }
.cpp-modal-close { background: none; border: none; cursor: pointer; color: #aaa; padding: 4px; display: flex; }
.cpp-modal-close:hover { color: var(--cpp-gold); }
.cpp-modal-video { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; }
.cpp-modal-video iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

@media (max-width: 960px) { .cpp-wrap { flex-direction: column; } .cpp-sidebar { width: 100%; position: static; } .cpp-price-card { max-width: 480px; margin: 0 auto; } .cpp-instructor { flex-direction: column; align-items: center; text-align: center; } .cpp-instructor-stats { justify-content: center; } .cpp-meta-row {flex-direction: column;} .cpp-meta-box { border-left: none; border-bottom: 1px solid var(--cpp-border);} }
[id^="cpp-sec-"] > button, [id^="cpp-sec-"] > div.cpp-lesson.has-preview > button { background-color: #c9922a !important; color: #fff !important; }

/* ════════════════════════════════════════════════════════════════
   إصلاحات الموبايل الجذرية (Responsive Fixes)
   ════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
    /* 1. إصلاح مسافات الصفحة بالكامل لمنع التصاق النص بحواف الشاشة */
    .cpp-wrap {
        padding: 0 15px !important;
        overflow: hidden !important; /* يمنع أي عنصر من كسر عرض الشاشة */
    }
    
    /* 2. إصلاح الصورة البارزة (غلاف الفيديو) لتأخذ عرض الشاشة فقط */
    .cpp-thumb, 
    .cpp-media--video,
    .cpp-video-facade {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
    }
    
    /* الحفاظ على نسبة العرض للارتفاع للفيديو (16:9) */
    .cpp-video-facade {
        padding-bottom: 56.25% !important; 
        height: 0 !important;
    }

    .cpp-video-cover {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    /* 3. تصغير زر التشغيل (Play) الضخم في الموبايل */
    .cpp-play-btn {
        width: 65px !important;
        height: 65px !important;
    }

    /* 4. إصلاح صورة المدرب/العميل العملاقة وتوسيطها */
    .cpp-instructor-avatar {
        width: 120px !important; 
        height: 120px !important;
        margin: 0 auto 15px auto !important;
        display: block !important;
    }

    /* 5. ضبط نصوص العناوين والوصف لتكون مقروءة بوضوح */
    .cpp-course-title {
        font-size: 22px !important;
        line-height: 1.4 !important;
        text-align: right !important; 
    }
    
    .cpp-desc, .cpp-desc p, .cpp-desc ul li {
        font-size: 15px !important;
        line-height: 1.8 !important;
    }

    /* 6. إصلاح كارت الشراء (البطاقة الجانبية) لتملأ شاشة الموبايل بشكل صحيح */
    .cpp-price-card {
        max-width: 100% !important;
        width: 100% !important;
        margin-top: 20px !important;
    }

    /* 7. تصغير أيقونات طرق الدفع لتتناسب مع الموبايل */
    .cpp-payment-img {
        max-width: 90% !important;
    }
}

/* ════════════════════════════════════════════════════════════════
   إصلاحات انقطاع الجوال + ضغط بطاقات التطويرات (Upsells)
   ════════════════════════════════════════════════════════════════ */

/* 1. ضغط المسافات في التطويرات الاختيارية لتقصير العمود الجانبي (لابتوب وجوال) */
.cpp-addon-label {
    padding: 8px 10px !important;
    margin-bottom: 8px !important;
    gap: 8px !important;
}
.cpp-addon-label strong {
    font-size: 13px !important;
    margin-bottom: 2px !important;
}
.cpp-addon-label span, .cpp-addon-label div {
    line-height: 1.3 !important;
}
.cpp-addons-container {
    padding-top: 10px !important;
    margin-bottom: 10px !important;
}
.cpp-addons-container h4 {
    margin-bottom: 8px !important;
}

/* 2. إصلاحات الموبايل الجذرية (لمنع الانقطاع واحتواء الصور) */
@media (max-width: 768px) {
    /* منع خروج أي عنصر عن حدود الشاشة (حل مشكلة الانقطاع) */
    html, body {
        overflow-x: hidden !important;
    }
    .cpp-wrap {
        padding: 0 15px !important;
        width: 100% !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }
    .cpp-main, .cpp-sidebar {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* إصلاح العنوان الطويل لكي ينكسر ولا يخرج عن الشاشة */
    .cpp-course-title {
        word-wrap: break-word !important;
        white-space: normal !important;
        font-size: 20px !important;
    }

    /* احتواء الصورة البارزة لكي لا تصبح عملاقة في الجوال */
    .cpp-thumb {
        width: 100% !important;
        max-height: 250px !important; /* تحديد أقصى ارتفاع */
        object-fit: cover !important; /* يجعلها تغطي المساحة بذكاء */
        object-position: top center !important; /* التركيز على الوجه من الأعلى */
        border-radius: 8px !important;
    }

    /* إصلاح مربعات البيانات (ساعات، خدمات، نوع) لتصبح عمودية بدلاً من ضغط الشاشة */
    .cpp-meta-row {
        flex-direction: column !important;
        border: none !important;
        gap: 10px !important;
    }
    .cpp-meta-box {
        border: 1px solid var(--cpp-border) !important;
        border-radius: 8px !important;
        width: 100% !important;
        box-sizing: border-box !important;
        padding: 10px 15px !important;
    }
}

/* ════════════════════════════════════════════════════════════════
   إصلاح طول القائمة الجانبية في الديسك توب (شريط التمرير)
   ════════════════════════════════════════════════════════════════ */

@media (min-width: 961px) {
    /* 1. منع البطاقة بالكامل من تجاوز طول الشاشة */
    .cpp-price-card {
        max-height: calc(100vh - 110px) !important; /* خصم مساحة الهيدر العلوي */
        overflow-y: auto !important;
        scrollbar-width: thin;
        scrollbar-color: #B07D1F #f7f7f7;
    }

    /* تنسيق شريط التمرير للبطاقة (كروم وسفاري) */
    .cpp-price-card::-webkit-scrollbar {
        width: 6px;
    }
    .cpp-price-card::-webkit-scrollbar-track {
        background: #fdfdfd;
        border-radius: 10px;
    }
    .cpp-price-card::-webkit-scrollbar-thumb {
        background-color: #B07D1F;
        border-radius: 10px;
    }
    
    /* 2. جعل صندوق "التطويرات الاختيارية" قابلاً للتمرير بشكل مستقل */
    /* هذا يضمن بقاء زر "إضافة إلى السلة" ظاهراً دائماً أسفل البطاقة */
    .cpp-addons-container {
        max-height: 220px !important; /* يمكنك تكبير أو تصغير هذا الرقم حسب الرغبة */
        overflow-y: auto !important;
        padding-left: 10px !important; /* مساحة لشريط التمرير لتجنب تداخل الكلمات */
        scrollbar-width: thin;
    }

    /* تنسيق شريط التمرير لصندوق التطويرات */
    .cpp-addons-container::-webkit-scrollbar {
        width: 4px;
    }
    .cpp-addons-container::-webkit-scrollbar-track {
        background: #f9f9f9;
        border-radius: 4px;
    }
    .cpp-addons-container::-webkit-scrollbar-thumb {
        background-color: #c9922a;
        border-radius: 4px;
    }
}