:root {
    --cs-green: #8dc411;
    --cs-dark-green: #6a9e0d;
    --cs-green-light: #dcfce7;
    --cs-alt-green-light: #f0fff4;
    --cs-alt-green: #16a34a;
    --cs-amber: #fbbf24;
    --cs-blue: #41b1e9;
    --cs-cool-blue: #64748b;
    --cs-red: #dc2626;
    --cs-pink: #be185d;
    --cs-dark-navy: #1a202c;
    --cs-navy: #111827;
    --cs-dark-grey: #1f2937;
    --cs-grey: #2d3748;
    --cs-light-grey: #94a3b8;
    --cs-cool-grey: #cbd5e0;
    --cs-alt-grey: #a0aec0;
    --cs-alt-cool-grey: #d1d5db;
    --cs-slate: #334155;
    --cs-alt-slate: #374151;
    --cs-cool-white: #f7fafc;
    --cs-alt-white: #e5e7eb;
    --cs-shadow-sm: 0 4px 15px rgba(0,0,0,0.1);
    --cs-shadow-lg: 0 20px 60px rgba(0,0,0,0.25);
}

@keyframes pulse {
    0% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(1.2); }
    100% { opacity: 1; transform: scale(1); }
}

@keyframes ctaPulse {
    0%,
    100% { box-shadow: 0 4px 15px rgba(141, 196, 17, 0.4); }
    50% { box-shadow: 0 4px 20px rgba(141, 196, 17, 0.7); }
}

@keyframes slideUp {
    from { opacity: 0; transform: translateY(50px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes slideDown {
    from { transform: translateY(-100%); }
    to { transform: translateY(0); }
}

@keyframes pulse-green {
    0% { box-shadow: 0 0 0 0 rgba(22, 163, 74, 0.7); }
    70% { box-shadow: 0 0 0 6px rgba(22, 163, 74, 0); }
    100% { box-shadow: 0 0 0 0 rgba(22, 163, 74, 0); }
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html {
    scroll-padding-top: 25px;
    scroll-behavior: smooth;
}

body {
    font-family: 'Open Sans', sans-serif !important;
    font-size: 16px;
    line-height: 1.6;
    color: var(--cs-dark-navy);
    background: white;
    overflow-x: hidden;
    -webkit-tap-highlight-color: transparent;
}

:target { scroll-margin-top: 70px; }

a { text-decoration: none !important; }

.text-cs-green { color: var(--cs-green) !important; }
.text-cs-alt-green { color: var(--cs-alt-green) !important; }
.text-cs-dark-green { color: var(--cs-dark-green) !important; }
.text-cs-amber { color: var(--cs-amber) !important; }
.text-cs-red { color: var(--cs-red) !important; }
.text-cs-blue { color: var(--cs-blue) !important; }
.text-cs-cool-blue { color: var(--cs-cool-blue) !important; }
.text-cs-slate { color: var(--cs-slate) !important; }
.text-cs-dark-grey { color: var(--cs-dark-grey) !important; }
.text-cs-light-grey { color: var(--cs-light-grey) !important; }
.text-cs-alt-grey { color: var(--cs-alt-grey) !important; }
.text-cs-alt-cool-grey { color: var(--cs-alt-cool-grey) !important; }
.text-cs-cool-grey { color: var(--cs-cool-grey) !important; }
.text-cs-pink { color: var(--cs-pink) !important; }
.text-cs-white { color: rgb(228, 223, 223) !important; }
.text-cs-cool-white { color: var(--cs-cool-white) !important; }
.text-cs-alt-white { color: var(--cs-alt-white) !important; }
.text-cs-navy { color: var(--cs-navy) !important; }
.text-cs-dark-navy { color: var(--cs-dark-navy) !important; }

.bg-cs-amber { background: var(--cs-amber) !important;}
.bg-cs-white { background: white !important;}
.bg-cs-dark-navy { background: var(--cs-dark-navy) !important; }
.bg-cs-navy { background: var(--cs-navy) !important; }
.bg-cs-green { background: var(--cs-green) !important; }
.bg-cs-green-light { background: var(--cs-green-light) !important; }
.bg-cs-alt-green-light { background: var(--cs-alt-green-light) !important; }
.bg-cs-cool-white { background: var(--cs-cool-white) !important; }
.bg-cs-dark-grey { background: var(--cs-dark-grey) !important; }
.bg-cs-cool-grey { background: var(--cs-cool-grey) !important; }
.bg-cs-alt-slate { background: var(--cs-alt-slate) !important; }
.page-wrapper { background-color: #f9f9f9 !important; }

.border-left-blue { border-left: 5px solid var(--cs-blue) !important; }
.border-left-red { border-left: 5px solid var(--cs-red) !important; }
.border-left-green { border-left: 5px solid var(--cs-green) !important; }
.border-left-pink { border-left: 5px solid var(--cs-pink) !important; }

.border-top-blue { border-top: 5px solid var(--cs-blue) !important; }
.border-top-green { border-top: 5px solid var(--cs-green) !important; }
.border-top-light-grey { border-top: 5px solid var(--cs-light-grey) !important; }

.border-red { border: 2px solid var(--cs-red) !important; }
.border-green { border: 2px solid var(--cs-green) !important; }
.border-green-xl { border: 4px solid var(--cs-green) !important; }
.border-light-grey { border: 5px solid var(--cs-light-grey) !important; }

.h-3px { height: 3px !important; }
.h-30px { height: 30px !important; }
.h-32px { height: 32px !important; }

.w-18 { width: 18% !important; }
.w-36 { width: 36% !important; }
.w-54 { width: 54% !important; }
.w-72 { width: 72% !important; }
.w-90 { width: 90% !important; }

.w-90px { width: 90px !important; }
.w-100px { width: 100px !important; }
.w-200px { width: 200px !important; }

.fs-10px { font-size: 10px !important; }
.fs-11px { font-size: 11px !important; }
.fs-12px { font-size: 12px !important; }
.fs-13px { font-size: 13px !important; }
.fs-14px { font-size: 14px !important; }
.fs-15px { font-size: 15px !important; }
.fs-16px { font-size: 16px !important; }
.fs-17px { font-size: 17px !important; }
.fs-18px { font-size: 18px !important; }
.fs-20px { font-size: 20px !important; }
.fs-21px { font-size: 21px !important; }
.fs-24px { font-size: 24px !important; }
.fs-28px { font-size: 28px !important; }
.fs-32px { font-size: 32px !important; }
.fs-40px { font-size: 40px !important; }
.fs-48px { font-size: 48px !important; }
.fs-64px { font-size: 64px !important; }

.fs-1 { font-size: calc(1.375rem + 1.5vw) !important; }
.fs-2 { font-size: calc(1.375rem + .9vw) !important; }
.fs-3 { font-size: calc(1.375rem + .6vw) !important; }
.fs-4 { font-size: calc(1.275rem + .3vw) !important; }
.fs-5 { font-size: 1.25rem !important; }
.fs-6 { font-size: 1rem !important; }

.fw-600 { font-weight: 600 !important; }
.fw-700 { font-weight: 700 !important; }
.bold { font-weight: 800 !important; }
.fw-900 { font-weight: 900 !important; }
strong { font-weight: bolder !important; }

.maxw-400px { max-width: 400px !important; }
.maxw-700px { max-width: 700px !important; }
.maxw-1000px { max-width: 1000px !important; }

.rounded-cs-small { border-radius: 12px !important; }
.rounded-cs { border-radius: 20px !important; }

.letter-spacing-1px { letter-spacing: 1px; }
.letter-spacing-2px { letter-spacing: 2px; }

.animation-slide-up { animation: slideUp 0.5s ease; }

.mt-1px { margin-top:1px !important; }
.mt-2px { margin-top:2px !important; }

.box-50px {
    width: 50px;
    height: 50px;
}