:root {
    --solar-ink: #08231d;
    --solar-deep: #073b2f;
    --solar-green: #087b5a;
    --solar-green-dark: #05583f;
    --solar-lime: #9cd84b;
    --solar-sun: #ffbf1f;
    --solar-sun-deep: #dc9300;
    --solar-sky: #e8f8f4;
    --solar-paper: #fffdf8;
    --solar-soft: #f4f7f3;
    --solar-line: rgba(8, 35, 29, .13);
    --solar-shadow: 0 24px 75px rgba(8, 35, 29, .12);
}

body {
    background: #f6f8f6;
}

.solar-hero,
.solar-results-hero,
.solar-partner-hero {
    position: relative;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 80% 20%, rgba(255,191,31,.34), transparent 25%),
        radial-gradient(circle at 95% 75%, rgba(156,216,75,.16), transparent 30%),
        linear-gradient(135deg, #06251e 0%, #07503e 55%, #0b8a63 100%);
}

.solar-hero {
    padding: clamp(4rem, 8vw, 7rem) 0;
}

.solar-results-hero,
.solar-partner-hero {
    padding: clamp(3.5rem, 7vw, 6rem) 0;
}

.solar-hero::after,
.solar-results-hero::after,
.solar-partner-hero::after {
    content: "";
    position: absolute;
    right: -8rem;
    bottom: -13rem;
    width: 35rem;
    height: 35rem;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,.12);
    box-shadow:
        0 0 0 5rem rgba(255,255,255,.035),
        0 0 0 10rem rgba(255,255,255,.025);
}

.solar-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(280px, .65fr);
    align-items: center;
    gap: 3rem;
}

.solar-kicker {
    display: inline-block;
    margin-bottom: .7rem;
    color: var(--solar-sun);
    font-size: .74rem;
    font-weight: 900;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.solar-hero h1,
.solar-results-hero h1,
.solar-partner-hero h1 {
    max-width: 950px;
    margin: 0;
    font-size: clamp(2.65rem, 5.7vw, 5.4rem);
    line-height: .96;
    font-weight: 950;
    letter-spacing: -.052em;
}

.solar-hero p,
.solar-results-hero p,
.solar-partner-hero p {
    max-width: 820px;
    margin-top: 1rem;
    color: rgba(255,255,255,.84);
    font-size: clamp(1.05rem, 1.7vw, 1.3rem);
}

.solar-trust {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem 1.4rem;
    margin-top: 1.5rem;
    font-weight: 800;
}

.solar-hero__card {
    position: relative;
    z-index: 1;
    display: grid;
    gap: .55rem;
    padding: 1.7rem;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 1.4rem;
    background: rgba(255,255,255,.1);
    backdrop-filter: blur(16px);
    box-shadow: 0 24px 70px rgba(0,0,0,.22);
}

.solar-hero__card strong {
    font-size: 1.9rem;
    line-height: 1.05;
}

.solar-hero__card small {
    color: rgba(255,255,255,.76);
    font-size: .95rem;
}

.solar-section {
    padding-top: 3rem;
    padding-bottom: 4rem;
}

.solar-preset-panel,
.solar-panel {
    border: 1px solid var(--solar-line);
    border-radius: 1.5rem;
    background: var(--solar-paper);
    box-shadow: var(--solar-shadow);
}

.solar-preset-panel {
    padding: clamp(1.2rem, 3vw, 2rem);
    margin-bottom: 1.5rem;
}

.solar-preset-panel h2,
.solar-panel h2,
.solar-request-head h1 {
    margin: 0;
    color: var(--solar-ink);
    font-weight: 950;
    letter-spacing: -.035em;
}

.solar-preset-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin-top: 1.25rem;
}

.solar-preset-grid button {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .15rem .85rem;
    align-items: center;
    min-height: 92px;
    padding: 1rem;
    text-align: left;
    color: var(--solar-ink);
    border: 1px solid var(--solar-line);
    border-radius: 1rem;
    background: #fff;
    transition: .2s ease;
}

.solar-preset-grid button:hover,
.solar-preset-grid button.active {
    border-color: var(--solar-green);
    background: var(--solar-sky);
    box-shadow: 0 14px 38px rgba(8,123,90,.12);
    transform: translateY(-2px);
}

.solar-preset-grid i {
    grid-row: 1 / span 2;
    display: grid;
    place-items: center;
    width: 2.7rem;
    height: 2.7rem;
    border-radius: .8rem;
    color: var(--solar-green);
    background: var(--solar-sky);
    font-size: 1.25rem;
}

.solar-preset-grid strong {
    font-weight: 900;
}

.solar-preset-grid small {
    color: #68756f;
    line-height: 1.25;
}

.solar-panel {
    padding: clamp(1.2rem, 3vw, 2.35rem);
}

.solar-panel__head,
.solar-request-head,
.solar-submit {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

.solar-panel__head {
    margin-bottom: 1.5rem;
}

.solar-panel__head p,
.solar-request-head p {
    margin: .45rem 0 0;
    color: #69756f;
}

.solar-form .form-label {
    color: var(--solar-ink);
    font-weight: 850;
}

.solar-form .form-control,
.solar-form .form-select,
.solar-quote-request .form-control,
.solar-filter .form-control,
.solar-filter .form-select {
    min-height: 3.15rem;
    border-radius: .85rem;
    border-color: var(--solar-line);
    background-color: #fff;
}

.solar-form textarea.form-control,
.solar-quote-request textarea.form-control {
    min-height: auto;
}

.solar-step {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.solar-step > span {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(135deg, var(--solar-green), var(--solar-green-dark));
    font-weight: 950;
    box-shadow: 0 10px 25px rgba(8,123,90,.2);
}

.solar-step h3 {
    margin: 0;
    color: var(--solar-ink);
    font-weight: 950;
}

.solar-step p {
    margin: 0;
    color: #6b7772;
}

.solar-choice-grid,
.solar-checkbox-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
}

.solar-choice {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    min-height: 74px;
    padding: 1rem;
    cursor: pointer;
    border: 1px solid var(--solar-line);
    border-radius: 1rem;
    background: #fff;
    transition: .2s ease;
}

.solar-choice:hover,
.solar-choice:has(input:checked) {
    border-color: var(--solar-green);
    background: #f3fcf8;
    box-shadow: 0 10px 30px rgba(8,123,90,.1);
    transform: translateY(-1px);
}

.solar-choice input {
    margin-top: .3rem;
    accent-color: var(--solar-green);
}

.solar-choice span {
    display: grid;
    gap: .15rem;
}

.solar-choice strong {
    color: var(--solar-ink);
}

.solar-choice small {
    color: #6c7772;
}

.solar-range-wrap {
    display: flex;
    align-items: center;
    min-height: 3.15rem;
    gap: .75rem;
    padding: .55rem .8rem;
    border: 1px solid var(--solar-line);
    border-radius: .85rem;
    background: #fff;
}

.solar-range-wrap input {
    flex: 1;
    accent-color: var(--solar-green);
}

.solar-range-wrap strong {
    min-width: 3.2rem;
    color: var(--solar-green-dark);
}

.solar-water-panel {
    padding: 1.1rem;
    border: 1px solid rgba(8,123,90,.18);
    border-radius: 1.25rem;
    background:
        radial-gradient(circle at 95% 0%, rgba(63,173,255,.12), transparent 28%),
        #f7fcfa;
}

.solar-subpanel {
    padding: 1rem;
    border: 1px solid var(--solar-line);
    border-radius: 1rem;
    background: rgba(255,255,255,.9);
}

.solar-subpanel__title {
    display: flex;
    align-items: center;
    gap: .85rem;
    margin-bottom: 1rem;
}

.solar-subpanel__title i {
    display: grid;
    place-items: center;
    width: 2.7rem;
    height: 2.7rem;
    border-radius: .8rem;
    color: #087bb1;
    background: #e7f7ff;
    font-size: 1.25rem;
}

.solar-subpanel__title div {
    display: grid;
}

.solar-subpanel__title strong {
    color: var(--solar-ink);
    font-size: 1.05rem;
}

.solar-subpanel__title small {
    color: #6b7772;
}

.solar-load-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.solar-load-toolbar input {
    max-width: 520px;
}

.solar-load-toolbar span {
    white-space: nowrap;
    color: var(--solar-green-dark);
    font-weight: 900;
}

.solar-load-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
}

.solar-load-card {
    padding: 1rem;
    border: 1px solid var(--solar-line);
    border-radius: 1rem;
    background: #fff;
    transition: .2s ease;
}

.solar-load-card:has(input[type="checkbox"]:checked) {
    border-color: var(--solar-green);
    background: #f3fcf8;
    box-shadow: 0 12px 34px rgba(8,123,90,.1);
}

.solar-load-card__head label {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    cursor: pointer;
}

.solar-load-card__head input {
    margin-top: .25rem;
    accent-color: var(--solar-green);
}

.solar-load-card__head span {
    display: grid;
}

.solar-load-card__head strong {
    color: var(--solar-ink);
}

.solar-load-card__head small {
    color: #6a7670;
}

.solar-load-fields {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem;
    margin-top: .8rem;
}

.solar-load-fields label {
    color: #6a7670;
    font-size: .72rem;
    font-weight: 850;
}

.solar-load-fields .form-control {
    min-height: 2.5rem;
    margin-top: .2rem;
}

.solar-submit {
    margin-top: 2rem;
    padding: 1.25rem;
    border-radius: 1.1rem;
    background:
        linear-gradient(135deg, rgba(255,191,31,.18), rgba(156,216,75,.15)),
        #fffaf0;
}

.solar-submit > div {
    display: grid;
}

.solar-submit small {
    color: #66726c;
}

.btn-solar {
    color: #08231d;
    border-color: var(--solar-sun);
    border-radius: .85rem;
    background: linear-gradient(135deg, #ffd04d, var(--solar-sun));
    font-weight: 900;
    box-shadow: 0 10px 24px rgba(220,147,0,.18);
}

.btn-solar:hover {
    color: #08231d;
    border-color: var(--solar-sun-deep);
    background: #ffb400;
    transform: translateY(-1px);
}

.solar-result-top {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 1rem;
}

.solar-reliability {
    display: grid;
    align-content: center;
    padding: 1.5rem;
    color: #fff;
    border-radius: 1.25rem;
    background: linear-gradient(145deg, var(--solar-deep), var(--solar-green));
    box-shadow: var(--solar-shadow);
}

.solar-reliability small {
    color: rgba(255,255,255,.72);
    text-transform: uppercase;
    letter-spacing: .1em;
    font-weight: 850;
}

.solar-reliability strong {
    font-size: 3.3rem;
    line-height: 1;
}

.solar-reliability span {
    color: var(--solar-sun);
    font-weight: 900;
}

.solar-result-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.solar-result-metrics article,
.solar-request-summary article,
.solar-admin-kpis article {
    display: grid;
    gap: .3rem;
    padding: 1.15rem;
    border: 1px solid var(--solar-line);
    border-radius: 1rem;
    background: #fff;
}

.solar-result-metrics small,
.solar-request-summary small,
.solar-admin-kpis small {
    color: #6a7670;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .7rem;
    font-weight: 900;
}

.solar-result-metrics strong,
.solar-request-summary strong,
.solar-admin-kpis strong {
    color: var(--solar-ink);
    font-size: 1.2rem;
}

.solar-water-result {
    display: grid;
    grid-template-columns: 1.4fr repeat(4, minmax(0, 1fr));
    align-items: center;
    gap: 1rem;
    margin-top: 1rem;
    padding: 1.2rem;
    color: #fff;
    border-radius: 1.2rem;
    background:
        radial-gradient(circle at 95% 50%, rgba(255,255,255,.15), transparent 22%),
        linear-gradient(135deg, #07587f, #087f91);
}

.solar-water-result h2 {
    margin: 0;
    font-weight: 950;
}

.solar-water-result article {
    display: grid;
}

.solar-water-result small {
    color: rgba(255,255,255,.7);
}

.solar-water-result strong {
    font-size: 1.2rem;
}

.solar-packages {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.25rem;
}

.solar-package {
    position: relative;
    padding: 1.35rem;
    border: 1px solid var(--solar-line);
    border-radius: 1.2rem;
    background: #fff;
}

.solar-package--recommended {
    border: 2px solid var(--solar-green);
    box-shadow: 0 18px 55px rgba(8,123,90,.14);
    transform: translateY(-4px);
}

.solar-package > span {
    display: inline-block;
    padding: .3rem .6rem;
    color: var(--solar-green-dark);
    border-radius: 999px;
    background: var(--solar-sky);
    font-size: .7rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.solar-package h2 {
    margin: .8rem 0 .3rem;
    color: var(--solar-ink);
    font-weight: 950;
}

.solar-package p {
    color: #68746e;
}

.solar-package dl {
    display: grid;
    gap: .55rem;
    margin: 0;
}

.solar-package dl div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-top: .55rem;
    border-top: 1px solid var(--solar-line);
}

.solar-package dt {
    color: #68746e;
}

.solar-package dd {
    margin: 0;
    color: var(--solar-ink);
    font-weight: 900;
}

.solar-note-list {
    display: grid;
    gap: .7rem;
    padding: 0;
    list-style: none;
}

.solar-note-list li {
    display: flex;
    gap: .7rem;
    color: #34443d;
}

.solar-note-list i {
    color: var(--solar-green);
}

.solar-warning {
    margin-top: 1rem;
    padding: 1rem;
    border-radius: 1rem;
    background: #fff5db;
    border: 1px solid rgba(220,147,0,.25);
}

.solar-warning strong {
    color: #765000;
}

.solar-warning p {
    margin: .35rem 0 0;
    color: #685929;
}

.solar-quote-request p {
    color: #65716b;
}

.solar-request-head {
    margin-bottom: 1.25rem;
}

.solar-status {
    white-space: nowrap;
    padding: .65rem 1rem;
    color: var(--solar-green-dark);
    border-radius: 999px;
    background: var(--solar-sky);
    font-weight: 900;
}

.solar-request-summary,
.solar-admin-kpis {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .8rem;
}

.solar-admin-kpis {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.solar-table th {
    white-space: nowrap;
    color: #65716b;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-size: .7rem;
}

.solar-table td {
    border-color: var(--solar-line);
}

.solar-lowest-row {
    background: #f3fcf8;
}

.solar-best,
.solar-selected {
    display: inline-block;
    margin-top: .35rem;
    padding: .25rem .5rem;
    border-radius: 999px;
    color: #322400;
    background: var(--solar-sun);
    font-size: .68rem;
    font-weight: 900;
}

.solar-selected {
    color: #fff;
    background: var(--solar-green);
}

.solar-empty {
    display: grid;
    justify-items: center;
    gap: .65rem;
    padding: clamp(3rem, 8vw, 6rem) 1rem;
    text-align: center;
    border: 1px dashed var(--solar-line);
    border-radius: 1.4rem;
    background: #fff;
}

.solar-empty > i {
    color: var(--solar-sun);
    font-size: 3rem;
}

.solar-empty h1,
.solar-empty h3 {
    margin: 0;
    color: var(--solar-ink);
    font-weight: 950;
}

.solar-empty p {
    max-width: 720px;
    color: #68746e;
}

.solar-code {
    display: grid;
    min-width: min(420px, 100%);
    padding: 1rem;
    border-radius: 1rem;
    background: #fff6d9;
}

.solar-code strong {
    font-size: 1.3rem;
}

.solar-opportunity-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.solar-opportunity {
    display: flex;
    flex-direction: column;
    padding: 1.25rem;
    border: 1px solid var(--solar-line);
    border-radius: 1.2rem;
    background: #fff;
    box-shadow: 0 15px 45px rgba(8,35,29,.07);
}

.solar-opportunity__top {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: var(--solar-green);
    font-weight: 900;
}

.solar-opportunity h2 {
    margin: 1rem 0 .25rem;
    color: var(--solar-ink);
    font-weight: 950;
}

.solar-opportunity > p {
    color: #68746e;
}

.solar-opportunity dl {
    display: grid;
    gap: .55rem;
    margin: auto 0 1rem;
}

.solar-opportunity dl div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-top: .55rem;
    border-top: 1px solid var(--solar-line);
}

.solar-opportunity dt {
    color: #68746e;
}

.solar-opportunity dd {
    margin: 0;
    text-align: right;
    color: var(--solar-ink);
    font-weight: 800;
}

.solar-total-card {
    display: grid;
    gap: .25rem;
    margin-top: 1.5rem;
    padding: 1.25rem;
    color: #fff;
    border-radius: 1rem;
    background: linear-gradient(135deg, var(--solar-ink), var(--solar-green));
}

.solar-total-card strong {
    font-size: 2rem;
}

.solar-filter {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 260px auto;
    gap: .75rem;
    margin: 1rem 0;
}

.solar-admin-form {
    display: grid;
    grid-template-columns: 140px 150px minmax(180px, 1fr) auto;
    gap: .4rem;
    min-width: 620px;
}

.solar-admin-form--compact {
    grid-template-columns: 170px auto;
    min-width: 260px;
}

@media (max-width: 1199.98px) {
    .solar-preset-grid,
    .solar-load-grid,
    .solar-opportunity-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .solar-water-result {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .solar-water-result > div {
        grid-column: 1 / -1;
    }

    .solar-request-summary {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .solar-hero__grid,
    .solar-result-top {
        grid-template-columns: 1fr;
    }

    .solar-choice-grid,
    .solar-checkbox-grid,
    .solar-result-metrics,
    .solar-packages,
    .solar-admin-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .solar-preset-grid,
    .solar-choice-grid,
    .solar-checkbox-grid,
    .solar-load-grid,
    .solar-result-metrics,
    .solar-packages,
    .solar-request-summary,
    .solar-admin-kpis,
    .solar-opportunity-grid,
    .solar-filter,
    .solar-water-result {
        grid-template-columns: 1fr;
    }

    .solar-panel__head,
    .solar-request-head,
    .solar-submit,
    .solar-load-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .solar-load-fields {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .solar-submit .btn {
        width: 100%;
    }

    .solar-panel,
    .solar-preset-panel {
        padding: 1rem;
        border-radius: 1rem;
    }

    .solar-hero {
        padding: 3.5rem 0;
    }
}
