/* ═══════════════════════════════════════════════
   CYNNOVA AI SOLUTIONS — SHARED STYLESHEET
   Applies to: index.html, services.html,
               blog.html, article.html
   ═══════════════════════════════════════════════ */

/* ─── VARIABLES ─── */
:root {
    --bg-nav:          #0a0c10;
    --bg-hero:         #0a0c10;
    --bg-dark-section: #0d0f1d;
    --bg-grey:         #f1f4f9;
    --bg-white:        #ffffff;
    --accent-primary:  #6366f1;
    --accent-secondary:#a855f7;
    --accent-green:    #10b981;
    --accent-cyan:     #06b6d4;
    /* Dark context */
    --dt-text:         #f8fafc;
    --dt-mid:          #cbd5e1;
    --dt-muted:        #64748b;
    --dt-border:       rgba(255,255,255,0.07);
    --dt-card:         rgba(255,255,255,0.04);
    /* Light context */
    --lt-text:         #0f172a;
    --lt-mid:          #475569;
    --lt-muted:        #94a3b8;
    --lt-border:       #e2e8f0;
    --lt-card:         #f8fafc;
    --gradient:        linear-gradient(135deg,#6366f1,#a855f7);
    --glow:            0 0 50px rgba(99,102,241,0.2);
}

/* ─── RESET & BASE ─── */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html {
    scroll-behavior: smooth;
    scroll-padding-top: var(--header-height, 120px);
}
body {
    font-family:'Inter',sans-serif;
    background:var(--bg-nav);
    color:var(--dt-text);
    overflow-x:hidden;
    line-height:1.6;
    /* Prevent FOUC while components.js injects shared HTML */
    opacity: 0;
}
body.cn-ready {
    opacity: 1;
    transition: opacity 0.12s ease;
}
a { color:inherit; text-decoration:none; }
ul { list-style:none; }

/* ─── SCROLLBAR ─── */
::-webkit-scrollbar { width:5px; }
::-webkit-scrollbar-track { background:var(--bg-nav); }
::-webkit-scrollbar-thumb { background:var(--accent-primary); border-radius:3px; }

/* ─── LAYOUT ─── */
.container  { max-width:1160px; margin:0 auto; padding:0 1.5rem; }
.section    { padding:6rem 0; }
.section-sm { padding:3.75rem 0; }

/* ─── LABEL ─── */
.label {
    display:inline-flex; align-items:center; gap:0.45rem;
    font-size:0.72rem; font-weight:700;
    letter-spacing:0.16em; text-transform:uppercase;
    color:var(--accent-primary); margin-bottom:0.9rem;
}

/* ─── SECTION TYPOGRAPHY ─── */
.section-title {
    font-size:clamp(1.85rem,3.6vw,2.8rem);
    font-weight:800; line-height:1.1;
    letter-spacing:-0.03em; margin-bottom:1rem;
}
.section-subtitle { font-size:1.02rem; line-height:1.75; max-width:555px; }
.grad-text {
    background:var(--gradient);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}

/* Light-section typography overrides */
.s-white .section-title,
.s-grey  .section-title  { color:var(--lt-text); }
.s-white .section-subtitle,
.s-grey  .section-subtitle,
.s-white p,
.s-grey  p { color:var(--lt-mid); }

/* Dark-section typography overrides */
.s-dark .section-title  { color:var(--dt-text); }
.s-dark .section-subtitle,
.s-dark p { color:var(--dt-mid); }

/* ─── SECTION BACKGROUNDS ─── */
.s-hero  { background:var(--bg-hero); }
.s-dark  { background:var(--bg-dark-section); position:relative; overflow:hidden; }
.s-dark::before {
    content:''; position:absolute; inset:0;
    background:
        radial-gradient(ellipse at 12% 60%, rgba(99,102,241,0.08) 0%, transparent 55%),
        radial-gradient(ellipse at 88% 35%, rgba(168,85,247,0.05) 0%, transparent 55%);
    pointer-events:none; z-index:0;
}
.s-dark > .container { position:relative; z-index:1; }
.s-white { background:var(--bg-white); }
.s-grey  { background:var(--bg-grey); }

/* ─── BUTTONS ─── */
.btn {
    display:inline-flex; align-items:center; justify-content:center; gap:0.5rem;
    padding:0.78rem 1.55rem; border-radius:10px;
    font-weight:600; font-size:0.9rem;
    cursor:pointer; border:none; transition:all 0.22s ease;
    font-family:'Inter',sans-serif;
}
.btn-primary {
    background:var(--gradient); color:#fff;
    box-shadow:0 4px 18px rgba(99,102,241,0.28);
}
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 8px 26px rgba(99,102,241,0.42); }
.btn-outline-dark {
    background:transparent; color:var(--dt-text);
    border:1px solid rgba(255,255,255,0.14);
}
.btn-outline-dark:hover { background:rgba(255,255,255,0.05); border-color:var(--accent-primary); transform:translateY(-2px); }
.btn-outline-light {
    background:transparent; color:var(--lt-text);
    border:1.5px solid var(--lt-border);
}
.btn-outline-light:hover { border-color:var(--accent-primary); color:var(--accent-primary); transform:translateY(-2px); }
.btn-white {
    background:#fff; color:var(--accent-primary);
    font-weight:700; font-family:'Inter',sans-serif;
    border:none; cursor:pointer; transition:all 0.22s;
    display:inline-flex; align-items:center; justify-content:center; gap:0.45rem;
    padding:0.88rem 1.65rem; border-radius:11px; font-size:0.9rem;
    white-space:nowrap;
}
.btn-white:hover { transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,0.2); }
.btn-white-ol {
    background:transparent; color:#fff;
    border:1.5px solid rgba(255,255,255,0.4);
    padding:0.78rem 1.5rem; border-radius:11px;
    font-family:'Inter',sans-serif; font-size:0.88rem;
    font-weight:600; cursor:pointer; transition:all 0.22s;
    display:inline-flex; align-items:center; gap:0.45rem;
    white-space:nowrap; text-align:center; justify-content:center;
}
.btn-white-ol:hover { background:rgba(255,255,255,0.1); border-color:#fff; }

/* ─── FIXED HEADER ─── */
#site-header { position:fixed; top:0; left:0; right:0; z-index:1000; }

/* ─── ANNOUNCEMENT BAR ─── */
.announcement-bar {
    background:linear-gradient(90deg,#b45309,#d97706,#f59e0b,#d97706,#b45309);
    background-size:300% 100%;
    animation:bannerShift 8s linear infinite;
    padding:0.65rem 0; text-align:center;
    font-size:0.82rem; font-weight:500;
    letter-spacing:0.01em; color:rgba(255,255,255,0.97);
}
@keyframes bannerShift {
    0%   { background-position:0%   0%; }
    100% { background-position:300% 0%; }
}
.bar-inner { display:flex; align-items:center; justify-content:center; gap:0.75rem; }
.bar-pill {
    background:rgba(255,255,255,0.15);
    border:1px solid rgba(255,255,255,0.2);
    padding:0.15rem 0.65rem; border-radius:100px;
    font-size:0.72rem; font-weight:700;
    letter-spacing:0.12em; text-transform:uppercase;
}

/* ─── NAVIGATION ─── */
nav {
    background:var(--bg-nav);
    border-bottom:1px solid transparent;
    padding:0.85rem 0;
    transition:border-color 0.3s, padding 0.3s;
}
nav.scrolled { border-bottom-color:rgba(255,255,255,0.07); padding:0.65rem 0; }
.nav-inner { display:flex; align-items:center; justify-content:space-between; }
.nav-logo  { display:flex; align-items:center; gap:0.6rem; }
.logo-text { display:flex; flex-direction:column; line-height:1; gap:0.22rem; }
.logo-name {
    font-size:1.32rem; font-weight:800;
    color:var(--dt-text); letter-spacing:-0.02em;
}
.logo-sub {
    padding:0.15rem 0; font-size:0.7rem; font-weight:600;
    letter-spacing:0.12em; text-transform:uppercase;
    color:var(--dt-muted); margin-top:1px;
}
.nav-links { display:flex; align-items:center; gap:0.1rem; }
.nav-links a {
    padding:0.42rem 0.82rem; font-size:0.86rem;
    font-weight:500; color:var(--dt-muted);
    border-radius:7px; transition:all 0.2s;
}
.nav-links a:hover,
.nav-links a.active { color:var(--dt-text); background:rgba(255,255,255,0.05); }
.nav-cta      { display:flex; align-items:center; gap:0.7rem; }
.nav-hamburger { display:none; cursor:pointer; color:var(--dt-mid); }

/* ─── MOBILE NAV ─── */
.mobile-nav {
    display:none; position:fixed;
    background:rgba(10,12,16,0.97); backdrop-filter:blur(20px);
    border-bottom:1px solid var(--dt-border);
    padding:1.2rem 1.5rem; z-index:998;
    flex-direction:column; gap:0.35rem; left:0; right:0;
}
.mobile-nav.open { display:flex; }
.mobile-nav a {
    padding:0.65rem 1rem; color:var(--dt-mid);
    font-weight:500; border-radius:7px;
}
.mobile-nav a:hover { background:rgba(255,255,255,0.05); color:var(--dt-text); }

/* ─── FOOTER ─── */
footer {
    background:#050508;
    border-top:1px solid rgba(255,255,255,0.055);
    padding:3.75rem 0 1.75rem;
}
.fgrid {
    display:grid; grid-template-columns:2.1fr 1fr 1fr 1fr;
    gap:2.75rem; margin-bottom:2.25rem;
}
.fbrand p {
    font-size:0.83rem; color:var(--dt-muted);
    line-height:1.65; margin:0.8rem 0 1.3rem; max-width:265px;
}
.fsocs { display:flex; gap:0.45rem; }
.fsoc {
    width:32px; height:32px; border-radius:8px;
    border:1px solid rgba(255,255,255,0.08);
    display:flex; align-items:center; justify-content:center;
    color:var(--dt-muted); transition:all 0.2s; cursor:pointer;
}
.fsoc:hover { border-color:var(--accent-primary); color:var(--accent-primary); background:rgba(99,102,241,0.08); }
.fcol h4 { font-size:0.82rem; font-weight:700; color:var(--dt-text); margin-bottom:1rem; }
.fcol ul li { margin-bottom:0.5rem; }
.fcol ul li a { font-size:0.81rem; color:var(--dt-muted); transition:color 0.2s; }
.fcol ul li a:hover { color:var(--dt-text); }
.fbot {
    border-top:1px solid rgba(255,255,255,0.055);
    padding-top:1.6rem; display:flex;
    justify-content:space-between; align-items:center;
    flex-wrap:wrap; gap:0.9rem;
}
.fbot p { font-size:0.78rem; color:var(--dt-muted); }
.fbot-links { display:flex; gap:1.2rem; }
.fbot-links a { font-size:0.78rem; color:var(--dt-muted); transition:color 0.2s; }
.fbot-links a:hover { color:var(--dt-text); }

/* ─── FADE-UP ANIMATION ─── */
.fade-up {
    opacity:0; transform:translateY(20px);
    transition:opacity 0.55s ease, transform 0.55s ease;
}
.fade-up.visible { opacity:1; transform:translateY(0); }

/* ─── KEYFRAMES ─── */
@keyframes pdot {
    0%,100% { opacity:1; transform:scale(1); }
    50%      { opacity:0.5; transform:scale(0.75); }
}
@keyframes driftOrb {
    from { transform:translate(0,0) scale(1); }
    to   { transform:translate(40px,70px) scale(1.07); }
}

/* ─── RESPONSIVE — SHARED COMPONENTS ─── */
@media(max-width:1024px) {
    .fgrid { grid-template-columns:1fr 1fr; }
}
@media(max-width:768px) {
    .bar-inner { flex-direction:column; gap:0.3rem; padding:0 1rem; }
    .nav-links,
    .nav-cta .btn-outline-dark,
    .nav-cta .btn-primary { display:none; }
    .nav-hamburger { display:block; }
    .fgrid { grid-template-columns:1fr; gap:1.6rem; }
    .fbot { flex-direction:column; text-align:center; }
}
