/* TVS Checkout Beautifier v11.1 - Astra-proof, all !important */

/* === CTA BUTTONS — ALL GOLD #f1c349, WHITE TEXT === */
.tvs-cta,
a.tvs-cta,
a.tvs-cta:link,
a.tvs-cta:visited,
button.tvs-cta {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: #f1c349 !important;
    background-image: none !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    font-family: inherit !important;
    line-height: 1.3 !important;
    padding: 12px 24px !important;
    border: none !important;
    border-radius: 8px !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    box-shadow: none !important;
    text-shadow: none !important;
    outline: none !important;
    box-sizing: border-box !important;
}
a.tvs-cta:hover,
a.tvs-cta:focus,
a.tvs-cta:active,
button.tvs-cta:hover {
    background-color: #dba82f !important;
    color: #ffffff !important;
    text-decoration: none !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 14px rgba(241,195,73,0.45) !important;
}

/* Specific sizes */
.tvs-cta-upgrade { white-space: nowrap !important; flex-shrink: 0 !important; }
.tvs-cta-add { width: 100% !important; text-align: center !important; margin-top: 6px !important; }
.tvs-cta-sm { padding: 10px 18px !important; font-size: 13px !important; white-space: nowrap !important; }

/* States */
a.tvs-cta-done, .tvs-cta-done { opacity: 0.6 !important; pointer-events: none !important; }
a.tvs-cta-busy, .tvs-cta-busy { opacity: 0.7 !important; pointer-events: none !important; }
.tvs-spin { display: inline-block !important; width: 14px !important; height: 14px !important; border: 2px solid rgba(255,255,255,0.3) !important; border-top-color: #fff !important; border-radius: 50% !important; animation: tvsSpin 0.5s linear infinite !important; margin-right: 6px !important; }
@keyframes tvsSpin { to { transform: rotate(360deg); } }

/* === SAVE BADGE (green, informational only) === */
.tvs-tag-save {
    display: inline-block !important;
    background-color: #27ae60 !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    padding: 3px 8px !important;
    border-radius: 4px !important;
    text-transform: uppercase !important;
    vertical-align: middle !important;
    text-decoration: none !important;
    line-height: 1.3 !important;
}

/* === UPGRADE BANNER === */
.tvs-banner {
    background: #fff !important;
    border: 2px solid #f1c349 !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    margin: 0 0 24px 0 !important;
}
.tvs-banner-ribbon {
    background: #f1c349 !important;
    color: #1a1a1a !important;
    text-align: center !important;
    padding: 8px 16px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}
.tvs-banner-body {
    display: flex !important;
    align-items: center !important;
    gap: 18px !important;
    padding: 18px 22px !important;
    flex-wrap: wrap !important;
}
.tvs-banner-img {
    width: 68px !important;
    height: 68px !important;
    object-fit: contain !important;
    border-radius: 8px !important;
    flex-shrink: 0 !important;
}
.tvs-banner-info { flex: 1 !important; min-width: 200px !important; }
.tvs-banner-info h3 { margin: 0 0 5px !important; font-size: 16px !important; font-weight: 700 !important; color: #1a1a1a !important; }
.tvs-banner-price { display: flex !important; align-items: center !important; gap: 8px !important; margin-bottom: 6px !important; flex-wrap: wrap !important; }
.tvs-banner-price del { color: #999 !important; font-size: 14px !important; }
.tvs-banner-price strong { font-size: 18px !important; color: #1a1a1a !important; }
.tvs-banner-perks { font-size: 13px !important; color: #333 !important; }

/* === CART UPSELL CARDS === */
.tvs-upsells { margin: 30px 0 !important; }
.tvs-upsells-h { font-size: 22px !important; font-weight: 800 !important; color: #1a1a1a !important; text-align: center !important; margin: 0 0 4px !important; }
.tvs-upsells-sub { font-size: 14px !important; color: #777 !important; text-align: center !important; margin: 0 0 22px !important; }

.tvs-upsells-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)) !important;
    gap: 20px !important;
}

.tvs-card {
    background: #fff !important;
    border: 1px solid #e5e5e5 !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.06) !important;
    display: flex !important;
    flex-direction: column !important;
    transition: box-shadow 0.2s, transform 0.2s !important;
}
.tvs-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,0.1) !important; transform: translateY(-2px) !important; }

.tvs-card-img {
    background: #f7f7f7 !important;
    padding: 20px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 180px !important;
}
.tvs-card-img img { max-width: 100% !important; max-height: 180px !important; object-fit: contain !important; }

.tvs-card-body { padding: 18px !important; display: flex !important; flex-direction: column !important; flex: 1 !important; }
.tvs-card-body h3 { font-size: 19px !important; font-weight: 800 !important; color: #1a1a1a !important; margin: 0 0 10px !important; }

/* Bullet lists */
.tvs-bl { list-style: none !important; padding: 0 !important; margin: 0 0 14px !important; }
.tvs-bl li { font-size: 14px !important; color: #333 !important; padding: 3px 0 !important; line-height: 1.5 !important; }
.tvs-bl li::before { content: "✓ " !important; color: #27ae60 !important; font-weight: 700 !important; }
.tvs-bl-sm li { font-size: 12px !important; padding: 2px 0 !important; }

.tvs-card-foot { display: flex !important; align-items: center !important; gap: 8px !important; margin-bottom: 6px !important; border-top: 1px solid #e5e5e5 !important; padding-top: 14px !important; margin-top: auto !important; }
.tvs-card-price { font-size: 19px !important; font-weight: 800 !important; color: #1a1a1a !important; }

/* === CHECKOUT COMPACT UPSELLS === */
.tvs-co-upsells { margin: 22px 0 !important; }
.tvs-co-h { font-size: 17px !important; font-weight: 700 !important; color: #1a1a1a !important; margin: 0 0 14px !important; padding-bottom: 6px !important; border-bottom: 2px solid #f1c349 !important; display: inline-block !important; }

.tvs-co-item {
    display: flex !important;
    align-items: flex-start !important;
    gap: 14px !important;
    background: #fff !important;
    border: 1px solid #e5e5e5 !important;
    border-radius: 8px !important;
    padding: 14px !important;
    margin-bottom: 10px !important;
    transition: border-color 0.2s !important;
}
.tvs-co-item:hover { border-color: #f1c349 !important; }

.tvs-co-img { width: 60px !important; height: 60px !important; object-fit: contain !important; border-radius: 6px !important; flex-shrink: 0 !important; background: #f7f7f7 !important; }
.tvs-co-info { flex: 1 !important; min-width: 0 !important; }
.tvs-co-info h4 { font-size: 15px !important; font-weight: 700 !important; color: #1a1a1a !important; margin: 0 0 2px !important; }
.tvs-sub-tag { font-size: 10px !important; font-weight: 600 !important; color: #dba82f !important; background: #fef9e7 !important; padding: 1px 5px !important; border-radius: 3px !important; margin-left: 4px !important; }
.tvs-co-tagline { font-size: 12px !important; color: #777 !important; margin: 0 0 6px !important; }
.tvs-co-action { display: flex !important; flex-direction: column !important; align-items: flex-end !important; gap: 6px !important; flex-shrink: 0 !important; }
.tvs-co-action strong { font-size: 16px !important; color: #1a1a1a !important; }

/* === REVIEWS === */
.tvs-reviews {
    margin: 24px 0 10px !important;
    padding: 24px !important;
    background: #f7f7f7 !important;
    border: 1px solid #e5e5e5 !important;
    border-radius: 10px !important;
}
.tvs-rev-h { font-size: 18px !important; font-weight: 700 !important; color: #1a1a1a !important; margin: 0 0 18px !important; }
.tvs-gold-stars { color: #f1c349 !important; margin-right: 6px !important; }
.tvs-gold-stars-sm { color: #f1c349 !important; font-size: 13px !important; }

/* 2-column: videos left, text right */
.tvs-rev-layout { display: flex !important; gap: 20px !important; align-items: flex-start !important; }
.tvs-rev-vids { flex: 0 0 220px !important; display: flex !important; flex-direction: column !important; gap: 14px !important; }
.tvs-rev-txts { flex: 1 !important; display: flex !important; flex-direction: column !important; gap: 10px !important; min-width: 0 !important; }

/* Video thumbnails — big and beautiful */
.tvs-vid { cursor: pointer !important; transition: transform 0.2s !important; }
.tvs-vid:hover { transform: translateY(-2px) !important; }
.tvs-vid-thumb {
    position: relative !important;
    width: 220px !important;
    height: 165px !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    background: #111 !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.15) !important;
}
.tvs-vid-thumb img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
.tvs-vid-ph { width: 100% !important; height: 100% !important; background: linear-gradient(135deg,#1a1a1a 0%,#333 50%,#222 100%) !important; }
.tvs-play {
    position: absolute !important; top: 50% !important; left: 50% !important;
    transform: translate(-50%,-50%) !important;
    width: 50px !important; height: 50px !important;
    background: #f1c349 !important; color: #fff !important;
    border-radius: 50% !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    font-size: 18px !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.4) !important;
    transition: transform 0.2s !important;
}
.tvs-vid:hover .tvs-play { transform: translate(-50%,-50%) scale(1.12) !important; }

/* Top review badge on video */
.tvs-top-badge {
    position: absolute !important; top: 8px !important; left: 8px !important;
    background: rgba(0,0,0,0.7) !important; color: #f1c349 !important;
    font-size: 10px !important; font-weight: 700 !important;
    padding: 3px 8px !important; border-radius: 4px !important;
}

.tvs-vid-info { padding: 6px 0 !important; }
.tvs-vid-name { display: block !important; font-size: 14px !important; font-weight: 700 !important; color: #1a1a1a !important; }
.tvs-vid-title { display: block !important; font-size: 12px !important; color: #777 !important; margin-top: 2px !important; }

/* Text reviews */
.tvs-txt { background: #fff !important; border: 1px solid #e5e5e5 !important; border-radius: 8px !important; padding: 14px 16px !important; }
.tvs-txt-top { display: flex !important; align-items: center !important; gap: 8px !important; margin-bottom: 8px !important; }
.tvs-txt-avatar { width: 36px !important; height: 36px !important; border-radius: 50% !important; background: #f1c349 !important; color: #fff !important; display: flex !important; align-items: center !important; justify-content: center !important; font-size: 15px !important; font-weight: 700 !important; flex-shrink: 0 !important; }
.tvs-txt-avatar-img { width: 36px !important; height: 36px !important; border-radius: 50% !important; object-fit: cover !important; flex-shrink: 0 !important; }
.tvs-txt-meta { display: flex !important; align-items: center !important; gap: 5px !important; flex: 1 !important; flex-wrap: wrap !important; }
.tvs-txt-meta strong { font-size: 13px !important; color: #1a1a1a !important; }
.tvs-badge-v { font-size: 10px !important; font-weight: 600 !important; color: #27ae60 !important; background: rgba(39,174,96,0.1) !important; padding: 2px 6px !important; border-radius: 3px !important; }
.tvs-badge-top { font-size: 10px !important; font-weight: 600 !important; color: #f1c349 !important; background: rgba(241,195,73,0.15) !important; padding: 2px 6px !important; border-radius: 3px !important; }
.tvs-txt-date { font-size: 11px !important; color: #999 !important; margin-left: auto !important; flex-shrink: 0 !important; }
.tvs-txt-body { font-size: 13px !important; color: #333 !important; line-height: 1.55 !important; margin: 0 !important; font-style: italic !important; }
.tvs-txt-photo { width: 80px !important; height: 80px !important; border-radius: 8px !important; object-fit: cover !important; margin-top: 10px !important; border: 1px solid #eee !important; }

/* === VIDEO MODAL === */
.tvs-modal { position: fixed !important; inset: 0 !important; z-index: 999999 !important; background: rgba(0,0,0,0.85) !important; display: none !important; align-items: center !important; justify-content: center !important; }
.tvs-modal.tvs-on { display: flex !important; }
.tvs-modal-box { position: relative !important; width: 90% !important; max-width: 640px !important; aspect-ratio: 16/9 !important; border-radius: 10px !important; overflow: hidden !important; background: #000 !important; }
.tvs-modal-box iframe { width: 100% !important; height: 100% !important; border: 0 !important; }
.tvs-modal-x { position: absolute !important; top: -36px !important; right: 0 !important; background: none !important; border: none !important; color: #fff !important; font-size: 28px !important; cursor: pointer !important; padding: 0 !important; line-height: 1 !important; }

/* === TOAST === */
.tvs-toast { position: fixed !important; top: 20px !important; right: 20px !important; z-index: 999998 !important; background: #1a1a1a !important; color: #fff !important; padding: 13px 22px !important; border-radius: 8px !important; font-size: 14px !important; font-weight: 600 !important; box-shadow: 0 8px 30px rgba(0,0,0,0.15) !important; transform: translateX(120%) !important; transition: transform 0.3s ease !important; border-left: 4px solid #f1c349 !important; }
.tvs-toast.tvs-on { transform: translateX(0) !important; }

/* === CHECKOUT: hide giant images in order summary === */
.woocommerce-checkout-review-order-table .product-name img { display: none !important; }

/* === RESPONSIVE === */
@media (max-width: 768px) {
    .tvs-banner-body { flex-direction: column !important; text-align: center !important; gap: 12px !important; padding: 14px !important; }
    .tvs-banner-img { width: 52px !important; height: 52px !important; }
    .tvs-banner-price { justify-content: center !important; }
    a.tvs-cta-upgrade, .tvs-cta-upgrade { width: 100% !important; padding: 14px !important; }
    .tvs-upsells-grid { grid-template-columns: 1fr !important; }
    .tvs-co-item { flex-direction: column !important; }
    .tvs-co-action { flex-direction: row !important; width: 100% !important; align-items: center !important; justify-content: space-between !important; }
    .tvs-rev-layout { flex-direction: column !important; }
    .tvs-rev-vids { flex: none !important; flex-direction: row !important; overflow-x: auto !important; width: 100% !important; }
    .tvs-vid-thumb { width: 160px !important; height: 120px !important; }
}

@media print { .tvs-banner,.tvs-upsells,.tvs-co-upsells,.tvs-reviews { display: none !important; } }
