/* Alpha Hub – Navy & Gold Design System (matching reference) */

:root {
    /* Core palette */
    --alpha-navy: #0B1D2F;
    --alpha-navy-light: #112840;
    --alpha-navy-card: #0f2537;
    --alpha-gold: #F4C542;
    --alpha-gold-hover: #D4A72C;
    --alpha-white: #FFFFFF;
    --alpha-text: #BFC6D1;
    --alpha-text-muted: #7A8BA0;
    --alpha-border: #1e3a55;
    --alpha-input: #112840;

    /* Semantic */
    --alpha-dark: var(--alpha-navy);
    --alpha-dark-light: var(--alpha-navy-light);
}

/* ─── Base ────────────────────────────────────────────── */
body {
    font-family: 'Cairo', 'Tajawal', sans-serif;
    background-color: var(--alpha-navy);
    color: var(--alpha-text);
    overflow-x: hidden;
}

[dir="ltr"] body {
    font-family: 'Inter', 'Montserrat', sans-serif;
}

/* ─── RTL/LTR directional fixes ──────────────────────── */
[dir="ltr"] .cold-reading-card {
    border-right: none !important;
    border-left: 4px solid var(--alpha-gold) !important;
}

[dir="ltr"] .mobile-faq-border {
    border-right: none !important;
    border-left: 2px solid var(--alpha-gold) !important;
    padding-right: 0 !important;
    padding-left: .75rem !important;
}

[dir="ltr"] select.input-custom {
    background-position: right .75rem center;
    padding-left: .75rem;
    padding-right: 2.5rem;
}

/* form-icon-wrapper: icons use inset-inline-start + Bootstrap ps-5, 
   which both flip correctly via logical properties — no LTR override needed */

/* required-badge, price-display now use logical properties — no LTR override needed */

h1, h2, h3, h4, h5, h6 { font-weight: 700; }

/* ─── Utility colours ─────────────────────────────────── */
.text-gold        { color: var(--alpha-gold) !important; }
.text-white-50    { color: var(--alpha-text-muted) !important; }
.text-accent      { color: var(--alpha-white) !important; }
.bg-dark          { background-color: var(--alpha-navy) !important; }
.bg-dark-light    { background-color: var(--alpha-navy-light) !important; }
.bg-darker        { background-color: #071525 !important; }
.bg-gold          { background-color: var(--alpha-gold) !important; }
.bg-gold-subtle   { background-color: rgba(244, 197, 66, 0.1) !important; }

/* ─── Gradient text ───────────────────────────────────── */
.accent-gradient {
    background: linear-gradient(135deg, var(--alpha-gold), #f7d97a);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* ─── Buttons ─────────────────────────────────────────── */
.btn-gold {
    background-color: var(--alpha-gold);
    border-color: var(--alpha-gold);
    color: var(--alpha-navy);
    font-weight: 700;
    transition: all .3s ease;
    box-shadow: 0 4px 6px -1px rgba(244, 197, 66, .2);
}
.btn-gold:hover {
    background-color: var(--alpha-gold-hover);
    border-color: var(--alpha-gold-hover);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(244, 197, 66, .3);
}

.btn-outline-gold {
    color: var(--alpha-gold);
    border: 1px solid var(--alpha-gold);
    background: transparent;
    font-weight: 600;
    transition: all .3s ease;
}
.btn-outline-gold:hover {
    background-color: var(--alpha-gold);
    color: var(--alpha-navy);
    transform: translateY(-1px);
}

/* ─── Navbar ──────────────────────────────────────────── */
.alpha-navbar {
    background-color: transparent;
    backdrop-filter: none;
    border-bottom: 1px solid transparent;
    transition: all .3s ease;
    padding-top: 1rem;
    padding-bottom: 1rem;
}
.alpha-navbar.scrolled {
    background-color: rgba(11, 29, 47, .97);
    backdrop-filter: blur(12px);
    box-shadow: 0 4px 20px rgba(0,0,0,.4);
    border-bottom-color: rgba(255,255,255,.05);
    padding-top: .5rem;
    padding-bottom: .5rem;
}

/* Ghost nav button (triggers + lang + auth) */
.btn-nav-ghost {
    background: transparent;
    border: none;
    color: rgba(191,198,209,.8);
    font-size: .875rem;
    font-weight: 900;
    padding: .5rem .625rem;
    border-radius: .375rem;
    transition: color .3s;
    cursor: pointer;
}
.btn-nav-ghost:hover,
.btn-nav-ghost:focus {
    color: var(--alpha-gold);
    background: transparent;
}
.btn-nav-ghost.show {
    color: var(--alpha-gold);
}
.btn-nav-ghost .dropdown-toggle::after { display: none; }

/* Dropdown panels */
.nav-dropdown-panel {
    background-color: #0B1D2F !important;
    border: 1px solid rgba(244,197,66,.2) !important;
    border-radius: .5rem;
    padding: .5rem 0;
    box-shadow: 0 10px 25px rgba(0,0,0,.5);
}

/* Regular dropdown items */
.nav-item-regular {
    color: rgba(191,198,209,.8) !important;
    font-size: .875rem;
    padding: .5rem 1rem;
    transition: color .2s;
}
.nav-item-regular:hover,
.nav-item-regular:focus {
    color: var(--alpha-gold) !important;
    background-color: rgba(244,197,66,.05) !important;
}

/* Highlighted dropdown items */
.nav-item-highlight {
    color: var(--alpha-gold) !important;
    font-weight: 700;
    font-size: .875rem;
    padding: .5rem 1rem;
}
.nav-item-highlight:hover {
    background-color: rgba(244,197,66,.08) !important;
}

/* Mobile nav links */
.mobile-nav-link {
    color: var(--alpha-text);
    transition: color .2s;
}
.mobile-nav-link:hover {
    color: var(--alpha-gold) !important;
}

/* Override Bootstrap dropdown toggle caret */
.btn-nav-ghost.dropdown-toggle::after {
    display: none;
}

/* ─── Hero ────────────────────────────────────────────── */
.hero-section {
    min-height: 100vh;
    padding-top: 100px;
    background-image:
        linear-gradient(to bottom, rgba(11,29,47,.95), rgba(11,29,47,.8)),
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'><rect width='100' height='100' fill='%230B1D2F'/><path d='M0 0L100 100M100 0L0 100' stroke='rgba(244,197,66,0.08)' stroke-width='.3'/></svg>");
    background-repeat: repeat;
    background-size: 20px 20px;
}

.hero-badge {
    background-color: rgba(244, 197, 66, .1);
    color: var(--alpha-gold);
    border: 1px solid rgba(244, 197, 66, .2);
    font-size: .85rem;
}

/* ─── Cards ───────────────────────────────────────────── */
.alpha-card {
    background-color: rgba(15, 37, 55, .8);
    border: 1px solid rgba(244, 197, 66, .15);
    border-radius: 16px;
    transition: all .3s ease;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .3);
    backdrop-filter: blur(8px);
}
.alpha-card:hover {
    transform: translateY(-5px);
    border-color: rgba(244, 197, 66, .4);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 0 15px rgba(244, 197, 66, .1);
}

/* card-custom (matching reference) */
.card-custom {
    background-color: rgba(15, 37, 55, .8);
    border-radius: 16px;
    border: 1px solid rgba(244, 197, 66, .15);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,.3);
    transition: all .3s ease;
    backdrop-filter: blur(8px);
}
.card-custom:hover {
    transform: translateY(-5px);
    border-color: rgba(244, 197, 66, .4);
    box-shadow: 0 20px 25px -5px rgba(0,0,0,.5), 0 0 15px rgba(244, 197, 66, .1);
}

/* ─── Steps badge ─────────────────────────────────────── */
.step-badge {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 1.25rem;
}

/* ─── Section utilities ───────────────────────────────── */
.section-py { padding-top: 5rem; padding-bottom: 5rem; }

/* ─── Footer ──────────────────────────────────────────── */
.alpha-footer {
    background-color: #050e1a;
    border-top: 1px solid rgba(255, 255, 255, .05);
}

/* ─── Forms ───────────────────────────────────────────── */
.form-control {
    background-color: var(--alpha-input);
    border: 1px solid var(--alpha-border);
    color: #fff;
}
.form-control:focus {
    background-color: var(--alpha-input);
    color: #fff;
    border-color: var(--alpha-gold);
    box-shadow: 0 0 0 .25rem rgba(244, 197, 66, .25);
}

/* ─── Scrollbar ───────────────────────────────────────── */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--alpha-navy); }
::-webkit-scrollbar-thumb { background: var(--alpha-gold); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--alpha-gold-hover); }

/* ─── Animations ──────────────────────────────────────── */
@keyframes pulse-gold {
    0%   { box-shadow: 0 0 0 0 rgba(244, 197, 66, .5); }
    70%  { box-shadow: 0 0 0 15px rgba(244, 197, 66, 0); }
    100% { box-shadow: 0 0 0 0 rgba(244, 197, 66, 0); }
}
@keyframes fade-in-up {
    0%   { opacity: 0; transform: translateY(30px); }
    100% { opacity: 1; transform: translateY(0); }
}

.animate-pulse-gold  { animation: pulse-gold 2s infinite; }
.animate-fade-in-up  { animation: fade-in-up .6s ease-out forwards; opacity: 0; }

/* ─── Mobile sticky CTA ──────────────────────────────── */
.mobile-sticky-cta {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 40;
    background: rgba(11, 29, 47, .95);
    backdrop-filter: blur(12px);
    border-top: 1px solid rgba(244, 197, 66, .2);
    padding: .75rem 1rem;
}

/* ─── Accordion (FAQ) ─────────────────────────────────── */
.accordion-button {
    background-color: transparent;
    color: var(--alpha-white);
    font-weight: 600;
    border: 0;
}
.accordion-button:not(.collapsed) {
    background-color: transparent;
    color: var(--alpha-gold);
    box-shadow: none;
}
.accordion-button::after {
    filter: invert(80%) sepia(50%) saturate(700%) hue-rotate(10deg);
}
.accordion-body {
    color: var(--alpha-text);
}

/* ─── Dropdown (general dark) ────────────────────────── */
.dropdown-menu-dark {
    --bs-dropdown-bg: #0B1D2F;
    --bs-dropdown-border-color: rgba(244,197,66,.2);
}
.dropdown-item.text-white-50:hover {
    background-color: rgba(244, 197, 66, .08);
    color: var(--alpha-gold) !important;
}

/* ─── Progress bar ────────────────────────────────────── */
.progress-custom {
    background-color: var(--alpha-navy-light);
    border-radius: 999px;
}
.progress-custom .progress-bar {
    background-color: var(--alpha-gold);
    border-radius: 999px;
}

/* ─── Popular card variant ────────────────────────────── */
.card-custom.card-popular {
    border: 2px solid rgba(244, 197, 66, .5);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,.3), 0 0 20px rgba(244, 197, 66, .08);
}
.card-custom.card-popular:hover {
    border-color: var(--alpha-gold);
    box-shadow: 0 20px 25px -5px rgba(0,0,0,.5), 0 0 25px rgba(244, 197, 66, .15);
}

/* ─── Hero Carousel ──────────────────────────────────── */
.hero-carousel {
    position: relative;
    width: 100%;
    max-width: 450px;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: 1rem;
}
.hero-carousel .carousel-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity .6s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}
.hero-carousel .carousel-slide.active {
    opacity: 1;
    pointer-events: auto;
}
.hero-carousel .slide-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 1rem;
}
.hero-carousel .slide-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1rem 1.25rem;
    background: linear-gradient(to top, rgba(11,29,47,.9), transparent);
    border-radius: 0 0 1rem 1rem;
}
.hero-carousel .carousel-controls {
    position: absolute;
    top: .75rem;
    inset-inline-start: .75rem;
    display: flex;
    gap: .5rem;
    z-index: 5;
}
.hero-carousel .carousel-controls button {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: none;
    background: rgba(11,29,47,.7);
    color: var(--alpha-gold);
    font-size: .9rem;
    cursor: pointer;
    transition: .2s;
    display: flex;
    align-items: center;
    justify-content: center;
}
.hero-carousel .carousel-controls button:hover {
    background: rgba(11,29,47,.95);
}
.hero-carousel .carousel-progress {
    position: absolute;
    bottom: .75rem;
    left: 1rem;
    right: 1rem;
    display: flex;
    gap: .5rem;
    z-index: 5;
}
.hero-carousel .progress-bar-item {
    flex: 1;
    height: 4px;
    background: rgba(255,255,255,.2);
    border-radius: 2px;
    overflow: hidden;
    cursor: pointer;
}
.hero-carousel .progress-bar-item .fill {
    height: 100%;
    width: 0;
    background: var(--alpha-gold);
    border-radius: 2px;
    transition: width .1s linear;
}
.hero-carousel .progress-bar-item.active .fill {
    width: 100%;
}

/* ─── Blog cards ─────────────────────────────────────── */
.blog-card .blog-image {
    height: 192px;
    overflow: hidden;
    border-radius: 1rem 1rem 0 0;
}
.blog-card .blog-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}
.blog-card:hover .blog-image img {
    transform: scale(1.05);
}
.blog-card .blog-title {
    transition: color .2s;
}
.blog-card:hover .blog-title {
    color: var(--alpha-gold) !important;
}

/* ─── Referral step cards ────────────────────────────── */
.referral-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: rgba(244, 197, 66, .1);
    color: var(--alpha-gold);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    margin: 0 auto 1rem;
}

/* ─── Price display ──────────────────────────────────── */
.price-display .price-value {
    font-size: 2rem;
    font-weight: 900;
    color: var(--alpha-gold);
}
.price-display .price-currency {
    font-size: 1rem;
    color: var(--alpha-gold);
    font-weight: 600;
}
.price-display .price-original {
    text-decoration: line-through;
    color: var(--alpha-text-muted);
    font-size: .9rem;
}

/* ─── Assessment: input-custom ────────────────────────── */
.input-custom {
    background-color: var(--alpha-input);
    border: 1px solid var(--alpha-border);
    color: #fff;
    padding: .75rem;
    border-radius: .5rem;
    width: 100%;
    font-size: 1rem;
    transition: border-color .2s, box-shadow .2s;
}
.input-custom:focus {
    border-color: var(--alpha-gold);
    box-shadow: 0 0 0 2px rgba(244, 197, 66, .2);
    outline: none;
}
.input-custom::placeholder {
    color: var(--alpha-text-muted);
}
select.input-custom {
    appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path fill='%23BFC6D1' d='M6 8L1 3h10z'/></svg>");
    background-repeat: no-repeat;
    background-position: left .75rem center;
    padding-inline-start: 2.5rem;
}

/* ─── Assessment: progress bar ───────────────────────── */
.progress-bar-custom {
    height: 8px;
    background: rgba(30, 58, 85, .6);
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 1.5rem;
}
.progress-bar-custom .progress-fill {
    height: 100%;
    background: var(--alpha-gold);
    border-radius: 999px;
    transition: width 1s ease-in-out;
}

/* ─── Assessment: question option card ───────────────── */
.option-card {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .75rem;
    border-radius: .5rem;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background .2s, border-color .2s;
    color: var(--alpha-text);
}
.option-card:hover {
    background: rgba(30, 58, 85, .5);
    border-color: rgba(244, 197, 66, .15);
}
.option-card.selected {
    background: rgba(244, 197, 66, .08);
    border-color: rgba(244, 197, 66, .3);
}
.option-card input[type="checkbox"],
.option-card input[type="radio"] {
    accent-color: var(--alpha-gold);
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

/* ─── Assessment: step counter badge ─────────────────── */
.step-counter {
    color: var(--alpha-gold);
    font-size: 1.25rem;
    font-weight: 700;
}

/* ─── Assessment: question container ─────────────────── */
.question-container {
    background: rgba(11, 29, 47, .4);
    border-radius: .75rem;
    padding: 1.25rem;
    margin-bottom: 1.5rem;
}

/* ─── Assessment: required badge ─────────────────────── */
.required-badge {
    display: inline-block;
    font-size: .75rem;
    color: #ef4444;
    font-weight: 600;
    padding: .125rem .375rem;
    background: rgba(239, 68, 68, .1);
    border-radius: .25rem;
    margin-inline-start: .5rem;
}

/* ─── Loading spinner ────────────────────────────────── */
.loading-spinner {
    width: 48px;
    height: 48px;
    border: 3px solid rgba(244, 197, 66, .2);
    border-top-color: var(--alpha-gold);
    border-radius: 50%;
    animation: spin .8s linear infinite;
}
@keyframes spin {
    to { transform: rotate(360deg); }
}

/* ─── Discount banners ───────────────────────────────── */
.discount-banner-gold {
    padding: 1rem;
    text-align: center;
    background: rgba(244, 197, 66, .1);
    border: 2px dashed var(--alpha-gold);
    border-radius: .5rem;
    margin-bottom: 3rem;
}
.discount-banner-green {
    padding: 1rem;
    text-align: center;
    background: rgba(34, 197, 94, .1);
    border: 2px dashed #4ade80;
    border-radius: .5rem;
    margin-bottom: 3rem;
}

/* ─── Key value box (inside service cards) ───────────── */
.key-value-box {
    text-align: center;
    background: var(--alpha-gold);
    color: var(--alpha-navy);
    padding: .75rem;
    border-radius: .5rem;
    margin-bottom: 1rem;
    font-size: .875rem;
    font-weight: 600;
}

/* ─── Sub-service row (inside service cards) ─────────── */
.sub-service-row {
    background: rgba(11, 29, 47, .4);
    border: 1px solid transparent;
    transition: border-color .2s, background .2s;
}
.sub-service-row:hover {
    border-color: rgba(244, 197, 66, .2) !important;
    background: rgba(244, 197, 66, .05);
}

/* ─── Price display (enhanced) ───────────────────────── */
.price-display .price-original {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--alpha-text-muted);
    text-decoration: line-through;
    margin-inline-end: .75rem;
}
.price-display .price-value {
    font-size: 2rem;
    font-weight: 700;
    color: var(--alpha-gold);
}
.price-display .price-currency {
    font-size: 1rem;
    color: var(--alpha-gold);
    margin-inline-start: .25rem;
}

/* ─── Icon circle (service cards, audience cards) ─────── */
.icon-circle {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background-color: rgba(244, 197, 66, .1);
    color: var(--alpha-gold);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
}
.icon-circle-lg {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background-color: var(--alpha-gold);
    color: var(--alpha-navy);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    font-weight: 800;
    box-shadow: 0 8px 16px rgba(244, 197, 66, .25);
}
