:root{
--bg:#202124;
--surface:#171717;
--text:#f1f3f4;
--muted:#bdc1c6;
--accent:#c62828;
--accent-strong:#a61e1e;
--header-h:86px;
}

*{margin:0;padding:0;box-sizing:border-box;font-family:"Segoe UI",Tahoma,sans-serif}
body{background:var(--bg);color:var(--text);min-height:100vh}

header{
background:#000;
padding:15px 60px;
display:flex;
justify-content:space-between;
align-items:center;
position:fixed;
width:100%;
top:0;
z-index:1000;
gap:18px;
flex-wrap:wrap;
}

.logo img{height:auto;max-height:70px;width:auto;display:block;max-width:200px}

nav ul{display:flex;list-style:none;gap:30px;flex-wrap:wrap;justify-content:flex-end}
nav a{color:#bbb;text-decoration:none;font-weight:700;transition:0.3s}
nav a:hover{color:#fff}

main{
padding:calc(var(--header-h) + 26px) 0 30px;
min-height:calc(100vh - 70px);
display:flex;
align-items:center;
}

.container{
background:var(--surface);
padding:34px;
border-radius:12px;
width:min(1100px,92%);
margin:0 auto;
box-shadow:0 10px 24px rgba(0,0,0,0.28);
}

.container h1{margin-bottom:8px;color:var(--text);font-size:2rem}
.container p{margin-bottom:20px;color:var(--muted);line-height:1.5}

.contato-layout{
display:grid;
grid-template-columns:minmax(280px,1fr) minmax(320px,1fr);
gap:24px;
align-items:stretch;
}

.contato-info,
.contato-mapa{
display:flex;
flex-direction:column;
}

.contato-info{
justify-content:center;
padding-right:8px;
}

.item{margin-bottom:14px;font-size:1.08rem;color:var(--text)}

.item a{color:var(--text);text-decoration:none;font-weight:700}
.item a:hover{text-decoration:underline}

.map-link{
display:inline-flex;
align-items:center;
justify-content:center;
padding:12px 18px;
background:var(--accent);
color:#fff;
border-radius:8px;
font-weight:800;
text-decoration:none;
transition:0.25s;
margin-top:6px;
}

.map-link:hover{background:var(--accent-strong);text-decoration:none}

button.map-link{border:none;appearance:none;cursor:pointer}

.contact-admin{
margin-top:14px;
display:inline-flex;
align-items:center;
justify-content:center;
}

.contact-modal-backdrop{
position:fixed;
inset:0;
background:rgba(0,0,0,0.72);
display:none;
align-items:center;
justify-content:center;
padding:18px;
z-index:2000;
}

.contact-modal-backdrop.open{display:flex}

.contact-modal{
width:min(760px,100%);
background:#141414;
border-radius:18px;
border:1px solid rgba(255,255,255,0.08);
box-shadow:0 22px 60px rgba(0,0,0,0.45);
padding:22px;
}

.contact-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}
.contact-modal-head h2{font-size:1.5rem;margin-bottom:6px;color:#fff}
.contact-modal-head p{color:var(--muted);line-height:1.5}
.contact-close-btn{background:transparent;border:none;color:#fff;font-size:1.4rem;cursor:pointer;line-height:1;padding:4px 8px}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.contact-field{display:grid;gap:8px}
.contact-field.full{grid-column:1 / -1}
.contact-field label{font-weight:700;color:#e7e7e7}
.contact-field input,.contact-field textarea{
width:100%;
border-radius:10px;
border:1px solid rgba(255,255,255,0.12);
background:#1e1e1e;
color:var(--text);
padding:12px 14px;
outline:none;
}
.contact-field textarea{min-height:92px;resize:vertical}
.contact-field input:focus,.contact-field textarea:focus{border-color:rgba(198,40,40,0.8);box-shadow:0 0 0 3px rgba(198,40,40,0.12)}
.contact-actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:18px}
.contact-actions .secondary-btn,.contact-actions .primary-btn{border:none;border-radius:10px;padding:12px 18px;font-weight:800;cursor:pointer}
.contact-actions .secondary-btn{background:#2a2a2a;color:#fff}
.contact-actions .primary-btn{background:var(--accent);color:#fff}
.contact-actions .primary-btn:hover{background:var(--accent-strong)}

.map-frame{
width:100%;
min-height:320px;
border:0;
border-radius:12px;
box-shadow:0 6px 14px rgba(0,0,0,0.12);
}

footer{background:#000;color:#aaa;text-align:center;padding:22px}

@media (max-width:900px){
header{padding:12px 20px}
nav ul{gap:15px}
.contato-layout{grid-template-columns:1fr}
.contato-info{padding-right:0}
}

@media (max-width:560px){
main{padding-top:96px}
.container{padding:24px}
.container h1{font-size:1.65rem}
.map-frame{min-height:260px}
}