/* =====================================================================
   Decojardim — Frontend (layout clone de decojardim.com)
   Tipografia: Poppins (títulos) + Roboto (corpo) + Rubik
   Verde #3e8148  |  Verde-claro #8cd102  |  Verde-escuro #07391f
   Cabeçalho claro, logótipo à esquerda, botão ORÇAMENTO à direita.
   ===================================================================== */
:root{
    --cor-primaria:#3e8148;
    --cor-secundaria:#278234;
    --header-bg:#ffffff;
    --header-texto:#1f3d28;
    --footer-bg:#07391f;
    --footer-texto:#c7d6cd;
    --escuro:#19311f;
    --texto:#4a4e57;
    --texto-claro:#6f7670;
    --cinza-fundo:#f4f7f3;
    --borda:#e3e7e0;
    --radius:10px;
    --shadow:0 10px 30px rgba(25,49,31,.08);
    --shadow-hover:0 18px 45px rgba(25,49,31,.16);
    --container:1180px;
    --transition:.25s ease;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
    font-family:'Roboto',Arial,Helvetica,sans-serif;
    color:var(--texto);
    font-size:16px;
    line-height:1.7;
    background:#fff;
    -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:'Poppins','Roboto',Arial,sans-serif;color:var(--escuro);font-weight:700;line-height:1.2}

.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 20px}

/* ----- Botões ----- */
.btn{
    display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
    font-family:'Poppins','Roboto',sans-serif;
    font-weight:600;font-size:.92rem;padding:.8rem 1.7rem;border-radius:50px;
    cursor:pointer;border:2px solid transparent;transition:var(--transition);
    text-align:center;text-transform:uppercase;letter-spacing:.4px;
}
.btn-lg{padding:.95rem 2.2rem;font-size:.98rem}
.btn-block{width:100%}
.btn-primary{background:var(--cor-primaria);color:#fff;border-color:var(--cor-primaria)}
.btn-primary:hover{background:#2f6537;border-color:#2f6537;transform:translateY(-2px);box-shadow:0 10px 22px rgba(62,129,72,.35)}
.btn-outline{background:transparent;color:#fff;border-color:rgba(255,255,255,.8)}
.btn-outline:hover{background:#fff;color:var(--escuro);border-color:#fff}

/* ----- Header (claro, logótipo à esquerda) ----- */
.site-header{
    position:sticky;top:0;z-index:1000;
    background:var(--header-bg);color:var(--header-texto);
    box-shadow:0 2px 14px rgba(25,49,31,.08);border-bottom:1px solid rgba(25,49,31,.06);
}
.header-inner{display:flex;align-items:center;gap:24px;min-height:var(--header-altura,86px)}
.brand{display:inline-flex;flex-shrink:0;margin-right:auto}
.brand-logo{max-height:var(--logo-altura,54px);width:auto;display:block}
.main-nav .nav-list{display:flex;align-items:center;gap:4px;list-style:none}
.main-nav .nav-list a{
    color:var(--header-texto);font-family:'Poppins',sans-serif;font-weight:500;font-size:.93rem;
    padding:.5rem .85rem;border-radius:6px;transition:var(--transition);white-space:nowrap;
}
.main-nav .nav-list a:hover{color:var(--cor-primaria);background:rgba(62,129,72,.08)}
.header-actions{display:flex;align-items:center;gap:14px}
.header-actions .nav-cta{padding:.6rem 1.5rem;font-size:.82rem}
.lang-switch{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .4rem;border-radius:6px}
.lang-switch img{border-radius:3px;box-shadow:0 0 0 1px rgba(25,49,31,.18);display:block}
.lang-switch:hover{background:rgba(62,129,72,.1)}
.nav-toggle{display:none;background:none;border:0;color:var(--header-texto);font-size:1.9rem;cursor:pointer;line-height:1}
.main-nav-mobile{display:none}

/* ----- Hero (slider com vídeo ou imagem + zoom-out) ----- */
.hero{position:relative;height:90vh;min-height:580px;overflow:hidden;background:#0b2a18}
.hero-slides{position:absolute;inset:0}
.hero-slide{position:absolute;inset:0;display:flex;align-items:center;overflow:hidden;
    opacity:0;visibility:hidden;transition:opacity .9s ease}
.hero-slide.is-active{opacity:1;visibility:visible}
/* Fundo: imagem com efeito ken-burns (zoom-out suave) */
.hero-media-img{position:absolute;inset:0;background-size:cover;background-position:center;z-index:1;transform:scale(1.18)}
.hero-slide.is-active .hero-media-img{animation:heroZoomOut 9s ease-out forwards}
@keyframes heroZoomOut{from{transform:scale(1.18)}to{transform:scale(1)}}
/* Fundo: vídeo */
.hero-media-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.hero-overlay{position:absolute;inset:0;z-index:2;
    background:linear-gradient(100deg,rgba(7,57,31,.82) 0%,rgba(7,57,31,.5) 55%,rgba(62,129,72,.25) 100%)}
.hero-inner{position:relative;z-index:3}
.hero-content{max-width:700px;color:#fff}
.hero-pretitulo{display:inline-block;font-family:'Rubik','Roboto',sans-serif;font-weight:500;
    font-size:1.1rem;color:#fff;margin-bottom:.5rem;text-shadow:0 2px 8px rgba(0,0,0,.3)}
.hero-title{font-family:'Poppins',sans-serif;font-size:clamp(2.1rem,4.8vw,3.6rem);color:#fff;font-weight:700;
    margin-bottom:1.3rem;line-height:1.1;letter-spacing:-1px;text-shadow:0 2px 14px rgba(0,0,0,.25)}
.hero-subtitle{font-family:'Rubik','Roboto',sans-serif;font-size:1.15rem;color:rgba(255,255,255,.92);
    margin-bottom:2rem;font-weight:400;max-width:520px}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap}
.hero-dots{position:absolute;left:0;right:0;bottom:26px;z-index:4;display:flex;justify-content:center;gap:10px}
.hero-dot{width:12px;height:12px;border-radius:50%;border:2px solid #fff;background:transparent;cursor:pointer;
    padding:0;transition:var(--transition)}
.hero-dot.is-active{background:#fff;transform:scale(1.15)}

/* ----- Três caixas (logo abaixo do hero) ----- */
.section-caixas{background:var(--cor-primaria)}
.caixas-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.caixa{display:flex;align-items:center;gap:18px;padding:34px 30px;color:#fff;
    border-right:1px solid rgba(255,255,255,.14);transition:var(--transition)}
.caixa:last-child{border-right:0}
.caixa:hover{background:rgba(0,0,0,.12)}
.caixa-icon{width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.15);flex-shrink:0;
    display:grid;place-items:center;font-size:1.7rem;color:#fff}
.caixa-text h3{font-family:'Poppins',sans-serif;color:#fff;font-size:1.18rem;margin-bottom:.2rem}
.caixa-text p{color:rgba(255,255,255,.88);font-size:.9rem;line-height:1.5}

/* ----- Secções genéricas ----- */
.section{padding:90px 0}
.section-head{text-align:center;max-width:680px;margin:0 auto 56px}
.eyebrow{display:inline-block;color:var(--cor-primaria);font-family:'Poppins',sans-serif;font-weight:600;
    text-transform:uppercase;letter-spacing:2px;font-size:.8rem;margin-bottom:.6rem}
.section-title{font-size:clamp(1.8rem,3.4vw,2.5rem);margin-bottom:1rem}
.section-lead{color:var(--texto-claro);font-size:1.06rem}

/* ----- Empresa ----- */
.section-sobre{background:#fff}
.sobre-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.sobre-media{position:relative}
.sobre-media img{border-radius:var(--radius);box-shadow:var(--shadow);width:100%;object-fit:cover}
.sobre-media .exp-badge{position:absolute;right:-14px;bottom:-14px;background:var(--cor-primaria);color:#fff;
    border-radius:14px;padding:18px 24px;display:flex;flex-direction:column;line-height:1;
    box-shadow:0 14px 30px rgba(62,129,72,.35);text-align:center}
.sobre-media .exp-badge strong{font-family:'Poppins',sans-serif;font-size:2.4rem;font-weight:700}
.sobre-media .exp-badge span{font-size:.78rem;text-transform:uppercase;letter-spacing:.5px;margin-top:.3rem}
.sobre-text .eyebrow{margin-bottom:.4rem}
.sobre-slogan{color:var(--cor-primaria);font-family:'Poppins',sans-serif;font-weight:600;font-size:1.1rem;margin-bottom:1rem}
.sobre-text p{color:var(--texto-claro);margin-bottom:1.4rem}
.check-list{list-style:none;margin-bottom:1.8rem}
.check-list li{display:flex;align-items:center;gap:.7rem;padding:.4rem 0;color:var(--escuro);font-weight:500}
.check-list i{color:var(--cor-primaria);font-size:1.2rem}

/* ----- Serviços (tabs horizontais) ----- */
.section-servicos{background:var(--cinza-fundo)}
.servicos-tabs{max-width:1080px;margin:0 auto}
.tabs-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:34px}
.tab-btn{display:inline-flex;align-items:center;gap:.55rem;background:#fff;border:1px solid var(--borda);
    color:var(--escuro);font-family:'Poppins',sans-serif;font-weight:500;font-size:.92rem;
    padding:.7rem 1.3rem;border-radius:50px;cursor:pointer;transition:var(--transition)}
.tab-btn i{font-size:1.1rem;color:var(--cor-primaria);transition:var(--transition)}
.tab-btn:hover{border-color:var(--cor-primaria)}
.tab-btn.is-active{background:var(--cor-primaria);color:#fff;border-color:var(--cor-primaria)}
.tab-btn.is-active i{color:#fff}
.tabs-panels{position:relative}
.tab-panel{display:none;grid-template-columns:1fr 1fr;gap:46px;align-items:center;
    background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);
    animation:tabFade .4s ease}
.tab-panel.is-active{display:grid}
@keyframes tabFade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.tab-media{position:relative;height:100%;min-height:340px}
.tab-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tab-info{padding:40px 44px 40px 10px}
.tab-info h3{font-size:1.6rem;margin-bottom:1rem}
.tab-info p{color:var(--texto-claro);margin-bottom:1.6rem}
@media (max-width:768px){
    .tab-panel.is-active{grid-template-columns:1fr}
    .tab-media{min-height:240px}
    .tab-info{padding:28px 26px}
}

/* ----- Testemunhos ----- */
.section-testemunhos{background:#fff}
.testemunhos-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:26px}
.card-testemunho{background:var(--cinza-fundo);border-radius:var(--radius);padding:30px 26px;
    border:1px solid var(--borda);transition:var(--transition);display:flex;flex-direction:column;gap:1rem}
.card-testemunho:hover{transform:translateY(-5px);box-shadow:var(--shadow-hover)}
.t-stars{color:#f5b50a;font-size:.95rem;display:flex;gap:2px}
.t-texto{color:var(--texto);font-style:italic;flex:1}
.t-autor{display:flex;align-items:center;gap:.8rem}
.t-avatar{width:46px;height:46px;border-radius:50%;background:var(--cor-primaria);color:#fff;
    display:grid;place-items:center;font-size:1.3rem;flex-shrink:0}
.t-autor strong{display:block;color:var(--escuro);font-family:'Poppins',sans-serif;font-size:.98rem}
.t-autor small{color:var(--texto-claro);font-size:.82rem}

/* ----- Orçamento / Contactos ----- */
.section-orcamento{background:var(--cinza-fundo)}
.orcamento-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:54px;align-items:start}
.orcamento-info .eyebrow{margin-bottom:.4rem}
.orcamento-info>p{color:var(--texto-claro);margin-bottom:1.6rem}
.contact-list{list-style:none;display:flex;flex-direction:column;gap:1rem}
.contact-list li{display:flex;align-items:center;gap:.9rem;color:var(--escuro)}
.contact-list i{color:var(--cor-primaria);font-size:1.2rem}
.orcamento-form-wrap{background:#fff;border-radius:14px;padding:34px;box-shadow:var(--shadow)}
.form-contacto label{display:block;font-size:.86rem;font-weight:500;color:var(--escuro);margin-bottom:1rem}
.form-contacto label span{color:#e23}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-contacto input,.form-contacto textarea,.form-contacto select{
    width:100%;margin-top:.4rem;padding:.8rem .95rem;border:1px solid var(--borda);
    border-radius:8px;font-family:inherit;font-size:.95rem;color:var(--texto);background:#fff;transition:var(--transition)}
.form-contacto input:focus,.form-contacto textarea:focus,.form-contacto select:focus{
    outline:none;border-color:var(--cor-primaria);box-shadow:0 0 0 3px rgba(62,129,72,.15)}
.consent{font-weight:400!important;color:var(--texto-claro)!important;font-size:.85rem!important;
    display:flex!important;align-items:flex-start;gap:.5rem}
.consent input{width:auto!important;margin-top:.2rem!important}
.consent a{color:var(--cor-secundaria);text-decoration:underline}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.alert{padding:.9rem 1.1rem;border-radius:8px;margin-bottom:1rem;font-size:.92rem}
.alert-sucesso{background:#e6f6ec;color:#1c7a3e;border:1px solid #bfe6cd}
.alert-erro{background:#fdeaea;color:#b3261e;border:1px solid #f3c4c2}

/* ----- Páginas legais ----- */
.page-hero{background:var(--escuro);color:#fff;padding:70px 0 50px}
.page-hero h1{color:#fff;font-size:2.4rem;margin-bottom:.6rem}
.breadcrumb{color:rgba(255,255,255,.7);font-size:.9rem}
.breadcrumb a{color:var(--cor-primaria)}
.legal-content{max-width:850px}
.legal-content h2{margin:2rem 0 .8rem;font-size:1.4rem}
.legal-content p{margin-bottom:1rem;color:var(--texto-claro)}
.legal-updated{margin-top:2rem;color:#999;font-size:.85rem}

/* ----- 404 ----- */
.section-404{text-align:center;padding:120px 0}
.section-404 h1{font-size:6rem;color:var(--cor-primaria);line-height:1}
.section-404 h2{margin:.5rem 0 1rem}
.section-404 p{color:var(--texto-claro);margin-bottom:1.6rem}

/* ----- Footer (verde escuro) ----- */
.site-footer{background:var(--footer-bg);color:var(--footer-texto)}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1.3fr;gap:46px;padding:64px 20px 44px}
.footer-logo{max-height:50px;margin-bottom:1rem;filter:brightness(0) invert(1)}
.footer-tag{color:rgba(255,255,255,.7);margin-bottom:1.2rem}
.footer-social{display:flex;gap:.7rem}
.footer-social a{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.08);
    display:grid;place-items:center;color:#fff;transition:var(--transition)}
.footer-social a:hover{background:var(--cor-primaria)}
.footer-col h4{color:#fff;font-family:'Poppins',sans-serif;font-size:1.02rem;margin-bottom:1rem}
.footer-col h4.mt{margin-top:1.6rem}
.footer-horario{color:var(--footer-texto);display:flex;align-items:center;gap:.5rem}
.footer-list{list-style:none;display:flex;flex-direction:column;gap:.6rem}
.footer-list li{display:flex;align-items:center;gap:.5rem}
.footer-list a,.footer-list li{color:var(--footer-texto);transition:var(--transition);font-size:.93rem}
.footer-list a:hover{color:#fff}
.footer-news>p{font-size:.93rem;margin-bottom:1rem;color:rgba(255,255,255,.75)}
.newsletter-form{margin-bottom:1.4rem}
.newsletter-row{display:flex;gap:.5rem}
.newsletter-row input{flex:1;padding:.7rem .9rem;border:1px solid rgba(255,255,255,.2);border-radius:8px;
    background:rgba(255,255,255,.07);color:#fff;font-family:inherit;font-size:.92rem}
.newsletter-row input::placeholder{color:rgba(255,255,255,.55)}
.newsletter-row input:focus{outline:none;border-color:var(--cor-primaria)}
.newsletter-row .btn{padding:.7rem 1.1rem;border-radius:8px}
.footer-legal{flex-direction:row;flex-wrap:wrap;gap:.4rem 1.1rem;margin-top:.4rem}
.footer-legal li{font-size:.82rem}
.footer-legal a{color:rgba(255,255,255,.6)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding:20px 0;text-align:center;
    font-size:.86rem;color:rgba(255,255,255,.55)}

/* ----- Back to top ----- */
.back-to-top{position:fixed;right:24px;bottom:24px;width:46px;height:46px;border-radius:50%;
    background:var(--cor-primaria);color:#fff;display:grid;place-items:center;opacity:0;
    pointer-events:none;transition:var(--transition);z-index:900;box-shadow:0 8px 20px rgba(62,129,72,.4)}
.back-to-top.show{opacity:1;pointer-events:auto}
.back-to-top:hover{background:#2f6537;transform:translateY(-3px)}

/* ----- Responsivo ----- */
@media (max-width:980px){
    .sobre-grid,.orcamento-grid{grid-template-columns:1fr}
    .footer-grid{grid-template-columns:1fr 1fr}
    .footer-news{grid-column:1 / -1}
}
@media (max-width:840px){
    .main-nav{display:none}
    .nav-toggle{display:block}
    .header-actions{gap:10px}
    .header-actions .nav-cta{display:none}
    .caixas-grid{grid-template-columns:1fr}
    .caixa{border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}
    .main-nav-mobile{
        display:block;position:absolute;top:100%;left:0;right:0;background:var(--header-bg);
        max-height:0;overflow:hidden;transition:max-height .3s ease;box-shadow:0 12px 20px rgba(25,49,31,.12);z-index:1001}
    .main-nav-mobile.open{max-height:560px}
    .nav-list-mobile{list-style:none;flex-direction:column;align-items:stretch;gap:0;padding:10px 0;display:flex}
    .nav-list-mobile li{width:100%}
    .nav-list-mobile a{display:block;padding:.9rem 20px;text-align:center;color:var(--header-texto)}
    .nav-list-mobile a.nav-cta{margin:.5rem 20px;background:var(--cor-primaria);color:#fff;border-radius:50px}
}
@media (max-width:768px){
    .section{padding:62px 0}
    .form-row{grid-template-columns:1fr}
    .footer-grid{grid-template-columns:1fr;gap:30px}
    .hero{height:auto;min-height:0}
    .hero-slide{position:relative;opacity:1;visibility:visible;display:none;padding:90px 0}
    .hero-slide.is-active{display:flex}
    .hero-dots{display:none}
}
