/* ================================
   FELIPE LAWN CARE
   CONTACT PAGE HERO
================================ */

.flc-contact-hero{
    position:relative;
    height:100svh;
    max-height:100svh;
    min-height:0;
    padding-top:var(--nav-height);
    overflow:hidden;
    isolation:isolate;
    background:var(--flc-black);
    color:var(--flc-white);
}

.flc-contact-hero-bg{
    position:absolute;
    inset:0;
    z-index:-3;
    background:
        linear-gradient(
            90deg,
            rgba(5,6,5,.96) 0%,
            rgba(5,6,5,.86) 38%,
            rgba(5,6,5,.62) 68%,
            rgba(5,6,5,.42) 100%
        ),
        linear-gradient(
            120deg,
            rgba(116,168,40,.22) 0%,
            transparent 34%,
            transparent 100%
        ),
        url("/img/lawncare/l\ \(5\).jpg") center right / cover no-repeat;
}

.flc-contact-hero-bg::after{
    content:'';
    position:absolute;
    inset:0;
    background:
        linear-gradient(
            180deg,
            rgba(5,6,5,.28) 0%,
            rgba(5,6,5,.08) 44%,
            rgba(5,6,5,.86) 100%
        );
}

.flc-contact-hero::before{
    content:'';
    position:absolute;
    left:-14vw;
    top:0;
    width:48vw;
    height:100%;
    z-index:-2;
    background:
        linear-gradient(
            120deg,
            rgba(116,168,40,.24),
            rgba(36,56,21,.08) 56%,
            transparent 100%
        );
    clip-path:polygon(0 0, 80% 0, 100% 100%, 0 100%);
    pointer-events:none;
}

.flc-contact-hero-shell{
    position:relative;
    z-index:2;
    width:min(100% - 44px, 1220px);
    height:calc(100svh - var(--nav-height));
    max-height:calc(100svh - var(--nav-height));
    margin-inline:auto;
    display:grid;
    grid-template-columns:minmax(0, 1fr) 380px;
    align-items:center;
    gap:54px;
    padding-bottom:46px;
}

.flc-contact-hero-content{
    max-width:760px;
}

.flc-contact-hero-kicker{
    display:inline-flex;
    align-items:center;
    gap:12px;
    margin-bottom:18px;
    color:var(--flc-lawn-light);
    font-size:.76rem;
    font-weight:950;
    letter-spacing:.17em;
    text-transform:uppercase;
}

.flc-contact-hero-kicker::before{
    content:'';
    width:42px;
    height:2px;
    background:var(--flc-lawn);
}

.flc-contact-hero-title{
    color:var(--flc-white);
    font-size:clamp(3.25rem, 7vw, 6.6rem);
    line-height:.9;
    letter-spacing:-.075em;
    font-weight:950;
}

.flc-contact-hero-title > span{
    display:block;
    overflow:hidden;
}

.flc-contact-hero-title > span > span{
    display:block;
}

.flc-contact-hero-copy{
    max-width:640px;
    margin-top:22px;
    color:rgba(255,255,255,.76);
    font-size:1.03rem;
    line-height:1.68;
}

.flc-contact-hero-actions{
    margin-top:30px;
    display:flex;
    flex-wrap:wrap;
    gap:14px;
}

/* Buttons */
.flc-contact-btn{
    position:relative;
    isolation:isolate;
    min-height:52px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 26px;
    overflow:hidden;
    font-size:.88rem;
    font-weight:950;
    transition:
        transform .35s var(--ease-smooth),
        box-shadow .35s var(--ease-smooth),
        background .35s var(--ease-smooth);
}

.flc-contact-btn::before{
    content:'';
    position:absolute;
    inset:0;
    z-index:-1;
    transform:translateX(-110%) skewX(-14deg);
    transition:transform .55s var(--ease-smooth);
}

.flc-contact-btn:hover{
    transform:translateY(-3px);
}

.flc-contact-btn:hover::before{
    transform:translateX(0) skewX(-14deg);
}

.flc-contact-btn-primary{
    background:var(--flc-lawn);
    color:var(--flc-black);
    box-shadow:0 18px 45px rgba(116,168,40,.28);
}

.flc-contact-btn-primary::before{
    background:var(--flc-white);
}

.flc-contact-btn-glass{
    color:var(--flc-white);
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.16);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
}

.flc-contact-btn-glass::before{
    background:rgba(255,255,255,.14);
}

/* Side panel */
.flc-contact-hero-panel{
    position:relative;
    padding:28px;
    overflow:hidden;
    background:rgba(5,6,5,.58);
    border:1px solid rgba(255,255,255,.16);
    backdrop-filter:blur(22px);
    -webkit-backdrop-filter:blur(22px);
    box-shadow:
        0 28px 80px rgba(0,0,0,.34),
        inset 0 1px 0 rgba(255,255,255,.08);
}

.flc-contact-hero-panel::before{
    content:'';
    position:absolute;
    inset:0;
    background:
        linear-gradient(
            135deg,
            rgba(116,168,40,.26),
            transparent 44%,
            rgba(255,255,255,.04) 100%
        );
    pointer-events:none;
}

.flc-contact-hero-panel::after{
    content:'';
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:4px;
    background:
        linear-gradient(
            90deg,
            var(--flc-lawn),
            var(--flc-lawn-light),
            var(--flc-green)
        );
}

.flc-contact-panel-top,
.flc-contact-hero-panel h2,
.flc-contact-panel-list,
.flc-contact-panel-info{
    position:relative;
    z-index:1;
}

.flc-contact-panel-top{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:20px;
    color:var(--flc-lawn-light);
    font-size:.72rem;
    font-weight:950;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.flc-contact-panel-top span{
    width:9px;
    height:9px;
    border-radius:50%;
    background:var(--flc-lawn);
    box-shadow:0 0 0 6px rgba(116,168,40,.18);
}

.flc-contact-hero-panel h2{
    color:var(--flc-white);
    font-size:1.8rem;
    line-height:.96;
    letter-spacing:-.055em;
    font-weight:950;
}

.flc-contact-panel-list{
    margin-top:24px;
    display:grid;
    gap:12px;
}

.flc-contact-panel-list div{
    display:flex;
    align-items:center;
    gap:13px;
    padding:14px;
    background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.10);
}

.flc-contact-panel-list strong{
    flex:0 0 auto;
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    background:var(--flc-lawn);
    color:var(--flc-black);
    font-size:.72rem;
    font-weight:950;
}

.flc-contact-panel-list span{
    color:rgba(255,255,255,.78);
    font-size:.86rem;
    font-weight:850;
    line-height:1.35;
}

.flc-contact-panel-info{
    margin-top:24px;
    padding-top:20px;
    border-top:1px solid rgba(255,255,255,.14);
}

.flc-contact-panel-info span{
    display:block;
    color:rgba(255,255,255,.52);
    font-size:.7rem;
    font-weight:950;
    letter-spacing:.15em;
    text-transform:uppercase;
    margin-bottom:7px;
}

.flc-contact-panel-info strong{
    display:block;
    color:var(--flc-white);
    font-size:.92rem;
    line-height:1.35;
    font-weight:950;
}

/* Bottom cities */
.flc-contact-hero-bottom{
    position:absolute;
    left:50%;
    bottom:20px;
    z-index:3;
    width:min(100% - 44px, 1220px);
    transform:translateX(-50%);
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:18px;
    color:rgba(255,255,255,.62);
    font-size:.68rem;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.flc-contact-hero-bottom span{
    position:relative;
}

.flc-contact-hero-bottom span:not(:last-child)::after{
    content:'';
    position:absolute;
    right:-11px;
    top:50%;
    width:4px;
    height:4px;
    border-radius:50%;
    background:var(--flc-lawn);
    transform:translateY(-50%);
}






































/* ================================
   FELIPE LAWN CARE
   CONTACT MAIN SECTION
================================ */

.flc-contact-main{
    position:relative;
    display:block;
    width:100%;
    padding:112px 0;
    overflow:hidden;
    isolation:isolate;
    background:
        linear-gradient(
            90deg,
            rgba(255,255,255,.84) 0%,
            rgba(246,246,243,.96) 38%,
            rgba(239,239,231,1) 100%
        );
    color:var(--flc-text);
}

.flc-contact-main::before{
    content:'';
    position:absolute;
    left:-12vw;
    top:0;
    width:46vw;
    height:100%;
    z-index:-2;
    background:
        linear-gradient(
            120deg,
            rgba(116,168,40,.15),
            rgba(36,56,21,.05) 54%,
            transparent 100%
        );
    clip-path:polygon(0 0, 78% 0, 100% 100%, 0 100%);
}

.flc-contact-main::after{
    content:'';
    position:absolute;
    right:-18vw;
    bottom:-20%;
    width:46vw;
    height:80%;
    z-index:-2;
    background:
        linear-gradient(
            135deg,
            rgba(116,168,40,.10),
            transparent 62%
        );
    clip-path:polygon(22% 0, 100% 0, 80% 100%, 0 100%);
}

.flc-contact-main-shell{
    position:relative;
    z-index:2;
    width:min(100% - 44px, 1220px);
    margin-inline:auto;
}

/* Header */
.flc-contact-main-header{
    margin-bottom:48px;
}

.flc-contact-main-kicker{
    display:inline-flex;
    align-items:center;
    gap:12px;
    margin-bottom:20px;
    color:var(--flc-green);
    font-size:.76rem;
    font-weight:950;
    letter-spacing:.17em;
    text-transform:uppercase;
}

.flc-contact-main-kicker::before{
    content:'';
    width:42px;
    height:2px;
    background:var(--flc-lawn);
}

.flc-contact-main-title-row{
    display:grid;
    grid-template-columns:minmax(0, .9fr) minmax(280px, .52fr);
    gap:48px;
    align-items:end;
}

.flc-contact-main-title-row h2{
    color:var(--flc-text);
    font-size:clamp(2.45rem, 5.2vw, 4.9rem);
    font-weight:950;
    line-height:.94;
    letter-spacing:-.07em;
}

.flc-contact-main-title-row p{
    color:var(--flc-muted);
    font-size:1.02rem;
    line-height:1.75;
}

/* Layout */
.flc-contact-main-layout{
    display:grid;
    grid-template-columns:360px minmax(0, 1fr);
    gap:18px;
    align-items:start;
}

/* Left support */
.flc-contact-support{
    display:grid;
    gap:18px;
    position:sticky;
    top:100px;
}

.flc-contact-support-card{
    position:relative;
    padding:30px;
    overflow:hidden;
    background:var(--flc-black);
    color:var(--flc-white);
    box-shadow:0 28px 80px rgba(13,16,10,.18);
}

.flc-contact-support-card::before{
    content:'';
    position:absolute;
    inset:0;
    background:
        linear-gradient(
            135deg,
            rgba(116,168,40,.34),
            transparent 44%,
            rgba(167,217,87,.08) 100%
        );
    pointer-events:none;
}

.flc-contact-support-card::after{
    content:'';
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:4px;
    background:
        linear-gradient(
            90deg,
            var(--flc-lawn),
            var(--flc-lawn-light),
            var(--flc-green)
        );
}

.flc-contact-support-label,
.flc-contact-support-card h3,
.flc-contact-steps{
    position:relative;
    z-index:1;
}

.flc-contact-support-label{
    display:block;
    margin-bottom:16px;
    color:var(--flc-lawn-light);
    font-size:.72rem;
    font-weight:950;
    letter-spacing:.15em;
    text-transform:uppercase;
}

.flc-contact-support-card h3{
    max-width:280px;
    color:var(--flc-white);
    font-size:clamp(1.95rem, 3vw, 2.7rem);
    line-height:.92;
    font-weight:950;
    letter-spacing:-.06em;
}

.flc-contact-steps{
    margin-top:28px;
    display:grid;
    gap:12px;
}

.flc-contact-step{
    display:flex;
    gap:14px;
    padding:15px;
    background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.10);
}

.flc-contact-step strong{
    flex:0 0 auto;
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    background:var(--flc-lawn);
    color:var(--flc-black);
    font-size:.72rem;
    font-weight:950;
}

.flc-contact-step span{
    display:block;
    color:var(--flc-white);
    font-size:.9rem;
    font-weight:950;
    line-height:1.2;
}

.flc-contact-step p{
    margin-top:5px;
    color:rgba(255,255,255,.58);
    font-size:.8rem;
    line-height:1.45;
}

.flc-contact-mini-grid{
    display:grid;
    gap:12px;
}

.flc-contact-mini-card{
    display:block;
    padding:18px;
    background:rgba(255,255,255,.78);
    border:1px solid var(--flc-border);
    box-shadow:0 18px 50px rgba(13,16,10,.07);
    transition:
        transform .35s var(--ease-smooth),
        box-shadow .35s var(--ease-smooth),
        border-color .35s var(--ease-smooth);
}

.flc-contact-mini-card:hover{
    transform:translateY(-4px);
    border-color:rgba(80,119,23,.32);
    box-shadow:0 24px 60px rgba(13,16,10,.12);
}

.flc-contact-mini-card span{
    display:block;
    margin-bottom:6px;
    color:var(--flc-green);
    font-size:.66rem;
    font-weight:950;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.flc-contact-mini-card strong{
    display:block;
    color:var(--flc-text);
    font-size:.92rem;
    font-weight:950;
    line-height:1.35;
    word-break:break-word;
}

/* Form */
.flc-estimate-form{
    position:relative;
    padding:30px;
    background:rgba(255,255,255,.82);
    border:1px solid var(--flc-border);
    box-shadow:0 28px 80px rgba(13,16,10,.12);
    overflow:hidden;
}

.flc-estimate-form::before{
    content:'';
    position:absolute;
    inset:0;
    background:
        linear-gradient(
            135deg,
            rgba(116,168,40,.10),
            transparent 38%,
            rgba(255,255,255,.30) 100%
        );
    pointer-events:none;
}

.flc-estimate-form::after{
    content:'';
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:4px;
    background:
        linear-gradient(
            90deg,
            var(--flc-forest),
            var(--flc-lawn),
            var(--flc-lawn-light)
        );
}

.flc-form-top,
.flc-form-section,
.flc-form-submit-row{
    position:relative;
    z-index:1;
}

.flc-form-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:24px;
    margin-bottom:30px;
    padding-bottom:24px;
    border-bottom:1px solid var(--flc-border);
}

.flc-form-top span{
    display:block;
    margin-bottom:7px;
    color:var(--flc-green);
    font-size:.72rem;
    font-weight:950;
    letter-spacing:.15em;
    text-transform:uppercase;
}

.flc-form-top h3{
    color:var(--flc-text);
    font-size:clamp(1.9rem, 3vw, 2.7rem);
    line-height:.95;
    font-weight:950;
    letter-spacing:-.06em;
}

.flc-form-progress{
    flex:0 0 140px;
    height:8px;
    margin-top:12px;
    background:rgba(36,56,21,.12);
    overflow:hidden;
}

.flc-form-progress span{
    display:block;
    width:0%;
    height:100%;
    background:linear-gradient(90deg, var(--flc-green), var(--flc-lawn));
    transition:width .35s var(--ease-smooth);
}

/* Form sections */
.flc-form-section{
    padding:26px 0;
    border-bottom:1px solid rgba(36,56,21,.12);
}

.flc-form-section-heading{
    margin-bottom:18px;
    display:flex;
    align-items:flex-start;
    gap:13px;
}

.flc-form-section-heading > span{
    flex:0 0 auto;
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    background:var(--flc-black);
    color:var(--flc-lawn-light);
    font-size:.72rem;
    font-weight:950;
}

.flc-form-section-heading h4{
    color:var(--flc-text);
    font-size:1.2rem;
    line-height:1.05;
    font-weight:950;
    letter-spacing:-.04em;
}

.flc-form-section-heading p{
    margin-top:4px;
    color:var(--flc-muted);
    font-size:.86rem;
}

/* Fields */
.flc-form-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:16px;
}

.flc-field{
    position:relative;
}

.flc-field-wide{
    grid-column:1 / -1;
}

.flc-field label{
    display:block;
    margin-bottom:8px;
    color:var(--flc-text);
    font-size:.78rem;
    font-weight:950;
    letter-spacing:.03em;
}

.flc-field label span{
    color:var(--flc-green);
}

.flc-field input,
.flc-field select,
.flc-field textarea{
    width:100%;
    border:1px solid rgba(36,56,21,.18);
    background:rgba(255,255,255,.82);
    color:var(--flc-text);
    outline:none;
    padding:0 15px;
    font-size:.92rem;
    font-weight:700;
    transition:
        border-color .3s var(--ease-smooth),
        box-shadow .3s var(--ease-smooth),
        background .3s var(--ease-smooth);
}

.flc-field input,
.flc-field select{
    height:52px;
}

.flc-field textarea{
    min-height:150px;
    resize:vertical;
    padding-top:15px;
    line-height:1.6;
}

.flc-field input::placeholder,
.flc-field textarea::placeholder{
    color:rgba(95,102,88,.62);
}

.flc-field input:focus,
.flc-field select:focus,
.flc-field textarea:focus{
    border-color:rgba(116,168,40,.76);
    background:var(--flc-white);
    box-shadow:0 0 0 4px rgba(116,168,40,.14);
}

.flc-field.is-filled label{
    color:var(--flc-green);
}

/* Service checkboxes */
.flc-service-checks{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:10px;
}

.flc-service-checks label{
    position:relative;
    min-height:46px;
    display:flex;
    align-items:center;
    cursor:pointer;
}

.flc-service-checks input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.flc-service-checks span{
    width:100%;
    min-height:46px;
    display:flex;
    align-items:center;
    padding:0 13px;
    background:rgba(255,255,255,.82);
    border:1px solid rgba(36,56,21,.16);
    color:var(--flc-muted);
    font-size:.78rem;
    font-weight:900;
    transition:
        transform .3s var(--ease-smooth),
        border-color .3s var(--ease-smooth),
        background .3s var(--ease-smooth),
        color .3s var(--ease-smooth),
        box-shadow .3s var(--ease-smooth);
}

.flc-service-checks span::before{
    content:'';
    width:15px;
    height:15px;
    margin-right:9px;
    border:2px solid rgba(36,56,21,.28);
    background:transparent;
    transition:
        background .3s var(--ease-smooth),
        border-color .3s var(--ease-smooth),
        box-shadow .3s var(--ease-smooth);
}

.flc-service-checks input:checked + span{
    color:var(--flc-text);
    background:rgba(116,168,40,.14);
    border-color:rgba(80,119,23,.38);
    box-shadow:0 12px 28px rgba(80,119,23,.10);
}

.flc-service-checks input:checked + span::before{
    background:var(--flc-lawn);
    border-color:var(--flc-green);
    box-shadow:inset 0 0 0 3px rgba(255,255,255,.82);
}

.flc-service-checks label:hover span{
    transform:translateY(-2px);
    border-color:rgba(80,119,23,.32);
}

/* Submit */
.flc-form-submit-row{
    padding-top:28px;
    display:grid;
    grid-template-columns:260px minmax(0, 1fr);
    align-items:center;
    gap:20px;
}

.flc-form-submit{
    position:relative;
    min-height:54px;
    border:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--flc-lawn);
    color:var(--flc-black);
    font-size:.88rem;
    font-weight:950;
    cursor:pointer;
    overflow:hidden;
    box-shadow:0 18px 45px rgba(116,168,40,.24);
    transition:
        transform .35s var(--ease-smooth),
        background .35s var(--ease-smooth),
        box-shadow .35s var(--ease-smooth);
}

.flc-form-submit:hover{
    transform:translateY(-3px);
    background:var(--flc-lawn-light);
    box-shadow:0 22px 55px rgba(116,168,40,.30);
}

.flc-form-submit-row p{
    color:var(--flc-muted);
    font-size:.82rem;
    line-height:1.55;
}

/* Validation message */
.flc-form-message{
    margin-top:18px;
    padding:14px 16px;
    display:none;
    font-size:.86rem;
    font-weight:850;
}

.flc-form-message.is-visible{
    display:block;
}

.flc-form-message.is-error{
    color:#6f1d1b;
    background:rgba(230,57,70,.10);
    border:1px solid rgba(230,57,70,.24);
}

.flc-form-message.is-success{
    color:var(--flc-forest);
    background:rgba(116,168,40,.14);
    border:1px solid rgba(116,168,40,.28);
}

/* Animations */
.flc-contact-main-animate{
    opacity:1;
    transform:translateY(0);
    clip-path:inset(0 0 0 0);
}

.flc-contact-main.js-ready .flc-contact-main-animate{
    opacity:0;
    transform:translateY(30px);
    clip-path:inset(0 0 16% 0);
    transition:
        opacity .55s var(--ease-smooth),
        transform .85s var(--ease-smooth),
        clip-path .85s var(--ease-premium);
}

.flc-contact-main.js-ready .flc-contact-main-animate.is-visible{
    opacity:1;
    transform:translateY(0);
    clip-path:inset(0 0 0 0);
}



































/* ================================
   FORM STATUS ALERT
================================ */

.flc-form-alert{
    display:none;
    margin-bottom:26px;
    padding:18px 20px;
    border:1px solid transparent;
    font-size:.94rem;
    font-weight:850;
    line-height:1.55;
    box-shadow:0 18px 48px rgba(13,16,10,.08);
}

.flc-form-alert.is-visible{
    display:block;
}

.flc-form-alert.is-success{
    background:rgba(116,168,40,.14);
    border-color:rgba(116,168,40,.32);
    color:var(--flc-forest);
}

.flc-form-alert.is-error{
    background:rgba(180,40,40,.10);
    border-color:rgba(180,40,40,.28);
    color:#6f1d1b;
}

/* Honeypot field */
.flc-hp-field{
    position:absolute !important;
    left:-9999px !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
}













































/* ================================
   FELIPE LAWN CARE
   CONTACT AREAS SECTION
================================ */

.flc-contact-areas{
    position:relative;
    display:block;
    width:100%;
    padding:112px 0;
    overflow:hidden;
    isolation:isolate;
    background:var(--flc-black);
    color:var(--flc-white);
}

.flc-contact-areas::before{
    content:'';
    position:absolute;
    inset:0;
    z-index:-4;
    background:
        linear-gradient(
            115deg,
            rgba(5,6,5,1) 0%,
            rgba(13,16,10,.98) 46%,
            rgba(36,56,21,.96) 100%
        );
}

.flc-contact-areas::after{
    content:'';
    position:absolute;
    right:-18vw;
    top:-16%;
    width:58vw;
    height:135%;
    z-index:-3;
    background:
        linear-gradient(
            120deg,
            transparent 0%,
            rgba(116,168,40,.20) 45%,
            rgba(167,217,87,.08) 100%
        );
    clip-path:polygon(22% 0, 100% 0, 78% 100%, 0 100%);
    pointer-events:none;
}

.flc-contact-areas-shell{
    position:relative;
    z-index:2;
    width:min(100% - 44px, 1220px);
    margin-inline:auto;
}

/* Header */
.flc-contact-areas-header{
    margin-bottom:48px;
}

.flc-contact-areas-kicker{
    display:inline-flex;
    align-items:center;
    gap:12px;
    margin-bottom:20px;
    color:var(--flc-lawn-light);
    font-size:.76rem;
    font-weight:950;
    letter-spacing:.17em;
    text-transform:uppercase;
}

.flc-contact-areas-kicker::before{
    content:'';
    width:42px;
    height:2px;
    background:var(--flc-lawn);
}

.flc-contact-areas-title-row{
    display:grid;
    grid-template-columns:minmax(0, .95fr) minmax(280px, .52fr);
    gap:48px;
    align-items:end;
}

.flc-contact-areas-title-row h2{
    max-width:850px;
    color:var(--flc-white);
    font-size:clamp(2.45rem, 5.2vw, 4.9rem);
    font-weight:950;
    line-height:.94;
    letter-spacing:-.07em;
}

.flc-contact-areas-title-row p{
    color:rgba(255,255,255,.68);
    font-size:1.02rem;
    line-height:1.75;
}

/* Layout */
.flc-contact-areas-layout{
    display:grid;
    grid-template-columns:380px minmax(0, 1fr);
    gap:18px;
    align-items:stretch;
}

/* Left content */
.flc-contact-areas-copy{
    display:grid;
    gap:18px;
}

.flc-contact-areas-card{
    position:relative;
    padding:30px;
    overflow:hidden;
    background:rgba(255,255,255,.075);
    border:1px solid rgba(255,255,255,.14);
    box-shadow:0 28px 80px rgba(0,0,0,.24);
}

.flc-contact-areas-card::before{
    content:'';
    position:absolute;
    inset:0;
    background:
        linear-gradient(
            135deg,
            rgba(116,168,40,.28),
            transparent 46%,
            rgba(255,255,255,.04) 100%
        );
    pointer-events:none;
}

.flc-contact-areas-card::after{
    content:'';
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:4px;
    background:
        linear-gradient(
            90deg,
            var(--flc-lawn),
            var(--flc-lawn-light),
            var(--flc-green)
        );
}

.flc-contact-areas-label,
.flc-contact-areas-card h3,
.flc-contact-areas-card p,
.flc-contact-city-list,
.flc-contact-areas-note{
    position:relative;
    z-index:1;
}

.flc-contact-areas-label{
    display:block;
    margin-bottom:16px;
    color:var(--flc-lawn-light);
    font-size:.72rem;
    font-weight:950;
    letter-spacing:.15em;
    text-transform:uppercase;
}

.flc-contact-areas-card h3{
    max-width:310px;
    color:var(--flc-white);
    font-size:clamp(1.95rem, 3vw, 2.85rem);
    line-height:.92;
    font-weight:950;
    letter-spacing:-.06em;
}

.flc-contact-areas-card p{
    margin-top:20px;
    color:rgba(255,255,255,.70);
    font-size:.95rem;
    line-height:1.68;
}

/* City list */
.flc-contact-city-list{
    margin-top:30px;
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:10px;
}

.flc-contact-city{
    position:relative;
    min-height:44px;
    padding:0 13px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.12);
    color:rgba(255,255,255,.84);
    font-size:.78rem;
    font-weight:900;
    overflow:hidden;
    transition:
        transform .35s var(--ease-smooth),
        background .35s var(--ease-smooth),
        border-color .35s var(--ease-smooth),
        color .35s var(--ease-smooth);
}

.flc-contact-city::after{
    content:'→';
    color:var(--flc-lawn-light);
    opacity:.75;
    transform:translateX(-4px);
    transition:
        transform .35s var(--ease-smooth),
        opacity .35s var(--ease-smooth);
}

.flc-contact-city:hover,
.flc-contact-city.is-active{
    transform:translateY(-3px);
    background:rgba(116,168,40,.18);
    border-color:rgba(167,217,87,.38);
    color:var(--flc-white);
}

.flc-contact-city:hover::after,
.flc-contact-city.is-active::after{
    transform:translateX(0);
    opacity:1;
}

/* Note */
.flc-contact-areas-note{
    margin-top:30px;
    padding-top:22px;
    border-top:1px solid rgba(255,255,255,.14);
}

.flc-contact-areas-note strong{
    display:block;
    color:var(--flc-white);
    font-size:.96rem;
    font-weight:950;
}

.flc-contact-areas-note span{
    display:block;
    margin-top:6px;
    color:rgba(255,255,255,.60);
    font-size:.86rem;
    line-height:1.5;
}

/* Quick contact cards */
.flc-contact-areas-quick{
    display:grid;
    gap:12px;
}

.flc-contact-areas-quick a{
    display:block;
    padding:18px;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.11);
    transition:
        transform .35s var(--ease-smooth),
        background .35s var(--ease-smooth),
        border-color .35s var(--ease-smooth);
}

.flc-contact-areas-quick a:hover{
    transform:translateY(-4px);
    background:rgba(255,255,255,.09);
    border-color:rgba(167,217,87,.30);
}

.flc-contact-areas-quick span{
    display:block;
    margin-bottom:6px;
    color:var(--flc-lawn-light);
    font-size:.66rem;
    font-weight:950;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.flc-contact-areas-quick strong{
    display:block;
    color:rgba(255,255,255,.86);
    font-size:.92rem;
    font-weight:950;
    line-height:1.35;
    word-break:break-word;
}

/* Map */
.flc-contact-map-wrap{
    position:relative;
    min-height:620px;
    overflow:hidden;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.14);
    box-shadow:0 28px 80px rgba(0,0,0,.24);
}

.flc-contact-map-toolbar{
    min-height:64px;
    padding:0 18px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    background:rgba(255,255,255,.08);
    border-bottom:1px solid rgba(255,255,255,.12);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
}

.flc-contact-map-toolbar div{
    display:flex;
    align-items:center;
    gap:10px;
    color:var(--flc-white);
    font-size:.78rem;
    font-weight:950;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.flc-contact-map-toolbar div span{
    width:10px;
    height:10px;
    border-radius:50%;
    background:var(--flc-lawn);
    box-shadow:0 0 0 6px rgba(116,168,40,.16);
}

.flc-contact-map-toolbar a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    padding:0 16px;
    background:var(--flc-lawn);
    color:var(--flc-black);
    font-size:.75rem;
    font-weight:950;
    transition:
        transform .35s var(--ease-smooth),
        background .35s var(--ease-smooth);
}

.flc-contact-map-toolbar a:hover{
    transform:translateY(-2px);
    background:var(--flc-lawn-light);
}

.flc-contact-map-frame{
    position:relative;
    width:100%;
    height:calc(100% - 64px);
    min-height:556px;
    background:var(--flc-mist);
    overflow:hidden;
}

.flc-contact-map-frame iframe{
    width:100%;
    height:100%;
    min-height:556px;
    border:0;
    display:block;
    filter:saturate(.96) contrast(1.02);
}

/* Floating map card */
.flc-contact-map-floating-card{
    position:absolute;
    left:24px;
    bottom:24px;
    width:min(320px, calc(100% - 48px));
    padding:22px;
    background:rgba(5,6,5,.80);
    color:var(--flc-white);
    border:1px solid rgba(255,255,255,.16);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    box-shadow:0 24px 60px rgba(0,0,0,.28);
}

.flc-contact-map-floating-card span{
    display:block;
    margin-bottom:8px;
    color:var(--flc-lawn-light);
    font-size:.68rem;
    font-weight:950;
    letter-spacing:.16em;
    text-transform:uppercase;
}

.flc-contact-map-floating-card strong{
    display:block;
    color:var(--flc-white);
    font-size:1.45rem;
    font-weight:950;
    letter-spacing:-.04em;
}

.flc-contact-map-floating-card p{
    margin-top:8px;
    color:rgba(255,255,255,.68);
    font-size:.86rem;
    line-height:1.5;
}

/* Highlight */
.flc-contact-map-wrap.is-highlighted{
    box-shadow:
        0 0 0 4px rgba(116,168,40,.24),
        0 28px 80px rgba(0,0,0,.24);
}

/* Animations */
.flc-contact-areas-animate{
    opacity:1;
    transform:translateY(0);
    clip-path:inset(0 0 0 0);
}

.flc-contact-areas.js-ready .flc-contact-areas-animate{
    opacity:0;
    transform:translateY(30px);
    clip-path:inset(0 0 16% 0);
    transition:
        opacity .55s var(--ease-smooth),
        transform .85s var(--ease-smooth),
        clip-path .85s var(--ease-premium);
}

.flc-contact-areas.js-ready .flc-contact-areas-animate.is-visible{
    opacity:1;
    transform:translateY(0);
    clip-path:inset(0 0 0 0);
}

































/* ================================
   RESPONSIVE WITHOUT EXCEEDING 100VH
================================ */

@media(max-width:1080px){
      .flc-contact-areas-title-row{
        grid-template-columns:1fr;
        gap:22px;
    }

    .flc-contact-areas-layout{
        grid-template-columns:1fr;
    }

    .flc-contact-city-list{
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }

    .flc-contact-map-wrap{
        min-height:560px;
    }

    .flc-contact-map-frame,
    .flc-contact-map-frame iframe{
        min-height:496px;
    }
      .flc-contact-main-title-row{
        grid-template-columns:1fr;
        gap:22px;
    }

    .flc-contact-main-layout{
        grid-template-columns:1fr;
    }

    .flc-contact-support{
        position:relative;
        top:auto;
        grid-template-columns:1fr;
    }

    .flc-contact-mini-grid{
        grid-template-columns:repeat(3, 1fr);
    }
    .flc-contact-hero-shell{
        grid-template-columns:1fr;
    }

    .flc-contact-hero-panel{
        display:none;
    }

    .flc-contact-hero-content{
        max-width:820px;
    }
}

@media(max-width:970px){
    .flc-contact-hero{
        height:100svh;
        max-height:100svh;
        padding-top:var(--nav-height-mobile);
    }

    .flc-contact-hero-shell{
        width:min(100% - 28px, 100%);
        height:calc(100svh - var(--nav-height-mobile));
        max-height:calc(100svh - var(--nav-height-mobile));
        padding-bottom:44px;
        align-items:center;
    }

    .flc-contact-hero-title{
        font-size:clamp(2.75rem, 12vw, 5rem);
        line-height:.91;
    }

    .flc-contact-hero-copy{
        max-width:600px;
        font-size:.96rem;
        line-height:1.58;
    }

    .flc-contact-hero-bottom{
        width:min(100% - 28px, 100%);
        bottom:14px;
        gap:12px;
        font-size:.6rem;
    }

    .flc-contact-hero-bottom span:not(:last-child)::after{
        display:none;
    }
}

@media(max-width:760px){
     .flc-contact-areas{
        padding:78px 0;
    }

    .flc-contact-areas-shell{
        width:min(100% - 28px, 100%);
    }

    .flc-contact-areas-kicker{
        font-size:.68rem;
        letter-spacing:.13em;
    }

    .flc-contact-areas-kicker::before{
        width:30px;
    }

    .flc-contact-areas-card{
        padding:26px 22px;
    }

    .flc-contact-city-list{
        grid-template-columns:1fr 1fr;
        gap:9px;
    }

    .flc-contact-map-wrap{
        min-height:auto;
    }

    .flc-contact-map-toolbar{
        min-height:auto;
        padding:14px;
        align-items:flex-start;
        flex-direction:column;
    }

    .flc-contact-map-toolbar a{
        width:100%;
    }

    .flc-contact-map-frame{
        height:420px;
        min-height:420px;
    }

    .flc-contact-map-frame iframe{
        height:420px;
        min-height:420px;
    }

    .flc-contact-map-floating-card{
        position:relative;
        left:auto;
        bottom:auto;
        width:100%;
        border-left:0;
        border-right:0;
        border-bottom:0;
        box-shadow:none;
        background:var(--flc-black);
    }
    .flc-contact-main{
        padding:78px 0;
    }

    .flc-contact-main-shell{
        width:min(100% - 28px, 100%);
    }

    .flc-contact-main-kicker{
        font-size:.68rem;
        letter-spacing:.13em;
    }

    .flc-contact-main-kicker::before{
        width:30px;
    }

    .flc-contact-support-card,
    .flc-estimate-form{
        padding:24px 20px;
    }

    .flc-contact-mini-grid{
        grid-template-columns:1fr;
    }

    .flc-form-top{
        flex-direction:column;
    }

    .flc-form-progress{
        width:100%;
        flex-basis:auto;
    }

    .flc-form-grid{
        grid-template-columns:1fr;
    }

    .flc-service-checks{
        grid-template-columns:1fr;
    }

    .flc-form-submit-row{
        grid-template-columns:1fr;
    }

    .flc-form-submit{
        width:100%;
    }
}

@media(max-width:620px){
    .flc-contact-hero-shell{
        padding-bottom:30px;
    }

    .flc-contact-hero-kicker{
        margin-bottom:14px;
        font-size:.66rem;
        letter-spacing:.13em;
    }

    .flc-contact-hero-kicker::before{
        width:30px;
    }

    .flc-contact-hero-title{
        font-size:clamp(2.35rem, 13vw, 3.8rem);
    }

    .flc-contact-hero-copy{
        margin-top:18px;
        font-size:.88rem;
        line-height:1.5;
    }

    .flc-contact-hero-actions{
        margin-top:22px;
        display:grid;
        grid-template-columns:1fr;
        gap:11px;
    }

    .flc-contact-btn{
        width:100%;
        min-height:46px;
        padding:0 16px;
        font-size:.78rem;
    }

    .flc-contact-hero-bottom{
        display:none;
    }
}

@media(max-width:420px){
    .flc-contact-city-list{
        grid-template-columns:1fr;
    }

    .flc-contact-map-frame,
    .flc-contact-map-frame iframe{
        height:380px;
        min-height:380px;
    }
}

@media(max-height:700px) and (max-width:970px){
    .flc-contact-hero-title{
        font-size:clamp(2.15rem, 10vw, 3.4rem);
    }

    .flc-contact-hero-copy{
        font-size:.84rem;
        line-height:1.45;
    }

    .flc-contact-hero-actions{
        margin-top:18px;
    }
}

@media(max-height:620px){
    .flc-contact-hero-bottom{
        display:none;
    }

    .flc-contact-hero-copy{
        max-width:560px;
    }
}