:root {
  --forest: #16241D;
  --forest-mid: #1E4D3A;
  --sage: #3F7D5C;
  --gold: #C9A15E;
  --gold-dark: #8A6423;
  --cream: #F2F3EB;
  --cream-alt: #EAEEE1;
  --ink: #16241D;
  --muted: #4B5750;
  --muted-2: #5C6F62;
  --line: #E1E6D8;
  --white: #FFFFFF;
  --max: 1180px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  background:var(--cream); color:var(--ink);
  font-family:'Manrope', Arial, Helvetica, sans-serif;
  font-size:16px; line-height:1.5; overflow-x:hidden;
}
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
h1,h2,h3 { font-weight:800; letter-spacing:-0.3px; }
.wrap { max-width:var(--max); margin:0 auto; padding:0 24px; }
button { font-family:inherit; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  * { animation-duration:0.001ms !important; transition-duration:0.001ms !important; }
}

/* ===== NAV ===== */
.nav {
  background:var(--white); border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:50;
  transition:box-shadow .3s var(--ease), padding .3s var(--ease);
}
.nav.scrolled { box-shadow:0 8px 24px rgba(20,40,30,0.08); }
.nav .wrap {
  display:flex; align-items:center; justify-content:space-between;
  padding-top:18px; padding-bottom:18px;
  transition:padding .3s var(--ease);
}
.nav.scrolled .wrap { padding-top:12px; padding-bottom:12px; }
.nav-logo img { height:42px; transition:height .3s var(--ease); }
.nav.scrolled .nav-logo img { height:34px; }
.nav-links { display:flex; align-items:center; gap:28px; font-size:14.5px; color:var(--muted); list-style:none; }
.nav-links a { position:relative; padding:4px 0; transition:color .2s; }
.nav-links a::after {
  content:""; position:absolute; left:0; bottom:-3px; width:0; height:2px; background:var(--gold);
  transition:width .25s var(--ease);
}
.nav-links a:hover { color:var(--forest-mid); }
.nav-links a:hover::after, .nav-links a.active::after { width:100%; }
.nav-links a.active { color:var(--forest-mid); font-weight:700; }
.nav-cta {
  background:var(--forest); color:var(--cream); padding:11px 24px; border-radius:30px;
  font-size:14px; font-weight:700; white-space:nowrap; border:none; cursor:pointer;
  transition:transform .2s var(--ease), background .2s;
}
.nav-cta:hover { transform:translateY(-2px); background:var(--forest-mid); }
.nav-toggle { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px; }
.nav-toggle span { width:22px; height:2px; background:var(--ink); display:block; transition:transform .25s var(--ease), opacity .2s; }
.nav-toggle.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity:0; }
.nav-toggle.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.nav-right { display:flex; align-items:center; gap:20px; }

@media (max-width:860px) {
  .nav-links {
    position:absolute; top:100%; left:0; right:0; background:var(--white);
    flex-direction:column; align-items:flex-start; gap:0; border-top:1px solid var(--line);
    box-shadow:0 12px 24px rgba(20,40,30,0.08);
    max-height:0; overflow:hidden; opacity:0;
    transition:max-height .35s var(--ease), opacity .25s var(--ease);
  }
  .nav-links.open { max-height:400px; opacity:1; }
  .nav-links li { width:100%; }
  .nav-links a { display:block; padding:16px 24px; width:100%; border-bottom:1px solid var(--line); }
  .nav-links a::after { display:none; }
  .nav-toggle { display:flex; }
  .nav-cta { display:none; }
}

/* ===== HERO ===== */
.hero { position:relative; overflow:hidden; min-height:560px; display:flex; align-items:center; }
.hero-media {
  position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; z-index:0;
  transform:scale(1.06); animation:heroZoom 16s ease-out forwards;
}
@keyframes heroZoom { to { transform:scale(1); } }
.hero-scrim {
  position:absolute; top:0; left:0; width:100%; height:100%; z-index:1;
  background:linear-gradient(115deg, rgba(10,18,14,0.92) 20%, rgba(10,18,14,0.45) 75%);
}
.hero-inner { position:relative; z-index:2; padding:90px 0 110px 0; width:100%; }
.hero-grid { display:flex; flex-wrap:wrap; align-items:flex-end; gap:40px; }
.hero-copy { flex:1 1 480px; max-width:620px; }
.kicker { display:flex; align-items:center; gap:10px; margin-bottom:18px; opacity:0; animation:fadeUp .7s var(--ease) .1s forwards; }
.kicker i { width:28px; height:2px; background:var(--gold); display:block; }
.kicker span { font-size:13px; color:var(--gold); font-weight:700; }
.hero-copy h1 {
  font-size:44px; line-height:1.16; color:var(--white); margin-bottom:20px;
  opacity:0; animation:fadeUp .7s var(--ease) .22s forwards;
}
.hero-copy p {
  font-size:16.5px; color:#D9E0D2; line-height:1.65; margin-bottom:30px; max-width:520px;
  opacity:0; animation:fadeUp .7s var(--ease) .36s forwards;
}
.hero-copy .btn-pill { opacity:0; animation:fadeUp .7s var(--ease) .48s forwards; }
@keyframes fadeUp { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }

.btn-pill {
  display:inline-flex; align-items:center; gap:16px; background:var(--cream);
  padding:8px 8px 8px 24px; border-radius:30px; border:none; cursor:pointer; font-family:inherit;
  transition:transform .2s var(--ease), box-shadow .2s var(--ease);
}
.btn-pill:hover { transform:translateY(-3px); box-shadow:0 12px 28px rgba(0,0,0,0.18); }
.btn-pill span { font-size:14.5px; font-weight:700; color:var(--ink); }
.btn-pill i {
  width:36px; height:36px; border-radius:50%; background:var(--forest); flex-shrink:0;
  display:flex; align-items:center; justify-content:center; transition:transform .3s var(--ease);
}
.btn-pill:hover i { transform:rotate(45deg); }

.info-card {
  flex:0 0 320px; max-width:100%; background:rgba(22,36,29,0.75); border:1px solid rgba(255,255,255,0.18);
  border-radius:16px; padding:28px; backdrop-filter:blur(2px);
  opacity:0; animation:fadeUp .7s var(--ease) .3s forwards;
}
.info-card svg { margin-bottom:16px; }
.info-card p { font-size:14px; color:#E7EBE0; line-height:1.6; }

@media (max-width:640px) {
  .hero { min-height:auto; }
  .hero-inner { padding:56px 0 48px 0; }
  .hero-copy h1 { font-size:32px; }
  .hero-grid { gap:28px; }
  .info-card { flex-basis:100%; }
}

/* ===== REVEAL ON SCROLL ===== */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-stagger.visible > * { transition-delay:calc(var(--i, 0) * 80ms); }

/* ===== SECTION ===== */
.section { padding:96px 0; }
.section-tight { padding:64px 0; }
.section-title { font-size:30px; line-height:1.24; margin-bottom:16px; max-width:640px; }
.section-lead { font-size:15.5px; color:var(--muted); line-height:1.65; max-width:560px; }
@media (max-width:640px) {
  .section { padding:64px 0; }
  .section-title { font-size:24px; }
}

/* ===== INTRO STATS (legacy, kept for safety) ===== */
.stats-row { display:flex; flex-wrap:wrap; gap:40px; margin-top:32px; }
.stat b { display:block; font-size:30px; color:var(--forest-mid); font-variant-numeric:tabular-nums; }
.stat span { font-size:12.5px; color:var(--muted-2); }

/* ===== ABOUT / QUIENES SOMOS ===== */
.about-section { position:relative; overflow:hidden; }
.about-blob { position:absolute; border-radius:50%; filter:blur(2px); z-index:0; pointer-events:none; }
.about-blob-1 {
  width:420px; height:420px; top:-160px; left:-140px;
  background:radial-gradient(circle, rgba(63,125,92,0.14), rgba(63,125,92,0) 70%);
}
.about-blob-2 {
  width:360px; height:360px; bottom:-140px; right:-120px;
  background:radial-gradient(circle, rgba(201,161,94,0.16), rgba(201,161,94,0) 70%);
}
.about-head { position:relative; z-index:1; max-width:680px; margin:0 auto 56px auto; text-align:center; }
.kicker.center { justify-content:center; }
.section-title.center, .section-lead.center { margin-left:auto; margin-right:auto; }
.section-title.center { max-width:100%; }

.pillars-mini {
  position:relative; z-index:1; display:flex; flex-wrap:wrap; justify-content:center;
  gap:0; margin-bottom:56px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.pillar-mini {
  flex:1 1 240px; max-width:280px; text-align:center; padding:36px 22px;
  border-left:1px solid var(--line);
  transition:background .25s var(--ease);
}
.pillar-mini:first-child { border-left:none; }
.pillar-mini:hover { background:rgba(255,255,255,0.6); }
.pm-icon {
  width:52px; height:52px; border-radius:50%; background:var(--cream-alt); margin:0 auto 18px auto;
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s var(--ease);
}
.pillar-mini:hover .pm-icon { transform:translateY(-4px) scale(1.05); }
.pillar-mini h3 { font-size:15.5px; margin-bottom:10px; }
.pillar-mini p { font-size:13px; color:var(--muted); line-height:1.6; }
@media (max-width:760px) {
  .pillars-mini { border:none; }
  .pillar-mini { border-left:none; border-top:1px solid var(--line); flex-basis:100%; max-width:420px; margin:0 auto; }
  .pillar-mini:first-child { border-top:none; }
}

.stats-cards {
  position:relative; z-index:1; display:flex; flex-wrap:wrap; justify-content:center; gap:24px;
}
.stat-card {
  flex:1 1 240px; max-width:300px; background:var(--forest); border-radius:16px; padding:32px 28px;
  text-align:center; transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.stat-card:hover { transform:translateY(-6px); box-shadow:0 18px 36px rgba(20,40,30,0.22); }
.sc-icon {
  width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,0.1); margin:0 auto 14px auto;
  display:flex; align-items:center; justify-content:center;
}
.stat-card b { display:block; font-size:34px; color:var(--cream); font-variant-numeric:tabular-nums; margin-bottom:6px; }
.stat-card span { font-size:12.5px; color:#B9C4B2; }
@media (max-width:640px) { .stat-card { flex-basis:100%; max-width:420px; margin:0 auto; } }

/* ===== GESTION SOSTENIBLE ===== */
.gs-hero { min-height:520px; }
.gs-badge-logo { display:inline-block; background:var(--cream); padding:14px 22px; border-radius:12px; margin-bottom:22px; }
.gs-badge-logo img { height:50px; }

.gs-services { display:flex; flex-wrap:wrap; gap:24px; margin-top:44px; }
.gs-card {
  flex:1 1 calc(50% - 12px); min-width:260px; background:var(--white); border-radius:14px;
  padding:28px; border:1px solid var(--line);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.gs-card:hover { transform:translateY(-6px); box-shadow:0 16px 32px rgba(20,40,30,0.08); }
.gs-card b { display:block; font-size:12.5px; color:var(--gold-dark); margin-bottom:10px; }
.gs-card h3 { font-size:17px; margin-bottom:10px; }
.gs-card p { font-size:13.5px; color:var(--muted); line-height:1.6; }

.gs-contact {
  display:flex; flex-wrap:wrap; align-items:center; gap:28px; background:var(--forest);
  border-radius:16px; padding:28px 32px; margin-top:12px;
}
.gs-contact .item span { display:block; font-size:11px; color:#8FC49B; margin-bottom:4px; }
.gs-contact .item b { font-size:15px; color:var(--cream); }
.gs-contact .item a { transition:opacity .2s; }
.gs-contact .item a:hover { opacity:0.75; }
.gs-contact .note { font-size:12.5px; color:#8FA091; margin-left:auto; max-width:280px; }

@media (max-width:640px) {
  .gs-card { flex-basis:100%; }
  .gs-contact .note { margin-left:0; }
}

/* ===== ALIADOS ===== */
.aliados-section { background:var(--cream-alt); }
.aliados-row { display:flex; flex-wrap:wrap; gap:24px; margin-top:32px; }
.aliado-card {
  position:relative; display:block; flex:1 1 calc(33.333% - 16px); min-width:230px;
  background:var(--white); border-radius:16px; padding:28px 26px 24px 26px;
  border:1px solid var(--line); overflow:hidden;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.aliado-accent {
  position:absolute; top:0; left:0; right:0; height:4px; transform:scaleX(0); transform-origin:left;
  transition:transform .4s var(--ease);
}
.aliado-card:hover .aliado-accent { transform:scaleX(1); }
.aliado-trayvol .aliado-accent { background:linear-gradient(90deg,#1D5C4F,#3F7D5C); }
.aliado-sellerweb .aliado-accent { background:linear-gradient(90deg,#B8873E,#C9A15E); }
.aliado-tecno .aliado-accent { background:linear-gradient(90deg,#8B2E2E,#B8433E); }

.aliado-card:hover { transform:translateY(-8px); box-shadow:0 20px 40px rgba(20,40,30,0.12); }
.aliado-trayvol:hover { border-color:#3F7D5C; }
.aliado-sellerweb:hover { border-color:#C9A15E; }
.aliado-tecno:hover { border-color:#B8433E; }

.aliado-top { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:16px; }
.aliado-mark { height:52px; display:flex; align-items:center; transition:transform .35s var(--ease); }
.aliado-card:hover .aliado-mark { transform:scale(1.06); }
.aliado-mark img { height:100%; width:auto; }
.aliado-mark .txt { font-size:23px; font-weight:800; }
.aliado-ext {
  width:28px; height:28px; border-radius:50%; background:var(--cream-alt); color:var(--muted-2);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  opacity:0; transform:translate(-4px,4px); transition:opacity .3s var(--ease), transform .3s var(--ease), background .3s, color .3s;
}
.aliado-card:hover .aliado-ext { opacity:1; transform:translate(0,0); }
.aliado-trayvol:hover .aliado-ext { background:#E7F0EA; color:#1D5C4F; }
.aliado-sellerweb:hover .aliado-ext { background:#F5EBD8; color:#8A6423; }
.aliado-tecno:hover .aliado-ext { background:#F7E6E4; color:#8B2E2E; }

.aliado-card .tag { font-size:12px; color:var(--sage); margin-bottom:14px; }
.aliado-card p { font-size:13px; color:var(--muted); line-height:1.55; margin-bottom:18px; }
.aliado-cta {
  display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700; color:var(--ink);
}
.aliado-cta .arrow { transition:transform .3s var(--ease); }
.aliado-card:hover .aliado-cta .arrow { transform:translateX(5px); }
.aliado-card .note { font-size:11px; color:#8A9186; margin-top:16px; padding-top:14px; border-top:1px solid var(--line); }
.aliado-card:focus-visible { outline:2px solid var(--sage); outline-offset:3px; }

/* ===== PILLARS ===== */
.pillars-band { background:var(--forest); }
.pillars-band .section-title { color:var(--cream); }
.pillars-band .section-lead { color:#C7D0C0; }
.pillars-row { display:flex; flex-wrap:wrap; gap:20px; margin-top:32px; }
.pillar {
  flex:1 1 calc(33.333% - 14px); min-width:220px; background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.14); border-radius:14px; padding:24px;
  transition:transform .3s var(--ease), background .3s var(--ease);
}
.pillar:hover { transform:translateY(-6px); background:rgba(255,255,255,0.1); }
.pillar h3 { font-size:16.5px; color:var(--cream); margin-bottom:8px; }
.pillar p { font-size:13px; color:#C7D0C0; line-height:1.55; }
@media (max-width:640px) { .pillar { flex-basis:100%; } }

/* ===== CONTACT FORM ===== */
.contact-section { background:var(--cream); }
.contact-grid { display:flex; flex-wrap:wrap; gap:48px; margin-top:36px; }
.contact-info { flex:1 1 280px; }
.contact-info .row { display:flex; align-items:flex-start; gap:14px; margin-bottom:22px; }
.contact-info .row .ic {
  width:38px; height:38px; border-radius:10px; background:var(--forest-mid); flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.contact-info .row div span { display:block; font-size:12px; color:var(--muted-2); margin-bottom:2px; }
.contact-info .row div b { font-size:14.5px; }
.contact-info .row a:hover b { color:var(--forest-mid); }

.contact-form { flex:1 1 380px; background:var(--white); border-radius:16px; padding:32px; border:1px solid var(--line); }
.form-row { display:flex; gap:16px; margin-bottom:16px; }
.form-field { flex:1; display:flex; flex-direction:column; gap:6px; }
.form-field label { font-size:12.5px; color:var(--muted-2); }
.form-field input, .form-field textarea {
  border:1px solid var(--line); border-radius:8px; padding:12px 14px; font-family:inherit; font-size:14px;
  background:var(--cream); transition:border-color .2s, background .2s;
}
.form-field input:focus, .form-field textarea:focus {
  outline:none; border-color:var(--sage); background:var(--white);
}
.form-field textarea { resize:vertical; min-height:96px; }
.form-submit {
  width:100%; background:var(--forest); color:var(--cream); border:none; border-radius:30px;
  padding:15px; font-size:14.5px; font-weight:700; cursor:pointer; margin-top:6px;
  display:flex; align-items:center; justify-content:center; gap:10px;
  transition:transform .2s var(--ease), background .2s;
}
.form-submit:hover:not(:disabled) { transform:translateY(-2px); background:var(--forest-mid); }
.form-submit:disabled { opacity:0.65; cursor:default; }
.form-msg { font-size:13.5px; margin-top:14px; display:none; padding:12px 14px; border-radius:8px; }
.form-msg.show { display:block; }
.form-msg.ok { background:#E7F0E5; color:#2F5233; }
.form-msg.err { background:#F6E5E2; color:#8A3B2A; }
.spinner {
  width:16px; height:16px; border-radius:50%; border:2px solid rgba(242,239,227,0.4);
  border-top-color:var(--cream); animation:spin .7s linear infinite; display:none;
}
.form-submit.loading .spinner { display:inline-block; }
.form-submit.loading .submit-label { display:none; }
@keyframes spin { to { transform:rotate(360deg); } }

@media (max-width:520px) { .form-row { flex-direction:column; gap:16px; } }

/* ===== FOOTER ===== */
.footer { background:#0F1912; padding:56px 0 90px 0; }
.footer-top { display:flex; flex-wrap:wrap; gap:40px; justify-content:space-between; margin-bottom:40px; }
.footer-brand-logo { display:inline-block; background:var(--cream); padding:10px 16px; border-radius:10px; margin-bottom:14px; }
.footer-brand-logo img { height:32px; }
.footer-tag { font-size:13px; color:#8FA091; max-width:280px; line-height:1.6; }
.footer-cols { display:flex; flex-wrap:wrap; gap:48px; }
.footer-col-title { font-size:12.5px; color:var(--gold); margin-bottom:14px; }
.footer-col a, .footer-col p { display:block; font-size:13.5px; color:#B9C4B2; margin-bottom:10px; transition:color .2s; }
.footer-col a:hover { color:var(--cream); }
.footer-bottom {
  border-top:1px solid #26332B; padding-top:22px; display:flex; flex-wrap:wrap; gap:10px;
  justify-content:space-between; font-size:12px; color:#71806F;
}

/* ===== FLOATING ACTIONS ===== */
.fab-group { position:fixed; right:22px; bottom:22px; z-index:60; display:flex; flex-direction:column; gap:12px; align-items:flex-end; }
.fab {
  width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 24px rgba(20,40,30,0.25); border:none; cursor:pointer;
  transition:transform .25s var(--ease), opacity .25s var(--ease), box-shadow .25s var(--ease);
}
.fab-whatsapp { background:#3FA55A; }
.fab-whatsapp:hover { transform:scale(1.08); box-shadow:0 14px 30px rgba(63,165,90,0.35); }
.fab-top { background:var(--forest); opacity:0; pointer-events:none; transform:translateY(10px); }
.fab-top.show { opacity:1; pointer-events:auto; transform:translateY(0); }
.fab-top:hover { transform:translateY(-4px); }

/* ===== UTIL ===== */
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
