/* ==========================================================
   CONTATO — LAYOUT RESPONSIVO
   Equilibra a composição em monitores grandes sem perder
   legibilidade em notebooks, tablets e celulares.
========================================================== */

body.contact-page{
    min-height:100vh;
    min-height:100svh;
    background:#050505;
    color:#fff;
    overflow-x:hidden;
}

.contact-main{
    min-height:100vh;
    min-height:100svh;
    background:#050505;
}

.contact-hero{
    position:relative;
    isolation:isolate;
    min-height:100vh;
    min-height:100svh;
    display:flex;
    align-items:center;
    padding:
        clamp(112px, 11vh, 150px)
        clamp(28px, 6vw, 124px)
        clamp(52px, 7vh, 90px);
    overflow:hidden;
}

.contact-bg-video{
    position:absolute;
    inset:0;
    z-index:-3;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
    pointer-events:none;
}

.contact-overlay{
    position:absolute;
    inset:0;
    z-index:-2;
    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,.90) 0%,
            rgba(0,0,0,.72) 30%,
            rgba(0,0,0,.43) 56%,
            rgba(0,0,0,.18) 82%,
            rgba(0,0,0,.13) 100%
        ),
        linear-gradient(180deg, rgba(0,0,0,.13), rgba(0,0,0,.22));
}

.contact-wrap{
    position:relative;
    z-index:2;
    width:min(100%, 1400px);
    margin-inline:auto;
    display:grid;
    grid-template-columns:minmax(360px, 1fr) minmax(440px, 520px);
    gap:clamp(64px, 7vw, 140px);
    align-items:center;
}

.contact-copy{
    width:100%;
    max-width:650px;
    align-self:center;
}

.contact-copy h1{
    max-width:650px;
    margin:0 0 clamp(22px, 2.2vw, 30px);
    color:#fff;
    font-size:clamp(54px, 4.4vw, 86px);
    line-height:.91;
    letter-spacing:.09em;
    text-shadow:0 8px 28px rgba(0,0,0,.38);
}

.contact-copy p{
    max-width:540px;
    margin:0;
    color:rgba(255,255,255,.78);
    font-size:clamp(16px, 1.05vw, 19px);
    line-height:1.58;
}

.contact-mini-cards{
    width:100%;
    max-width:590px;
    margin-top:clamp(30px, 3vw, 42px);
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:14px;
}

.contact-mini-card{
    min-height:84px;
    padding:17px 16px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:20px;
    background:rgba(255,255,255,.055);
    color:#fff;
    text-decoration:none;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:9px;
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    transition:transform .25s ease, background .25s ease, border-color .25s ease;
}

.contact-mini-card:hover{
    transform:translateY(-3px);
    background:rgba(255,255,255,.10);
    border-color:rgba(255,255,255,.20);
}

.contact-mini-card i{
    color:#f1b083;
    font-size:20px;
}

.contact-mini-card span{
    font-size:13px;
    font-weight:900;
    letter-spacing:.08em;
}

.contact-form{
    width:100%;
    max-width:520px;
    justify-self:end;
    margin:0;
    padding:clamp(26px, 2.1vw, 34px) clamp(30px, 2.6vw, 42px);
    border:1px solid rgba(255,255,255,.17);
    border-radius:28px;
    background:rgba(8,8,8,.38);
    backdrop-filter:blur(26px) saturate(120%);
    -webkit-backdrop-filter:blur(26px) saturate(120%);
    box-shadow:
        0 34px 90px rgba(0,0,0,.52),
        inset 0 1px 0 rgba(255,255,255,.07);
}

.contact-form-note{
    display:block;
    width:100%;
    margin:0 0 18px;
    color:rgba(255,255,255,.86);
    font-size:clamp(10px, .62vw, 12px);
    font-weight:700;
    letter-spacing:.15em;
    line-height:1.35;
    overflow-wrap:anywhere;
}

.contact-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}

.contact-form label{
    display:block;
    margin-bottom:12px;
    color:#fff;
    text-transform:uppercase;
    letter-spacing:.18em;
    font-size:10px;
    font-weight:900;
}

.contact-form input,
.contact-form textarea,
.contact-form select{
    width:100%;
    margin-top:7px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:9px;
    background:rgba(0,0,0,.62);
    color:#fff;
    outline:none;
    font-size:15px;
    transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.contact-form input,
.contact-form select{
    min-height:46px;
    height:46px;
    padding:11px 15px;
}

.contact-form textarea{
    min-height:118px;
    height:118px;
    padding:12px 15px;
    resize:vertical;
}

.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus{
    border-color:rgba(241,176,131,.58);
    background:rgba(0,0,0,.72);
    box-shadow:0 0 0 3px rgba(241,176,131,.10);
}

.contact-form select{
    appearance:none;
    -webkit-appearance:none;
    padding-right:42px;
    background:
        linear-gradient(45deg, transparent 50%, rgba(255,255,255,.72) 50%),
        linear-gradient(135deg, rgba(255,255,255,.72) 50%, transparent 50%),
        rgba(0,0,0,.62);
    background-position:
        calc(100% - 22px) 20px,
        calc(100% - 16px) 20px,
        0 0;
    background-size:6px 6px, 6px 6px, 100% 100%;
    background-repeat:no-repeat;
}

.contact-form button{
    width:100%;
    height:50px;
    margin-top:6px;
    border:1px solid rgba(255,255,255,.52);
    border-radius:999px;
    background:rgba(255,255,255,.045);
    color:#fff;
    font-weight:900;
    letter-spacing:.08em;
    cursor:pointer;
    transition:transform .25s ease, background .25s ease, border-color .25s ease;
}

.contact-form button:hover{
    transform:translateY(-2px);
    background:rgba(255,255,255,.13);
    border-color:rgba(255,255,255,.70);
}

.contact-form button:focus-visible,
.contact-mini-card:focus-visible{
    outline:2px solid rgba(241,176,131,.85);
    outline-offset:3px;
}

.contact-info,
.contact-page .site-footer{
    display:none;
}

/* Monitores muito largos: mantém o conteúdo centralizado e proporcional. */
@media (min-width:1600px){
    .contact-wrap{
        width:min(100%, 1420px);
        grid-template-columns:minmax(430px, 1fr) 520px;
    }

    .contact-copy h1{
        font-size:clamp(70px, 4.15vw, 88px);
    }
}

/* Notebook / desktop menor. */
@media (max-width:1180px){
    .contact-hero{
        padding-left:clamp(28px, 5vw, 58px);
        padding-right:clamp(28px, 5vw, 58px);
    }

    .contact-wrap{
        grid-template-columns:minmax(320px, 1fr) minmax(390px, 470px);
        gap:clamp(42px, 5vw, 66px);
    }

    .contact-copy h1{
        font-size:clamp(50px, 5.7vw, 70px);
    }
}

/* Telas baixas: compacta verticalmente sem cortar o conteúdo. */
@media (max-height:780px) and (min-width:901px){
    .contact-hero{
        align-items:flex-start;
        padding-top:100px;
        padding-bottom:32px;
    }

    .contact-wrap{
        margin-block:auto;
    }

    .contact-copy h1{
        font-size:clamp(48px, 5vw, 68px);
        margin-bottom:18px;
    }

    .contact-copy p{
        font-size:16px;
    }

    .contact-mini-cards{
        margin-top:24px;
    }

    .contact-mini-card{
        min-height:72px;
        padding:13px 14px;
    }

    .contact-form{
        padding:20px 30px 22px;
    }

    .contact-form-note{
        margin-bottom:12px;
    }

    .contact-form label{
        margin-bottom:9px;
    }

    .contact-form input,
    .contact-form select{
        min-height:41px;
        height:41px;
        padding-top:9px;
        padding-bottom:9px;
    }

    .contact-form select{
        background-position:
            calc(100% - 22px) 18px,
            calc(100% - 16px) 18px,
            0 0;
    }

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

    .contact-form button{
        height:44px;
        margin-top:3px;
    }
}

/* Tablet e celular: uma coluna e rolagem natural. */
@media (max-width:900px){
    .contact-hero{
        min-height:100svh;
        align-items:flex-start;
        padding:112px clamp(20px, 5vw, 42px) 58px;
        overflow:hidden;
    }

    .contact-overlay{
        background:
            linear-gradient(180deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.67) 45%, rgba(0,0,0,.78) 100%),
            rgba(0,0,0,.18);
    }

    .contact-bg-video{
        object-position:58% center;
    }

    .contact-wrap{
        width:min(100%, 680px);
        grid-template-columns:1fr;
        gap:40px;
    }

    .contact-copy,
    .contact-copy h1,
    .contact-copy p,
    .contact-mini-cards{
        max-width:none;
    }

    .contact-copy h1{
        font-size:clamp(48px, 10vw, 72px);
    }

    .contact-form{
        max-width:none;
        justify-self:stretch;
    }
}

@media (max-width:560px){
    .contact-hero{
        padding-top:104px;
        padding-left:18px;
        padding-right:18px;
        padding-bottom:42px;
    }

    .contact-wrap{
        gap:32px;
    }

    .contact-copy h1{
        margin-bottom:18px;
        font-size:clamp(43px, 13vw, 62px);
        letter-spacing:.07em;
    }

    .contact-copy p{
        font-size:15px;
    }

    .contact-mini-cards{
        margin-top:24px;
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:9px;
    }

    .contact-mini-card{
        min-height:70px;
        padding:13px 10px;
        border-radius:16px;
        gap:7px;
    }

    .contact-mini-card i{
        font-size:18px;
    }

    .contact-mini-card span{
        font-size:10px;
        letter-spacing:.04em;
    }

    .contact-form{
        padding:24px 20px 26px;
        border-radius:23px;
    }

    .contact-form-note{
        font-size:10px;
        letter-spacing:.12em;
    }

    .contact-row{
        grid-template-columns:1fr;
        gap:0;
    }

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

@media (prefers-reduced-motion:reduce){
    .contact-mini-card,
    .contact-form button{
        transition:none;
    }
}

/* Complementos da versão corrigida do formulário */
.contact-form-helper{
    margin:-6px 0 14px;
    color:rgba(255,255,255,.66);
    font-size:.78rem;
    line-height:1.45;
}

.contact-form-status{
    min-height:1.4em;
    margin:12px 0 0;
    color:rgba(255,255,255,.78);
    font-size:.78rem;
    line-height:1.5;
}

.contact-form-status a,
.contact-copy-message{
    color:#f1b083;
}

.contact-copy-message{
    appearance:none;
    border:0;
    padding:0;
    background:none;
    font:inherit;
    text-decoration:underline;
    cursor:pointer;
}


/* Envio direto do formulário */
.contact-honeypot{
    position:absolute !important;
    left:-9999px !important;
    width:1px !important;
    height:1px !important;
    opacity:0 !important;
    pointer-events:none !important;
}

.contact-form button:disabled{
    cursor:wait;
    opacity:.68;
    transform:none !important;
}

.contact-form-status.is-success{
    color:#b8e4c4;
}

.contact-form-status.is-error{
    color:#ffb1a8;
}


/* ==========================================================
   FIX MOBILE DEFINITIVO — CONTATO
   Evita corte horizontal do título e de qualquer bloco em iOS.
   Mantém o layout desktop inalterado.
========================================================== */
@media (max-width:900px){
    html,
    body.contact-page{
        width:100%;
        max-width:100%;
        overflow-x:clip !important;
    }

    body.contact-page .contact-main,
    body.contact-page .contact-hero{
        width:100%;
        max-width:100%;
        min-width:0;
    }

    body.contact-page .contact-hero{
        padding-left:max(18px, env(safe-area-inset-left));
        padding-right:max(18px, env(safe-area-inset-right));
        overflow-x:clip !important;
        overflow-y:visible;
    }

    body.contact-page .contact-wrap,
    body.contact-page .contact-copy,
    body.contact-page .contact-mini-cards,
    body.contact-page .contact-form,
    body.contact-page .contact-row,
    body.contact-page .contact-row > label{
        width:100%;
        max-width:100%;
        min-width:0;
    }

    body.contact-page .contact-copy h1{
        width:100%;
        max-width:100%;
        min-width:0;
        font-size:clamp(36px, 10.5vw, 44px) !important;
        line-height:.96 !important;
        letter-spacing:.025em !important;
        overflow:visible;
        white-space:normal;
        word-break:normal;
    }

    body.contact-page .contact-copy p{
        width:100%;
        max-width:100%;
        overflow-wrap:break-word;
    }

    body.contact-page .contact-form{
        box-sizing:border-box;
        justify-self:stretch;
    }

    body.contact-page .contact-form input,
    body.contact-page .contact-form select,
    body.contact-page .contact-form textarea,
    body.contact-page .contact-form button{
        width:100%;
        max-width:100%;
        min-width:0;
        box-sizing:border-box;
    }
}

@media (max-width:560px){
    body.contact-page .contact-hero{
        padding-left:max(16px, env(safe-area-inset-left));
        padding-right:max(16px, env(safe-area-inset-right));
    }

    body.contact-page .contact-copy h1{
        font-size:clamp(35px, 10.2vw, 42px) !important;
        letter-spacing:.018em !important;
    }

    body.contact-page .contact-form{
        padding-left:18px;
        padding-right:18px;
    }
}

@media (max-width:390px){
    body.contact-page .contact-copy h1{
        font-size:clamp(33px, 10vw, 39px) !important;
        letter-spacing:.012em !important;
    }
}

@media (max-width:340px){
    body.contact-page .contact-copy h1{
        font-size:32px !important;
        letter-spacing:0 !important;
    }

    body.contact-page .contact-mini-cards{
        grid-template-columns:1fr;
    }
}
