.long-page{
    --green:#00C152;
    --green-dark:#007A49;
    --ink:#17324a;
    --text:#61766b;
    --soft:#f4f8f5;
    --sky:#eef7f4;
    --sand:#f7f4ed;
    --line:#dfe8e3;
    background:#fff;
    color:var(--ink)
}

.long-page .home-container{
    max-width:1220px
}

.long-hero{
    position:relative;
    min-height:720px;
    overflow:hidden;
    background:#eef4f0
}

.long-hero-photo{
    position:absolute;
    inset:0
}

.long-hero-photo img{
    width:100%;
    height:100%;
    object-fit:cover
}

.long-hero-shade{
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(10,33,22,.2),rgba(10,33,22,.04) 55%,rgba(10,33,22,.14))
}

.long-hero-inner{
    position:relative;
    z-index:2;
    min-height:720px;
    padding-top:2rem;
    padding-bottom:4rem
}

.long-breadcrumb{
    display:flex;
    align-items:center;
    gap:.5rem;
    color:rgba(255,255,255,.82);
    font-size:.86rem
}

.long-breadcrumb a{
    color:#fff;
    text-decoration:none;
    font-weight:850
}

.long-hero-card{
    position:absolute;
    left:12px;
    bottom:4rem;
    max-width:700px;
    padding:2rem 2.2rem;
    border-radius:1.5rem;
    background:rgba(255,255,255,.95);
    box-shadow:0 28px 70px rgba(15,44,29,.18);
    backdrop-filter:blur(14px)
}

.long-overline,
.long-route-head>span,
.long-factors-copy>span,
.long-planner-side>span,
.long-essentials-copy>span,
.long-tools-head>span,
.long-final-card>div>span,
.long-faq-head>span{
    display:block;
    color:var(--green-dark);
    font-size:.76rem;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.13em
}

.long-hero-card h1{
    margin:.6rem 0 .9rem;
    color:#142c22;
    font-size:clamp(3rem,5.8vw,6.1rem);
    line-height:.92;
    font-weight:950;
    letter-spacing:-.06em
}

.long-hero-card>p{
    max-width:610px;
    margin:0;
    color:#60746a;
    font-size:1.08rem;
    line-height:1.7
}

.long-scroll-link{
    display:inline-flex;
    align-items:center;
    gap:.55rem;
    margin-top:1.5rem;
    color:#142c22;
    text-decoration:none;
    font-weight:950
}

.long-scroll-link i{
    display:grid;
    place-items:center;
    width:2.4rem;
    height:2.4rem;
    border-radius:999px;
    background:#e9f7ef;
    color:var(--green-dark)
}

.long-quote-section{
    position:relative;
    z-index:3;
    margin-top:-1.7rem
}

.long-quote{
    display:grid;
    grid-template-columns:1.2fr 1fr auto 1fr .8fr 1fr auto;
    gap:.75rem;
    align-items:end;
    padding:1rem;
    border:1px solid #dfe8e3;
    border-radius:1.15rem;
    background:#fff;
    box-shadow:0 18px 45px rgba(20,53,36,.09)
}

.long-quote-title{
    align-self:center;
    padding:.15rem .35rem
}

.long-quote-title span,
.long-quote-title strong{
    display:block
}

.long-quote-title span{
    color:var(--green);
    font-size:.7rem;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.09em
}

.long-quote-title strong{
    margin-top:.15rem;
    color:#17324a;
    line-height:1.25
}

.long-quote-field label{
    display:block;
    margin-bottom:.35rem;
    color:#788b80;
    font-size:.72rem;
    font-weight:850
}

.long-quote-field .form-control,
.long-quote-field .input-group-text{
    min-height:46px;
    border-color:#d9e5de
}

.long-route-arrow{
    display:grid;
    place-items:center;
    min-height:46px;
    color:#92a49a
}

.long-quote-submit{
    min-height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.5rem;
    padding:0 1rem;
    border:0;
    border-radius:.65rem;
    background:var(--green);
    color:#fff;
    font-weight:950
}

.long-quote-helper{
    padding:.7rem .8rem 0;
    text-align:right
}

.long-quote-helper a{
    display:inline-flex;
    align-items:center;
    gap:.4rem;
    color:#527061;
    text-decoration:none;
    font-size:.82rem;
    font-weight:850
}

.long-intro{
    padding:8rem 0
}

.long-intro-layout{
    display:grid;
    grid-template-columns:1fr 4fr;
    gap:3rem
}

.long-section-index{
    color:#dce8e1;
    font-size:clamp(4rem,9vw,10rem);
    line-height:.8;
    font-weight:950
}

.long-intro-copy{
    max-width:900px
}

.long-intro-copy>span{
    color:var(--green-dark);
    font-size:.76rem;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.12em
}

.long-intro-copy h2,
.long-route-head h2,
.long-factors-copy h2,
.long-planner-side h2,
.long-essentials-copy h2,
.long-tools-head h2,
.long-final-card h2,
.long-faq-head h2{
    margin:.65rem 0 0;
    color:#142c22;
    font-size:clamp(2.55rem,4.5vw,4.8rem);
    line-height:.98;
    font-weight:950;
    letter-spacing:-.055em
}

.long-lead{
    margin:1rem 0 0;
    color:#51685d;
    font-size:1.12rem;
    line-height:1.75
}

.long-intro-lines{
    margin-top:2rem;
    border-top:1px solid var(--line)
}

.long-intro-lines p{
    margin:0;
    padding:1rem 0;
    border-bottom:1px solid var(--line);
    color:#697d72;
    line-height:1.65
}

.long-intro-lines strong{
    color:#17324a
}

.long-route{
    padding:8rem 0;
    background:#f5f9f6
}

.long-route-head{
    max-width:820px
}

.long-roadbook{
    position:relative;
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:1rem;
    margin-top:4rem
}

.long-roadbook-line{
    position:absolute;
    top:19px;
    left:8%;
    right:8%;
    height:2px;
    background:linear-gradient(90deg,#b9dcc8,#00C152,#b9dcc8)
}

.long-stop{
    position:relative;
    z-index:2;
    padding-top:3rem
}

.long-stop-dot{
    position:absolute;
    top:9px;
    left:0;
    width:20px;
    height:20px;
    border:5px solid #fff;
    border-radius:50%;
    background:var(--green);
    box-shadow:0 0 0 2px #96cfad
}

.long-stop small,
.long-stop strong{
    display:block
}

.long-stop small{
    color:#8a9c92;
    font-size:.7rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em
}

.long-stop strong{
    margin-top:.25rem;
    color:#17324a
}

.long-stop p{
    margin:.45rem 0 0;
    color:#71847a;
    font-size:.88rem;
    line-height:1.55
}

.long-photo-break{
    padding:0;
    background:#f5f9f6
}

.long-photo-wide{
    position:relative;
    height:620px;
    margin:0;
    overflow:hidden
}

.long-photo-wide img{
    width:100%;
    height:100%;
    object-fit:cover
}

.long-photo-copy{
    position:absolute;
    left:6vw;
    bottom:4.5vw;
    max-width:700px;
    color:#fff;
    text-shadow:0 4px 24px rgba(0,0,0,.25)
}

.long-photo-copy span,
.long-photo-copy strong{
    display:block
}

.long-photo-copy span{
    font-size:.78rem;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.13em
}

.long-photo-copy strong{
    margin-top:.35rem;
    font-size:clamp(2.7rem,5vw,5.2rem);
    line-height:.97;
    letter-spacing:-.05em
}

.long-factors{
    padding:8rem 0;
    background:#fff
}

.long-factors-layout{
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:5rem
}

.long-factors-copy{
    align-self:start
}

.long-factors-copy>p{
    max-width:540px;
    margin:1rem 0 0;
    color:#6b7e73;
    line-height:1.72
}

.long-inline-link{
    display:inline-flex;
    align-items:center;
    gap:.5rem;
    margin-top:1.5rem;
    color:var(--green-dark);
    text-decoration:none;
    font-weight:950
}

.long-factor-list{
    border-top:1px solid var(--line)
}

.long-factor-list>div{
    display:grid;
    grid-template-columns:3rem 1fr 2fr;
    gap:1rem;
    padding:1.35rem 0;
    border-bottom:1px solid var(--line)
}

.long-factor-list>div>span{
    color:#95a79d;
    font-size:.75rem;
    font-weight:950
}

.long-factor-list strong{
    color:#17324a
}

.long-factor-list p{
    margin:0;
    color:#71847a;
    line-height:1.6
}

.long-planner{
    padding:8rem 0;
    background:#edf7f1
}

.long-planner-layout{
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:5rem
}

.long-planner-side{
    align-self:start
}

.long-planner-side>p{
    max-width:520px;
    margin:1rem 0 1.5rem;
    color:#6d8176;
    line-height:1.7
}

.long-planner-side>label{
    display:block;
    margin-bottom:.45rem;
    color:#536c5e;
    font-size:.8rem;
    font-weight:900
}

.long-planner-side .form-control{
    max-width:340px;
    border-color:#cfe0d6;
    background:#fff
}

.long-planner-today{
    margin-top:.7rem;
    padding:0;
    border:0;
    background:transparent;
    color:var(--green-dark);
    font-size:.82rem;
    font-weight:900
}

.long-planner-results{
    border-top:1px solid #cedfd5
}

.long-plan-row{
    display:grid;
    grid-template-columns:9rem 1fr;
    gap:1.2rem;
    padding:1.3rem 0;
    border-bottom:1px solid #cedfd5
}

.long-plan-row>span{
    color:var(--green-dark);
    font-size:1.1rem;
    font-weight:950
}

.long-plan-row small,
.long-plan-row strong{
    display:block
}

.long-plan-row small{
    color:#8da197;
    font-size:.7rem;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.08em
}

.long-plan-row strong{
    margin-top:.15rem;
    color:#17324a
}

.long-plan-row p{
    margin:.25rem 0 0;
    color:#71847a;
    line-height:1.55
}

.long-plan-row-final>span{
    color:#fff;
    width:max-content;
    padding:.32rem .6rem;
    border-radius:.55rem;
    background:var(--green)
}

.long-essentials{
    padding:8rem 0
}

.long-essentials-layout{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:5rem;
    align-items:center
}

.long-essentials-image{
    height:620px;
    overflow:hidden;
    border-radius:1.5rem;
    box-shadow:0 26px 62px rgba(25,57,41,.1)
}

.long-essentials-image img{
    width:100%;
    height:100%;
    object-fit:cover
}

.long-essentials-list{
    display:grid;
    gap:.5rem;
    margin:1.7rem 0 0;
    padding:0;
    list-style:none
}

.long-essentials-list li{
    display:grid;
    grid-template-columns:3rem 1fr;
    gap:.75rem;
    align-items:center;
    padding:.85rem 0;
    border-bottom:1px solid var(--line)
}

.long-essentials-list>li>i{
    display:grid;
    place-items:center;
    width:3rem;
    height:3rem;
    border-radius:.9rem;
    background:#edf7f1;
    color:var(--green-dark)
}

.long-essentials-list strong,
.long-essentials-list small{
    display:block
}

.long-essentials-list small{
    margin-top:.12rem;
    color:#7a8c82
}

.long-tools{
    padding:8rem 0;
    background:#f7f9f7
}

.long-tools-head{
    max-width:800px
}

.long-tools-nav{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:1rem;
    margin-top:3rem
}

.long-tools-nav a{
    display:grid;
    grid-template-columns:3.2rem 1fr auto;
    gap:.9rem;
    align-items:center;
    min-height:110px;
    padding:1rem 1.1rem;
    border:1px solid var(--line);
    border-radius:1rem;
    background:#fff;
    color:#17324a;
    text-decoration:none;
    transition:.2s ease
}

.long-tools-nav a>i:first-child{
    display:grid;
    place-items:center;
    width:3.2rem;
    height:3.2rem;
    border-radius:.9rem;
    background:#edf7f1;
    color:var(--green-dark);
    font-size:1.25rem
}

.long-tools-nav small,
.long-tools-nav strong{
    display:block
}

.long-tools-nav small{
    color:#8b9c93;
    font-size:.7rem;
    text-transform:uppercase;
    letter-spacing:.08em
}

.long-tools-nav strong{
    margin-top:.1rem
}

.long-tools-nav a>i:last-child{
    color:#96a79d
}

.long-tools-nav a:hover{
    transform:translateY(-3px);
    border-color:#a9d2ba;
    box-shadow:0 16px 38px rgba(24,55,39,.07)
}

.long-final{
    padding:7rem 0;
    background:#fff
}

.long-final-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:3rem;
    padding:3rem;
    border:1px solid #cfe2d6;
    border-radius:1.5rem;
    background:linear-gradient(135deg,#edf9f2,#fff)
}

.long-final-card>div:first-child{
    max-width:720px
}

.long-final-card h2{
    font-size:clamp(2.4rem,4vw,4.2rem)
}

.long-final-card p{
    margin:.8rem 0 0;
    color:#6d8176;
    line-height:1.65
}

.long-final-actions{
    display:flex;
    flex-direction:column;
    min-width:245px;
    gap:.6rem
}

.long-faq{
    padding:8rem 0;
    background:#f7faf8
}

.long-faq-head{
    max-width:800px;
    margin:0 auto 3rem;
    text-align:center
}

.long-faq-list{
    max-width:920px
}

.long-faq-list .accordion-button{
    font-weight:850;
    color:#17324a
}

.long-faq-list .accordion-button:not(.collapsed){
    color:var(--green-dark);
    background:#effaf3;
    box-shadow:none
}

.long-faq-list .accordion-button:focus{
    box-shadow:none
}

[data-reveal]{
    opacity:0;
    transform:translateY(24px);
    transition:opacity .65s ease,transform .65s ease
}

[data-reveal].is-visible{
    opacity:1;
    transform:none
}

@media(prefers-reduced-motion:reduce){
    [data-reveal]{
        opacity:1;
        transform:none;
        transition:none
    }
}

@media(max-width:1199.98px){
    .long-quote{
        grid-template-columns:1fr 1fr 1fr
    }

    .long-quote-title{
        grid-column:1/-1
    }

    .long-route-arrow{
        display:none
    }

    .long-quote-submit{
        min-height:46px
    }

    .long-roadbook{
        grid-template-columns:repeat(3,1fr);
        row-gap:2rem
    }

    .long-roadbook-line{
        display:none
    }

    .long-stop{
        padding-top:2.4rem
    }

    .long-stop-dot{
        top:0
    }
}

@media(max-width:991.98px){
    .long-intro-layout{
        grid-template-columns:1fr
    }

    .long-section-index{
        font-size:5rem
    }

    .long-factors-layout,
    .long-planner-layout,
    .long-essentials-layout{
        grid-template-columns:1fr;
        gap:3rem
    }

    .long-photo-wide{
        height:500px
    }

    .long-essentials-image{
        height:470px
    }

    .long-final-card{
        align-items:flex-start;
        flex-direction:column
    }

    .long-final-actions{
        min-width:0;
        width:100%;
        flex-direction:row;
        flex-wrap:wrap
    }
}

@media(max-width:767.98px){
    .long-hero,
    .long-hero-inner{
        min-height:640px
    }

    .long-hero-card{
        right:12px;
        bottom:2.5rem;
        padding:1.5rem
    }

    .long-hero-card h1{
        font-size:3.4rem
    }

    .long-quote{
        grid-template-columns:1fr
    }

    .long-intro,
    .long-route,
    .long-factors,
    .long-planner,
    .long-essentials,
    .long-tools,
    .long-final,
    .long-faq{
        padding:5.5rem 0
    }

    .long-roadbook{
        grid-template-columns:1fr 1fr
    }

    .long-photo-wide{
        height:420px
    }

    .long-factor-list>div{
        grid-template-columns:2.5rem 1fr
    }

    .long-factor-list p{
        grid-column:2
    }

    .long-tools-nav{
        grid-template-columns:1fr
    }
}

@media(max-width:575.98px){
    .long-hero-card h1{
        font-size:2.8rem
    }

    .long-roadbook{
        grid-template-columns:1fr
    }

    .long-photo-wide{
        height:360px
    }

    .long-photo-copy{
        left:1.2rem;
        right:1.2rem;
        bottom:1.5rem
    }

    .long-plan-row{
        grid-template-columns:1fr
    }

    .long-essentials-image{
        height:360px
    }

    .long-final-card{
        padding:1.5rem
    }

    .long-final-actions{
        flex-direction:column
    }
}
