/* ======================================================================
   SMARTWAY AI PREMIUM V1
   Couche visuelle publique — aucune logique PHP/MySQL n'est modifiée.
   Direction artistique : DeepSeek (structure, palette, cerveau, orbes)
   + Kimi (réseau neuronal, grille, ambiance laboratoire IA).
   ====================================================================== */

:root {
    --sw-bg: #080b17;
    --sw-bg-soft: #0d1227;
    --sw-bg-deep: #050711;
    --sw-card: rgba(17, 23, 54, .68);
    --sw-card-strong: rgba(22, 30, 70, .82);
    --sw-border: rgba(112, 139, 255, .16);
    --sw-border-strong: rgba(0, 212, 255, .30);
    --sw-text: #f4f7ff;
    --sw-muted: #a8b5d6;
    --sw-muted-2: #d6def5;
    --sw-primary: #6d5cff;
    --sw-secondary: #00d4ff;
    --sw-warning: #ffb86b;
    --sw-danger: #ff6b8a;
    --sw-ai-blue: #4f7aff;
    --sw-ai-violet: #7b4cff;
    --sw-ai-cyan: #00d4ff;
    --sw-ai-green: #35e6a5;
    --sw-ai-gradient: linear-gradient(135deg, #4f7aff 0%, #7b4cff 48%, #00d4ff 100%);
    --sw-ai-gradient-soft: linear-gradient(135deg, rgba(79, 122, 255, .22), rgba(123, 76, 255, .18), rgba(0, 212, 255, .18));
    --sw-ai-surface: rgba(15, 20, 47, .70);
    --sw-ai-surface-strong: rgba(13, 18, 43, .91);
    --sw-ai-line: rgba(112, 139, 255, .14);
    --sw-ai-shadow: 0 30px 90px rgba(0, 0, 0, .34);
    --sw-ai-glow: 0 20px 70px rgba(79, 122, 255, .20);
    --sw-radius: 24px;
    --sw-radius-sm: 18px;
    --sw-shadow: var(--sw-ai-shadow);
    --sw-shadow-soft: 0 16px 44px rgba(0, 0, 0, .24);
}

html { color-scheme: dark; }

body.sw-ai-theme,
body.public-body {
    position: relative;
    isolation: isolate;
    background:
        radial-gradient(circle at 8% 0%, rgba(79, 122, 255, .18), transparent 30%),
        radial-gradient(circle at 92% 4%, rgba(123, 76, 255, .15), transparent 28%),
        linear-gradient(145deg, #070a14 0%, #0b1022 48%, #081322 100%);
    color: var(--sw-text);
}

body.sw-ai-theme::selection,
body.public-body ::selection {
    color: #fff;
    background: rgba(123, 76, 255, .72);
}

.site-shell { position: relative; z-index: 2; }
main { position: relative; z-index: 2; }

/* ---------- Global AI background ---------- */
.sw-ai-background {
    position: fixed;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
    background: #080b17;
}

#swAiNeuralCanvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: .9;
}

.sw-ai-grid-layer {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(79, 122, 255, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(79, 122, 255, .035) 1px, transparent 1px);
    background-size: 68px 68px;
    -webkit-mask-image: radial-gradient(ellipse 82% 72% at 50% 35%, #000 25%, transparent 86%);
    mask-image: radial-gradient(ellipse 82% 72% at 50% 35%, #000 25%, transparent 86%);
}

.sw-ai-aurora {
    position: absolute;
    border-radius: 50%;
    filter: blur(100px);
    opacity: .45;
    transform: translate3d(0, 0, 0);
}

.sw-ai-aurora--blue {
    width: 38vw;
    height: 38vw;
    min-width: 320px;
    min-height: 320px;
    left: -15vw;
    top: -15vw;
    background: rgba(79, 122, 255, .34);
    animation: swAiAuroraA 18s ease-in-out infinite alternate;
}

.sw-ai-aurora--violet {
    width: 42vw;
    height: 42vw;
    min-width: 380px;
    min-height: 380px;
    right: -20vw;
    top: 12vh;
    background: rgba(123, 76, 255, .26);
    animation: swAiAuroraB 22s ease-in-out infinite alternate;
}

.sw-ai-aurora--cyan {
    width: 30vw;
    height: 30vw;
    min-width: 280px;
    min-height: 280px;
    left: 38vw;
    bottom: -18vw;
    background: rgba(0, 212, 255, .16);
    animation: swAiAuroraA 15s ease-in-out infinite alternate-reverse;
}

@keyframes swAiAuroraA {
    from { transform: translate3d(-2%, -3%, 0) scale(.92); }
    to { transform: translate3d(8%, 8%, 0) scale(1.08); }
}

@keyframes swAiAuroraB {
    from { transform: translate3d(3%, -4%, 0) scale(1); }
    to { transform: translate3d(-8%, 9%, 0) scale(1.12); }
}

/* ---------- Shared layout ---------- */
.sw-container,
.sw-ai-container {
    width: min(1220px, calc(100% - 48px));
    margin-inline: auto;
}

.sw-ai-section {
    position: relative;
    padding: clamp(72px, 8vw, 116px) 0;
}

.sw-ai-section--compact { padding: clamp(44px, 6vw, 76px) 0; }

.sw-ai-section--surface {
    border-block: 1px solid rgba(112, 139, 255, .09);
    background: linear-gradient(180deg, rgba(14, 18, 42, .42), rgba(7, 10, 22, .55));
}

.sw-ai-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 38px;
}

.sw-ai-section-head--center {
    max-width: 860px;
    margin: 0 auto 48px;
    text-align: center;
    display: block;
}

.sw-ai-eyebrow,
.eyebrow,
.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    width: max-content;
    max-width: 100%;
    padding: 8px 15px;
    border: 1px solid rgba(0, 212, 255, .22);
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(79, 122, 255, .12), rgba(0, 212, 255, .07));
    color: #75e8ff;
    font-size: .77rem;
    font-weight: 900;
    letter-spacing: .12em;
    line-height: 1.25;
    text-transform: uppercase;
    box-shadow: inset 0 0 24px rgba(0, 212, 255, .04);
}

.sw-ai-eyebrow::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--sw-ai-cyan);
    box-shadow: 0 0 14px var(--sw-ai-cyan);
}

.sw-ai-section-title,
.sw-ai-section-head h2,
.section-head h2,
.section-head-premium h2 {
    margin: 12px 0 14px;
    color: #f8faff;
    font-family: Montserrat, Inter, system-ui, sans-serif;
    font-size: clamp(2rem, 4.6vw, 4.35rem);
    line-height: 1.02;
    letter-spacing: -.055em;
}

.sw-ai-section-copy,
.sw-ai-section-head p,
.section-head p,
.section-head-premium p {
    max-width: 760px;
    margin: 0;
    color: var(--sw-muted);
    font-size: 1.02rem;
    line-height: 1.75;
}

.sw-ai-gradient-text {
    background: var(--sw-ai-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* ---------- Header ---------- */
.sw-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    border-bottom: 1px solid rgba(112, 139, 255, .12);
    background: rgba(6, 9, 20, .70);
    -webkit-backdrop-filter: blur(22px) saturate(145%);
    backdrop-filter: blur(22px) saturate(145%);
    transition: background .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.sw-header.scrolled {
    background: rgba(6, 9, 20, .94);
    border-color: rgba(112, 139, 255, .20);
    box-shadow: 0 14px 44px rgba(0, 0, 0, .32);
}

.nav-wrap { min-height: 78px; }

.brand { gap: 12px; }

.brand-mark {
    position: relative;
    width: 46px;
    height: 46px;
    border-radius: 15px;
    overflow: hidden;
    background: var(--sw-ai-gradient);
    box-shadow: 0 12px 34px rgba(79, 122, 255, .28), inset 0 1px 0 rgba(255,255,255,.32);
}

.brand-mark::before,
.brand-mark::after {
    content: "";
    position: absolute;
    border: 2px solid rgba(255,255,255,.88);
    border-radius: 50%;
    inset: 12px 8px;
    transform: rotate(26deg);
}

.brand-mark::after { transform: rotate(-26deg); }
.brand-mark span {
    position: relative;
    z-index: 2;
    width: 7px;
    height: 7px;
    border: 0;
    background: #fff;
    box-shadow: 0 0 14px rgba(255,255,255,.85);
}

.brand-copy strong {
    font-family: Montserrat, Inter, sans-serif;
    font-size: 1.02rem;
    background: linear-gradient(90deg, #fff, #b9c8ff 45%, #70e7ff);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.brand-copy small { color: #8291b8; letter-spacing: .15em; }

.main-nav { gap: 2px; }
.main-nav a {
    position: relative;
    color: #aab7d9;
    padding: 10px 11px;
    font-size: .88rem;
    font-weight: 800;
}
.main-nav a::after {
    content: "";
    position: absolute;
    left: 20%;
    right: 20%;
    bottom: 5px;
    height: 2px;
    border-radius: 99px;
    background: var(--sw-ai-gradient);
    transform: scaleX(0);
    transition: transform .25s ease;
}
.main-nav a:hover,
.main-nav a.active { background: rgba(112, 139, 255, .10); color: #fff; }
.main-nav a:hover::after,
.main-nav a.active::after { transform: scaleX(1); }

.nav-toggle {
    border-color: rgba(112, 139, 255, .24);
    background: rgba(112, 139, 255, .10);
}

.nav-actions .btn { min-height: 40px; padding: 9px 15px; font-size: .84rem; }

.mega-panel {
    border-top-color: rgba(112, 139, 255, .10);
    background: rgba(7, 10, 23, .91);
    -webkit-backdrop-filter: blur(24px);
    backdrop-filter: blur(24px);
}
.mega-card {
    min-height: 96px;
    border-color: rgba(112, 139, 255, .12);
    background: linear-gradient(145deg, rgba(79,122,255,.09), rgba(123,76,255,.04));
    transition: transform .25s ease, border-color .25s ease, background .25s ease;
}
.mega-card:hover {
    transform: translateY(-3px);
    border-color: rgba(0, 212, 255, .28);
    background: linear-gradient(145deg, rgba(79,122,255,.15), rgba(123,76,255,.08));
}

/* ---------- Buttons ---------- */
.btn,
.button,
.sw-ai-btn {
    position: relative;
    overflow: hidden;
    transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease, background .24s ease;
}

.btn-primary,
.button-primary,
.sw-ai-btn--primary,
.hero-actions a:first-child,
.actions a:first-child,
.cta-row a:first-child,
.hero-cta a:first-child {
    color: #fff !important;
    border-color: transparent !important;
    background: var(--sw-ai-gradient) !important;
    box-shadow: 0 12px 34px rgba(79, 122, 255, .30);
}

.btn-primary:hover,
.button-primary:hover,
.sw-ai-btn--primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 48px rgba(79, 122, 255, .42), 0 0 28px rgba(0, 212, 255, .12);
}

.btn-ghost,
.btn-light,
.button-ghost,
.btn-outline,
.sw-ai-btn--secondary {
    color: #f4f7ff !important;
    border-color: rgba(159, 176, 229, .18) !important;
    background: rgba(255, 255, 255, .045) !important;
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
}

.btn-ghost:hover,
.btn-light:hover,
.btn-outline:hover,
.sw-ai-btn--secondary:hover {
    transform: translateY(-3px);
    border-color: rgba(0, 212, 255, .34) !important;
    background: rgba(79, 122, 255, .10) !important;
}

.btn-dark {
    color: #fff !important;
    background: #0d132c !important;
    border-color: rgba(112,139,255,.20) !important;
}

.btn-orange {
    color: #fff !important;
    background: linear-gradient(135deg, #ff7d7d, #ff9d55) !important;
}

/* ---------- Home hero ---------- */
.sw-ai-hero {
    position: relative;
    min-height: min(900px, calc(100vh - 78px));
    display: grid;
    align-items: center;
    overflow: hidden;
    padding: clamp(70px, 9vw, 118px) 0 clamp(64px, 8vw, 106px);
    border-bottom: 1px solid rgba(112, 139, 255, .10);
}

.sw-ai-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 18% 26%, rgba(79, 122, 255, .13), transparent 31%),
        radial-gradient(circle at 78% 36%, rgba(123, 76, 255, .10), transparent 28%),
        linear-gradient(180deg, rgba(7,10,22,.20), rgba(7,10,22,.62));
    pointer-events: none;
}

.sw-ai-hero-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1.03fr) minmax(390px, .97fr);
    gap: clamp(32px, 6vw, 80px);
    align-items: center;
}

.sw-ai-hero-copy { max-width: 720px; }

.sw-ai-hero h1 {
    max-width: 850px;
    margin: 18px 0 24px;
    color: #f8faff;
    font-family: Montserrat, Inter, system-ui, sans-serif;
    font-size: clamp(3rem, 6.35vw, 6rem);
    font-weight: 900;
    line-height: .96;
    letter-spacing: -.072em;
}

.sw-ai-hero-lead {
    max-width: 700px;
    margin: 0 0 30px;
    color: #b6c2df;
    font-size: clamp(1.04rem, 1.8vw, 1.22rem);
    line-height: 1.76;
}

.sw-ai-hero-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-bottom: 28px;
}

.sw-ai-hero-actions .btn { min-height: 52px; padding: 13px 24px; }

.sw-ai-capabilities {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.sw-ai-capability {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border: 1px solid rgba(112, 139, 255, .14);
    border-radius: 999px;
    background: rgba(12, 18, 43, .60);
    color: #bac6e4;
    font-size: .82rem;
    font-weight: 800;
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
}

.sw-ai-capability i { color: var(--sw-ai-cyan); }

.sw-ai-hero-visual {
    position: relative;
    min-height: 590px;
    display: grid;
    place-items: center;
}

.sw-ai-hero-visual::before,
.sw-ai-hero-visual::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    border-radius: 50%;
    transform: translate(-50%, -50%);
}

.sw-ai-hero-visual::before {
    width: min(94%, 570px);
    aspect-ratio: 1;
    border: 1px solid rgba(112, 139, 255, .13);
    box-shadow: inset 0 0 80px rgba(79, 122, 255, .06), 0 0 100px rgba(79, 122, 255, .08);
}

.sw-ai-hero-visual::after {
    width: min(76%, 460px);
    aspect-ratio: 1;
    border: 1px dashed rgba(0, 212, 255, .16);
    animation: swAiRotate 36s linear infinite;
}

.sw-ai-brain-wrap {
    position: relative;
    z-index: 3;
    width: min(94%, 630px);
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    animation: swAiBrainFloat 7s ease-in-out infinite;
}

.sw-ai-brain-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 24px 48px rgba(79, 122, 255, .22));
}

.sw-ai-brain-pulse {
    position: absolute;
    inset: 22%;
    z-index: -1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(79, 122, 255, .30), rgba(123, 76, 255, .08) 45%, transparent 72%);
    animation: swAiPulse 3.4s ease-in-out infinite;
}

.sw-ai-tech-tag {
    position: absolute;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 13px;
    border: 1px solid rgba(112, 139, 255, .18);
    border-radius: 14px;
    background: rgba(8, 13, 31, .78);
    color: #e8edff;
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .05em;
    box-shadow: 0 14px 40px rgba(0,0,0,.24);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
}
.sw-ai-tech-tag i { color: var(--sw-ai-cyan); }
.sw-ai-tech-tag--ai { top: 13%; left: 3%; animation: swAiTag 6s ease-in-out infinite; }
.sw-ai-tech-tag--web { right: 2%; top: 25%; animation: swAiTag 7.5s ease-in-out infinite reverse; }
.sw-ai-tech-tag--mobile { left: 6%; bottom: 20%; animation: swAiTag 8s ease-in-out infinite reverse; }
.sw-ai-tech-tag--data { right: 4%; bottom: 12%; animation: swAiTag 6.8s ease-in-out infinite; }

@keyframes swAiRotate { to { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes swAiBrainFloat { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-14px) scale(1.015); } }
@keyframes swAiPulse { 0%,100% { transform: scale(.88); opacity: .55; } 50% { transform: scale(1.15); opacity: .95; } }
@keyframes swAiTag { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }

/* ---------- Academy bar ---------- */
.sw-ai-academy-strip {
    position: relative;
    z-index: 4;
    margin-top: -38px;
}

.sw-ai-academy-card {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 22px;
    align-items: center;
    padding: 22px 25px;
    border: 1px solid rgba(112, 139, 255, .20);
    border-radius: 24px;
    background: linear-gradient(125deg, rgba(17,23,55,.94), rgba(37,27,76,.90), rgba(7,38,57,.90));
    box-shadow: 0 22px 70px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.06);
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
}

.sw-ai-academy-icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 17px;
    background: var(--sw-ai-gradient);
    color: #fff;
    font-size: 1.35rem;
    box-shadow: 0 10px 28px rgba(79,122,255,.30);
}
.sw-ai-academy-card strong { display: block; color: #fff; font-size: 1.08rem; margin-bottom: 5px; }
.sw-ai-academy-card p { margin: 0; color: #aebbe0; line-height: 1.55; }

/* ---------- Cards / grids ---------- */
.sw-ai-grid-3,
.sw-ai-services-grid,
.sw-ai-platform-grid,
.sw-ai-method-grid,
.sw-ai-solutions-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.sw-ai-card,
.module-card,
.platform-premium-card,
.premium-card,
.card,
.programme-card,
.training-card,
.service-card,
.feature-card {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(112, 139, 255, .14);
    border-radius: 24px;
    background: linear-gradient(145deg, rgba(19, 25, 59, .74), rgba(10, 14, 34, .78));
    box-shadow: 0 22px 70px rgba(0,0,0,.23);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
    transition: transform .30s ease, border-color .30s ease, box-shadow .30s ease, background .30s ease;
}

.sw-ai-card::before,
.module-card::before,
.platform-premium-card::before,
.premium-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 2px;
    background: linear-gradient(90deg, transparent, #4f7aff, #7b4cff, #00d4ff, transparent);
    opacity: .58;
}

.sw-ai-card:hover,
.module-card:hover,
.platform-premium-card:hover,
.premium-card:hover,
.card:hover,
.programme-card:hover,
.training-card:hover,
.service-card:hover,
.feature-card:hover {
    transform: translateY(-7px);
    border-color: rgba(0, 212, 255, .30);
    box-shadow: 0 28px 86px rgba(0,0,0,.32), 0 0 36px rgba(79,122,255,.08);
}

.sw-ai-card { padding: 28px; }
.sw-ai-card-icon,
.module-icon {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    margin-bottom: 22px;
    border: 1px solid rgba(0,212,255,.22);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(79,122,255,.18), rgba(0,212,255,.10));
    color: #63e5ff;
    font-size: 1.25rem;
    box-shadow: inset 0 0 24px rgba(0,212,255,.04);
}
.sw-ai-card h3,
.module-card h3 { margin: 0 0 12px; color: #fff; font-size: 1.24rem; line-height: 1.28; }
.sw-ai-card p,
.module-card p { color: #aab7d8; line-height: 1.7; }
.sw-ai-card .btn,
.module-card .btn { margin-top: 8px; }

.sw-ai-card--featured {
    border-color: rgba(0, 212, 255, .25);
    background:
        radial-gradient(circle at 100% 0, rgba(0,212,255,.11), transparent 36%),
        linear-gradient(145deg, rgba(22,29,69,.86), rgba(12,15,39,.86));
}

/* ---------- Method 4P ---------- */
.sw-ai-method-card {
    min-height: 250px;
    padding: 26px;
}
.sw-ai-method-number {
    display: inline-flex;
    margin-bottom: 30px;
    font-family: Montserrat, Inter, sans-serif;
    font-size: 2.5rem;
    font-weight: 900;
    line-height: 1;
    background: var(--sw-ai-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.sw-ai-method-card h3 { font-size: 1.42rem; }

/* ---------- Ecosystem cards ---------- */
.sw-ai-platform-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.sw-ai-platform-card {
    min-height: 245px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 27px;
    color: #fff;
    text-decoration: none;
}
.sw-ai-platform-label {
    display: inline-flex;
    width: max-content;
    max-width: 100%;
    padding: 7px 11px;
    border: 1px solid rgba(0,212,255,.22);
    border-radius: 999px;
    background: rgba(0,212,255,.06);
    color: #77e9ff;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.sw-ai-platform-card h3 { margin: 24px 0 10px; font-size: 1.36rem; }
.sw-ai-platform-card p { margin: 0; color: #aab7d8; line-height: 1.65; }
.sw-ai-platform-arrow { margin-top: 20px; color: #8deeff; font-weight: 900; }

/* ---------- Dynamic events ---------- */
.sw-ai-events-list { display: grid; gap: 14px; }
.sw-ai-event {
    display: grid;
    grid-template-columns: 90px 1fr auto;
    gap: 20px;
    align-items: center;
    padding: 19px;
}
.sw-ai-event-date {
    min-height: 78px;
    display: grid;
    place-items: center;
    border-radius: 20px;
    background: var(--sw-ai-gradient);
    color: #fff;
    text-align: center;
    box-shadow: 0 12px 32px rgba(79,122,255,.24);
}
.sw-ai-event-date small { display: block; font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.sw-ai-event-date strong { display: block; font: 900 1.85rem/1 Montserrat, Inter, sans-serif; }
.sw-ai-event h3 { margin: 0 0 7px; color: #fff; }
.sw-ai-event p { margin: 0; color: #aab7d8; }

/* ---------- Offers ---------- */
.sw-ai-offer-grid { display: grid; grid-template-columns: .92fr 1.08fr; gap: 18px; }
.sw-ai-offer-card { padding: clamp(28px,4.5vw,46px); }
.sw-ai-offer-card h2,
.sw-ai-offer-card h3 { margin: 14px 0 12px; color: #fff; font-family: Montserrat,Inter,sans-serif; line-height: 1.04; letter-spacing: -.045em; }
.sw-ai-offer-card h2 { font-size: clamp(2.2rem,5vw,4rem); }
.sw-ai-offer-card h3 { font-size: clamp(1.8rem,3.5vw,2.8rem); }
.sw-ai-price { display: inline-flex; margin: 5px 0 16px; font: 900 clamp(3rem,7vw,5.5rem)/.95 Montserrat,Inter,sans-serif; background: var(--sw-ai-gradient); -webkit-background-clip:text; background-clip:text; color:transparent; letter-spacing:-.07em; }
.sw-ai-tags { display:flex; flex-wrap:wrap; gap:8px; margin:18px 0; }
.sw-ai-tags span { padding:8px 11px; border:1px solid rgba(112,139,255,.15); border-radius:999px; background:rgba(255,255,255,.04); color:#c5d0eb; font-size:.82rem; font-weight:800; }

/* ---------- CTA ---------- */
.sw-ai-final-cta {
    position: relative;
    overflow: hidden;
    padding: clamp(70px,9vw,120px) 0;
    text-align: center;
    border-top: 1px solid rgba(112,139,255,.10);
    background:
        radial-gradient(circle at 50% 0, rgba(79,122,255,.18), transparent 38%),
        linear-gradient(180deg, rgba(10,14,34,.68), rgba(6,9,20,.92));
}
.sw-ai-final-cta h2 { max-width: 940px; margin: 0 auto 18px; color:#fff; font:900 clamp(2.3rem,6vw,5.2rem)/.98 Montserrat,Inter,sans-serif; letter-spacing:-.065em; }
.sw-ai-final-cta p { max-width:760px; margin:0 auto 28px; color:#aebbe0; font-size:1.08rem; line-height:1.75; }
.sw-ai-final-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }

/* ---------- Public legacy pages: recolor and unify without touching PHP ---------- */
.page-hero,
.hero,
.hero-section,
.sw-blog-page .page-hero,
.sw-article-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 8% 0, rgba(79,122,255,.20), transparent 34%),
        radial-gradient(circle at 92% 0, rgba(123,76,255,.16), transparent 30%),
        linear-gradient(135deg, #080b17, #111733 58%, #071827) !important;
}

.page-hero::before,
.hero-section::before {
    content:"";
    position:absolute;
    inset:0;
    background-image: linear-gradient(rgba(79,122,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(79,122,255,.035) 1px,transparent 1px);
    background-size:64px 64px;
    pointer-events:none;
}

.premium-section,
.section { position: relative; background-color: transparent; }
.premium-section:not(.dark),
.section:not(.dark) { color: var(--sw-text); }
.dark,
.premium-section.dark { background: rgba(7,10,23,.52) !important; }

.cards-grid,
.card-grid,
.services-grid,
.platform-grid,
.programmes-grid,
.training-grid { gap: 18px; }

input,
select,
textarea {
    color: #f5f7ff;
    border-color: rgba(112,139,255,.18) !important;
    background: rgba(9,13,31,.76) !important;
}
input:focus,
select:focus,
textarea:focus {
    outline: 2px solid rgba(0,212,255,.28);
    outline-offset: 2px;
    border-color: rgba(0,212,255,.36) !important;
}

/* Blog dynamic restyling */
.sw-blog-card,
.sw-article-card,
.sw-article-aside {
    border-color: rgba(112,139,255,.15) !important;
    background: linear-gradient(145deg,rgba(18,24,57,.78),rgba(9,13,32,.82)) !important;
}
.sw-blog-card__image { background: var(--sw-ai-gradient-soft) !important; }
.sw-blog-tag { color:#fff !important; background:var(--sw-ai-gradient) !important; }
.sw-article-body a { color:#70e7ff !important; }
.article-callout,
.article-example { background:rgba(79,122,255,.11)!important; border-color:rgba(0,212,255,.22)!important; }
.sw-training-cta,
.sw-article-cta { background:var(--sw-ai-gradient)!important; }
.sw-training-cta__inner,
.sw-article-cta__inner { background:linear-gradient(135deg,rgba(10,14,34,.98),rgba(18,24,59,.96))!important; }

/* Footer */
.sw-footer,
.premium-footer {
    position: relative;
    z-index: 3;
    border-top: 1px solid rgba(112,139,255,.13);
    background:
        radial-gradient(circle at 12% 0, rgba(79,122,255,.10), transparent 30%),
        radial-gradient(circle at 88% 0, rgba(123,76,255,.09), transparent 26%),
        rgba(5,8,18,.96);
}
.footer-column h4 { color:#fff; }
.footer-column a,
.footer-brand p,
.footer-contact { color:#9facce; }
.footer-column a:hover { color:#72e8ff; }
.footer-socials a {
    border-color:rgba(112,139,255,.16);
    background:rgba(79,122,255,.07);
}
.footer-socials a:hover { color:#fff; background:var(--sw-ai-gradient); transform:translateY(-3px); }
.footer-bottom { border-top-color:rgba(112,139,255,.10); color:#7f8caf; }

/* ---------- Progressive reveal ---------- */
.sw-ai-js .sw-ai-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
}
.sw-ai-js .sw-ai-reveal.sw-ai-visible { opacity:1; transform:translateY(0); }

/* ---------- Responsive ---------- */
@media (max-width: 1120px) {
    .sw-ai-hero-grid { grid-template-columns: 1fr; }
    .sw-ai-hero-copy { max-width: 900px; }
    .sw-ai-hero-visual { min-height: 500px; }
    .sw-ai-grid-3,
    .sw-ai-services-grid,
    .sw-ai-solutions-grid,
    .sw-ai-platform-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .sw-ai-method-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .sw-ai-offer-grid { grid-template-columns: 1fr; }
}

@media (max-width: 1050px) {
    .main-nav {
        top: 80px;
        border-color: rgba(112,139,255,.20);
        background: rgba(7,10,23,.98);
    }
}

@media (max-width: 760px) {
    .sw-container,
    .sw-ai-container { width: min(100% - 28px, 1220px); }
    .sw-ai-hero { min-height: auto; padding-top: 62px; }
    .sw-ai-hero h1 { font-size: clamp(2.55rem,13vw,4.2rem); }
    .sw-ai-hero-visual { min-height: 400px; }
    .sw-ai-tech-tag { font-size:.7rem; padding:8px 10px; }
    .sw-ai-tech-tag--ai { left:0; }
    .sw-ai-tech-tag--web { right:0; }
    .sw-ai-tech-tag--mobile { left:1%; }
    .sw-ai-tech-tag--data { right:1%; }
    .sw-ai-academy-card { grid-template-columns:auto 1fr; }
    .sw-ai-academy-card .btn { grid-column:1/-1; width:100%; }
    .sw-ai-grid-3,
    .sw-ai-services-grid,
    .sw-ai-solutions-grid,
    .sw-ai-platform-grid,
    .sw-ai-method-grid { grid-template-columns:1fr; }
    .sw-ai-section-head { display:block; }
    .sw-ai-section-head > .btn { margin-top:18px; }
    .sw-ai-event { grid-template-columns:80px 1fr; }
    .sw-ai-event > .btn { grid-column:1/-1; width:100%; }
}

@media (max-width: 520px) {
    .sw-ai-hero-actions { display:grid; }
    .sw-ai-hero-actions .btn { width:100%; }
    .sw-ai-hero-visual { min-height:350px; margin-inline:-8px; }
    .sw-ai-tech-tag--mobile,
    .sw-ai-tech-tag--data { bottom:8%; }
    .sw-ai-tech-tag--web { top:18%; }
    .sw-ai-capability { font-size:.76rem; }
    .sw-ai-final-actions { display:grid; }
    .sw-ai-final-actions .btn { width:100%; }
}

/* ---------- Accessibility / reduced motion ---------- */
:focus-visible {
    outline: 3px solid rgba(0,212,255,.72);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
    #swAiNeuralCanvas { display:none; }
    .sw-ai-js .sw-ai-reveal { opacity:1; transform:none; }
}


/* ---------- Hotfix: CTA overflow + button text safety ---------- */
.sw-ai-section-head {
    flex-wrap: wrap;
}

.sw-ai-section-head > :first-child {
    flex: 1 1 720px;
    min-width: 0;
}

.sw-ai-section-head > .btn,
.sw-ai-section-head > .button,
.sw-ai-section-head > .sw-ai-btn {
    flex: 0 0 auto;
    margin-left: auto;
}

.btn,
.button,
.sw-ai-btn,
.btn-primary,
.btn-ghost,
.btn-light,
.btn-outline,
.sw-ai-btn--primary,
.sw-ai-btn--secondary {
    max-width: 100%;
    text-align: center;
    text-wrap: balance;
}

@media (max-width: 1180px) {
    .sw-ai-section-head {
        align-items: flex-start;
    }

    .sw-ai-section-head > .btn,
    .sw-ai-section-head > .button,
    .sw-ai-section-head > .sw-ai-btn {
        margin-left: 0;
    }
}
