/*
 * NIM — Shared Design Tokens (Defaults Only)
 * ========================================================
 * These are LOW-SPECIFICITY fallbacks. Elementor's style controls
 * generate inline styles that naturally override these.
 */

:root {
    --cb-primary:       hsl(191, 96%, 24%);
    --cb-primary-fg:    hsl(0, 0%, 100%);
    --cb-secondary:     hsl(36, 91%, 59%);
    --cb-secondary-fg:  hsl(0, 0%, 8%);
    --cb-background:    hsl(0, 0%, 100%);
    --cb-foreground:    hsl(0, 0%, 8%);
    --cb-card:          hsl(0, 0%, 100%);
    --cb-card-fg:       hsl(0, 0%, 8%);
    --cb-muted:         hsl(195, 20%, 95%);
    --cb-muted-fg:      hsl(0, 0%, 40%);
    --cb-dark:          hsl(0, 0%, 12%);
    --cb-dark-fg:       hsl(0, 0%, 98%);
    --cb-dark-grey:     hsl(0, 0%, 25%);
    --cb-border:        hsl(195, 15%, 88%);
    --cb-radius:        0.5rem;
    --cb-font-body:     'DM Sans', sans-serif;
    --cb-font-heading:  'Space Grotesk', sans-serif;
}

[class^="cb-"] *, [class^="cb-"] *::before, [class^="cb-"] *::after { box-sizing: border-box; }
[class^="cb-"] { font-family: var(--cb-font-body); -webkit-font-smoothing: antialiased; line-height: 1.6; }
[class^="cb-"] h1, [class^="cb-"] h2, [class^="cb-"] h3,
[class^="cb-"] h4, [class^="cb-"] h5, [class^="cb-"] h6 { font-family: var(--cb-font-heading); margin: 0; padding: 0; }
[class^="cb-"] p { margin: 0; padding: 0; }

.cb-section-padding { padding: 5rem 1.5rem; }
@media (min-width: 768px)  { .cb-section-padding { padding-left: 3rem; padding-right: 3rem; } }
@media (min-width: 1024px) { .cb-section-padding { padding: 7rem 6rem; } }

.cb-heading-xl { font-size: 2.25rem; font-weight: 700; letter-spacing: -0.025em; line-height: 1.15; }
.cb-heading-lg { font-size: 1.875rem; font-weight: 700; letter-spacing: -0.025em; line-height: 1.15; }
.cb-heading-md { font-size: 1.5rem; font-weight: 600; letter-spacing: -0.025em; line-height: 1.2; }
.cb-body-lg    { font-size: 1.125rem; line-height: 1.625; }
@media (min-width: 768px)  { .cb-heading-xl { font-size: 3rem; } .cb-heading-lg { font-size: 2.25rem; } .cb-heading-md { font-size: 1.875rem; } .cb-body-lg { font-size: 1.25rem; } }
@media (min-width: 1024px) { .cb-heading-xl { font-size: 3.75rem; } }

.cb-container    { max-width: 80rem; margin-left: auto; margin-right: auto; }
.cb-container-lg { max-width: 56rem; margin-left: auto; margin-right: auto; }
.cb-container-md { max-width: 48rem; margin-left: auto; margin-right: auto; }

.cb-icon-circle { display: flex; align-items: center; justify-content: center; border-radius: 9999px; flex-shrink: 0; }
.cb-icon-circle svg { stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.cb-bullet-list { list-style: none; display: flex; flex-direction: column; gap: 0.75rem; padding: 0; margin: 0; }
.cb-bullet-list li { display: flex; align-items: flex-start; gap: 0.75rem; line-height: 1.6; }
.cb-bullet-dot { margin-top: 0.375rem; width: 0.5rem; height: 0.5rem; border-radius: 9999px; flex-shrink: 0; }

.cb-form { display: flex; flex-direction: column; gap: 1.25rem; }
.cb-form__group { display: flex; flex-direction: column; gap: 0.5rem; }
.cb-form__label { font-size: 0.875rem; font-weight: 500; }
.cb-form__input { height: 3rem; width: 100%; border: 1px solid var(--cb-border); border-radius: var(--cb-radius); padding: 0 0.75rem; font-family: var(--cb-font-body); font-size: 1rem; outline: none; transition: border-color 0.2s, box-shadow 0.2s; }
.cb-form__input:focus { border-color: var(--cb-primary); box-shadow: 0 0 0 2px rgba(2,98,122,0.15); }
.cb-form__submit { display: inline-flex; align-items: center; justify-content: center; width: 100%; height: 3rem; font-family: var(--cb-font-body); font-size: 1rem; font-weight: 600; border: none; border-radius: var(--cb-radius); cursor: pointer; transition: opacity 0.2s; }
.cb-form__submit:hover { opacity: 0.9; }
.cb-card { border-radius: 0.75rem; padding: 2rem; }
