*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--font-body); background: var(--bl); color: var(--ne); overflow-x: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; }
button { font-family: var(--font-body); cursor: pointer; }

/* Utility classes */
.sec { padding: 5rem 5%; }
.sec-alt { background: var(--gl); }
.sec-dark { background: var(--ne); color: #fff; }
.sh { text-align: center; margin-bottom: 3.5rem; }
.eyebrow { display: inline-block; font-size: 10px; font-weight: 700; color: var(--az); text-transform: uppercase; letter-spacing: 2px; margin-bottom: .75rem; }
.eyebrow.w { color: var(--ac); }
h2 { font-family: var(--font-display); font-size: clamp(1.7rem, 3vw, 2.6rem); font-weight: 800; letter-spacing: -.5px; line-height: 1.15; margin-bottom: .75rem; }
h3 { font-family: var(--font-display); font-size: clamp(1.4rem, 2.5vw, 2rem); font-weight: 800; letter-spacing: -.5px; margin-bottom: 1rem; line-height: 1.2; }
.sec-dark h2 { color: #fff; }
.sub { font-size: .95rem; color: var(--gr); max-width: 540px; margin: 0 auto; line-height: 1.7; }
.sec-dark .sub { color: rgba(255,255,255,.6); }

.btn-p { background: var(--az); color: #fff; padding: 13px 26px; border-radius: var(--radius-sm); font-weight: 600; font-size: 14px; text-decoration: none; display: inline-flex; align-items: center; gap: 7px; transition: .25s; border: none; }
.btn-p:hover { background: var(--azd); transform: translateY(-2px); box-shadow: 0 8px 25px rgba(26,86,219,.3); }
.btn-o { background: #fff; color: var(--az); padding: 13px 26px; border-radius: var(--radius-sm); font-weight: 600; font-size: 14px; text-decoration: none; display: inline-flex; align-items: center; gap: 7px; transition: .25s; border: 1.5px solid #BFDBFE; }
.btn-o:hover { background: var(--azp); transform: translateY(-2px); }

/* Reveal animation */
.rv { opacity: 0; transform: translateY(22px); transition: .55s ease; }
.rv.vis { opacity: 1; transform: translateY(0); }

/* Notification */
#notif { position: fixed; bottom: 24px; right: 24px; background: #1E293B; color: #fff; padding: 11px 20px; border-radius: 10px; font-size: 13px; font-weight: 500; z-index: 400; opacity: 0; transform: translateY(6px); transition: .25s; pointer-events: none; max-width: 90vw; }
