:root{
  --ink:#17211b;
  --muted:#667168;
  --paper:#ffffff;
  --soft:#f3f6f1;
  --green:#173f2b;
  --green-2:#245b3d;
  --lime:#c8df7c;
  --line:#dce5dc;
  --shadow:0 20px 55px rgba(20,46,31,.12);
  --radius:24px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}
.container{width:min(calc(100% - 40px),var(--max));margin-inline:auto}
.skip-link{position:absolute;left:-9999px;top:0;z-index:999;background:#fff;padding:12px 16px}
.skip-link:focus{left:12px;top:12px}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

.topbar{background:#0e2d1d;color:#eaf5ee;font-size:.9rem}
.topbar__inner{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.topbar__contacts{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.topbar a:hover{color:var(--lime)}
.topbar__wa{font-weight:800;color:var(--lime)}
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(220,229,220,.8)}
.nav{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:inline-flex;align-items:center;gap:12px;line-height:1}
.brand__mark{width:43px;height:43px;display:grid;place-items:center;border-radius:13px;background:var(--green);color:#fff}
.brand__mark svg{width:27px;height:27px;fill:currentColor}
.brand strong{font-size:1.1rem;display:block;letter-spacing:-.02em}
.brand small{display:block;margin-top:4px;color:var(--muted);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.68rem}
.menu{display:flex;align-items:center;gap:30px;font-size:.95rem;font-weight:700}
.menu a{position:relative}
.menu a:after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:2px;background:var(--green);transition:.22s}
.menu a:hover:after{right:0}
.nav-toggle{display:none;border:0;background:none;padding:8px;cursor:pointer}
.nav-toggle span:not(.sr-only){display:block;width:25px;height:2px;background:var(--ink);margin:5px 0}

.hero{min-height:680px;position:relative;display:grid;align-items:center;overflow:hidden;background:#163b29;color:white}
.hero__media{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(10,38,24,.08),rgba(10,38,24,.08)),
    url("images/galeria3.jpeg") center/cover no-repeat;
  filter:saturate(.9);
  transform:scale(1.01);
}
.hero__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,27,17,.94) 0%,rgba(7,27,17,.78) 47%,rgba(7,27,17,.22) 100%)}
.hero__content{position:relative;z-index:2;padding:90px 0}
.eyebrow{margin:0 0 14px;text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:900;color:var(--green-2)}
.eyebrow--light{color:var(--lime)}
.hero .eyebrow{color:var(--lime)}
.hero h1{font-size:clamp(3rem,8vw,6.5rem);line-height:.92;letter-spacing:-.06em;margin:0;max-width:900px}
.hero h1 span{color:var(--lime)}
.hero__lead{max-width:720px;font-size:clamp(1.05rem,2.2vw,1.35rem);color:#e2ede5;margin:28px 0 34px}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 24px;border-radius:999px;font-weight:900;transition:.2s;border:1px solid transparent}
.btn:hover{transform:translateY(-2px)}
.btn--primary{background:var(--lime);color:#163522}
.btn--primary:hover{background:#d6e99b}
.btn--ghost{color:white;border-color:rgba(255,255,255,.45);background:rgba(255,255,255,.04)}
.btn--ghost:hover{border-color:white;background:rgba(255,255,255,.1)}
.btn--light{background:white;color:var(--green)}
.hero__chips{list-style:none;padding:0;margin:40px 0 0;display:flex;gap:10px;flex-wrap:wrap}
.hero__chips li{border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.08);backdrop-filter:blur(6px);padding:8px 13px;border-radius:999px;font-size:.86rem;font-weight:800}

.section{padding:110px 0}
.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
h2{font-size:clamp(2.1rem,4.5vw,4rem);line-height:1.02;letter-spacing:-.045em;margin:0}
.intro__copy{font-size:1.08rem;color:#4d5a50}
.intro__copy p:first-child{margin-top:0}
.text-link{display:inline-flex;gap:8px;color:var(--green);font-weight:900;margin-top:12px}
.section--soft{background:var(--soft)}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:42px}
.section-head h2{max-width:760px}
.section-head>p{max-width:320px;margin:0;color:var(--muted)}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.service-card{background:#fff;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:0 10px 30px rgba(24,51,34,.05);transition:.25s}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.service-card__media{height:230px;background:#e5ece4}
.service-card__media img{width:100%;height:100%;object-fit:cover}
.service-card__body{padding:26px 26px 30px}
.service-card__num{font-size:.72rem;font-weight:900;letter-spacing:.16em;color:var(--green-2)}
.service-card h3{font-size:1.38rem;line-height:1.15;margin:10px 0 12px}
.service-card p{margin:0;color:var(--muted)}

.media-shell{position:relative;overflow:hidden}
.media-placeholder{display:none;position:absolute;inset:0;place-items:center;font-size:3rem;background:linear-gradient(135deg,#dce8da,#bcd0bb);color:#214b34}
.media-shell.is-missing img{display:none}
.media-shell.is-missing .media-placeholder{display:grid}

.gallery-section{background:#fff}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:14px}
.gallery__item{padding:0;border:0;border-radius:18px;overflow:hidden;position:relative;cursor:zoom-in;background:#e7ece6}
.gallery__item img{width:100%;height:100%;object-fit:cover;transition:.35s}
.gallery__item:hover img{transform:scale(1.04)}
.gallery__item--wide{grid-column:span 2}
.gallery__item--tall{grid-row:span 2}
.gallery__zoom{position:absolute;right:14px;bottom:14px;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.9);font-size:1.4rem;line-height:1;font-weight:500;z-index:2}
.cta{background:var(--green);color:#fff;padding:76px 0}
.cta__inner{display:flex;align-items:center;justify-content:space-between;gap:40px}
.cta h2{max-width:780px;font-size:clamp(2rem,4vw,3.6rem)}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}
.contact__lead{font-size:1.08rem;color:var(--muted);max-width:520px}
.contact-list{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.contact-card{min-height:128px;padding:22px;border-radius:18px;border:1px solid var(--line);display:flex;align-items:center;gap:16px;transition:.2s;background:#fff}
.contact-card:hover{border-color:#b7cbb8;box-shadow:0 12px 30px rgba(18,51,32,.07);transform:translateY(-2px)}
.contact-card__icon{width:44px;height:44px;border-radius:12px;background:var(--soft);display:grid;place-items:center;font-size:1.25rem;color:var(--green)}
.contact-card small{display:block;color:var(--muted);font-weight:700}
.contact-card strong{display:block;margin-top:3px;font-size:.96rem;word-break:break-word}
.footer{background:#0c2418;color:#cdd9d1;padding:50px 0}
.footer__inner{display:flex;justify-content:space-between;gap:50px;align-items:end}
.brand--footer{color:#fff}
.brand--footer .brand__mark{background:var(--lime);color:#173f2b}
.brand--footer small{color:#abc0b2}
.footer p{margin:16px 0 0;font-size:.9rem;max-width:560px}
.footer__right{text-align:right}
.footer__right strong{color:var(--lime)}

.floating-wa{position:fixed;right:22px;bottom:22px;z-index:90;background:#1f7a45;color:#fff;border-radius:999px;padding:12px 17px;display:flex;gap:8px;align-items:center;font-weight:900;box-shadow:0 12px 35px rgba(12,48,29,.25)}
.floating-wa:hover{transform:translateY(-2px)}
.lightbox{border:0;padding:0;background:transparent;max-width:min(92vw,1200px);max-height:90vh;overflow:visible}
.lightbox::backdrop{background:rgba(3,12,8,.9);backdrop-filter:blur(4px)}
.lightbox img{max-width:92vw;max-height:86vh;border-radius:12px}
.lightbox__close{position:absolute;right:-14px;top:-44px;color:#fff;background:none;border:0;font-size:2rem;cursor:pointer}

@media (max-width:900px){
  .menu{position:absolute;left:20px;right:20px;top:76px;display:none;flex-direction:column;align-items:stretch;background:#fff;padding:18px;border-radius:18px;box-shadow:var(--shadow);border:1px solid var(--line)}
  .menu.is-open{display:flex}
  .nav-toggle{display:block}
  .split,.contact-grid{grid-template-columns:1fr;gap:40px}
  .services-grid{grid-template-columns:1fr}
  .service-card{display:grid;grid-template-columns:.9fr 1.1fr}
  .service-card__media{height:100%;min-height:230px}
  .section-head{align-items:start;flex-direction:column}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .cta__inner{align-items:flex-start;flex-direction:column}
  .contact-list{grid-template-columns:1fr 1fr}
  .footer__inner{align-items:start;flex-direction:column}
  .footer__right{text-align:left}
}
@media (max-width:640px){
  .container{width:min(calc(100% - 28px),var(--max))}
  .topbar__inner{padding:8px 0}
  .topbar__sep,.topbar__contacts a[href^="mailto"]{display:none}
  .hero{min-height:630px}
  .hero__content{padding:72px 0}
  .hero__veil{background:linear-gradient(90deg,rgba(7,27,17,.92),rgba(7,27,17,.65))}
  .section{padding:78px 0}
  .service-card{display:block}
  .gallery{grid-template-columns:1fr;grid-auto-rows:260px}
  .gallery__item--wide,.gallery__item--tall{grid-column:auto;grid-row:auto}
  .contact-list{grid-template-columns:1fr}
  .floating-wa span:last-child{display:none}
  .floating-wa{width:52px;height:52px;padding:0;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
