:root {
    --fm-primary: #005BBB;
    --fm-accent:  #FFD500;
    --fm-dark:    #002B5C;
    --fm-text:    #0D2440;
    --fm-muted:   #4A5D78;
    --fm-bg:      #F4F9FF;
}

/* Hero */
.fm-hero {
    min-height: calc(100vh - 72px);
    background: linear-gradient(120deg, #002b5c, #005bbb, #0b6fd0, #003a78, #002b5c);
    background-size: 300% 300%;
}
.fm-blob.b1 { background: #FFD500; }
.fm-blob.b2 { background: #FFE34D; }
.fm-blob.b3 { background: #4AA3FF; }
.fm-word.grad {
    background: linear-gradient(90deg, #FFD500, #FFF06B, #FFD500);
    -webkit-background-clip: text;
    background-clip: text;
}

/* Buttons and countdown */
.fm-btn-primary { background: var(--fm-accent); color: var(--fm-dark) !important; }
.fm-btn-primary:hover { background: #fff; color: var(--fm-primary) !important; }
.fm-btn-ghost:hover { background: var(--fm-accent); border-color: var(--fm-accent); color: var(--fm-dark) !important; }
.fm-count-box { background: rgba(255,213,0,.14); border-color: rgba(255,213,0,.45); }

/* Ticker */
.fm-ticker { background: var(--fm-accent); color: var(--fm-primary); }

/* Stats */
.fm-stat { border-top: 4px solid var(--fm-accent); }
.fm-stat strong { color: var(--fm-primary); }

/* Sections and cards */
.fm-section-alt { background: #E8F2FF; }
.fm-home .fm-card { border-top: 4px solid var(--fm-primary); }
.fm-home .fm-card:hover { box-shadow: 0 24px 50px rgba(0,91,187,.25); }
.fm-home .fm-btn, .fm-chip { background: var(--fm-primary); }

/* CTA with embroidery-inspired pattern */
.fm-cta {
    position: relative;
    overflow: hidden;
    background: linear-gradient(120deg, #002b5c, #005bbb, #0b6fd0, #002b5c);
    background-size: 250% 250%;
}
.fm-cta::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(45deg,  rgba(255,213,0,.12) 25%, transparent 25%),
        linear-gradient(-150deg, rgba(255,213,0,.12) 25%, transparent 25%);
        /* linear-gradient(-45deg, rgba(255,213,0,.12) 25%, transparent 25%); */
    background-size: 40px 40px;
    pointer-events: none;
}
.fm-cta > * { position: relative; }
.fm-cta .fm-btn-primary { animation: fm-pulse-yellow 2.4s infinite; }

@keyframes fm-pulse-yellow {
    0%, 100% { box-shadow: 0 0 0 0 rgba(255,213,0,.6); }
    70%      { box-shadow: 0 0 0 16px rgba(255,213,0,0); }
}

@media (prefers-reduced-motion: reduce) {
    .fm-cta .fm-btn-primary { animation: none; }
}
