:root{
  --ink:#12211F;
  --paper:#F6F3EC;
  --sage:#5B7A6B;
  --forest:#1E3A38;
  --brass:#B98B4E;
  --line:#D8D3C7;
  --white:#FFFFFF;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--paper); color:var(--ink); font-family:'IBM Plex Sans', sans-serif; line-height:1.6;}
h1,h2,h3{font-family:'Fraunces', serif; font-weight:500; letter-spacing:-0.01em;}
.mono{font-family:'IBM Plex Mono', monospace; letter-spacing:0.04em; text-transform:uppercase; font-size:0.72rem;}
a{color:inherit; text-decoration:none;}
img,video{display:block; max-width:100%;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
@media(max-width:640px){ .wrap{padding:0 20px;} }

/* NAV */
header{position:fixed; top:0; left:0; right:0; z-index:100; background:rgba(246,243,236,0.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
nav{display:flex; align-items:center; justify-content:space-between; padding:12px 32px;}
.logo-txt{font-family:'Fraunces', serif; font-size:1.5rem; font-weight:600; color:var(--forest);}
.logo-img{height:88px;}
@media(max-width:640px){ .logo-img{height:60px;} }
.navlinks{display:flex; gap:30px; font-size:0.92rem;}
.navlinks a.active{color:var(--brass); font-weight:600;}
.navlinks a:hover{opacity:0.75;}
@media(max-width:860px){ .navlinks{display:none;} }
.nav-cta{background:var(--forest); color:var(--paper); padding:10px 20px; border-radius:2px; font-size:0.85rem; font-weight:500;}
.burger{display:none; font-size:1.6rem; background:none; border:none; color:var(--forest); cursor:pointer;}
@media(max-width:860px){ .burger{display:block;} }
.mobile-menu{display:none; flex-direction:column; background:#fff; border-top:1px solid var(--line);}
.mobile-menu.open{display:flex;}
.mobile-menu a{padding:16px 32px; border-bottom:1px solid var(--line); font-size:0.95rem;}

/* PAGE HERO (inner pages) */
.page-hero{position:relative; min-height:48vh; display:flex; align-items:flex-end; overflow:hidden; padding-top:150px; color:var(--paper);}
.page-hero video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2;}
.page-hero-bg{position:absolute; inset:0; z-index:-1; background:linear-gradient(160deg, rgba(30,58,56,0.35) 0%, rgba(20,40,38,0.5) 55%, rgba(13,29,27,0.65) 100%);}
@keyframes drift{ to{ background-position:800px 400px; } }
.page-hero-inner{padding-bottom:56px;}
.page-hero .mono{color:var(--brass); display:block; margin-bottom:14px;}
.page-hero h1{font-size:clamp(2rem,5vw,3.2rem);}
.page-hero p{margin-top:16px; opacity:0.85; max-width:520px;}

/* HOME HERO (video-ready) */
.hero{position:relative; min-height:100svh; display:flex; align-items:flex-end; padding:170px 0 80px; overflow:hidden;}
.hero video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2;}
.hero-bg{position:absolute; inset:0; z-index:-1; background:linear-gradient(160deg, rgba(30,58,56,0.35) 0%, rgba(20,40,38,0.5) 55%, rgba(13,29,27,0.65) 100%);}
.hero-inner{color:var(--paper); position:relative;}
.hero .mono{color:var(--brass); margin-bottom:20px; display:block;}
.hero h1{font-size:clamp(2.4rem, 6vw, 4.4rem); max-width:820px; line-height:1.05;}
.hero p{max-width:520px; margin-top:24px; font-size:1.05rem; opacity:0.85;}
.hero-ctas{display:flex; gap:14px; margin-top:36px; flex-wrap:wrap;}
.btn-primary{background:var(--brass); color:var(--forest); padding:15px 28px; border-radius:2px; font-weight:600; font-size:0.95rem; display:inline-block; border:none; cursor:pointer;}
.btn-ghost{border:1px solid rgba(18,33,31,0.35); color:var(--ink); padding:15px 28px; border-radius:2px; font-size:0.95rem; display:inline-block;}
.btn-ghost.light{border-color:rgba(246,243,236,0.4); color:var(--paper);}

section{padding:100px 0;}
.section-head{max-width:640px; margin-bottom:56px;}
.section-head .mono{color:var(--sage); margin-bottom:14px; display:block;}
.section-head h2{font-size:clamp(1.8rem,3.4vw,2.6rem);}

/* Split image/text */
.split-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:60px; align-items:center;}
.split-grid.reverse{grid-template-columns:1.1fr 0.9fr;}
.split-grid img{border-radius:2px; width:100%; height:420px; object-fit:cover;}
@media(max-width:800px){ .split-grid,.split-grid.reverse{grid-template-columns:1fr;} .split-grid img{height:260px;} }
.stat-row{display:flex; gap:40px; margin-top:32px; flex-wrap:wrap;}
.stat-row .num{font-family:'Fraunces',serif; font-size:2.4rem; color:var(--forest);}
.stat-row .num span{display:block; font-family:'IBM Plex Sans'; font-size:0.8rem; color:var(--sage); font-weight:500; margin-top:6px;}

/* Atendemos grid */
.atendemos-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.atendemos-item{background:var(--paper); padding:28px 20px; font-size:0.92rem;}
.atendemos-item .n{font-family:'IBM Plex Mono'; color:var(--brass); font-size:0.75rem; display:block; margin-bottom:10px;}
@media(max-width:900px){ .atendemos-grid{grid-template-columns:repeat(2,1fr);} }

/* Timeline */
.timeline-wrap{background:var(--forest); color:var(--paper);}
.timeline{position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:60px;}
.timeline::before{content:""; position:absolute; top:14px; left:0; right:0; height:1px; background:rgba(246,243,236,0.25);}
.tl-stage{position:relative; padding-top:40px;}
.tl-dot{position:absolute; top:8px; left:0; width:14px; height:14px; border-radius:50%; background:var(--brass); border:3px solid var(--forest); outline:2px solid var(--brass);}
.tl-stage .mono{color:var(--brass); margin-bottom:10px; display:block;}
.tl-stage h3{font-size:1.25rem; margin-bottom:10px;}
.tl-stage p{font-size:0.92rem; opacity:0.8;}
@media(max-width:800px){ .timeline{grid-template-columns:1fr; gap:44px;} .timeline::before{display:none;} }

/* Metodo list */
.metodo-list{margin-top:50px; border-top:1px solid var(--line);}
.metodo-row{display:grid; grid-template-columns:220px 1fr; gap:30px; padding:26px 0; border-bottom:1px solid var(--line);}
.metodo-row h4{font-family:'Fraunces',serif; font-size:1.15rem; font-weight:600; color:var(--forest);}
.metodo-row p{font-size:0.92rem; opacity:0.75;}
@media(max-width:700px){ .metodo-row{grid-template-columns:1fr; gap:8px;} }

/* Instalaciones gallery */
.gal-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:12px;}
.gal-grid img{width:100%; height:220px; object-fit:cover; border-radius:2px; filter:saturate(0.9);}
.gal-grid a:first-child{grid-column:span 2; grid-row:span 2;}
.gal-grid a:first-child img{height:452px;}
@media(max-width:800px){ .gal-grid{grid-template-columns:repeat(2,1fr);} .gal-grid a:first-child{grid-column:span 2; grid-row:auto;} .gal-grid a:first-child img{height:220px;} }

/* Equipo */
.equipo-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:50px;}
.equipo-card{background:var(--white); border:1px solid var(--line); overflow:hidden;}
.equipo-card img{width:100%; height:230px; object-fit:cover;}
.equipo-card .inner{padding:20px 22px;}
.equipo-card .mono{color:var(--brass); display:block; margin-bottom:8px;}
.equipo-card h4{font-family:'Fraunces',serif; font-size:1.15rem; margin-bottom:10px;}
.equipo-card ul{font-size:0.82rem; opacity:0.72; padding-left:16px;}
.equipo-card li{margin-bottom:4px;}
@media(max-width:900px){ .equipo-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:640px){ .equipo-grid{grid-template-columns:1fr;} }

/* Principios */
.principios-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); border:1px solid var(--line); margin-top:50px;}
.principio-item{background:#fff; padding:32px 26px;}
.principio-item h4{font-family:'Fraunces',serif; font-size:1.15rem; margin-bottom:10px; color:var(--forest);}
.principio-item p{font-size:0.9rem; opacity:0.72;}
@media(max-width:800px){ .principios-grid{grid-template-columns:1fr;} }

/* Formulario contacto */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px;}
@media(max-width:800px){ .form-grid{grid-template-columns:1fr;} }
.field{margin-bottom:18px;}
.field label{display:block; font-size:0.8rem; font-weight:600; margin-bottom:6px; color:var(--forest);}
.field input, .field textarea{width:100%; padding:14px 16px; border:1px solid var(--line); border-radius:2px; font-family:'IBM Plex Sans'; font-size:0.95rem; background:#fff;}
.field textarea{resize:vertical; min-height:110px;}
.form-note{font-size:0.8rem; opacity:0.5; margin-top:10px;}

/* CTA final con video */
.cta-final{position:relative; background:var(--forest); color:var(--paper); text-align:center; overflow:hidden;}
.cta-final video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; opacity:0.75;}
.cta-final::before{content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(160deg, rgba(20,40,38,0.6), rgba(13,29,27,0.55));}
.cta-final .wrap{position:relative; z-index:2;}
.cta-final h2{font-size:clamp(2rem,4.5vw,3.2rem); max-width:640px; margin:0 auto 20px;}
.cta-final p{opacity:0.75; max-width:480px; margin:0 auto 36px;}
.contact-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:70px; text-align:left; border-top:1px solid rgba(246,243,236,0.15); padding-top:44px;}
.contact-grid .mono{color:var(--brass); margin-bottom:10px; display:block;}
.contact-grid p{opacity:0.85; font-size:0.95rem;}
@media(max-width:800px){ .contact-grid{grid-template-columns:1fr;} }

footer{background:var(--ink); color:rgba(246,243,236,0.6); padding:28px 0; font-size:0.82rem;}
footer .wrap{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;}
.social-links{display:flex; gap:14px;}
.social-links a{opacity:0.6; transition:opacity .2s; color:var(--brass);}
.social-links a:hover{opacity:1;}
footer a{color:var(--brass);}

/* Floating WhatsApp button */
.wa-float{
  position:fixed; right:22px; bottom:22px; z-index:200;
  width:56px; height:56px; border-radius:50%; background:#25D366;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 20px rgba(0,0,0,0.25); transition:transform .2s;
}
.wa-float:hover{transform:scale(1.08);}
.wa-float svg{width:28px; height:28px;}
