:root {
    --gq-color-bg: #f4f8f7;
    --gq-color-surface: #ffffff;
    --gq-color-surface-muted: #e8f1ef;
    --gq-color-text: #17211f;
    --gq-color-text-muted: #52615d;
    --gq-color-primary: #126b55;
    --gq-color-primary-dark: #0a493a;
    --gq-color-accent: #76c043;
    --gq-color-border: #cbd9d5;
    --gq-color-focus: #ffbf47;
    --gq-color-danger: #9d2637;
    --gq-shadow-sm: 0 0.35rem 1rem rgb(18 48 40 / 8%);
    --gq-shadow-md: 0 0.75rem 2rem rgb(18 48 40 / 12%);
    --gq-radius-sm: 0.5rem;
    --gq-radius-md: 0.85rem;
    --gq-radius-lg: 1.25rem;
    --gq-content-width: 74rem;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    min-width: 20rem;
    scroll-behavior: smooth;
}

body.gq-site {
    min-height: 100vh;
    margin: 0;
    color: var(--gq-color-text);
    background: var(--gq-color-bg);
    font-family:
        Inter,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.gq-site img,
.gq-site svg,
.gq-site video {
    max-width: 100%;
    height: auto;
}

.gq-site a {
    color: var(--gq-color-primary);
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.18em;
}

.gq-site a:hover {
    color: var(--gq-color-primary-dark);
}

.gq-skip-link {
    position: fixed;
    top: 0.75rem;
    left: 0.75rem;
    z-index: 1100;
    padding: 0.65rem 1rem;
    color: #ffffff;
    background: var(--gq-color-primary-dark);
    border-radius: var(--gq-radius-sm);
    transform: translateY(-200%);
}

.gq-skip-link:focus {
    color: #ffffff;
    transform: translateY(0);
}

.gq-site-header {
    color: #ffffff;
    background:
        linear-gradient(
            135deg,
            var(--gq-color-primary-dark),
            var(--gq-color-primary)
        );
    box-shadow: var(--gq-shadow-sm);
}

.gq-site-header__inner {
    min-height: 5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    padding-top: 0.85rem;
    padding-bottom: 0.85rem;
}

.gq-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    color: #ffffff;
    text-decoration: none;
}

.gq-brand:hover {
    color: #ffffff;
}

.gq-brand__mark {
    display: inline-grid;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    flex: 0 0 auto;
    color: var(--gq-color-primary-dark);
    background: var(--gq-color-accent);
    border-radius: 50%;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.gq-brand__text {
    display: grid;
    line-height: 1.2;
}

.gq-brand__text strong {
    font-size: 1.05rem;
    color: #f4fff9;
}

.gq-brand__text small {
    margin-top: 0.2rem;
    color: #e1f5ed;
    font-size: 0.78rem;
}

.gq-primary-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.gq-primary-nav a {
    padding: 0.55rem 0.75rem;
    color: #ffffff;
    border-radius: var(--gq-radius-sm);
    font-weight: 650;
    text-decoration: none;
}

.gq-primary-nav a:hover {
    color: #ffffff;
    background: rgb(255 255 255 / 14%);
}

.gq-main {
    min-height: calc(100vh - 11rem);
}

.gq-main > section {
    padding-top: clamp(2.5rem, 7vw, 5rem);
    padding-bottom: clamp(2.5rem, 7vw, 5rem);
}

.gq-site .container {
    width: min(100% - 2rem, var(--gq-content-width));
}

.gq-site .card {
    color: var(--gq-color-text);
    background: var(--gq-color-surface);
    border-color: var(--gq-color-border);
    border-radius: var(--gq-radius-md);
    box-shadow: var(--gq-shadow-sm);
}

.gq-site .form-control,
.gq-site .form-select {
    min-height: 3rem;
    color: var(--gq-color-text);
    background-color: var(--gq-color-surface);
    border-color: var(--gq-color-border);
    border-radius: var(--gq-radius-sm);
    padding: 0.75rem 0.9rem;
}

.gq-site .form-control::placeholder {
    color: var(--gq-color-text-muted);
    opacity: 1;
}

.gq-site .btn-primary {
    color: #ffffff;
    background: var(--gq-color-primary);
    border-color: var(--gq-color-primary);
}

.gq-site .btn-primary:hover {
    color: #ffffff;
    background: var(--gq-color-primary-dark);
    border-color: var(--gq-color-primary-dark);
}

.gq-site .alert {
    color: var(--gq-color-text);
    border-radius: var(--gq-radius-sm);
}

.gq-site :is(
    a,
    button,
    input,
    select,
    textarea,
    [tabindex]
):focus-visible {
    outline: 0.2rem solid var(--gq-color-focus);
    outline-offset: 0.18rem;
    box-shadow: none;
}

.gq-site-footer {
    color: #ffffff;
    background: var(--gq-color-primary-dark);
}

.gq-site-footer__inner {
    min-height: 6rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
}

@media (max-width: 47.999rem) {
    .gq-site-header__inner,
    .gq-site-footer__inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .gq-primary-nav {
        width: 100%;
        justify-content: flex-start;
    }

    .gq-primary-nav a {
        padding-left: 0;
        padding-right: 1rem;
    }

    .gq-brand__text small {
        max-width: 14rem;
    }
}

@media (max-width: 22.5rem) {
    .gq-site .container {
        width: min(100% - 1rem, var(--gq-content-width));
    }

    .gq-brand__text small {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* GreenQube AI Navigator landing page */
.gq-nav-landing {
    background: var(--gq-color-bg);
}

.gq-nav-hero {
    padding: clamp(3rem, 7vw, 5.5rem) 0;
    color: #ffffff;
    background:
        radial-gradient(
            circle at 20% 18%,
            rgb(118 192 67 / 20%),
            transparent 32%
        ),
        radial-gradient(
            circle at 88% 12%,
            rgb(255 191 71 / 18%),
            transparent 30%
        ),
        linear-gradient(
            135deg,
            #061b17 0%,
            var(--gq-color-primary-dark) 48%,
            #126b55 100%
        );
}

.gq-nav-eyebrow {
    margin-bottom: 0;
    color: #d9f8e8;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.gq-nav-title {
    max-width: 52rem;
    margin: 1rem 0 1.25rem;
    color: #ffffff;
    font-size: clamp(2.4rem, 6vw, 5rem);
    font-weight: 850;
    line-height: 1;
    text-wrap: balance;
}

.gq-nav-lead {
    max-width: 49rem;
    margin-bottom: 0;
    color: #d8e9e4;
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    line-height: 1.7;
}

.gq-nav-cta {
    min-height: 3.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.85rem 1.5rem;
    color: #102018;
    background: var(--gq-color-accent);
    border: 0.125rem solid var(--gq-color-accent);
    border-radius: 999rem;
    box-shadow: 0 1rem 2.5rem rgb(0 0 0 / 18%);
    font-weight: 800;
}

.gq-nav-cta:hover {
    color: #102018;
    background: #91d364;
    border-color: #91d364;
}

.gq-nav-trust {
    display: flex;
    gap: 0.65rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
}

.gq-nav-trust-pill {
    padding: 0.45rem 0.75rem;
    color: #eefbf7;
    background: rgb(255 255 255 / 8%);
    border: 0.0625rem solid rgb(185 239 145 / 34%);
    border-radius: 999rem;
    font-size: 0.9rem;
}

.gq-nav-powered {
    margin: 1.15rem 0 0;
    color: #c7dbd5;
    font-size: 0.95rem;
}

.gq-nav-summary {
    padding: clamp(1.5rem, 4vw, 2rem);
    background: rgb(255 255 255 / 8%);
    border: 0.0625rem solid rgb(255 255 255 / 16%);
    border-radius: var(--gq-radius-lg);
    box-shadow: var(--gq-shadow-md);
    backdrop-filter: blur(0.75rem);
}

.gq-nav-steps {
    display: grid;
    gap: 0.85rem;
    margin-top: 1.4rem;
}

.gq-nav-step {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    padding: 1rem;
    background: rgb(255 255 255 / 7%);
    border: 0.0625rem solid rgb(255 255 255 / 13%);
    border-radius: var(--gq-radius-md);
}

.gq-nav-step-number {
    width: 2rem;
    height: 2rem;
    display: inline-grid;
    place-items: center;
    flex: 0 0 2rem;
    color: var(--gq-color-primary-dark);
    background: var(--gq-color-accent);
    border-radius: 50%;
    font-weight: 850;
}

.gq-nav-step strong {
    display: block;
    color: #ffffff;
}

.gq-nav-step p {
    margin: 0.25rem 0 0;
    color: #d4e4df;
    font-size: 0.95rem;
    line-height: 1.5;
}

.gq-nav-features {
    padding: clamp(2.75rem, 6vw, 4.5rem) 0;
}

.gq-nav-feature {
    height: 100%;
    padding: clamp(1.25rem, 3vw, 1.75rem);
    color: var(--gq-color-text);
    background: var(--gq-color-surface);
    border: 0.0625rem solid var(--gq-color-border);
    border-radius: var(--gq-radius-md);
    box-shadow: var(--gq-shadow-sm);
}

.gq-nav-feature h3 {
    margin-bottom: 0.65rem;
    color: var(--gq-color-primary-dark);
    font-size: 1.1rem;
    font-weight: 800;
}

.gq-nav-feature p {
    margin-bottom: 0;
    color: var(--gq-color-text-muted);
}

@media (max-width: 61.999rem) {
    .gq-nav-summary {
        margin-top: 0.75rem;
    }
}

@media (max-width: 35.999rem) {
    .gq-nav-hero {
        padding-top: 2.5rem;
    }

    .gq-nav-title {
        font-size: clamp(2.2rem, 13vw, 3.25rem);
    }

    .gq-nav-cta {
        width: 100%;
        white-space: normal;
        text-align: center;
    }

    .gq-nav-trust {
        align-items: stretch;
        flex-direction: column;
    }

    .gq-nav-trust-pill {
        width: 100%;
    }
}
