:root{
 --forest:#243b32;--forest-2:#304b40;--sage:#a8b6a0;--sand:#e9e1d3;--cream:#f7f5f0;
 --ink:#252923;--muted:#697169;--white:#fff;--line:#e4e1d9;--wood:#b8895c;
 --shadow:0 18px 45px rgba(28,42,34,.10);--radius:18px;--max:1160px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,Arial,sans-serif;line-height:1.65}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(var(--max),calc(100% - 40px));margin-inline:auto}
.topline{background:var(--forest);color:#e9eee8;font-size:.82rem;letter-spacing:.03em}
.topline .container{display:flex;justify-content:space-between;gap:18px;padding:8px 0}
header{position:sticky;top:0;z-index:50;background:rgba(247,245,240,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(36,59,50,.09)}
.nav-wrap{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{display:flex;align-items:center;gap:11px;font-family:Georgia,serif;font-size:1.55rem;font-weight:700;letter-spacing:.04em;color:var(--forest)}
.logo-mark{width:38px;height:38px;border:1px solid var(--wood);border-radius:50%;display:grid;place-items:center;font-size:1rem;color:var(--wood)}
.logo small{display:block;font:500 .58rem Arial,sans-serif;letter-spacing:.22em;color:var(--muted);margin-top:-5px}
nav{display:flex;align-items:center;gap:22px}
nav a{font-size:.88rem;font-weight:600;color:#414a42;transition:.2s}
nav a:hover,nav a.active{color:var(--wood)}
.nav-cta,.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--forest);color:white;padding:12px 20px;border-radius:999px;font-size:.88rem;font-weight:700;border:1px solid var(--forest);transition:.2s;cursor:pointer}
.nav-cta:hover,.btn:hover{background:var(--wood);border-color:var(--wood);transform:translateY(-1px)}
.btn-light{background:transparent;color:var(--forest);border-color:rgba(36,59,50,.35)}
.btn-light:hover{color:#fff}
.menu-toggle{display:none;background:none;border:0;font-size:1.7rem;color:var(--forest);cursor:pointer}
.hero{position:relative;overflow:hidden;background:var(--forest);color:white;min-height:570px;display:flex;align-items:center}
.hero:before{content:"";position:absolute;inset:0 0 0 43%;background:linear-gradient(90deg,var(--forest),rgba(36,59,50,.08)),url('../img/hero.svg') center/cover no-repeat;opacity:.92}
.hero-content{position:relative;z-index:1;width:min(620px,65%);padding:90px 0}
.eyebrow{display:inline-block;color:var(--wood);font-size:.75rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;margin-bottom:14px}
.hero .eyebrow{color:#d6b58f}
h1,h2,h3{font-family:Georgia,'Times New Roman',serif;line-height:1.12;font-weight:500}
h1{font-size:clamp(2.7rem,5.2vw,4.7rem);margin:0 0 22px;letter-spacing:-.035em}
h2{font-size:clamp(2rem,3.5vw,3.15rem);margin:0 0 18px;color:var(--forest);letter-spacing:-.025em}
h3{font-size:1.5rem;margin:0 0 10px;color:var(--forest)}
p{margin:0 0 17px;color:var(--muted)}
.hero p{color:#e2e8e2;font-size:1.08rem;max-width:550px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.hero .btn{background:var(--sand);border-color:var(--sand);color:var(--forest)}
.hero .btn:hover{background:var(--wood);border-color:var(--wood);color:white}
.hero .btn-light{background:transparent;border-color:rgba(255,255,255,.55);color:white}
.hero .btn-light:hover{background:white;color:var(--forest)}
.section{padding:88px 0}
.section-head{max-width:700px;margin-bottom:38px}
.section-head.center{text-align:center;margin-inline:auto}
.section-head p{font-size:1.02rem}
.grid{display:grid;gap:22px}
.services-grid{grid-template-columns:repeat(3,1fr)}
.service-card,.project-card{background:white;border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 30px rgba(30,42,34,.05);transition:.25s}
.service-card:hover,.project-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.visual{height:225px;background:#d9d5ca;overflow:hidden}
.visual img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.service-card:hover .visual img,.project-card:hover .visual img{transform:scale(1.04)}
.card-body{padding:23px 24px 25px}
.card-body p{font-size:.92rem}
.text-link{display:inline-flex;align-items:center;gap:8px;color:var(--forest);font-size:.88rem;font-weight:800}
.text-link:after{content:"→";color:var(--wood);font-size:1.15rem}
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.split-image{min-height:450px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.split-image img{width:100%;height:100%;object-fit:cover}
.check-list{padding:0;margin:24px 0;list-style:none;display:grid;gap:12px}
.check-list li{padding-left:28px;position:relative;color:#4d574f}
.check-list li:before{content:"✓";position:absolute;left:0;color:var(--wood);font-weight:900}
.band{background:var(--sand);padding:65px 0}
.band-inner{display:flex;justify-content:space-between;align-items:center;gap:30px}
.band h2{font-size:2.35rem;margin-bottom:8px}
.page-hero{background:var(--forest);color:white;padding:76px 0 72px;position:relative;overflow:hidden}
.page-hero:after{content:"";position:absolute;right:-60px;top:-170px;width:520px;height:520px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 45px rgba(255,255,255,.035),0 0 0 90px rgba(255,255,255,.025)}
.page-hero .container{position:relative;z-index:1}
.page-hero h1{font-size:clamp(2.5rem,4vw,4rem);max-width:780px}
.page-hero p{color:#e1e7e1;max-width:680px;font-size:1.04rem}
.breadcrumb{font-size:.8rem;color:#c7d1c8;margin-bottom:18px}
.breadcrumb a{color:#e4c6a4}
.feature-grid{grid-template-columns:repeat(3,1fr)}
.feature{padding:25px;border:1px solid var(--line);border-radius:14px;background:#fff}
.feature .num{font-family:Georgia,serif;color:var(--wood);font-size:2rem}
.gallery-grid{grid-template-columns:repeat(3,1fr)}
.gallery-item{position:relative;border-radius:14px;overflow:hidden;background:#ddd;min-height:260px;cursor:pointer}
.gallery-item img{width:100%;height:100%;min-height:260px;object-fit:cover;transition:.4s}
.gallery-item:hover img{transform:scale(1.05)}
.gallery-caption{position:absolute;inset:auto 0 0;padding:40px 18px 16px;background:linear-gradient(transparent,rgba(15,25,20,.8));color:white;font-weight:700}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}
.filter-btn{border:1px solid var(--line);background:white;padding:9px 16px;border-radius:30px;color:var(--forest);font-weight:700;cursor:pointer}
.filter-btn.active,.filter-btn:hover{background:var(--forest);color:white;border-color:var(--forest)}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px}
.contact-panel{background:var(--forest);color:white;border-radius:var(--radius);padding:34px}
.contact-panel h2{color:white;font-size:2rem}
.contact-panel p,.contact-panel a{color:#dce4dc}
.contact-detail{padding:16px 0;border-top:1px solid rgba(255,255,255,.15)}
.form-card{background:white;padding:34px;border-radius:var(--radius);box-shadow:var(--shadow)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:flex;flex-direction:column;gap:7px}
.field.full{grid-column:1/-1}
label{font-size:.84rem;font-weight:800;color:var(--forest)}
input,select,textarea{width:100%;padding:13px 14px;border:1px solid #d9ddd6;border-radius:9px;background:#fcfcfa;font:inherit;color:var(--ink)}
textarea{min-height:145px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid #b7c3b2;border-color:var(--forest)}
.notice{padding:13px 16px;border-radius:9px;background:#edf4eb;color:#31553b;margin-bottom:18px}
.notice.error{background:#faeeee;color:#8b3333}
footer{background:#1c3028;color:#e6ece6;padding:58px 0 24px}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:45px}
footer p,footer a{color:#c2cec3;font-size:.9rem}
footer h3{color:white;font-size:1.2rem}
.footer-links{display:grid;gap:8px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.15);margin-top:42px;padding-top:18px;display:flex;justify-content:space-between;gap:20px;font-size:.8rem;color:#aebcaf}
.mobile-only{display:none}
.hidden{display:none!important}
@media(max-width:900px){
 nav{gap:13px}nav a{font-size:.8rem}.nav-cta{display:none}
 .services-grid,.gallery-grid{grid-template-columns:repeat(2,1fr)}
 .split{gap:35px}.contact-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
 .topline .container{justify-content:center;text-align:center}.topline span:last-child{display:none}
 .nav-wrap{min-height:72px}.menu-toggle{display:block}
 nav{display:none;position:absolute;left:0;right:0;top:72px;background:var(--cream);padding:18px 22px 24px;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0}
 nav.open{display:flex}nav a{padding:11px 0;border-bottom:1px solid var(--line);font-size:.95rem}
 .hero{min-height:590px;align-items:flex-end}.hero:before{inset:0;background:linear-gradient(0deg,var(--forest) 12%,rgba(36,59,50,.68) 58%,rgba(36,59,50,.12)),url('../img/hero.svg') center/cover}
 .hero-content{width:100%;padding:100px 0 60px}
 .section{padding:65px 0}.services-grid,.gallery-grid,.feature-grid{grid-template-columns:1fr}
 .split{grid-template-columns:1fr}.split-image{min-height:300px;order:-1}
 .band-inner{display:block}.band-inner .btn{margin-top:18px}
 .page-hero{padding:58px 0}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}
 .form-card,.contact-panel{padding:25px}.footer-grid{grid-template-columns:1fr;gap:28px}
 .footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}
 .gallery-item,.gallery-item img{min-height:245px}
}


/* Contenido local para SEO */
.local-seo{padding:30px 0;background:#f0eee7;border-top:1px solid var(--line)}
.local-seo p{max-width:1000px;margin:0 auto;font-size:.94rem;line-height:1.75;color:#596259}
.footer-contact{margin-top:14px;line-height:1.9}
.footer-contact a{color:#e8c9a6}
.whatsapp-float{position:fixed;right:22px;bottom:22px;z-index:1000;display:flex;align-items:center;gap:9px;padding:13px 18px;border-radius:999px;background:#20b85a;color:#fff;font-size:.92rem;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.22);transition:transform .2s,box-shadow .2s}
.whatsapp-float:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,0,0,.28)}
.whatsapp-icon{display:grid;place-items:center;width:24px;height:24px;border:2px solid #fff;border-radius:50%;font-size:15px;line-height:1}
@media(max-width:700px){.whatsapp-float{right:14px;bottom:14px;padding:12px 15px}.local-seo{padding:24px 0}}
