:root {
    --dw-orange: #f56a00;
    --dw-orange-dark: #d65d00;
    --dw-orange-rgb: 245, 106, 0;
    --dw-ink: #343434;
    --dw-ink-soft: #4a4a4a;
    --dw-bg: #f9faf9;
    --dw-line: #e6e7e6;

    --bs-body-bg: var(--dw-bg);
    --bs-body-bg-rgb: 249, 250, 249;
    --bs-body-color: var(--dw-ink);
    --bs-body-color-rgb: 52, 52, 52;
    --bs-emphasis-color: #222;
    --bs-emphasis-color-rgb: 34, 34, 34;
    --bs-primary: var(--dw-orange);
    --bs-primary-rgb: var(--dw-orange-rgb);
    --bs-primary-text-emphasis: #8a3c00;
    --bs-primary-bg-subtle: #feeadb;
    --bs-primary-border-subtle: #fbc69e;
    --bs-link-color: var(--dw-orange);
    --bs-link-color-rgb: var(--dw-orange-rgb);
    --bs-link-hover-color: var(--dw-orange-dark);
    --bs-link-hover-color-rgb: 214, 93, 0;
    --bs-border-color: var(--dw-line);
    --bs-focus-ring-color: rgba(var(--dw-orange-rgb), .25);
}

[data-bs-theme="dark"] {
    --bs-link-color: var(--dw-orange);
    --bs-link-color-rgb: var(--dw-orange-rgb);
}

.btn-primary {
    --bs-btn-bg: var(--dw-orange);
    --bs-btn-border-color: var(--dw-orange);
    --bs-btn-hover-bg: var(--dw-orange-dark);
    --bs-btn-hover-border-color: var(--dw-orange-dark);
    --bs-btn-active-bg: var(--dw-orange-dark);
    --bs-btn-active-border-color: var(--dw-orange-dark);
    --bs-btn-disabled-bg: var(--dw-orange);
    --bs-btn-disabled-border-color: var(--dw-orange);
    --bs-btn-focus-shadow-rgb: var(--dw-orange-rgb);
}

.form-control:focus,
.form-select:focus {
    border-color: #fab27c;
    box-shadow: 0 0 0 .25rem rgba(var(--dw-orange-rgb), .25);
}

.form-check-input:checked {
    background-color: var(--dw-orange);
    border-color: var(--dw-orange);
}

.page-link {
    --bs-pagination-color: var(--dw-orange);
    --bs-pagination-active-bg: var(--dw-orange);
    --bs-pagination-active-border-color: var(--dw-orange);
}

.card {
    --bs-card-border-color: var(--dw-line);
    border-radius: 1rem;
}

code {
    color: inherit;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .25rem;
    padding: .1rem .3rem;
}

.text-accent {
    color: var(--dw-orange);
}

/* Brand */
.dw-mark {
    flex-shrink: 0;
    color: var(--dw-ink);
}

.dw-mark-accent {
    stroke: var(--dw-orange);
}

.dw-mark-accent-fill {
    fill: var(--dw-orange);
}

.dw-mark-sm {
    width: 2.25rem;
    height: 2.25rem;
}

.dw-mark-md {
    width: 3rem;
    height: 3rem;
}

.dw-mark-hero {
    width: 15rem;
    height: 15rem;
}

[data-bs-theme="dark"] .dw-mark {
    color: #fff;
}

.dw-wordmark {
    font-weight: 800;
    font-size: 1.45rem;
    letter-spacing: -.03em;
    line-height: 1;
    color: var(--dw-ink);
}

[data-bs-theme="dark"] .dw-wordmark {
    color: #fff;
}

.dw-wordmark-lg .dw-wordmark {
    font-size: 4rem;
}

.dw-i {
    position: relative;
}

.dw-i::before {
    content: "";
    position: absolute;
    left: 50%;
    top: .04em;
    width: .24em;
    height: .24em;
    border-radius: 50%;
    background: var(--dw-orange);
    transform: translateX(-50%);
}

.dw-tagline {
    display: inline-flex;
    flex-wrap: wrap;
    margin-top: .35rem;
    font-size: .62rem;
    font-weight: 500;
    letter-spacing: .3em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.dw-wordmark-lg + .dw-tagline {
    margin-top: .75rem;
    font-size: .85rem;
    color: var(--dw-ink);
}

.dw-tagline > span + span::before {
    content: "•";
    margin: 0 .6em;
    color: var(--dw-orange);
}

/* Navbar */
.dw-navbar {
    background: rgba(255, 255, 255, .92);
    border-bottom: 1px solid var(--dw-line);
    backdrop-filter: blur(8px);
    --bs-navbar-color: var(--dw-ink-soft);
    --bs-navbar-hover-color: var(--dw-orange);
    --bs-navbar-active-color: var(--dw-orange);
}

/* Hero */
.hero {
    background:
        radial-gradient(circle at 85% 20%, rgba(var(--dw-orange-rgb), .08) 0%, transparent 45%),
        var(--dw-bg);
    border-bottom: 1px solid var(--dw-line);
}

.hero-badge {
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
    border: 1px solid var(--bs-primary-border-subtle);
    padding: .5rem 1rem;
    font-weight: 600;
    letter-spacing: .04em;
}

/* Feature cards */
.feature-card {
    background: #fff;
    transition: transform .2s ease, box-shadow .2s ease;
}

.feature-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 1rem 2rem rgba(52, 52, 52, .1) !important;
}

.feature-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 1rem;
    background: var(--dw-bg);
    border: 1px solid var(--dw-line);
    color: var(--dw-ink);
}

.feature-icon svg {
    width: 2.5rem;
    height: 2.5rem;
}

.dw-icon-accent {
    fill: var(--dw-orange);
}

.dw-icon-accent-stroke {
    stroke: var(--dw-orange);
}

/* CTA */
.cta-banner {
    background: linear-gradient(160deg, #4a4a4a 0%, var(--dw-ink) 55%, #2b2b2b 100%);
}

/* Footer */
.dw-footer {
    background: #2b2b2b;
}

.footer-link {
    color: var(--bs-secondary-color);
    text-decoration: none;
}

.footer-link:hover {
    color: var(--dw-orange);
    text-decoration: underline;
}

@media (min-width: 992px) {
    .py-lg-6 {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }
}
