:root{
    --contact-green:#07371f;
    --contact-green-2:#0a7d44;
    --contact-neon:#9cff63;
    --contact-gold:#dfb957;
    --contact-ink:#102219;
    --contact-muted:#69766f;
}

.contact-page{
    overflow:hidden;
}

.contact-section{
    position:relative;
    padding:clamp(74px,8vw,118px) 0;
}

.contact-section-light{
    background:linear-gradient(180deg,#eef4e8,#f8f3e8);
}

.contact-kicker{
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:var(--contact-gold);
    font-size:.68rem;
    font-weight:850;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.contact-kicker:before{
    content:"";
    width:28px;
    height:2px;
    background:var(--contact-gold);
}

.contact-kicker-dark{
    color:#168049;
}

.contact-heading{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(300px,.68fr);
    align-items:end;
    gap:clamp(40px,7vw,94px);
    margin-bottom:38px;
}

.contact-heading h2,
.contact-location-copy h2,
.contact-final-copy h2{
    margin:12px 0 0;
    color:var(--contact-ink);
    font-size:clamp(2.2rem,4vw,4rem);
    line-height:1.04;
    letter-spacing:-.05em;
}

.contact-heading p{
    color:var(--contact-muted);
    line-height:1.72;
}

/* HERO */

.contact-hero{
    position:relative;
    overflow:hidden;
    padding:clamp(76px,8vw,118px) 0;
    color:#fff;
    background:
        radial-gradient(circle at 14% 18%,rgba(156,255,99,.11),transparent 27%),
        radial-gradient(circle at 88% 78%,rgba(223,185,87,.10),transparent 24%),
        linear-gradient(135deg,#032817,#07512d);
}

.contact-orb{
    position:absolute;
    border:1px solid rgba(156,255,99,.08);
    border-radius:50%;
    pointer-events:none;
}

.contact-orb--one{
    top:-210px;
    right:-190px;
    width:520px;
    height:520px;
}

.contact-orb--two{
    left:-170px;
    bottom:-250px;
    width:430px;
    height:430px;
    border-color:rgba(223,185,87,.08);
}

.contact-hero-grid{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(430px,.9fr);
    align-items:center;
    gap:clamp(52px,7vw,105px);
}

.contact-hero h1{
    max-width:11ch;
    margin:17px 0 0;
    font-size:clamp(3rem,5.4vw,5.45rem);
    line-height:.99;
    letter-spacing:-.06em;
}

.contact-hero h1 em{
    display:block;
    color:var(--contact-gold);
    font-style:normal;
}

.contact-hero-lead{
    max-width:62ch;
    margin:23px 0 0;
    color:rgba(255,255,255,.70);
    line-height:1.75;
}

.contact-hero-points{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:23px;
}

.contact-hero-points span{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:8px 11px;
    color:rgba(255,255,255,.78);
    background:rgba(255,255,255,.045);
    border:1px solid rgba(156,255,99,.14);
    border-radius:999px;
    font-size:.67rem;
    font-weight:750;
}

.contact-hero-points svg{
    width:14px;
    color:var(--contact-neon);
}

.contact-direct-links{
    display:grid;
    gap:12px;
    max-width:520px;
    margin-top:28px;
}

.contact-direct-links a{
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    align-items:center;
    gap:13px;
    padding:12px;
    color:#fff;
    text-decoration:none;
    background:rgba(255,255,255,.05);
    border:1px solid rgba(156,255,99,.14);
    border-radius:17px;
    transition:
        transform .22s ease,
        border-color .22s ease,
        background .22s ease;
}

.contact-direct-links a:hover{
    transform:translateY(-3px);
    background:rgba(255,255,255,.075);
    border-color:rgba(156,255,99,.28);
}

.contact-direct-links__icon{
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--contact-neon);
    background:rgba(156,255,99,.08);
    border-radius:15px;
}

.contact-direct-links__icon--whatsapp{
    color:#07341e;
    background:linear-gradient(135deg,#f2d777,#ddb454);
}

.contact-direct-links__icon svg{
    width:23px;
}

.contact-direct-links small{
    display:block;
    color:rgba(255,255,255,.48);
    font-size:.55rem;
    font-weight:850;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.contact-direct-links strong{
    display:block;
    margin-top:4px;
    font-size:.82rem;
}

/* FORM */

.contact-form-card{
    position:relative;
    overflow:hidden;
    padding:clamp(26px,4vw,38px);
    background:
        radial-gradient(circle at 90% 7%,rgba(156,255,99,.14),transparent 28%),
        linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.04));
    border:1px solid rgba(156,255,99,.18);
    border-radius:28px;
    box-shadow:0 28px 62px rgba(0,0,0,.23);
    backdrop-filter:blur(9px);
}

.contact-form-card::before{
    content:"";
    position:absolute;
    top:0;
    left:30px;
    right:30px;
    height:3px;
    background:linear-gradient(90deg,var(--contact-gold),var(--contact-neon));
}

.contact-form-card__top{
    display:grid;
    grid-template-columns:54px minmax(0,1fr);
    align-items:center;
    gap:14px;
}

.contact-form-card__icon{
    width:54px;
    height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#07341e;
    background:linear-gradient(135deg,#f2d777,#ddb454);
    border-radius:17px;
    box-shadow:0 12px 24px rgba(0,0,0,.14);
}

.contact-form-card__icon svg{
    width:25px;
    height:25px;
}

.contact-form-card__top small{
    color:var(--contact-neon);
    font-size:.57rem;
    font-weight:850;
    letter-spacing:.10em;
    text-transform:uppercase;
}

.contact-form-card__top strong{
    display:block;
    margin-top:4px;
    color:#fff;
    font-size:1rem;
}

.contact-form-card>p{
    margin:15px 0 0;
    color:rgba(255,255,255,.64);
    font-size:.77rem;
    line-height:1.65;
}

/* Classe exclusiva para não conflitar com o CSS geral do site */

.ea-contact-form{
    display:block;
    width:100%;
    margin:22px 0 0;
    padding:0;
    color:#fff;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
}

.ea-contact-form .contact-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    width:100%;
    margin:0;
    padding:0;
}

.ea-contact-form label{
    display:flex;
    flex-direction:column;
    gap:7px;
    min-width:0;
    margin:0;
}

.ea-contact-form label>span{
    display:block;
    color:rgba(255,255,255,.82);
    font-size:.64rem;
    font-weight:750;
    line-height:1.35;
}

.ea-contact-form input,
.ea-contact-form select,
.ea-contact-form textarea{
    box-sizing:border-box;
    width:100%;
    max-width:100%;
    margin:0;
    padding:13px 14px;
    color:#fff;
    font:inherit;
    font-size:.78rem;
    line-height:1.4;
    background:rgba(2,42,22,.72) !important;
    border:1px solid rgba(156,255,99,.18) !important;
    border-radius:13px !important;
    outline:none;
    box-shadow:none;
    appearance:none;
    -webkit-appearance:none;
    transition:
        border-color .2s ease,
        background-color .2s ease,
        box-shadow .2s ease;
}

.ea-contact-form input,
.ea-contact-form select{
    min-height:50px;
}

.ea-contact-form textarea{
    display:block;
    min-height:145px;
    max-height:320px;
    resize:vertical;
}

.ea-contact-form input::placeholder,
.ea-contact-form textarea::placeholder{
    color:rgba(255,255,255,.42);
    opacity:1;
}

.ea-contact-form input:hover,
.ea-contact-form select:hover,
.ea-contact-form textarea:hover{
    background:rgba(3,55,29,.82) !important;
    border-color:rgba(156,255,99,.29) !important;
}

.ea-contact-form input:focus,
.ea-contact-form select:focus,
.ea-contact-form textarea:focus{
    color:#fff;
    background:rgba(3,61,32,.94) !important;
    border-color:rgba(156,255,99,.62) !important;
    box-shadow:
        0 0 0 3px rgba(156,255,99,.08),
        0 0 20px rgba(156,255,99,.06);
}

.ea-contact-form select{
    padding-right:42px;
    color:rgba(255,255,255,.90);
    cursor:pointer;
    background-image:
        linear-gradient(45deg,transparent 50%,var(--contact-neon) 50%),
        linear-gradient(135deg,var(--contact-neon) 50%,transparent 50%) !important;
    background-position:
        calc(100% - 18px) 21px,
        calc(100% - 13px) 21px !important;
    background-size:
        5px 5px,
        5px 5px !important;
    background-repeat:no-repeat !important;
}

.ea-contact-form select option{
    color:#102219;
    background:#fff;
}

.ea-contact-form .contact-form-full{
    grid-column:1/-1;
}

/* Corrige fundo e texto do preenchimento automático no Chrome */

.ea-contact-form input:-webkit-autofill,
.ea-contact-form input:-webkit-autofill:hover,
.ea-contact-form input:-webkit-autofill:focus,
.ea-contact-form textarea:-webkit-autofill,
.ea-contact-form textarea:-webkit-autofill:hover,
.ea-contact-form textarea:-webkit-autofill:focus,
.ea-contact-form select:-webkit-autofill{
    -webkit-text-fill-color:#fff;
    caret-color:#fff;
    box-shadow:
        0 0 0 1000px #073b22 inset,
        0 0 0 3px rgba(156,255,99,.07);
    border-color:rgba(156,255,99,.36) !important;
    transition:background-color 9999s ease-out;
}

.contact-submit,
.contact-final-button{
    position:relative;
    overflow:hidden;
    display:grid;
    grid-template-columns:48px minmax(0,1fr) 22px;
    align-items:center;
    gap:12px;
    width:100%;
    min-height:70px;
    margin-top:17px;
    padding:10px 16px 10px 11px;
    color:#fff;
    font-family:inherit;
    text-align:left;
    background:linear-gradient(135deg,#08723f,#0b914d);
    border:1px solid rgba(156,255,99,.43);
    border-radius:999px;
    box-shadow:
        0 18px 36px rgba(0,0,0,.25),
        0 0 22px rgba(156,255,99,.10);
    cursor:pointer;
    transition:
        transform .22s ease,
        box-shadow .22s ease,
        border-color .22s ease;
}

.contact-submit::before,
.contact-final-button::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(
        110deg,
        transparent 20%,
        rgba(255,255,255,.14) 48%,
        transparent 74%
    );
    transform:translateX(-140%);
    transition:transform .72s ease;
}

.contact-submit:hover,
.contact-final-button:hover{
    transform:translateY(-3px);
    border-color:rgba(156,255,99,.70);
    box-shadow:
        0 24px 46px rgba(0,0,0,.30),
        0 0 30px rgba(156,255,99,.18);
}

.contact-submit:hover::before,
.contact-final-button:hover::before{
    transform:translateX(140%);
}

.contact-submit__icon,
.contact-final-button__icon{
    position:relative;
    z-index:2;
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#07341e;
    background:linear-gradient(135deg,#f2d777,#ddb454);
    border-radius:50%;
    transform:none !important;
}

.contact-submit__icon svg,
.contact-final-button__icon svg{
    width:23px;
    height:23px;
    transform:none !important;
}

.contact-submit>span:nth-child(2),
.contact-final-button>span:nth-child(2){
    position:relative;
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
}

.contact-submit small,
.contact-final-button small{
    color:rgba(200,255,210,.78);
    font-size:.56rem;
    font-weight:850;
    letter-spacing:.10em;
    text-transform:uppercase;
}

.contact-submit strong,
.contact-final-button strong{
    color:#fff;
    font-size:.90rem;
}

.contact-submit b,
.contact-final-button b{
    position:relative;
    z-index:2;
    color:var(--contact-neon);
    transition:transform .22s ease;
}

.contact-submit:hover b{
    transform:translateX(5px);
}

.contact-form-note{
    display:block;
    margin-top:12px;
    color:rgba(255,255,255,.46);
    font-size:.57rem;
    line-height:1.5;
}

/* REDES SOCIAIS */

.contact-social-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:16px;
}

.contact-social-card{
    position:relative;
    overflow:hidden;
    min-height:265px;
    padding:22px;
    color:inherit;
    text-decoration:none;
    background:linear-gradient(145deg,#fff,#edf5e9);
    border:1px solid rgba(13,102,54,.11);
    border-radius:20px;
    box-shadow:0 16px 34px rgba(5,48,25,.07);
    transition:
        transform .23s ease,
        box-shadow .23s ease,
        border-color .23s ease;
}

.contact-social-card:before{
    content:"";
    position:absolute;
    top:0;
    left:22px;
    right:22px;
    height:3px;
    background:linear-gradient(90deg,var(--contact-gold),var(--contact-neon));
}

.contact-social-card:hover{
    transform:translateY(-6px);
    box-shadow:0 25px 50px rgba(5,48,25,.13);
    border-color:rgba(25,132,70,.23);
}

.contact-social-card__icon{
    width:54px;
    height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#118047;
    background:rgba(156,255,99,.13);
    border-radius:16px;
}

.contact-social-card__icon svg{
    width:25px;
    height:25px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
}

.contact-social-card--facebook .contact-social-card__icon svg,
.contact-social-card--youtube .contact-social-card__icon svg,
.contact-social-card--tiktok .contact-social-card__icon svg{
    fill:currentColor;
    stroke:none;
}

.contact-social-card small{
    display:block;
    margin-top:20px;
    color:#168049;
    font-size:.56rem;
    font-weight:850;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.contact-social-card strong{
    display:block;
    margin-top:5px;
    color:var(--contact-ink);
    font-size:1rem;
}

.contact-social-card p{
    color:var(--contact-muted);
    font-size:.72rem;
    line-height:1.55;
}

.contact-social-card b{
    position:absolute;
    left:22px;
    bottom:20px;
    color:#0d6f3d;
    font-size:.66rem;
    font-weight:850;
}

/* MAPA */

.contact-location-section{
    color:#fff;
    background:
        radial-gradient(circle at 85% 12%,rgba(156,255,99,.12),transparent 25%),
        linear-gradient(135deg,#032716,#064426);
}

.contact-location-grid{
    display:grid;
    grid-template-columns:minmax(0,.8fr) minmax(480px,1.2fr);
    align-items:center;
    gap:clamp(52px,7vw,100px);
}

.contact-location-copy h2{
    color:#fff;
}

.contact-location-copy p{
    color:rgba(255,255,255,.64);
    line-height:1.75;
}

.contact-location-points{
    display:grid;
    gap:10px;
    margin-top:22px;
}

.contact-location-points span{
    display:flex;
    align-items:center;
    gap:8px;
    color:rgba(255,255,255,.74);
    font-size:.74rem;
    font-weight:750;
}

.contact-location-points svg{
    width:15px;
    color:var(--contact-neon);
}

.contact-map{
    position:relative;
    overflow:hidden;
    min-height:520px;
    border:1px solid rgba(156,255,99,.18);
    border-radius:28px;
    box-shadow:0 28px 58px rgba(0,0,0,.22);
}

.contact-map iframe{
    width:100%;
    height:100%;
    min-height:520px;
    display:block;
    filter:saturate(.82) contrast(.96);
}

.contact-map__caption{
    position:absolute;
    left:18px;
    right:18px;
    bottom:18px;
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    align-items:center;
    gap:12px;
    padding:14px;
    color:#fff;
    background:rgba(3,47,24,.88);
    border:1px solid rgba(156,255,99,.20);
    border-radius:16px;
    backdrop-filter:blur(10px);
}

.contact-map__caption>span{
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#07341e;
    background:linear-gradient(135deg,#f2d777,#ddb454);
    border-radius:14px;
}

.contact-map__caption svg{
    width:22px;
}

.contact-map__caption small{
    display:block;
    color:var(--contact-neon);
    font-size:.55rem;
    font-weight:850;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.contact-map__caption strong{
    display:block;
    margin-top:4px;
    font-size:.80rem;
}

/* FINAL */

.contact-final-section{
    padding:clamp(76px,8vw,118px) 0;
    color:#fff;
    background:linear-gradient(135deg,#021e11,#053b21);
}

.contact-final-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(380px,.82fr);
    align-items:center;
    gap:clamp(52px,7vw,100px);
}

.contact-final-copy h2{
    color:#fff;
}

.contact-final-copy p{
    color:rgba(255,255,255,.64);
    line-height:1.75;
}

.contact-final-button{
    color:#fff;
    text-decoration:none;
    margin-top:0;
}

.contact-final-button:hover b{
    transform:translateY(-5px);
}

/* REVEAL */

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

.contact-reveal.is-visible{
    opacity:1;
    transform:none;
}

/* RESPONSIVO */

@media(max-width:1150px){
    .contact-hero-grid,
    .contact-location-grid,
    .contact-final-grid{
        grid-template-columns:1fr;
    }

    .contact-heading{
        grid-template-columns:1fr;
        gap:20px;
    }

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

    .contact-map{
        max-width:850px;
    }
}

@media(max-width:760px){
    .contact-section{
        padding:64px 0;
    }

    .contact-hero{
        padding:64px 0;
    }

    .contact-hero h1{
        font-size:clamp(2.55rem,13vw,4rem);
    }

    .contact-heading h2,
    .contact-location-copy h2,
    .contact-final-copy h2{
        font-size:clamp(2rem,10vw,3rem);
    }

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

    .ea-contact-form .contact-form-full{
        grid-column:auto;
    }

    .ea-contact-form textarea{
        min-height:130px;
    }

    .ea-contact-form .contact-submit{
        grid-template-columns:44px minmax(0,1fr) 18px;
        min-height:66px;
    }

    .ea-contact-form .contact-submit__icon{
        width:44px;
        height:44px;
    }

    .ea-contact-form .contact-submit strong{
        font-size:.78rem;
    }

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

    .contact-social-card{
        min-height:235px;
    }

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

@media(prefers-reduced-motion:reduce){
    .contact-reveal{
        opacity:1;
        transform:none;
        transition:none;
    }
}
