/*== Variables ==*/
:root {
    --deep-green: #1F6B4F;
    --fresh-green: #3BAE6F;
    --pure-white: #FFFFFF;
    --deep-black: #111111;
    --gray-secondary: #F2F2F2;
    --deep-anthracite: #1F1F23;
    --soft-cream: #F5F1EA;
    --accent-copper: #B87333;
    --dark-blue: #0B2A4A;
    --gray-dark: #555;
    --gray-light: #e5e7eb;
    --font-head: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    --font-body: "DM Sans", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

/*== Reset ==*/
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    scrollbar-width: thin;
    scrollbar-color: var(--deep-green) var(--gray-secondary);
}

html, body {
    height: 100%;
}

html {
    scrollbar-gutter: stable;
}

body {
    margin: 0;
    min-height: 100vh;
    overflow-y: scroll;
    background-color: var(--pure-white);
    color: var(--deep-black);
    font-family: 'DM Sans', sans-serif;
    font-size: 16px;
    letter-spacing: 0.01em;
    line-height: 1.7;
    display: flex;
    flex-direction: column;
}

a {
    text-decoration: none;
    color: inherit;
}

/*== Typography ==*/
h1, h2, h3, h4, h5, h6,
.sol-section__title,
.sol-hero__eyebrow,
.sol-hero__title,
.sol-panel__title,
.sol-card__title,
.sol-benefit__title,
.sol-blog-card__title,
.sol-product-title,
.sol-legal__title,
.sol-faq summary,
.site-logo__sub,
.site-logo__name {
    font-family: var(--font-head), sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.sol-hero__title {
    font-weight: 800;
    line-height: 1.08;
}

.sol-section__title {
    font-weight: 800;
}

.sol-panel__title,
.sol-card__title,
.sol-benefit__title,
.sol-blog-card__title,
.sol-product-title,
.sol-legal__title {
    font-weight: 800;
}

p, li,
.sol-panel__text,
.sol-card__meta,
.sol-subtitle,
.sol-benefit__text,
.sol-blog-card__excerpt {
    font-family: var(--font-body), sans-serif;
    letter-spacing: 0.01em;
    font-size: 1rem;
    color: var(--deep-black);
}

/*== Utilities ==*/
.sol-pt-22 {
    padding-top: 22px;
}

.sol-pt-28 {
    padding-top: 28px;
}

.sol-mb-10 {
    margin-bottom: 10px;
}

.sol-mt-12 {
    margin-top: 12px;
}

.sol-mt-14 {
    margin-top: 14px;
}

.sol-mt-16 {
    margin-top: 16px;
}

.sol-mt-20 {
    margin-top: 20px;
}

.sol-hidden {
    display: none;
}

.sol-danger {
    color: red;
}

.sol-row {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    justify-content: center;
    gap: 12px;
    margin-bottom: 1rem;
}

.site-content {
    flex: 1;
    display: block;
    margin-top: 4rem;
}

/*== Scrollbar ==*/
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: var(--gray-secondary);
    border-radius: 999px;
}

::-webkit-scrollbar-thumb {
    background: var(--deep-green);
    border-radius: 999px;
    border: 2px solid var(--gray-secondary);
    transition: background 0.2s ease;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--fresh-green);
}

::-webkit-scrollbar-corner {
    background: var(--gray-secondary);
}