:root{
    --ink:#112f35;
    --muted:#53656a;
    --paper:#f8f7f3;
    --line:#dce3df;
    --accent:#d8edaa;
    --white:#fff;
    --radius:18px
}
*{
    box-sizing:border-box
}
[hidden]{
    display:none!important
}
html{
    scroll-behavior:smooth;
    scroll-padding-top:110px
}
body{
    margin:0;
    color:var(--ink);
    background:var(--paper);
    font-family:Arial,Helvetica,sans-serif;
    font-size:16px;
    line-height:1.65
}
a{
    color:inherit;
    text-decoration:none
}
a:hover{
    text-decoration:underline;
    text-underline-offset:5px
}
img{
    max-width:100%;
    height:auto;
    display:block
}
button,input,textarea,select{
    font:inherit
}
button,summary{
    cursor:pointer
}
h1,h2,h3,h4{
    font-weight:600;
    line-height:1.12;
    letter-spacing:-.045em;
    margin:0 0 22px;
    color:var(--ink)
}
h1{
    font-size:clamp(38px,5vw,68px)
}
h2{
    font-size:clamp(28px,3.2vw,44px)
}
h3{
    font-size:24px
}
p{
    margin:0 0 20px;
    color:var(--muted)
}
ul,ol{
    padding-left:22px
}
li{
    margin-bottom:12px
}
::selection{
    background:var(--accent)
}
:focus-visible{
    outline:3px solid #387887;
    outline-offset:4px
}
.container{
    width:min(1200px,calc(100% - 64px));
    margin-inline:auto
}
.narrow{
    max-width:800px
}
.eyebrow,.card-kicker{
    font-size:11px;
    letter-spacing:.14em;
    font-weight:700;
    color:#4d6668;
    margin-bottom:20px
}
.button{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:28px;
    border:0;
    border-radius:8px;
    background:var(--ink);
    color:#fff;
    padding:16px 24px;
    font-size:14px;
    font-weight:700;
    line-height:1.4;
    text-align:center;
    transition:background .15s,transform .15s
}
.button:hover{
    background:#23515a;
    text-decoration:none;
    transform:translateY(-1px)
}
.text-link{
    display:inline-block;
    font-size:14px;
    font-weight:700;
    text-decoration:underline;
    text-underline-offset:5px
}
.skip-link{
    position:absolute;
    left:20px;
    top:-100px;
    z-index:200;
    background:white;
    padding:14px
}
.skip-link:focus{
    top:10px
}
.utility-bar{
    background:var(--ink);
    color:#d7e4df;
    font-size:11px;
    padding:9px 0;
    letter-spacing:.03em
}
.utility-bar .container{
    display:flex;
    justify-content:space-between
}
.site-header{
    position:sticky;
    top:0;
    z-index:100;
    background:rgba(248,247,243,.98);
    border-bottom:1px solid var(--line)
}
.nav-row{
    min-height:96px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px
}
.wordmark{
    display:inline-flex;
    align-items:center;
    gap:12px;
    line-height:1.3;
    min-width:220px;
    font-size:13px;
    letter-spacing:.01em
}
.wordmark strong{
    display:block;
    font-size:16px;
    letter-spacing:-.03em
}
.brand-icon{
    font-family:Georgia,serif;
    font-size:60px;
    letter-spacing:-.1em;
    font-weight:bold;
    line-height:.8
}
.brand-icon span{
    color:#698945
}
.site-menu summary{
    display:none
}
.site-menu nav{
    display:flex;
    gap:22px;
    align-items:center
}
.site-menu nav a{
    font-size:12px;
    font-weight:600
}
.nav-quote{
    font-size:12px;
    padding:13px 18px;
    white-space:nowrap
}
.hero{
    padding:58px 0 64px;
    background:var(--paper)
}
.hero-grid{
    display:grid;
    grid-template-columns:1.15fr 1fr;
    gap:70px;
    align-items:start
}
.hero-copy{
    padding:14px 0 0
}
.hero h1{
    white-space:pre-line;
    max-width:660px
}
.hero-lead{
    font-size:17px;
    line-height:1.7;
    max-width:500px
}
.hero-points{
    display:flex;
    gap:24px;
    margin:27px 0;
    font-size:12px;
    font-weight:600
}
.hero-points span:before{
    content:'✓';
    color:#5d773b;
    padding-right:7px
}
.hero-image{
    position:relative;
    margin-top:32px;
    border-radius:12px;
    overflow:hidden;
    background:#263733
}
.hero-image img{
    width:100%;
    height:174px;
    object-fit:cover;
    filter:brightness(2.6)
}
.hero-image span{
    position:absolute;
    bottom:15px;
    left:20px;
    color:white;
    font-size:13px;
    text-shadow:0 1px 5px black
}
.quote-card{
    background:white;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:30px;
    box-shadow:0 16px 45px #15312b09;
    scroll-margin-top:115px
}
.quote-card .eyebrow{
    font-size:10px;
    margin-bottom:10px
}
.quote-card h2{
    font-size:28px;
    margin-bottom:12px
}
.quote-card>p:not(.eyebrow){
    font-size:13px;
    line-height:1.6
}
.quote-detail{
    display:grid;
    gap:13px
}
.quote-detail-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px
}
.quote-detail-input{
    min-width:0
}
.quote-detail label{
    font-size:11px;
    font-weight:700;
    display:block;
    margin-bottom:5px
}
.form-input{
    width:100%;
    border:1px solid #cdd7d3;
    border-radius:6px;
    background:#fcfdfb;
    padding:10px 12px;
    min-height:43px;
    color:var(--ink);
    font-size:14px;
    line-height:1.4
}
.form-input::placeholder{
    color:#6c7978
}
.form-input:focus{
    border-color:#285c56;
    outline:2px solid #a5c7bb
}
.form-submit{
    width:100%;
    margin-top:2px;
    background:var(--ink);
    font-size:14px
}
.form-disclosure{
    font-size:10px;
    line-height:1.6;
    margin:0;
    color:#5c6968
}
.form-disclosure a{
    text-decoration:underline
}
.text-danger{
    font-size:12px;
    color:#a32929;
    display:block
}
.validation-summary-valid{
    display:none
}
.input-validation-error{
    border-color:#a32929
}
.benefit-strip{
    background:#e9eee4;
    border-block:1px solid #dae2d2
}
.benefit-strip .container{
    display:flex;
    justify-content:space-around;
    padding-block:20px;
    font-size:12px;
    font-weight:600
}
.benefit-strip span:before{
    content:'✳';
    margin-right:12px;
    color:#5b733d
}
.section{
    padding:85px 0
}
.section-heading{
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:65px;
    margin-bottom:35px
}
.section-heading h2{
    max-width:600px;
    margin-bottom:0
}
.section-heading>p{
    max-width:320px;
    font-size:14px;
    margin-bottom:0
}
.three-grid,.system-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px
}
.system-card{
    background:#fff;
    border:1px solid var(--line);
    padding:26px;
    border-radius:var(--radius);
    transition:transform .2s
}
.system-card:hover{
    transform:translateY(-4px);
    text-decoration:none
}
.system-card img{
    height:145px;
    width:100%;
    object-fit:contain;
    mix-blend-mode:multiply;
    margin-bottom:30px
}
.system-card.featured{
    background:#eaf0df
}
.system-card h3{
    font-size:23px;
    display:flex;
    justify-content:space-between;
    margin:14px 0
}
.system-card p,.guide-card p{
    font-size:14px;
    margin-bottom:0
}
.card-kicker{
    font-size:10px;
    display:block
}
.inline-options{
    display:flex;
    flex-wrap:wrap;
    gap:16px 28px;
    margin-top:30px;
    font-size:12px
}
.inline-options a{
    text-decoration:underline;
    text-underline-offset:4px;
    font-weight:600
}
.steps{
    border-top:1px solid var(--line);
    gap:50px
}
.steps article{
    padding-top:30px
}
.steps h3{
    font-size:22px;
    letter-spacing:-.025em
}
.steps p{
    font-size:14px
}
.step-number{
    display:inline-flex;
    width:44px;
    height:44px;
    align-items:center;
    justify-content:center;
    background:var(--accent);
    border-radius:50%;
    font-size:13px;
    font-weight:700;
    margin-bottom:25px
}
.soft-section{
    background:#edf0e8
}
.two-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:85px;
    align-items:start
}
.two-grid h2{
    max-width:500px
}
.two-grid p{
    font-size:15px
}
.check-panel{
    background:#fff;
    padding:35px;
    border:1px solid var(--line);
    border-radius:var(--radius)
}
.check-panel h3{
    font-size:25px
}
.check-panel li{
    font-size:14px;
    color:var(--muted)
}
.guide-card{
    border:1px solid var(--line);
    border-radius:12px;
    padding:30px;
    background:#fff;
    display:flex;
    flex-direction:column;
    align-items:start;
    gap:20px
}
.guide-card:hover{
    background:#f0f4e8;
    text-decoration:none
}
.guide-card h2,.guide-card h3{
    font-size:26px;
    margin:0
}
.guide-card .card-kicker{
    margin:0
}
.guide-card .text-link{
    margin-top:auto;
    padding-top:10px
}
.coverage{
    background:#e7ecdf;
    border-block:1px solid var(--line)
}
.coverage h3{
    margin-top:30px
}
.faq-item{
    border-bottom:1px solid var(--line);
    padding:22px 0
}
.faq-item summary{
    font-weight:600;
    font-size:17px;
    line-height:1.5
}
.faq-item p{
    font-size:15px;
    padding-top:18px;
    margin-bottom:0
}
.faq-item:last-of-type{
    margin-bottom:25px
}
.final-cta{
    background:var(--ink)
}
.final-cta .container{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px
}
.final-cta h2,.final-cta p{
    color:#fff
}
.final-cta .eyebrow{
    color:var(--accent)
}
.final-cta p{
    margin-bottom:0
}
.final-cta .button{
    background:var(--accent);
    color:var(--ink);
    white-space:nowrap
}
.site-footer{
    padding:64px 0 0;
    background:#f5f4ef
}
.footer-grid{
    display:grid;
    grid-template-columns:1.6fr 1fr 1fr;
    gap:80px;
    padding-bottom:45px
}
.footer-grid>.wordmark{
    margin-bottom:22px
}
.footer-grid p{
    font-size:14px;
    max-width:360px;
    margin-top:24px
}
.footer-grid h2{
    font-size:15px;
    letter-spacing:0;
    margin-bottom:20px
}
.footer-grid>div:not(:first-child) a{
    display:block;
    font-size:13px;
    color:var(--muted);
    margin-bottom:10px
}
.footer-grid .small{
    font-size:11px
}
.footer-bottom{
    display:flex;
    justify-content:space-between;
    border-top:1px solid var(--line);
    padding-block:22px;
    font-size:11px;
    color:var(--muted)
}
.mobile-quote{
    display:none
}
.page-intro{
    padding:65px 0;
    background:#e9eee3
}
.page-intro h1{
    max-width:900px;
    font-size:clamp(36px,4.5vw,60px)
}
.page-intro p:last-child{
    max-width:700px;
    font-size:18px;
    margin-bottom:0
}
.breadcrumbs{
    display:flex;
    gap:12px;
    font-size:11px;
    padding-block:20px;
    flex-wrap:wrap
}
.breadcrumbs a{
    text-decoration:underline
}
.article-grid{
    display:grid;
    grid-template-columns:240px 1fr;
    gap:85px
}
.article-nav{
    position:sticky;
    top:125px
}
.article-nav a{
    display:block;
    font-size:13px;
    border-bottom:1px solid var(--line);
    padding:14px 0
}
.article-content h2{
    font-size:30px
}
.article-content p{
    line-height:1.9
}
.article-content section{
    margin-bottom:45px;
    scroll-margin-top:125px
}
.callout{
    padding:32px;
    background:#e9eee0;
    border-radius:12px;
    margin:38px 0
}
.callout h2{
    font-size:26px
}
.small{
    font-size:12px
}
.brand-request{
    background:#edf1e6;
    padding:8px;
    border-radius:5px
}
.success-mark{
    display:grid;
    place-items:center;
    width:65px;
    height:65px;
    background:var(--accent);
    border-radius:50%;
    font-size:30px;
    margin-bottom:28px
}
.brand-list{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:24px
}
.brand-list a{
    display:flex;
    align-items:center;
    justify-content:center;
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:25px;
    min-height:115px
}
.brand-list img{
    max-height:75px;
    max-width:170px;
    object-fit:contain
}
.white-container,.content-white{
    background:white;
    padding:45px 0
}
.content-secondary{
    max-width:900px;
    margin-inline:auto
}
.content-secondary h3{
    margin-top:30px
}
.mt-5{
    margin-top:45px
}
.pb-5{
    padding-bottom:45px
}
.text-center{
    text-align:center
}
.min-height{
    min-height:40vh
}
.brands-row{
    max-width:180px;
    max-height:100px;
    object-fit:contain;
    display:inline-block;
    margin:15px
}
.brand-single-holder{
    padding:45px 0
}
.table-content{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:25px
}
.table-column{
    padding:24px;
    background:#f6f7f2;
    border-radius:12px
}
.table-header{
    font-weight:700;
    margin-bottom:20px
}
.table-column img{
    height:150px;
    object-fit:contain;
    margin-inline:auto
}
.table-column p{
    font-size:14px;
    margin-top:15px
}
@media(min-width:1001px){
    .site-menu:not([open])>nav{
        display:flex
    }
}
@media(max-width:1100px){
    .site-menu nav{
        gap:12px
    }
    .site-menu nav a{
        font-size:11px
    }
    .nav-row{
        gap:16px
    }
    .wordmark{
        min-width:190px
    }
    .hero-grid{
        gap:35px
    }
    .hero-points{
        gap:12px
    }
    .footer-grid{
        gap:35px
    }
}
@media(max-width:1000px){
    .nav-row{
        min-height:80px;
        flex-wrap:wrap;
        padding-block:18px
    }
    .site-menu{
        order:3;
        width:100%
    }
    .site-menu summary{
        display:block;
        position:absolute;
        right:225px;
        top:29px;
        font-size:13px;
        font-weight:700
    }
    .site-menu:not([open]){
        height:0
    }
    .site-menu nav{
        flex-direction:column;
        align-items:stretch;
        gap:0;
        border-top:1px solid var(--line)
    }
    .site-menu nav a{
        font-size:14px;
        padding:12px 0
    }
    .hero-grid{
        grid-template-columns:1fr 1fr;
        gap:28px
    }
    .hero h1{
        font-size:45px
    }
    .hero-points{
        flex-wrap:wrap
    }
    .section{
        padding:60px 0
    }
    .system-card{
        padding:20px
    }
    .system-card h3{
        font-size:20px
    }
    .two-grid{
        gap:35px
    }
    .article-grid{
        gap:35px;
        grid-template-columns:200px 1fr
    }
    .section-heading{
        gap:30px
    }
    .brand-list{
        grid-template-columns:repeat(3,1fr)
    }
}
@media(max-width:700px){
    .container{
        width:calc(100% - 36px)
    }
    .utility-bar{
        font-size:10px
    }
    .utility-bar span{
        display:none
    }
    .nav-row{
        min-height:76px;
        gap:10px
    }
    .wordmark{
        min-width:0;
        font-size:11px;
        gap:10px
    }
    .wordmark strong{
        font-size:13px
    }
    .brand-icon{
        font-size:49px
    }
    .nav-quote{
        font-size:10px;
        padding:11px 12px;
        gap:10px
    }
    .site-menu summary{
        position:static;
        width:max-content;
        margin-top:4px;
        font-size:12px
    }
    .site-menu:not([open]){
        height:auto
    }
    .site-menu nav{
        margin-top:10px
    }
    .hero{
        padding:30px 0 40px
    }
    .hero-grid,.two-grid,.article-grid{
        grid-template-columns:1fr;
        gap:32px
    }
    .hero-copy{
        padding-top:0
    }
    .hero h1{
        font-size:53px
    }
    .hero-lead{
        font-size:16px;
        max-width:100%
    }
    .hero-image{
        margin-top:25px
    }
    .hero-image img{
        height:150px
    }
    .quote-card{
        padding:23px
    }
    .quote-card h2{
        font-size:28px
    }
    .quote-detail{
        gap:14px
    }
    .form-input{
        font-size:16px
    }
    .form-disclosure{
        font-size:11px
    }
    .benefit-strip .container{
        gap:14px;
        justify-content:space-between;
        padding-block:16px;
        font-size:10px;
        line-height:1.5
    }
    .benefit-strip span:before{
        display:none
    }
    .section{
        padding:46px 0
    }
    .section-heading{
        display:block;
        margin-bottom:28px
    }
    .section-heading>p,.section-heading>.text-link{
        margin-top:18px;
        max-width:none
    }
    .three-grid,.system-grid{
        grid-template-columns:1fr;
        gap:18px
    }
    .system-card{
        padding:25px
    }
    .system-card img{
        height:145px
    }
    .system-card h3{
        font-size:26px
    }
    .inline-options{
        gap:14px
    }
    .inline-options>span{
        width:100%
    }
    .steps{
        gap:22px
    }
    .steps article{
        padding-top:22px
    }
    .step-number{
        margin-bottom:18px
    }
    .check-panel{
        padding:25px
    }
    .final-cta .container{
        display:block
    }
    .final-cta .button{
        margin-top:25px;
        white-space:normal
    }
    .footer-grid{
        grid-template-columns:1fr 1fr;
        gap:35px 25px
    }
    .footer-grid>div:first-child{
        grid-column:1 / -1
    }
    .footer-grid p{
        max-width:none
    }
    .footer-bottom{
        display:block;
        padding-bottom:95px
    }
    .footer-bottom a{
        display:block;
        margin-top:12px
    }
    .mobile-quote{
        display:flex;
        position:fixed;
        bottom:12px;
        left:18px;
        right:18px;
        z-index:110;
        box-shadow:0 4px 20px #112f3540
    }
    .article-nav{
        position:static
    }
    .article-content h2{
        font-size:27px
    }
    .page-intro{
        padding:40px 0
    }
    .page-intro h1{
        font-size:39px
    }
    .page-intro p:last-child{
        font-size:16px
    }
    .brand-list{
        grid-template-columns:1fr 1fr;
        gap:15px
    }
    .brand-list a{
        padding:15px
    }
    .brand-list img{
        max-width:100%
    }
    .white-container{
        padding-inline:18px
    }
    .faq-item summary{
        font-size:16px
    }
    .callout{
        padding:25px
    }
    .brand-single-holder{
        padding-block:30px
    }
}
@media(prefers-reduced-motion:reduce){
    html{
        scroll-behavior:auto
    }
    *{
        transition:none!important
    }
}

/* VEU: a clear route from awareness to eligibility information. */
.nav-rebates {
    color: #42611f;
    font-weight: 700 !important;
}
.rebate-announcement {
    display: block;
    background: #d8edaa;
    border-bottom: 1px solid #bed48e;
    color: var(--ink);
}
.rebate-announcement:hover {
    background: #cee59b;
    text-decoration: none;
}
.rebate-announcement .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding-block: 15px;
    font-size: 12px;
    line-height: 1.5;
}
.rebate-label {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .09em;
}
.rebate-announcement .rebate-label {
    flex-shrink: 0;
    border-right: 1px solid #9ebc6e;
    padding-right: 20px;
}
.rebate-announcement strong {
    flex-shrink: 0;
    text-decoration: underline;
    text-underline-offset: 4px;
}
.rebate-feature {
    background: #e9eee0;
    border-bottom: 1px solid #d1ddc1;
}
.rebate-feature-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 70px;
    align-items: center;
}
.rebate-feature h2 {
    max-width: 640px;
}
.rebate-feature p {
    max-width: 650px;
    font-size: 15px;
}
.rebate-feature-panel {
    padding: 36px;
    border-radius: var(--radius);
    background: var(--ink);
}
.rebate-feature-panel .rebate-label {
    color: var(--accent);
    margin-bottom: 24px;
}
.rebate-feature-panel h3 {
    color: white;
    font-size: 30px;
}
.rebate-feature-panel li {
    color: #e3ebe6;
    font-size: 14px;
}
.rebate-feature-panel p {
    color: #c2d1cc;
    font-size: 12px;
    margin-bottom: 0;
}
.rebate-intro {
    background: #dfecc8;
}
.rebate-intro-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 28px;
}
.rebate-system-links li {
    margin-bottom: 20px;
}
.rebate-system-links span {
    display: block;
    margin-top: 5px;
    color: var(--muted);
    font-size: 14px;
}
#veu-how-it-works {
    scroll-margin-top: 110px;
}
@media (max-width: 1000px) {
    .rebate-announcement .container { flex-wrap: wrap; gap: 8px 16px; }
    .rebate-announcement .rebate-label { border: 0; padding: 0; }
    .rebate-feature-grid { gap: 30px; }
}
@media (max-width: 700px) {
    .rebate-announcement .container { display: grid; gap: 5px; padding-block: 14px; }
    .rebate-announcement .rebate-label { font-size: 9px; }
    .rebate-announcement strong { margin-top: 3px; }
    .rebate-feature-grid { grid-template-columns: 1fr; }
    .rebate-feature-panel { padding: 26px; }
    .rebate-feature-panel h3 { font-size: 27px; }
    .rebate-feature .button { width: 100%; gap: 12px; }
    .rebate-intro-actions { align-items: flex-start; flex-direction: column; gap: 20px; }
}
