/* ============================================
   🎨 Promo Banner — Next Horizon Chess Edition
   Palette: #0a0a0f #1B3653 #2A7DD8 #1F7A8C #FFFFFF #CECECE
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@700;900&family=Exo+2:wght@400;600&display=swap');

/* 🔧 Variables */
:root {
    --brand-blue:    #2A7DD8;
    --brand-teal:    #1F7A8C;
    --brand-dark:    #0a0a0f;
    --brand-deep:    #0c0c15;
    --brand-bd:      #1B3653;
    --brand-white:   #FFFFFF;
    --brand-silver:  #CECECE;

    --banner-bg:     var(--brand-dark);
    --banner-height: 44px;
    --animation-duration: 40s;
    --font-display: 'Orbitron', sans-serif;
    --font-body:    'Exo 2', sans-serif;
}

/* ============================================
   📦 Banner Container
   ============================================ */
.promo-banner {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--banner-height);

    /* Chess squares background */
    background-color: var(--brand-dark);
    background-image:
        linear-gradient(45deg, rgba(27,54,83,.18) 25%, transparent 25%),
        linear-gradient(-45deg, rgba(27,54,83,.18) 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, rgba(27,54,83,.18) 75%),
        linear-gradient(-45deg, transparent 75%, rgba(27,54,83,.18) 75%);
    background-size: 12px 12px;
    background-position: 0 0, 0 6px, 6px -6px, -6px 0px;

    overflow: hidden;
    z-index: 10000;
    cursor: pointer;
    display: flex;
    align-items: center;

    border-bottom: 1px solid rgba(42,125,216,.28);

    box-shadow:
        0 2px 18px rgba(42,125,216,.15),
        0 1px 0 rgba(42,125,216,.08) inset;

    transform: translateZ(0);
    will-change: transform;
    backface-visibility: hidden;
}

/* Dark overlay so chess is subtle */
.promo-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgba(10,10,15,.82) 0%,
        rgba(10,10,15,.55) 40%,
        rgba(10,10,15,.55) 60%,
        rgba(10,10,15,.82) 100%
    );
    pointer-events: none;
    z-index: 1;
}

/* Blue shimmer sweep */
.promo-banner::after {
    content: '';
    position: absolute;
    top: 0;
    left: -60%;
    width: 38%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(42,125,216,.13) 40%,
        rgba(31,122,140,.08) 60%,
        transparent 100%
    );
    animation: shimmer 5s ease-in-out infinite;
    pointer-events: none;
    z-index: 2;
}

@keyframes shimmer {
    0%   { left: -60%; }
    100% { left: 140%; }
}

/* ============================================
   📝 Scrolling Track
   ============================================ */
.promo-text {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 26px;
    white-space: nowrap;
    padding: 0 60px;

    font-family: var(--font-body);
    font-size: clamp(12px, 1.05vw, 14px);
    font-weight: 600;
    color: var(--brand-silver);
    letter-spacing: 0.5px;
    line-height: 1;

    z-index: 3;
    animation: scroll-text var(--animation-duration) linear infinite;
    transform: translateZ(0);
    will-change: transform;
}

@keyframes scroll-text {
    0%   { transform: translateX(100vw) translateZ(0); }
    100% { transform: translateX(-100%) translateZ(0); }
}

/* ============================================
   ✨ Highlight Text  — Orbitron
   ============================================ */
.promo-text .highlight {
    font-family: var(--font-display);
    font-weight: 900;
    font-size: .9em;
    color: var(--brand-white);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    text-shadow: 0 0 14px rgba(42,125,216,.55);
}

/* ============================================
   🏷️ Badge / Separator
   ============================================ */
.promo-text .discount-separator {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 11px;

    background: linear-gradient(135deg, var(--brand-blue), var(--brand-teal));
    border-radius: 4px;
    border: 1px solid rgba(42,125,216,.35);

    font-family: var(--font-display);
    font-size: 0.72em;
    font-weight: 700;
    color: var(--brand-white);
    letter-spacing: 1.2px;
    text-transform: uppercase;

    box-shadow: 0 0 14px rgba(42,125,216,.3);
    animation: badge-pulse 3s ease-in-out infinite;
}

@keyframes badge-pulse {
    0%, 100% { box-shadow: 0 0 10px rgba(42,125,216,.3); }
    50%       { box-shadow: 0 0 22px rgba(42,125,216,.6), 0 0 6px rgba(31,122,140,.4); }
}

/* ============================================
   ♟ Chess piece accent — يظهر بين الـ badges
   ============================================ */
.promo-text .chess-piece {
    font-size: 13px;
    color: rgba(42,125,216,.65);
    text-shadow: 0 0 8px rgba(42,125,216,.4);
    animation: chessBeat 4s ease-in-out infinite;
    flex-shrink: 0;
}

@keyframes chessBeat {
    0%, 100% { opacity: .55; transform: translateY(0);   }
    50%       { opacity: 1;   transform: translateY(-2px); }
}

/* ============================================
   🎯 Divider dot
   ============================================ */
.promo-text .dot {
    display: inline-block;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: rgba(42,125,216,.7);
    flex-shrink: 0;
}

/* ============================================
   📱 Body & Navbar push
   ============================================ */
body {
    padding-top: var(--banner-height);
    margin: 0;
}

.navbar,
header {
    top: var(--banner-height) !important;
    z-index: 9999 !important;
}

/* ============================================
   📱 RESPONSIVE
   ============================================ */
@media screen and (max-width: 1024px) {
    :root { --banner-height: 44px; --animation-duration: 44s; }
    .promo-text { font-size: 13px; padding: 0 40px; gap: 18px; }
}

@media screen and (max-width: 768px) {
    :root { --banner-height: 42px; --animation-duration: 42s; }
    .promo-text { font-size: 12.5px; padding: 0 28px; gap: 14px; }
    .promo-text .discount-separator { padding: 3px 9px; font-size: 0.68em; }
}

@media screen and (max-width: 480px) {
    :root { --banner-height: 40px; }
    .promo-text { font-size: 12px; padding: 0 20px; gap: 11px; }
    .promo-text .discount-separator { padding: 2px 8px; }
    .promo-text .chess-piece { display: none; }
}

/* ============================================
   ♿ Reduced Motion
   ============================================ */
@media (prefers-reduced-motion: reduce) {
    .promo-text,
    .promo-text .discount-separator,
    .promo-banner::after {
        animation: none !important;
    }
}

/* ============================================
   ⚡ GPU Acceleration
   ============================================ */
.promo-banner,
.promo-text,
.promo-text *,
.promo-banner::after {
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-font-smoothing: antialiased;
}

/* ============================================
   🌐 RTL Support
   ============================================ */
[dir="rtl"] .promo-text {
    animation: scroll-text-rtl var(--animation-duration) linear infinite;
}

@keyframes scroll-text-rtl {
    0%   { transform: translateX(-50vw) translateZ(0); }
    100% { transform: translateX(100%) translateZ(0); }
}