:root{
    --red:#EF394E;
    --red-dark:#C8102E;
    --red-tint:#FFF1F2;
    --ink:#1B1B1F;
    --ink-soft:#5C5C66;
    --line:#ECECEF;
    --bg:#F7F7F8;
    --gold:#F5A623;
    --radius:10px;
    --card-bg:#fff;
    --surface-dark:#17171B; /* پس‌زمینه‌ی همیشه‌تیره (نوار بالا، اطلاعیه، فوتر) — با تغییر تم عوض نمی‌شه */
}

[data-theme="dark"]{
    --ink:#F1F1F3;
    --ink-soft:#B4B4BC;
    --line:#2B2B31;
    --bg:#15151A;
    --card-bg:#1E1E24;
    --red-tint:#2A1417;
}
[data-theme="dark"] body{ background:var(--bg); color:var(--ink); }
[data-theme="dark"] .site-header .navbar,
[data-theme="dark"] .catnav,
[data-theme="dark"] .product-card,
[data-theme="dark"] .panel-card,
[data-theme="dark"] .card{
    background:var(--card-bg) !important;
    border-color:var(--line) !important;
    color:var(--ink);
}
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select{
    background:var(--card-bg); color:var(--ink); border-color:var(--line);
}
[data-theme="dark"] .text-muted{ color:var(--ink-soft) !important; }
[data-theme="dark"] .text-secondary{ color:var(--ink-soft) !important; }
[data-theme="dark"] .text-reset,
[data-theme="dark"] .card-title,
[data-theme="dark"] .card-body,
[data-theme="dark"] h1, [data-theme="dark"] h2, [data-theme="dark"] h3,
[data-theme="dark"] h4, [data-theme="dark"] h5, [data-theme="dark"] h6,
[data-theme="dark"] p, [data-theme="dark"] label{
    color:var(--ink);
}
[data-theme="dark"] .list-unstyled a{ color:var(--ink); }
[data-theme="dark"] .border-bottom,
[data-theme="dark"] .border-top{ border-color:var(--line) !important; }
[data-theme="dark"] .bg-light{ background:var(--card-bg) !important; }
[data-theme="dark"] .alert-info{ background:#173238; color:#9fd8e0; border-color:#1f4a52; }
[data-theme="dark"] .alert-secondary{ background:#26262c; color:var(--ink-soft); border-color:var(--line); }

body{
    font-family:'Vazirmatn', Tahoma, sans-serif;
    background:var(--bg);
    color:var(--ink);
    transition:background .2s, color .2s;
}

a{ text-decoration:none; }

/* ===== announcement bar ===== */
.announcement-bar{
    background:var(--surface-dark); color:#fff; font-size:.8rem; padding:8px 0; position:relative;
}
.announcement-close{
    background:transparent; border:none; color:#fff; font-size:1.1rem; line-height:1; cursor:pointer; opacity:.7;
}
.announcement-close:hover{ opacity:1; }

/* ===== theme toggle ===== */
.theme-toggle-btn{
    background:rgba(255,255,255,.1);
    border:1px solid rgba(255,255,255,.18);
    color:#fff;
    width:26px; height:26px;
    border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:.72rem;
    cursor:pointer;
    float:left;
    transition:background .15s, transform .15s;
}
.theme-toggle-btn:hover{
    background:var(--red);
    border-color:var(--red);
    transform:rotate(15deg);
}

/* ===== add-to-cart pulse animation ===== */
@keyframes addPulse{
    0%{ transform:scale(1); }
    40%{ transform:scale(1.12); }
    100%{ transform:scale(1); }
}
.added-pulse{ animation:addPulse .35s ease; }

/* ===== skeleton loading ===== */
.skeleton{
    background:linear-gradient(90deg, #eee 25%, #f5f5f5 37%, #eee 63%);
    background-size:400% 100%;
    animation:skeletonWave 1.4s ease infinite;
    border-radius:6px;
}
@keyframes skeletonWave{ 0%{background-position:100% 50%;} 100%{background-position:0 50%;} }

/* ===== star rating ===== */
.stars{ color:var(--gold); letter-spacing:1px; font-size:.8rem; }
.stars .empty{ color:#dcdcdc; }
.review-count{ font-size:.72rem; color:var(--ink-soft); }

/* ===== wishlist heart / compare buttons on card ===== */
.card-action-btn{
    width:30px; height:30px; border-radius:50%; background:var(--card-bg); border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center; font-size:.8rem; color:var(--ink-soft);
    position:absolute; z-index:3; cursor:pointer;
}
.card-action-btn:hover{ color:var(--red); border-color:var(--red); }
.card-action-btn.active{ background:var(--red); color:#fff; border-color:var(--red); }
.wishlist-btn{ top:10px; left:10px; }
.compare-btn{ top:48px; left:10px; }
.out-of-stock-badge ~ .wishlist-btn{ top:10px; }

/* ===== top strip ===== */
.top-bar{
    background:var(--surface-dark);
    color:#cfcfd6;
    font-size:12.5px;
    padding:6px 0;
    text-align:center;
    position:relative;
}

/* ===== header ===== */
.site-header{ background:#fff; border-bottom:1px solid var(--line); }
[data-theme="dark"] .site-header{ background:var(--card-bg); }

.site-header .navbar{
    background:#fff !important;
    padding-top:.85rem;
    padding-bottom:.85rem;
}

.site-header .navbar-brand{
    color:var(--ink) !important;
    font-weight:800;
    font-size:20px;
}

.brand-wordmark{
    font-weight:700;
    letter-spacing:-0.5px;
    font-size:21px;
    color:var(--ink);
    position:relative;
    padding-bottom:2px;
}
.brand-wordmark::after{
    content:"";
    position:absolute;
    right:0; bottom:-2px;
    width:20px; height:3px;
    background:var(--red);
    border-radius:2px;
}
.footer-brand.brand-wordmark{ color:#fff; margin-bottom:10px; display:inline-block; }
.footer-brand.brand-wordmark::after{ background:var(--red); }

.site-header .nav-link{
    color:var(--ink-soft) !important;
    font-size:13.5px;
}
.site-header .nav-link:hover{ color:var(--red) !important; }

.search-input{
    border:1px solid var(--line);
    background:var(--bg);
    border-radius:8px 0 0 8px !important;
    height:44px;
}
.btn-search{
    background:var(--red);
    border:none;
    border-radius:0 8px 8px 0 !important;
    color:#fff;
    height:44px;
    width:48px;
}
.btn-search:hover{ background:var(--red-dark); color:#fff; }

.site-header .badge{
    font-size:10px;
    background:var(--surface-dark) !important;
}

/* ===== category strip under header ===== */
.catnav{
    background:#fff;
    border-bottom:1px solid var(--line);
    overflow-x:auto;
    white-space:nowrap;
}
.catnav .wrap{ padding:10px 0; }
.catnav a{
    display:inline-block;
    color:var(--ink-soft);
    font-size:13.5px;
    padding:4px 14px;
    border-bottom:2px solid transparent;
}
.catnav a:hover, .catnav a.active{
    color:var(--red);
    border-color:var(--red);
    font-weight:700;
}

/* ===== hero ===== */
.hero-banner{
    background:linear-gradient(120deg,#B8102C 0%, var(--red) 55%, #FF7A63 100%);
    color:#fff;
    border-radius:var(--radius);
    padding:2.6rem 2.2rem;
    position:relative;
    overflow:hidden;
}
.hero-banner:before{
    content:"";
    position:absolute; left:-40px; bottom:-60px;
    width:220px; height:220px;
    background:rgba(255,255,255,.12);
    border-radius:50%;
}
.hero-banner .eyebrow{
    display:inline-block;
    font-size:13px;
    background:rgba(255,255,255,.18);
    padding:4px 12px;
    border-radius:20px;
    margin-bottom:10px;
}
.hero-banner h1{ font-weight:800; }
.hero-banner .btn-light{
    color:var(--red-dark);
    font-weight:700;
    border-radius:8px;
}

/* ===== quick category pills ===== */
.category-pill{
    display:inline-block;
    margin:3px;
    border-radius:20px !important;
    border-color:var(--line) !important;
    color:var(--ink-soft) !important;
    font-size:13px;
}
.category-pill:hover, .category-pill.active{
    background:var(--red) !important;
    color:#fff !important;
    border-color:var(--red) !important;
}

/* ===== section heading ===== */
.section-title{
    font-size:17px;
    font-weight:800;
    margin-bottom:0;
}

/* ===== product card ===== */
.product-card{
    height:100%;
    border:1px solid var(--line);
    border-radius:var(--radius);
    transition:box-shadow .15s ease-in-out, transform .15s ease-in-out;
    background:#fff;
    position:relative;
    overflow:hidden;
}
.product-card:hover{
    transform:translateY(-3px);
    box-shadow:0 10px 24px rgba(20,20,30,.08);
}
.product-card img{
    height:190px;
    width:100%;
    object-fit:contain;
    padding:18px;
    background:radial-gradient(ellipse at center, #fbfbfc 0%, #f3f3f5 100%);
    transition:transform .35s cubic-bezier(.2,.8,.2,1);
    filter:drop-shadow(0 10px 14px rgba(20,20,30,.08));
}
.product-card:hover img{
    transform:scale(1.07);
}
[data-theme="dark"] .product-card img{
    background:radial-gradient(ellipse at center, #26262e 0%, #1a1a20 100%);
    filter:drop-shadow(0 10px 14px rgba(0,0,0,.35));
}
.discount-badge{
    position:absolute; top:10px; right:10px;
    background:var(--red); color:#fff;
    font-size:.72rem; font-weight:700;
    padding:3px 8px; border-radius:6px; z-index:2;
}
.out-of-stock-badge{
    position:absolute; top:10px; left:10px;
    background:#6c757d; color:#fff;
    font-size:.68rem; padding:3px 8px; border-radius:6px; z-index:2;
}
.product-card .card-title{
    font-size:.85rem;
    line-height:1.7;
    min-height:2.6em;
    color:var(--ink);
}
.product-card .rating{
    display:flex; align-items:center; gap:5px;
    font-size:.7rem; color:var(--ink-soft); margin:4px 0;
}
.product-card .rating .stars{ color:var(--gold); }

.price-old{
    text-decoration:line-through;
    color:#a5a5ab;
    font-size:.75rem;
}
.price-new{
    color:var(--ink);
    font-weight:800;
    font-size:1.05rem;
}
.price-new::after{
    content:' تومان';
    font-size:.68rem;
    font-weight:400;
    color:var(--ink-soft);
}

.btn-add-cart{
    background:var(--red);
    color:#fff;
    border:none;
    font-weight:700;
}
.btn-add-cart:hover{ background:var(--red-dark); color:#fff; }

/* ===== trust strip ===== */
.trust-strip{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.trust-strip .t{
    background:var(--card-bg); border:1px solid var(--line); border-radius:var(--radius);
    padding:16px; display:flex; align-items:center; gap:10px; font-size:.78rem; color:var(--ink-soft);
}
.trust-strip .t .ic{ font-size:20px; color:var(--red); }
.trust-strip .t b{ display:block; color:var(--ink); font-size:.82rem; }
@media(max-width:768px){ .trust-strip{ grid-template-columns:1fr 1fr; } }

/* ===== forms ===== */
form input[type="text"],
form input[type="password"],
form input[type="email"],
form input[type="number"]{
    display:block; width:100%;
    padding:.5rem .75rem;
    border:1px solid #ced4da;
    border-radius:.375rem;
}

footer{ background:#17171B !important; }
.footer-top{ border-bottom:1px solid #2B2B31; }
.footer-brand{ color:#fff; font-weight:800; font-size:17px; margin-bottom:10px; }
.footer-about{ font-size:.8rem; line-height:2; color:#9a9aa4; max-width:320px; }
.footer-socials{ display:flex; gap:10px; margin-top:6px; }
.footer-socials a{
    width:36px; height:36px; border-radius:50%; background:#232329;
    display:flex; align-items:center; justify-content:center; font-size:15px; color:#cfcfd6;
    transition:.15s;
}
.footer-socials a:hover{ background:var(--red); color:#fff; }
.footer-insta-line{ margin-top:12px; font-size:.8rem; color:#cfcfd6; }
.footer-insta-line a{ color:#fff; font-weight:700; }
.footer-links{ display:flex; flex-direction:column; gap:11px; color:#a8a8b3; }
.footer-links a, .footer-links li{ color:#a8a8b3; font-size:.8rem; }
.footer-links a:hover{ color:#fff; }
.footer-links li i{ color:var(--red); margin-inline-end:4px; }
.footer-bottom{ border-top:1px solid #2B2B31; color:#71717a; }

/* ===== ticket / support ===== */
.ticket-item{
    display:flex; justify-content:space-between; align-items:center; gap:12px;
    padding:14px 0; border-bottom:1px solid var(--line);
}
.ticket-item:last-child{ border-bottom:none; }
.ticket-item .left{ display:flex; align-items:center; gap:12px; }
.ticket-item .icon{
    width:38px; height:38px; border-radius:10px; background:var(--red-tint); color:var(--red);
    display:flex; align-items:center; justify-content:center; font-size:16px; flex-shrink:0;
}
.ticket-item .subject{ font-size:.85rem; font-weight:700; margin:0 0 3px; color:var(--ink); }
.ticket-item .meta{ font-size:.72rem; color:var(--ink-soft); }
.ticket-status{ font-size:.68rem; font-weight:700; padding:4px 10px; border-radius:20px; white-space:nowrap; }
.ticket-status.open{ background:#FFF1F2; color:var(--red-dark); }
.ticket-status.answered{ background:#E7F8EF; color:#1FA971; }
.ticket-status.closed{ background:#F1F1F3; color:var(--ink-soft); }

.priority-row{ display:flex; gap:8px; }
.priority-row label{
    flex:1; text-align:center; border:1.5px solid var(--line); border-radius:9px; padding:9px 0;
    font-size:.75rem; cursor:pointer; color:var(--ink-soft); margin:0;
}
.priority-row input{ display:none; }
.priority-row input:checked + span{ color:var(--red); font-weight:700; }

.chat-msg{ display:flex; gap:12px; margin-bottom:18px; }
.chat-msg.support{ flex-direction:row-reverse; }
.chat-msg .avatar{
    width:36px; height:36px; border-radius:50%; background:var(--surface-dark); color:#fff;
    display:flex; align-items:center; justify-content:center; font-size:.8rem; font-weight:700; flex-shrink:0;
}
.chat-msg.support .avatar{ background:var(--red); }
.chat-msg .bubble{
    background:#F5F5F6; border-radius:12px; padding:12px 14px; font-size:.82rem; line-height:1.9; max-width:80%;
    color:#1B1B1F;
}
.chat-msg.support .bubble{ background:var(--red-tint); }
.chat-msg .time{ font-size:.65rem; color:#a5a5ab; margin-top:4px; }

/* ===== product detail page ===== */
.pd-breadcrumb{ font-size:.78rem; color:var(--ink-soft); }
.pd-breadcrumb a{ color:var(--ink-soft); }
.pd-breadcrumb a:hover{ color:var(--red); }
.pd-breadcrumb span{ margin:0 6px; }
.pd-breadcrumb .current{ color:var(--ink); font-weight:600; }

.pd-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:32px; background:var(--card-bg); border:1px solid var(--line); border-radius:14px; padding:28px; }
@media(max-width:768px){ .pd-wrap{ grid-template-columns:1fr; gap:18px; padding:18px; } }

.pd-main-img{
    position:relative; background:#fff; border:1px solid var(--line); border-radius:12px;
    display:flex; align-items:center; justify-content:center; overflow:hidden; min-height:340px;
}
.pd-main-img img{ width:100%; max-height:400px; object-fit:contain; padding:20px; }
.pd-badge{ position:absolute; top:14px; font-size:.72rem; font-weight:700; padding:4px 10px; border-radius:6px; z-index:2; }
.pd-badge.discount{ right:14px; background:var(--red); color:#fff; }
.pd-badge.oos{ left:14px; background:#6c757d; color:#fff; }

.pd-thumbs{ display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }
.pd-thumb{
    width:60px; height:60px; object-fit:cover; border-radius:8px; border:2px solid var(--line);
    cursor:pointer; opacity:.7; transition:.15s; background:#fff;
}
.pd-thumb:hover{ opacity:1; }
.pd-thumb.active{ border-color:var(--red); opacity:1; }

.pd-title{ font-size:1.4rem; font-weight:800; margin:0; color:var(--ink); }

.pd-action-icons{ display:flex; gap:8px; flex-shrink:0; }
.pd-icon-btn{
    width:38px; height:38px; border-radius:50%; background:var(--card-bg); border:1px solid var(--line);
    color:var(--ink-soft); display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:.9rem;
}
.pd-icon-btn:hover{ color:var(--red); border-color:var(--red); }
.pd-icon-btn.active{ background:var(--red); color:#fff; border-color:var(--red); }

.pd-price-box{ background:var(--bg); border-radius:10px; padding:16px 18px; margin:16px 0; }
.pd-old-price{ text-decoration:line-through; color:var(--ink-soft); font-size:.85rem; }
.pd-discount-pill{ background:var(--red-tint); color:var(--red-dark); font-size:.72rem; font-weight:700; padding:2px 8px; border-radius:6px; }
.pd-final-price{ font-size:1.9rem; font-weight:800; color:var(--ink); }
.pd-final-price small{ font-size:.85rem; font-weight:400; color:var(--ink-soft); }

.pd-stock-row{ display:flex; align-items:center; gap:8px; font-size:.85rem; margin-bottom:16px; color:var(--ink); }
.pd-stock-row.oos{ color:#c0392b; }
.pd-stock-low{ color:var(--red); font-weight:700; font-size:.78rem; }

.pd-add-row{ display:flex; align-items:center; gap:12px; margin-bottom:20px; flex-wrap:wrap; }
.pd-qty-stepper{ display:flex; align-items:center; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.pd-qty-stepper button{ background:var(--bg); border:none; width:36px; height:40px; font-size:1rem; cursor:pointer; color:var(--ink); }
.pd-qty-stepper button:hover{ background:var(--red-tint); color:var(--red); }
.pd-qty-stepper input{ width:50px; text-align:center; border:none; border-inline:1px solid var(--line); height:40px; background:var(--card-bg); color:var(--ink); }
.pd-add-btn{ flex:1; min-width:160px; padding:10px 20px; font-size:.9rem; }

.pd-trust-mini{ display:flex; gap:16px; flex-wrap:wrap; font-size:.75rem; color:var(--ink-soft); border-top:1px solid var(--line); padding-top:14px; }
.pd-trust-mini i{ color:var(--red); margin-inline-end:4px; }

.pd-section{ margin-top:34px; }
.pd-section-title{ font-size:1.05rem; font-weight:800; margin-bottom:16px; padding-bottom:10px; border-bottom:1px solid var(--line); }
.pd-desc{ background:var(--card-bg); border:1px solid var(--line); border-radius:12px; padding:22px; font-size:.88rem; line-height:2; color:var(--ink); }

.pd-review-form{ background:var(--card-bg); border:1px solid var(--line); border-radius:12px; padding:20px; margin-bottom:20px; }
.pd-review-list{ display:flex; flex-direction:column; gap:16px; }
.pd-review-item{
    display:flex; gap:12px; background:var(--card-bg); border:1px solid var(--line); border-radius:10px; padding:14px 16px;
}
.pd-review-avatar{
    width:34px; height:34px; border-radius:50%; background:var(--surface-dark); color:#fff;
    display:flex; align-items:center; justify-content:center; font-size:.75rem; font-weight:700; flex-shrink:0;
}

/* ===== گالری تصویر صفحه محصول ===== */
.pd-gallery-main{
    aspect-ratio:1/1;
    background:radial-gradient(ellipse at center, #fbfbfc 0%, #f3f3f5 100%);
    border:1px solid var(--line);
    border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    overflow:hidden;
    padding:24px;
}
[data-theme="dark"] .pd-gallery-main{
    background:radial-gradient(ellipse at center, #26262e 0%, #1a1a20 100%);
}
.pd-gallery-main img{
    max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain;
    filter:drop-shadow(0 12px 16px rgba(20,20,30,.1));
}
.pd-gallery-thumbs{ display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }
.pd-thumb{
    width:64px; height:64px; object-fit:contain; background:var(--card-bg);
    border:2px solid var(--line); border-radius:8px; padding:4px; cursor:pointer;
    opacity:.65; transition:.15s;
}
.pd-thumb:hover{ opacity:1; }
.pd-thumb.active{ border-color:var(--red); opacity:1; }

/* ===== امتیاز بالای صفحه محصول ===== */
.pd-rating-row{ display:flex; align-items:center; gap:8px; margin-bottom:12px; color:var(--ink); }
.pd-rating-num{ background:#1FA971; color:#fff; font-size:.78rem; font-weight:800; padding:3px 8px; border-radius:6px; }

/* ===== خلاصه‌ی امتیاز تو بخش نظرات ===== */
.pd-rating-summary{ display:flex; margin-bottom:22px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.pd-rating-big{ text-align:center; }
.pd-rating-big .num{ font-size:2.1rem; font-weight:800; color:var(--ink); line-height:1; }
.pd-rating-big .stars{ font-size:1rem; margin:4px 0; display:block; }

/* ===== لیست نظرات ===== */
.pd-review-list{ display:flex; flex-direction:column; gap:14px; }
.pd-review-item{
    display:flex; gap:12px; background:var(--bg); border-radius:10px; padding:14px 16px;
}
.pd-review-avatar{
    width:36px; height:36px; border-radius:50%; background:var(--surface-dark); color:#fff;
    display:flex; align-items:center; justify-content:center; font-size:.78rem; font-weight:700; flex-shrink:0;
}
