/* ===== CORES DA MARCA ===== */

:root {
--primary-color:#0F5F56;
--accent-color:#F47A20;
--background-color:#F5F7F6;
--dark-color:#1F2933;
--text-color:#1F2933;
--text-light:#6b7280;
--white:#ffffff;

/* Modern design tokens */
--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
--border-radius: 12px;
--border-radius-lg: 16px;
--transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Dark Mode */
[data-theme="dark"] {
--background-color: #1F2933;
--text-color: #F5F7F6;
--text-light: #9CA3AF;
--white: #1F2933;
--dark-color: #F5F7F6;
--shadow-sm: 0 1px 2px 0 rgb(255 255 255 / 0.1);
--shadow-md: 0 4px 6px -1px rgb(255 255 255 / 0.1), 0 2px 4px -2px rgb(255 255 255 / 0.1);
--shadow-lg: 0 10px 15px -3px rgb(255 255 255 / 0.1), 0 4px 6px -4px rgb(255 255 255 / 0.1);
--shadow-xl: 0 20px 25px -5px rgb(255 255 255 / 0.1), 0 8px 10px -6px rgb(255 255 255 / 0.1);
}

[data-theme="dark"] nav {
    background: rgba(31, 41, 51, 0.95);
}

[data-theme="dark"] nav ul {
    background: rgba(31, 41, 51, 0.98);
}

[data-theme="dark"] .dropdown-menu {
    background: var(--dark-color);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

/* Animations */
@keyframes pulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.05); }
}

@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ===== CONFIGURAÇÕES GLOBAIS ===== */

*{
margin:0;
padding:0;
box-sizing:border-box;
}

body{
background:var(--background-color);
color:var(--text-color);
line-height:1.7;
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

/* ===== NAVBAR ===== */

nav{
position:sticky;
top:0;
z-index:1000;
display:flex;
justify-content:space-between;
align-items:center;
padding:1.5rem 6%;
background:rgba(255, 255, 255, 0.95);
backdrop-filter: blur(10px);
border-bottom:2px solid var(--primary-color);
box-shadow: var(--shadow-sm);
transition: var(--transition);
animation: fadeInDown 0.8s ease-out;
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* LOGO */

.logo img{
height:60px;
transition: var(--transition);
}

.logo img:hover{
transform: scale(1.05);
}

/* MENU */

nav ul{
display:flex;
list-style:none;
gap:1rem;
align-items:center;
}

nav a{
text-decoration:none;
color:var(--dark-color);
font-weight:500;
font-size:0.95rem;
padding:0.5rem 0.9rem;
border-radius:8px;
transition: var(--transition);
position: relative;
}

nav a:hover{
color:var(--primary-color);
background:rgba(15, 95, 86, 0.1);
}

/* Active page indicator */

nav a.active {
    color: var(--primary-color);
    background: rgba(15, 95, 86, 0.15);
    font-weight: 600;
    position: relative;
}

nav a.active::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 50%;
    transform: translateX(-50%);
    width: 20px;
    height: 2px;
    background: var(--accent-color);
    border-radius: 1px;
}

/* BOTÃO ORÇAMENTO */

.nav-btn{
background:linear-gradient(135deg, var(--accent-color), #e66a1a);
color:white;
padding:0.75rem 1.5rem;
border-radius:8px;
font-weight:600;
box-shadow: var(--shadow-md);
transition: var(--transition);
border: none;
cursor: pointer;
}

.nav-btn:hover{
transform:translateY(-2px);
box-shadow: var(--shadow-lg);
}

/* ===== THEME TOGGLE ===== */

.theme-btn {
background: none;
border: none;
font-size: 1.5rem;
cursor: pointer;
color: var(--text-color);
transition: var(--transition);
padding: 0.5rem;
border-radius: 8px;
margin-left: 1rem;
}

.theme-btn:hover {
background: rgba(15, 95, 86, 0.1);
color: var(--primary-color);
}

/* ===== BOTÃO DE MENU MOBILE ===== */

.menu-btn {
display: none;
background: none;
border: none;
cursor: pointer;
color: var(--text-color);
transition: var(--transition);
padding: 0.5rem;
border-radius: 8px;
}

.menu-btn:hover {
background: rgba(15, 95, 86, 0.1);
color: var(--primary-color);
}

.hamburger {
transition: var(--transition);
}

.hamburger path {
fill: none;
stroke: currentColor;
stroke-width: 2;
stroke-linecap: round;
transition: var(--transition);
}

.menu-btn.active .hamburger path:nth-child(1) {
transform: rotate(45deg) translate(5px, 5px);
}

.menu-btn.active .hamburger path:nth-child(2) {
opacity: 0;
}

.menu-btn.active .hamburger path:nth-child(3) {
transform: rotate(-45deg) translate(7px, -6px);
}

/* ===== DROPDOWN SERVIÇOS ===== */

.dropdown{
position:relative;
}

.dropdown-menu{
position:absolute;
top:100%;
left:0;
background:white;
list-style:none;
padding:10px 0;
margin:0;
display:none;
min-width:200px;
box-shadow:0 5px 15px rgba(0,0,0,0.1);
}

.dropdown-menu li{
padding:10px 20px;
}

.dropdown-menu li a{
color:var(--dark-color);
display:block;
}

.dropdown-menu li:hover{
background:#f5f5f5;
}

.dropdown:hover .dropdown-menu{
display:block;
}


/* ===== HERO ===== */

.hero{
height:85vh;

background:
linear-gradient(rgba(0,0,0,0.55),rgba(0,0,0,0.55)),
url("https://images.unsplash.com/photo-1492724441997-5dc865305da7")
center/cover no-repeat;

display:flex;
align-items:center;
justify-content:center;

text-align:center;

color:white;
}

.hero h1{
font-size:50px;
margin-bottom:15px;
}

.hero p{
font-size:20px;
margin-bottom:25px;
}


/* BOTÃO PRINCIPAL */

.btn{
background:var(--primary-color);
color:white;

padding:13px 32px;

border-radius:6px;

text-decoration:none;
font-weight:bold;

transition:0.25s;
animation: pulse 2s infinite;
}

.btn:hover{
opacity:0.85;
}


/* ===== SERVIÇOS ===== */

.services{
padding:80px 10%;
text-align:center;
background:white;
}

.services h2{
margin-bottom:45px;
font-size:34px;
}

.service-box{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:30px;
}

.card{
background:#f9fafb;
padding:35px;
border-radius:10px;
box-shadow:0 8px 20px rgba(0,0,0,0.05);
transition:0.25s;
}

.card:hover{
transform:translateY(-5px);
}

.card h3{
margin-bottom:15px;
color:var(--primary-color);
}


/* ===== PORTFÓLIO ===== */

.portfolio{
padding:80px 10%;
text-align:center;
background:var(--white);
}

.portfolio h2{
font-size:34px;
margin-bottom:15px;
color:var(--dark-color);
}

.portfolio p{
max-width:600px;
margin:0 auto 50px auto;
color:#6b7280;
}

.portfolio-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:30px;
}

.portfolio-card{
background:#f9fafb;
padding:35px;
border-radius:10px;
box-shadow:0 8px 20px rgba(0,0,0,0.05);
transition:0.25s;
text-align:left;
}

.portfolio-card:hover{
transform:translateY(-6px);
}

.portfolio-card h3{
margin-bottom:10px;
color:var(--primary-color);
}

.portfolio-card p{
margin-bottom:18px;
color:#6b7280;
font-size:14px;
}

.portfolio-card ul{
margin-bottom:20px;
padding-left:18px;
}

.portfolio-card li{
margin-bottom:6px;
font-size:14px;
}

.portfolio-card a{
text-decoration:none;
background:var(--accent-color);
color:white;
padding:10px 20px;
border-radius:6px;
font-size:14px;
font-weight:600;
display:inline-block;
transition:0.25s;
}

.portfolio-card a:hover{
opacity:0.9;
}


/* ===== CONTACT HERO ===== */

.contact-hero{

height:45vh;

background:
linear-gradient(rgba(0,0,0,0.55),rgba(0,0,0,0.55)),
url("https://images.unsplash.com/photo-1556761175-b413da4baf72")
center/cover no-repeat;

display:flex;
flex-direction:column;
align-items:center;
justify-content:center;

text-align:center;

color:white;

padding:40px;
}

.contact-hero h1{
font-size:42px;
margin-bottom:10px;
}

.contact-hero p{
max-width:600px;
font-size:18px;
}


/* ===== CONTACT INFO ===== */

.contact-info{
padding:80px 10%;
background:var(--background-color);
}

.contact-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
gap:30px;
text-align:center;
}

.contact-card{
background:white;
padding:35px;
border-radius:10px;
box-shadow:0 8px 20px rgba(0,0,0,0.05);
transition:0.25s;
}

.contact-card:hover{
transform:translateY(-5px);
}

.contact-card h3{
color:var(--primary-color);
margin-bottom:10px;
font-size:20px;
}

.contact-card p{
color:#6b7280;
font-size:15px;
}


/* ===== CALL TO ACTION ===== */

.cta{
padding:80px 10%;
text-align:center;
background:var(--primary-color);
color:white;
}

.cta h2{
font-size:34px;
margin-bottom:25px;
}

.cta a{
background:white;
color:var(--primary-color);
padding:13px 32px;
border-radius:6px;
text-decoration:none;
font-weight:bold;
}


/* ===== FOOTER ===== */

footer{
background:var(--dark-color);
color:#d1d5db;
text-align:center;
padding:30px;
font-size:14px;
}

.cta{
    background:#0f766e;
    color:white;
    text-align:center;
    padding:60px 20px;
}

.cta h2{
    font-size:32px;
    margin-bottom:10px;
}

.cta p{
    margin-bottom:25px;
    font-size:18px;
}

.cta .btn{
    background:#f97316;
    color:white;
    padding:14px 30px;
    text-decoration:none;
    border-radius:6px;
    font-weight:bold;
}

.cta .btn:hover{
    background:#ea580c;
}

.contact-container{
display:flex;
gap:40px;
padding:60px 10%;
}

.contact-form{
flex:1;
display:flex;
flex-direction:column;
gap:20px;
background: var(--white);
padding: 40px;
border-radius: var(--border-radius-lg);
box-shadow: var(--shadow-lg);
border: 1px solid rgba(15, 95, 86, 0.1);
}

.contact-form h2 {
    color: var(--primary-color);
    font-size: 28px;
    margin-bottom: 10px;
    text-align: center;
    animation: fadeInUp 0.6s ease-out;
}

.contact-form p {
    color: var(--text-light);
    text-align: center;
    margin-bottom: 20px;
    animation: fadeInUp 0.6s ease-out 0.2s both;
}

.contact-form input,
.contact-form select,
.contact-form textarea{
padding:16px 20px;
border:2px solid #e5e7eb;
border-radius: var(--border-radius);
font-size: 16px;
transition: var(--transition);
background: var(--background-color);
color: var(--text-color);
width: 100%;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{
outline: none;
border-color: var(--primary-color);
box-shadow: 0 0 0 3px rgba(15, 95, 86, 0.1);
}

.contact-form label{
font-weight: 600;
color: var(--text-color);
margin-bottom: 8px;
display: block;
}

.form-btn {
    background: linear-gradient(135deg, var(--accent-color), #e66a1a);
    color: white;
    padding: 16px 24px;
    border: none;
    border-radius: var(--border-radius);
    cursor: pointer;
    font-weight: 600;
    font-size: 16px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    transition: var(--transition);
    box-shadow: var(--shadow-md);
    position: relative;
    overflow: hidden;
}

.form-btn:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
}

.form-btn:active {
    transform: translateY(0);
}

.map{
    flex:0.9;
}

.contact-cta{
    text-align:center;
    padding:70px 20px;
    background:#0f766e;
    color:white;
}

.cta-btn{
    background:#f97316;
    color:white;
    padding:14px 30px;
    text-decoration:none;
    border-radius:6px;
    font-weight:bold;
}

/* BUTTON */

.form-btn {
    background: var(--accent-color);
    color: white;
    padding: 14px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 600;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.form-btn:hover {
    transform: translateY(-2px);
}

/* LOADER */

.loader {
    width: 20px;
    height: 20px;
    border: 3px solid rgba(255, 255, 255, 0.3);
    border-top: 3px solid white;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

.hidden {
    display: none;
}

.popup.hidden {
    display: none;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* POPUP */

.popup {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    backdrop-filter: blur(5px);
}

.popup-content {
    background: var(--white);
    padding: 40px;
    border-radius: var(--border-radius-lg);
    text-align: center;
    max-width: 400px;
    box-shadow: var(--shadow-xl);
    animation: fadeInUp 0.4s ease;
    border: 1px solid rgba(15, 95, 86, 0.1);
}

.popup-content h3 {
    margin-bottom: 15px;
    color: var(--primary-color);
    font-size: 24px;
}

.popup-content p {
    margin-bottom: 25px;
    color: var(--text-light);
}

.popup-content button {
    margin-top: 0;
    padding: 12px 24px;
    background: linear-gradient(135deg, var(--primary-color), #0a4a42);
    color: white;
    border: none;
    border-radius: var(--border-radius);
    cursor: pointer;
    font-weight: 600;
    transition: var(--transition);
}

.popup-content button:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

/* MOBILE */

@media (max-width: 768px) {
    .contact-container {
        flex-direction: column;
    }
}