:root{
  --primary: #448865;
  --primary-dark: #123322;
  --bg: #f6f4ef;
  --text: #1f2937;
  --muted: #6b7280;
  --card: rgba(255,255,255,.86);
  --shadow: 0 18px 45px rgba(0,0,0,.12);
  --radius: 18px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;color:var(--text);background:var(--bg);scroll-behavior:smooth}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
.container{width:min(1120px, 92%);margin:0 auto}
.nav{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(246,244,239,.78);backdrop-filter: blur(10px);border-bottom:1px solid rgba(17,24,39,.08)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:12px 0;gap:14px}
.brand{display:flex;align-items:center;gap:10px}
.brand img{width:42px;height:42px;border-radius:12px;box-shadow: 0 8px 20px rgba(0,0,0,.10)}
.brand .title{font-weight:800;letter-spacing:.3px;line-height:1.05}
.brand .subtitle{font-size:12px;color:var(--muted);margin-top:2px}
.menu{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.menu a{font-weight:600;font-size:14px;color:#111827;opacity:.85}
.menu a:hover{opacity:1}
.cta{display:flex;align-items:center;gap:10px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid rgba(17,24,39,.12);padding:10px 14px;border-radius:999px;background:white;box-shadow: 0 10px 30px rgba(0,0,0,.08);font-weight:700;font-size:14px}
.btn.primary{background:var(--primary);color:white;border-color:transparent}
.btn:hover{transform: translateY(-1px)}
.btn:active{transform: translateY(0px)}

.hero{padding:110px 0 56px;position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns: 1.2fr .8fr;gap:28px;align-items:stretch}
.hero-card{border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;position:relative}
.hero-card .bg{position:absolute;inset:0;background-image:url('assets/img/portada.jpg');background-size:cover;background-position:center}
.hero-card .overlay{position:absolute;inset:0;background:linear-gradient(120deg, rgba(18,51,34,.85), rgba(18,51,34,.45), rgba(18,51,34,.15))}
.hero-card .content{position:relative;padding:34px}
.kicker{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.16);padding:8px 12px;border-radius:999px;color:white;font-weight:700;font-size:13px}
.kicker .dot{width:9px;height:9px;border-radius:99px;background:#b7f7d5;box-shadow:0 0 0 6px rgba(183,247,213,.14)}
h1{margin:14px 0 8px;color:white;font-size:44px;line-height:1.03;letter-spacing:-.5px}
.lead{color:rgba(255,255,255,.9);font-size:16px;line-height:1.6;margin:0 0 18px;max-width:52ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.badges{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.badge{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:14px;color:white}
.badge b{display:block;font-size:18px}
.badge span{display:block;font-size:13px;color:rgba(255,255,255,.85);margin-top:4px}

.side{display:flex;flex-direction:column;gap:16px}
.card{background:var(--card);border:1px solid rgba(17,24,39,.08);border-radius:var(--radius);box-shadow: 0 16px 35px rgba(0,0,0,.08);padding:18px}
.card h3{margin:0 0 10px;font-size:16px}
.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(68,136,101,.12);border:1px solid rgba(68,136,101,.22);font-weight:700;font-size:13px;color:var(--primary-dark)}
.ul{margin:12px 0 0;padding:0 0 0 18px;color:#111827}
.ul li{margin:8px 0;color:#111827}
.small{color:var(--muted);font-size:13px;line-height:1.55;margin:0}

.section{padding:56px 0}
.section h2{font-size:30px;margin:0 0 10px;letter-spacing:-.3px}
.section p{color:var(--muted);margin:0 0 18px;line-height:1.7}
.grid-3{display:grid;grid-template-columns: repeat(3,1fr);gap:16px}
.feature{background:white;border:1px solid rgba(17,24,39,.08);border-radius:var(--radius);padding:18px;box-shadow: 0 14px 30px rgba(0,0,0,.06)}
.icon{width:44px;height:44px;border-radius:14px;background:rgba(68,136,101,.12);border:1px solid rgba(68,136,101,.22);display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.feature h3{margin:0 0 8px;font-size:16px}
.feature p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}

.stats{display:grid;grid-template-columns: repeat(3,1fr);gap:16px}
.stat{background:linear-gradient(180deg, rgba(68,136,101,.12), rgba(255,255,255,.95));border:1px solid rgba(17,24,39,.08);border-radius:var(--radius);padding:18px;box-shadow: 0 14px 30px rgba(0,0,0,.06)}
.stat b{font-size:26px;color:var(--primary-dark)}
.stat span{display:block;color:var(--muted);margin-top:4px}

.gallery{display:grid;grid-template-columns: repeat(4, 1fr);gap:12px}
.gitem{border-radius:16px;overflow:hidden;cursor:pointer;position:relative;border:1px solid rgba(17,24,39,.10);background:white}
.gitem img{width:100%;height:160px;object-fit:cover;transition: transform .35s ease}
.gitem:hover img{transform: scale(1.05)}
.gitem::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, transparent 40%, rgba(0,0,0,.15));opacity:0;transition: opacity .25s ease}
.gitem:hover::after{opacity:1}

.two-col{display:grid;grid-template-columns: 1fr 1fr;gap:18px;align-items:stretch}
.video{aspect-ratio: 9/16; width:100%; border-radius:var(--radius); overflow:hidden;border:1px solid rgba(17,24,39,.10);box-shadow: 0 14px 30px rgba(0,0,0,.06);background:#000}
.video iframe{width:100%;height:100%;border:0}
.map{width:100%;height:360px;border-radius:var(--radius);overflow:hidden;border:1px solid rgba(17,24,39,.10);box-shadow: 0 14px 30px rgba(0,0,0,.06)}
.map iframe{width:100%;height:100%;border:0}

.form{display:grid;gap:12px}
.input{display:flex;flex-direction:column;gap:6px}
.input label{font-size:13px;color:#374151;font-weight:700}
.input input,.input textarea{padding:12px 12px;border-radius:14px;border:1px solid rgba(17,24,39,.12);background:white;font-size:14px;outline:none}
.input textarea{min-height:120px;resize:vertical}
.note{font-size:12px;color:var(--muted)}

.footer{padding:34px 0;border-top:1px solid rgba(17,24,39,.08);color:var(--muted)}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.footer strong{color:#111827}
.whatsapp-float{position:fixed;right:18px;bottom:18px;z-index:60}
.whatsapp-float a{width:56px;height:56px;border-radius:18px;display:flex;align-items:center;justify-content:center;background: #25D366;box-shadow: 0 18px 40px rgba(0,0,0,.18)}
.whatsapp-float svg{width:26px;height:26px;fill:white}

.fade{opacity:0;transform: translateY(12px);transition: opacity .7s ease, transform .7s ease}
.fade.in{opacity:1;transform: translateY(0)}

.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.78);display:none;align-items:center;justify-content:center;padding:18px;z-index:100}
.lightbox.open{display:flex}
.lightbox img{max-width:min(1100px, 96vw);max-height:86vh;border-radius:16px;background:white}
.lightbox button{position:absolute;top:18px;right:18px;border:0;background:rgba(255,255,255,.16);color:white;font-weight:900;border-radius:14px;padding:10px 12px;cursor:pointer}

@media (max-width: 980px){
  .hero-grid{grid-template-columns:1fr;}
  h1{font-size:38px}
  .gallery{grid-template-columns: repeat(2, 1fr)}
  .grid-3{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr}
  .two-col{grid-template-columns:1fr}
  .menu{display:none}
}
