:root {
    --virtue-accent: #f46036;
    --virtue-accent-rgb: 244, 96, 54;
    --virtue-accent-ink: #160b07;
    --at-theme-primary: var(--virtue-accent);
}

::selection {
    color: var(--virtue-accent-ink);
    background: var(--virtue-accent);
}

:where(a, button, input, select, textarea):focus-visible {
    outline: 2px solid var(--virtue-accent);
    outline-offset: 3px;
}

/* Small repeated marks give every section a shared visual rhythm. */
.sec-2-home-14__eyebrow-dot,
.sec-3-home-14__eyebrow-dot,
.sec-4-home-14__eyebrow-dot,
.sec-5-home-14__eyebrow-dot,
.sec-7-home-14__eyebrow-dot {
    background-color: var(--virtue-accent);
    box-shadow: 0 0 0 4px rgba(var(--virtue-accent-rgb), 0.12);
}

.sec-2-home-14__eyebrow-key,
.sec-3-home-14__eyebrow-key,
.sec-4-home-14__eyebrow-key,
.sec-5-home-14__eyebrow-key,
.sec-7-home-14__eyebrow-key,
.sec-1-home-14__tagline,
.header-14__meta-key {
    color: var(--virtue-accent);
}

main > section:not(:first-child) {
    position: relative;
}

main > section:not(:first-child)::before {
    content: "";
    position: absolute;
    top: -1px;
    left: max(16px, calc((100vw - 1720px) / 2));
    width: 72px;
    height: 2px;
    z-index: 3;
    pointer-events: none;
    background: var(--virtue-accent);
}

/* Primary actions use the accent while keeping readable dark lettering. */
.header-14 .at-btn,
main .at-btn-group .at-btn,
main .at-btn-group .at-btn-circle,
.contact-home-14 .sec-4-about-form__btn,
.sec-1-home-14__btn-primary .sec-1-home-14__btn-label,
.sec-1-home-14__btn-primary .sec-1-home-14__btn-icon,
.sec-5-home-14__btn-primary .sec-5-home-14__btn-label,
.sec-5-home-14__btn-primary .sec-5-home-14__btn-icon,
.back-to-top-btn {
    color: var(--virtue-accent-ink);
    background: var(--virtue-accent);
    border-color: var(--virtue-accent);
}

.header-14 .at-btn:hover,
main .at-btn-group:hover > *,
.contact-home-14 .sec-4-about-form__btn:hover {
    color: var(--virtue-accent-ink);
    background: #ff7a52;
}

.sec-1-home-14__btn-link {
    color: var(--virtue-accent);
    border-bottom-color: var(--virtue-accent);
}

.sec-1-home-14__btn-link:hover,
.sec-7-home-14__head-link:hover,
.sec-7-home-14__project-link:hover,
.footer-14__social a:hover {
    color: var(--virtue-accent);
}

.sec-4-home-14__tab.is-active,
.sec-7-home-14__nav-btn--next,
.sec-7-home-14__nav-btn:hover {
    color: var(--virtue-accent-ink);
    background-color: var(--virtue-accent);
    border-color: var(--virtue-accent);
}

.sec-4-home-14__tab.is-active .sec-4-home-14__tab-count {
    color: var(--virtue-accent-ink);
}

.sec-4-home-14__tab:hover:not(.is-active),
.sec-4-about-form__input:focus,
.contact-home-14__select:focus {
    border-color: var(--virtue-accent);
}

.sec-5-home-14__row {
    border-bottom-color: rgba(var(--virtue-accent-rgb), 0.28);
}

.sec-5-home-14__row:first-child {
    border-top-color: rgba(var(--virtue-accent-rgb), 0.28);
}

.sec-5-home-14__row-link {
    transition: opacity 0.25s ease, padding 0.7s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.3s ease;
}

.sec-5-home-14__row-link:hover {
    background-color: rgba(var(--virtue-accent-rgb), 0.07);
}

.sec-5-home-14__row-link:hover .sec-5-home-14__row-num,
.sec-5-home-14__row-link:hover .sec-5-home-14__row-arrow,
.sec-5-home-14__row-link:hover .sec-5-home-14__row-price-cta {
    color: var(--virtue-accent);
}

.sec-7-home-14__quote-mark,
.sec-7-home-14__star,
.footer-14__studio-dot--active,
.footer-14__bigbrand sup {
    color: var(--virtue-accent);
}

.footer-14__studio-dot--active {
    background-color: var(--virtue-accent);
}

.footer-14__bigbrand-badge {
    color: var(--virtue-accent-ink);
    background: var(--virtue-accent);
    border-color: var(--virtue-accent);
}

[data-bs-theme="dark"] .sec-2-home-14,
[data-bs-theme="dark"] .sec-4-home-14,
[data-bs-theme="dark"] .contact-home-14 {
    background-color: #12100f;
}

[data-bs-theme="dark"] .sec-3-home-14,
[data-bs-theme="dark"] .sec-7-home-14 {
    border-top-color: rgba(var(--virtue-accent-rgb), 0.2);
}

[data-bs-theme="dark"] .sec-4-home-14__tabs,
[data-bs-theme="dark"] .contact-home-14 {
    border-color: rgba(var(--virtue-accent-rgb), 0.25);
}

/* Keep animated statistics on one line on narrow screens. */
.sec-2-home-14__stat {
    min-width: 0;
}

.sec-2-home-14__stat-num {
    max-width: 100%;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.sec-2-home-14__stat-num .odometer {
    max-width: 100%;
    letter-spacing: -0.05em;
    white-space: nowrap;
}

.sec-2-home-14__stat-num .odometer-inside {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: baseline;
}

.sec-2-home-14__stat-num .odometer-digit {
    flex: 0 0 auto;
}

@media (max-width: 767px) {
    html:has(.at-offcanvas-2-area.menu-open),
    body:has(.at-offcanvas-2-area.menu-open) {
        overflow: hidden;
    }

    main > section:not(:first-child)::before {
        width: 44px;
    }

    .header-14 .at-header-right {
        gap: 8px !important;
    }

    .header-14 .at-header-search-btn,
    .header-14 .dark-light-mode .toggle {
        display: grid;
        width: 40px;
        min-width: 40px;
        height: 40px;
        place-items: center;
    }

    .hamburger-sticky-menu {
        display: inline-flex;
        min-height: 44px;
        align-items: center;
    }

    .at-offcanvas-2-wrapper {
        min-height: 100dvh;
        max-height: 100dvh;
        overflow-y: auto;
        padding-bottom: 96px;
    }

    .at-offcanvas-2-area.menu-open .hamburger-mobile-close-btn {
        position: fixed;
        top: auto;
        right: 30px;
        bottom: max(20px, env(safe-area-inset-bottom));
        left: 30px;
        z-index: 1002;
        display: flex;
        min-height: 44px;
        align-items: center;
        justify-content: center;
        color: var(--virtue-accent-ink);
        background: var(--virtue-accent);
        border: 0;
        border-radius: 999px;
    }

    .at-offcanvas-social__link,
    .footer-14__social a {
        display: inline-flex;
        min-height: 44px;
        align-items: center;
    }

    .sec-7-home-14__nav-btn {
        width: 44px;
        height: 44px;
    }

    .project-detail h1 {
        font-size: clamp(36px, 12vw, 50px);
        line-height: 1.05;
        overflow-wrap: anywhere;
    }

    main .at-btn-group > .at-btn-circle {
        display: none;
    }

    main .at-btn-group > .at-btn {
        transform: none;
    }

    .sec-2-home-14__stats {
        column-gap: 0;
    }

    .sec-2-home-14__stat {
        padding-inline: 10px;
    }

    .sec-2-home-14__stat-num {
        font-size: clamp(42px, 13vw, 56px);
    }

    .sec-5-home-14__row-link:hover {
        padding-left: 12px;
        padding-right: 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sec-5-home-14__row-link {
        transition: none;
    }
}
