@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:wght@400;500;600;700&family=Open+Sans:wght@400;500;600;700&display=swap');

:root{
  --paper:#FAFAF6;
  --white:#FFFFFF;
  --forest:#1D4432;
  --forest-2:#122A20;
  --olive:#6B8E23;
  --olive-dark:#526F1A;
  --olive-tint:#EEF3E2;
  --ink:#15201B;
  --muted:#5C6960;
  --line:#E7E4DC;
  --line-2:#DEDBD2;
}
*{box-sizing:border-box;}
body{margin:0;font-family:'Open Sans',sans-serif;color:var(--ink);background:var(--paper);}
h1,h2,h3{font-family:'Roboto Condensed',sans-serif;margin:0;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;}

.wrap{width:100%;max-width:1440px;margin:0 auto;position:relative;}

.nav-link{position:relative;font-size:15px;font-weight:600;color:var(--ink);padding:8px 4px;}
.nav-link::after{content:"";position:absolute;left:4px;right:4px;bottom:2px;height:2px;background:var(--olive);transform:scaleX(0);transform-origin:left;transition:transform .18s;}
.nav-link:hover::after{transform:scaleX(1);}
.eyebrow{font-size:12.5px;font-weight:700;letter-spacing:0.09em;text-transform:uppercase;color:var(--olive-dark);display:inline-flex;align-items:center;gap:8px;}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--olive);display:inline-block;}
.eyebrow-light{color:#E7F0DA;}
.eyebrow-light::before{background:#A8D25C;}
.h2{font-size:36px;font-weight:700;color:var(--ink);letter-spacing:-0.01em;}
.btn-primary{display:inline-flex;align-items:center;justify-content:center;background:var(--olive);color:#fff;font-size:15px;font-weight:700;padding:14px 26px;border-radius:10px;border:1px solid var(--olive);transition:background .15s;}
.btn-primary:hover{background:var(--olive-dark);}
.btn-outline{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--ink);font-size:15px;font-weight:700;padding:14px 26px;border-radius:10px;border:1.5px solid var(--line-2);transition:border-color .15s,background .15s;}
.btn-outline:hover{border-color:var(--ink);background:var(--white);}
.btn-outline-light{display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.08);color:#fff;font-size:15px;font-weight:700;padding:14px 26px;border-radius:10px;border:1.5px solid rgba(255,255,255,0.55);transition:border-color .15s,background .15s;}
.btn-outline-light:hover{border-color:#fff;background:rgba(255,255,255,0.16);}
.card{background:var(--white);border:1px solid var(--line);border-radius:18px;transition:box-shadow .18s,transform .18s,border-color .18s;}
.card:hover{box-shadow:0 22px 40px rgba(21,32,27,0.09);transform:translateY(-3px);border-color:var(--line-2);}
.icon-badge{width:46px;height:46px;border-radius:12px;background:var(--olive-tint);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.avatar{width:56px;height:56px;border-radius:50%;background:var(--olive-tint);border:1px solid #E3EEDA;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--olive-dark);font-family:'Roboto Condensed',sans-serif;font-weight:700;font-size:17px;overflow:hidden;}
.avatar img{width:100%;height:100%;object-fit:cover;}
label.field-label{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:6px;display:block;}
input.field, textarea.field{width:100%;font-family:'Open Sans',sans-serif;font-size:15px;color:var(--ink);padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;background:var(--white);}
input.field:focus, textarea.field:focus{outline:2px solid var(--olive);outline-offset:1px;border-color:var(--olive);}
.contact-row{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-top:1px solid var(--line);}
.footer-link{font-size:14px;color:#CFE0D3;}
.footer-link:hover{color:#fff;}
.wa-fab{position:fixed;right:32px;bottom:32px;width:60px;height:60px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px rgba(0,0,0,0.28);z-index:80;transition:transform .15s;}
.wa-fab:hover{transform:scale(1.06);}

/* HEADER */
.site-header{position:sticky;top:0;z-index:50;background:rgba(250,250,246,0.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;height:92px;padding:0 96px;}
.site-header .nav-primary{display:flex;align-items:center;gap:32px;}

/* HERO */
.hero-wrap{position:relative;width:100%;height:640px;overflow:hidden;background:var(--forest-2);}
.hero-slide-base{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1;display:block;}
.hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;}
.hero-slide.is-video{object-fit:cover;}
.hero-wrap.has-multi .hero-slide-base, .hero-wrap.has-multi .hero-slide{animation:heroFade var(--hero-cycle,18s) infinite;}
@keyframes heroFade{0%{opacity:0;}4%{opacity:1;}30%{opacity:1;}36%{opacity:0;}100%{opacity:0;}}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg, rgba(9,18,14,0.28) 0%, rgba(9,18,14,0.18) 38%, rgba(7,15,11,0.86) 100%);}
.hero-content{position:absolute;left:96px;right:340px;bottom:68px;display:flex;flex-direction:column;gap:22px;color:#fff;}
.hero-dots{position:absolute;right:96px;bottom:76px;display:flex;gap:10px;align-items:center;}
.hero-dot{height:8px;border-radius:50px;background:rgba(255,255,255,0.45);animation:dotActive var(--hero-cycle,18s) infinite;}
@keyframes dotActive{0%{background:rgba(255,255,255,0.45);width:8px;}4%{background:#fff;width:26px;}30%{background:#fff;width:26px;}36%{background:rgba(255,255,255,0.45);width:8px;}100%{background:rgba(255,255,255,0.45);width:8px;}}

/* CIFRAS */
.cifras-band{background:var(--olive-tint);border-top:1px solid #E3EEDA;border-bottom:1px solid #E3EEDA;}
.cifras-row{padding:52px 96px;display:flex;justify-content:center;align-items:flex-start;gap:96px;flex-wrap:wrap;}
.cifra-item{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;}
.cifra-num{font-family:'Roboto Condensed',sans-serif;font-size:52px;font-weight:700;color:var(--ink);line-height:1;}
.cifra-label{color:var(--muted);}

/* SERVICIOS */
.servicios-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
.service-card{overflow:hidden;padding:0;display:flex;flex-direction:column;}
.service-card img{width:100%;height:220px;object-fit:cover;display:block;}
.service-card .body{padding:26px 28px 30px;display:flex;flex-direction:column;gap:10px;}

/* SOBRE ASCOR */
.sobre-banner{position:relative;width:100%;height:420px;overflow:hidden;}
.sobre-banner img{width:100%;height:100%;object-fit:cover;display:block;}
.sobre-banner .scrim{position:absolute;inset:0;background:linear-gradient(100deg, rgba(18,42,32,0.82) 0%, rgba(18,42,32,0.42) 48%, rgba(18,42,32,0.05) 78%);}
.sobre-banner .copy{position:absolute;left:96px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:14px;max-width:460px;}
.cobertura-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;}
.equipo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;}

/* LOGOS CLIENTES */
.logo-marquee{overflow:hidden;width:100%;-webkit-mask-image:linear-gradient(90deg, transparent 0, #000 96px, #000 calc(100% - 96px), transparent 100%);mask-image:linear-gradient(90deg, transparent 0, #000 96px, #000 calc(100% - 96px), transparent 100%);}
.logo-track{display:flex;align-items:center;gap:76px;width:max-content;animation:marquee var(--marquee-speed,26s) linear infinite;}
.logo-track img{height:36px;width:auto;object-fit:contain;flex-shrink:0;}
@keyframes marquee{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}

/* REPRESENTACIONES */
.representaciones-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;}
.repr-card{padding:28px;display:flex;flex-direction:column;gap:16px;border-top:3px solid var(--olive);}
.repr-logo{height:44px;display:flex;align-items:center;}
.repr-logo img{max-height:100%;max-width:100%;object-fit:contain;}

/* CTA */
.cta-band{padding:88px 96px;}
.cta-inner{background:var(--forest);border-radius:28px;padding:64px 72px;display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap;}

/* FOOTER */
.site-footer{background:var(--forest-2);color:#DCE8DC;padding:64px 96px 40px;display:flex;flex-direction:column;gap:40px;}
.site-footer .footer-top{display:flex;justify-content:space-between;gap:40px;align-items:flex-start;flex-wrap:wrap;}
.site-footer nav{display:flex;gap:36px;flex-wrap:wrap;}
.site-footer .bottom{border-top:1px solid rgba(255,255,255,0.12);padding-top:24px;font-size:13px;color:#8FA69A;}

section{padding:96px 96px 110px;box-sizing:border-box;}
section.no-pad-top{padding-top:0;}
section.no-pad-bottom{padding-bottom:0;}
section.bg-white{background:var(--white);}

/* ===== SCROLL REVEAL ===== */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s ease;}
.reveal.is-visible{opacity:1;transform:translateY(0);}
.reveal-group > *{opacity:0;transform:translateY(22px);transition:opacity .6s ease, transform .6s ease;}
.reveal-group.is-visible > *{opacity:1;transform:translateY(0);}
.reveal-group.is-visible > *:nth-child(1){transition-delay:.02s;}
.reveal-group.is-visible > *:nth-child(2){transition-delay:.09s;}
.reveal-group.is-visible > *:nth-child(3){transition-delay:.16s;}
.reveal-group.is-visible > *:nth-child(4){transition-delay:.23s;}
.reveal-group.is-visible > *:nth-child(5){transition-delay:.30s;}
.reveal-group.is-visible > *:nth-child(6){transition-delay:.37s;}
@media (prefers-reduced-motion: reduce){
  .reveal, .reveal-group > *{opacity:1 !important;transform:none !important;transition:none !important;}
}

/* ===== RESPONSIVE (básico) ===== */
@media (max-width: 960px){
  .site-header, section{padding-left:24px;padding-right:24px;}
  .site-header{height:72px;}
  .hero-content{left:24px;right:24px;bottom:40px;}
  .hero-wrap{height:520px;}
  .servicios-grid, .equipo-grid{grid-template-columns:1fr;}
  .site-footer{padding-left:24px;padding-right:24px;}
  .cta-inner{padding:40px 32px;}
  #contactanos .contact-flex{flex-direction:column;}
}
