*{margin:0;padding:0;box-sizing:border-box}
:root{--primary:#8B1A1A;--primary-dark:#5C1010;--secondary:#1B3A2D;--accent:#D4A843;--text:#1a1a1a;--light:#f5f3ef;--white:#fff;--radius:12px;--shadow:0 4px 24px rgba(0,0,0,.08)}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;color:var(--text);background:var(--white);line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3,h4{font-family:'Playfair Display',serif;font-weight:700;line-height:1.3;color:var(--secondary)}
a{color:var(--primary);text-decoration:none;transition:all .2s}
img{max-width:100%;height:auto;display:block}
picture{display:block}
.container{max-width:1140px;margin:0 auto;padding:0 24px}
.section{padding:90px 0}
.section-light{background:var(--light)}
.section-dark{background:var(--secondary);color:var(--white)}
.section-dark h2,.section-dark h3,.section-dark p,.section-dark li{color:var(--white)}
.section-red{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:var(--white)}
.section-red h2,.section-red p{color:var(--white)}
.text-center{text-align:center}
.text-justify{text-align:justify}
.section-title{font-size:clamp(28px,4vw,44px);margin-bottom:12px}
.section-subtitle{font-size:17px;color:#666;max-width:650px;margin:0 auto 50px;line-height:1.7}
.section-dark .section-subtitle{color:rgba(255,255,255,.75)}
.section-line{width:60px;height:3px;background:var(--accent);margin:16px auto 20px;border-radius:2px}
.section-line-left{margin:16px 0 20px}
.btn{display:inline-block;padding:15px 36px;border-radius:4px;font-weight:700;font-size:15px;transition:all .3s;cursor:pointer;border:none;text-align:center;text-transform:uppercase;letter-spacing:1px}
.btn-primary{background:var(--primary);color:var(--white)}
.btn-primary:hover{background:var(--primary-dark);color:var(--white);transform:translateY(-2px);box-shadow:0 8px 24px rgba(139,26,26,.3)}
.btn-outline{border:2px solid var(--white);color:var(--white);background:transparent}
.btn-outline:hover{background:var(--white);color:var(--primary)}
.btn-accent{background:var(--accent);color:var(--secondary)}
.btn-accent:hover{background:#c09530;transform:translateY(-2px)}
.btn-secondary{background:var(--secondary);color:var(--white)}
.btn-secondary:hover{background:#0f2a1f;transform:translateY(-2px)}
.btn-sm{padding:11px 24px;font-size:13px}
.nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:all .4s;padding:14px 0;background:rgba(27,58,45,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.nav.scrolled{background:rgba(27,58,45,.97);padding:6px 0;box-shadow:0 2px 20px rgba(0,0,0,.2)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;max-width:1140px;margin:0 auto;padding:0 24px}
.nav-logo img{height:52px;width:auto;filter:brightness(0) invert(1);transition:height .3s}
.nav.scrolled .nav-logo img{height:42px}
.nav-links{display:flex;gap:20px;align-items:center;list-style:none}
.nav-links a{color:rgba(255,255,255,.8);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;transition:color .2s;padding:6px 2px;-webkit-tap-highlight-color:transparent}
.nav-links a:hover,.nav-links a.active{color:var(--accent)}
.nav-cta{background:var(--primary)!important;color:var(--white)!important;padding:10px 22px!important;border-radius:4px}
.nav-cta:hover{background:var(--primary-dark)!important}
.nav-lang{background:rgba(255,255,255,.15)!important;padding:6px 14px!important;border-radius:4px;font-size:12px!important;font-weight:700!important;letter-spacing:1px}
.nav-lang:hover{background:rgba(255,255,255,.25)!important}
.nav-webmail{background:var(--secondary)!important;color:var(--white)!important;padding:10px 18px!important;border-radius:4px}
.nav-webmail:hover{background:#0f2419!important;color:var(--accent)!important}
.hamburger{display:none;cursor:pointer;padding:10px;background:none;border:none;z-index:200;-webkit-tap-highlight-color:transparent}
.hamburger span{display:block;width:24px;height:2px;background:var(--white);margin:5px 0;transition:all .3s}
.hamburger.open span:first-child{transform:rotate(45deg) translate(5px,5px)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:last-child{transform:rotate(-45deg) translate(5px,-5px)}
.page-hero{padding:160px 0 80px;background:var(--secondary);text-align:center;position:relative;overflow:hidden}
.page-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(27,58,45,.9),rgba(27,58,45,.7));z-index:1}
.page-hero .bg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.3;z-index:0}
.page-hero .container{position:relative;z-index:2}
.page-hero h1{color:var(--white);font-size:clamp(32px,5vw,52px);margin-bottom:12px}
.page-hero p{color:rgba(255,255,255,.8);font-size:18px;max-width:600px;margin:0 auto}
.page-hero .breadcrumb{color:rgba(255,255,255,.5);font-size:13px;margin-bottom:16px}
.page-hero .breadcrumb a{color:var(--accent)}
.hero{position:relative;height:100vh;min-height:600px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.4),rgba(27,58,45,.65));z-index:1}
.hero-content{position:relative;z-index:2;max-width:800px;padding:0 24px;animation:heroFadeIn 1.2s ease-out}
@keyframes heroFadeIn{0%{opacity:1;transform:translateY(30px)}100%{opacity:1;transform:translateY(0)}}
.hero-content .hero-logo{height:120px;margin:0 auto 20px;filter:brightness(0) invert(1)}
.hero-content h1{font-size:clamp(28px,5vw,50px);color:var(--white);margin-bottom:14px}
.hero-content p{font-size:clamp(16px,2vw,20px);color:rgba(255,255,255,.85);margin-bottom:32px;max-width:600px;margin-left:auto;margin-right:auto}
.hero-btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.scroll-indicator{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);z-index:2;animation:bounce 2s infinite}
.scroll-indicator svg{width:28px;height:28px;stroke:rgba(255,255,255,.5)}
@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(10px)}}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.about-img{border-radius:var(--radius);box-shadow:var(--shadow);max-height:450px;object-fit:cover;width:100%}
.counters-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;text-align:center}
.counter-item strong{font-size:48px;font-family:'Playfair Display',serif;color:var(--accent);display:block}
.counter-item span{font-size:14px;text-transform:uppercase;letter-spacing:1px;opacity:.8}
.card{background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:all .4s cubic-bezier(.16,1,.3,1)}
.card:hover{transform:translateY(-6px);box-shadow:0 12px 40px rgba(0,0,0,.12)}
.card-img{height:220px;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .card-img img{transform:scale(1.06)}
.card-body{padding:24px}
.card-body h3{font-size:20px;margin-bottom:8px;color:var(--secondary)}
.card-body p{font-size:14px;color:#666;line-height:1.65}
.timeline{position:relative;max-width:700px;margin:0 auto}
.timeline::before{content:'';position:absolute;left:24px;top:0;bottom:0;width:2px;background:var(--accent)}
.timeline-item{position:relative;padding-left:60px;margin-bottom:32px}
.timeline-item::before{content:attr(data-step);position:absolute;left:8px;top:0;width:34px;height:34px;background:var(--primary);color:var(--white);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;z-index:1}
.timeline-item h3{font-size:18px;margin-bottom:4px;font-family:'Inter',sans-serif;font-weight:700;color:var(--secondary)}
.timeline-item p{font-size:14px;color:#666}
.timeline-alt{max-width:800px}
.timeline-alt::before{left:50%}
.timeline-alt .timeline-item{width:50%;padding-left:0}
.timeline-alt .timeline-item:nth-child(odd){padding-right:40px;text-align:right;margin-left:0}
.timeline-alt .timeline-item:nth-child(odd)::before{right:-17px;left:auto}
.timeline-alt .timeline-item:nth-child(even){padding-left:40px;margin-left:50%}
.timeline-alt .timeline-item:nth-child(even)::before{left:-17px}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.gallery-item{position:relative;overflow:hidden;border-radius:6px;aspect-ratio:4/3;cursor:pointer}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gallery-item:hover img{transform:scale(1.06)}
.gallery-caption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.7));color:var(--white);padding:20px 12px 10px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;opacity:1;transition:opacity .3s}
.gallery-item:hover .gallery-caption{opacity:1}
.lightbox{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.95);z-index:300;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}
.lightbox.active{display:flex;align-items:center;justify-content:center}
.lightbox img{max-width:92vw;max-height:88vh;border-radius:8px;object-fit:contain;-webkit-user-select:none;user-select:none}
.lightbox-close{position:absolute;top:16px;right:20px;color:#fff;font-size:36px;cursor:pointer;background:rgba(0,0,0,.5);border:none;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;z-index:301}
.video-container{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:0 10px 40px rgba(0,0,0,.15)}
.video-container video{width:100%;display:block}
.cert-grid{display:flex;gap:32px;justify-content:center;flex-wrap:wrap;margin-top:32px}
.cert-item{text-align:center;padding:20px 24px;background:rgba(255,255,255,.08);border-radius:var(--radius);min-width:120px}
.cert-item .cert-icon{font-size:32px;margin-bottom:6px}
.cert-item span{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;display:block}
.team-card{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:var(--white)}
.team-card img{width:100%;height:280px;object-fit:cover}
.team-card-body{padding:16px;text-align:center}
.team-card-body h3{font-size:16px;margin-bottom:2px}
.team-card-body p{font-size:13px;color:#888}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.contact-info h3{margin-bottom:16px;color:var(--secondary)}
.contact-info p{margin-bottom:10px;font-size:14px}
.contact-info a{color:var(--primary);font-weight:600}
.contact-form input,.contact-form textarea{width:100%;padding:14px 18px;border:1px solid #ddd;border-radius:6px;font-size:15px;font-family:'Inter',sans-serif;margin-bottom:14px;transition:border .2s}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--primary)}
.contact-form textarea{height:140px;resize:vertical}
.form-msg{margin-top:10px;font-size:14px;font-weight:600}
.map-container{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);height:350px}
.map-container iframe{width:100%;height:100%;border:none}
.features-list{list-style:none;padding:0}
.features-list li{padding:8px 0;border-bottom:1px solid #eee;font-size:14px;display:flex;gap:12px;align-items:start}
.features-list li::before{content:'✓';color:var(--primary);font-weight:700;font-size:16px;flex-shrink:0}
.features-list-sm li{padding:6px 0;font-size:13px}
.features-list-dark li{border-color:rgba(255,255,255,.1)}
.features-list-dark li::before{color:var(--accent)}
.cta-final{text-align:center;padding:80px 0}
.cta-final h2{font-size:clamp(24px,3.5vw,38px);margin-bottom:12px}
.cta-final p{font-size:17px;margin-bottom:28px;opacity:.9}
.cta-btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.footer{background:#0f1f17;color:rgba(255,255,255,.6);padding:40px 0 20px}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:28px}
.footer-brand .footer-logo{height:60px;filter:brightness(0) invert(1);margin-bottom:10px}
.footer-brand p{font-size:12px;line-height:1.6;max-width:300px}
.footer h4{color:var(--accent);font-size:12px;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:12px;font-family:'Inter',sans-serif}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:5px}
.footer-links a{color:rgba(255,255,255,.6);font-size:13px}
.footer-links a:hover{color:var(--accent)}
.footer-contact p{font-size:13px;margin-bottom:6px}
.footer-contact a{color:rgba(255,255,255,.6)}
.footer-contact a:hover{color:var(--accent)}
.footer-sucursales{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08)}
.footer-suc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;text-align:center}
.footer-suc-item{background:rgba(255,255,255,.04);padding:14px 12px;border-radius:8px}
.footer-suc-item h5{color:var(--accent);font-size:11px;font-family:'Inter',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.footer-suc-item p{font-size:11px;margin:0;line-height:1.5}
.footer-certs{display:flex;gap:16px;justify-content:center;margin:16px 0;flex-wrap:wrap}
.footer-certs span{background:rgba(255,255,255,.06);padding:4px 10px;border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:rgba(255,255,255,.4)}
.footer-bottom{text-align:center;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08);font-size:11px}
.compact-text p{line-height:1.55;margin-bottom:10px}
.fade-in{opacity:1;transform:translateY(28px);transition:all .8s cubic-bezier(.16,1,.3,1)}
.fade-in.visible{opacity:1;transform:translateY(0)}

/* === RESPONSIVE — SINGLE SOURCE === */
@media(max-width:900px){

/* ---- Mobile menu overlay (fullscreen, opaque background) ---- */
.nav-links{
  position:fixed;
  top:0;
  left:0;
  right:0;
  bottom:0;
  width:100%;
  height:100vh;
  height:100dvh;
  background:#1B3A2D;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  padding:0;
  padding-top:80px;
  gap:0;
  margin:0;
  list-style:none;
  z-index:150;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;

  /* Hidden state — display:none, NO opacity, NO visibility, NO transform */
  display:none;
}

/* Open state — simple display:flex, fully opaque */
.nav-links.open{
  display:flex;
}

/* Body scroll lock when menu open */
body.menu-open{
  overflow:hidden;
  position:fixed;
  width:100%;
  height:100%;
}

/* ---- Menu items ---- */
.nav-links li{
  list-style:none;
  border-bottom:1px solid rgba(255,255,255,.08);
}

/* ---- Link styles ---- */
.nav-links a{
  font-size:17px !important;
  display:block;
  padding:16px 24px;
  color:rgba(255,255,255,.9) !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  -webkit-tap-highlight-color:transparent;
  border-radius:0 !important;
  text-decoration:none;
  transition:background .15s ease;
}
.nav-links a:hover,
.nav-links a:active{
  background:rgba(255,255,255,.08);
}
.nav-links a.active{
  color:#D4A843 !important;
  background:rgba(212,168,67,.08);
}

/* ---- CTA button in mobile menu ---- */
.nav-cta{
  display:block !important;
  text-align:center !important;
  margin:20px 24px 8px !important;
  padding:16px 24px !important;
  font-size:16px !important;
  background:#8B1A1A !important;
  border-radius:6px !important;
  border-bottom:none !important;
  color:#fff !important;
  font-weight:700;
}
.nav-cta:hover{
  background:#5C1010 !important;
}

/* ---- Language switcher in mobile menu ---- */
.nav-lang{
  display:block !important;
  text-align:center !important;
  margin:8px 24px 24px !important;
  padding:12px 24px !important;
  font-size:14px !important;
  background:rgba(255,255,255,.1) !important;
  border-radius:6px !important;
  border-bottom:none !important;
  color:rgba(255,255,255,.9) !important;
  font-weight:700 !important;
}
.nav-lang:hover{
  background:rgba(255,255,255,.2) !important;
}

/* ---- Correo Corporativo button in mobile menu ---- */
.nav-webmail{
  display:block !important;
  text-align:center !important;
  margin:8px 24px !important;
  padding:14px 24px !important;
  font-size:15px !important;
  background:#1B3A2D !important;
  border-radius:6px !important;
  border-bottom:none !important;
  color:#fff !important;
  font-weight:700 !important;
}
.nav-webmail:hover{
  background:#0f2419 !important;
  color:#D4A843 !important;
}

/* ---- Hamburger button ---- */
.hamburger{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  width:44px;
  height:44px;
  padding:0;
  background:none;
  border:none;
  cursor:pointer;
  z-index:200;
  -webkit-tap-highlight-color:transparent;
  position:relative;
}

/* Hamburger bars */
.hamburger span{
  display:block;
  width:24px;
  height:2px;
  background:#fff;
  border-radius:2px;
  position:absolute;
  left:10px;
  transition:transform .3s cubic-bezier(.4,0,.2,1),
             opacity .2s ease;
  -webkit-transition:transform .3s cubic-bezier(.4,0,.2,1),
                     opacity .2s ease;
}
.hamburger span:nth-child(1){
  top:13px;
}
.hamburger span:nth-child(2){
  top:21px;
}
.hamburger span:nth-child(3){
  top:29px;
}

/* Hamburger X animation */
.hamburger.open span:nth-child(1){
  transform:translateY(8px) rotate(45deg);
}
.hamburger.open span:nth-child(2){
  opacity:1;
  transform:scaleX(0);
}
.hamburger.open span:nth-child(3){
  transform:translateY(-8px) rotate(-45deg);
}

}
@media(max-width:768px){
.hero-content .hero-logo{height:80px}
.grid-2,.contact-grid{grid-template-columns:1fr}
.counters-grid{grid-template-columns:repeat(2,1fr);gap:24px}
.grid-3{grid-template-columns:1fr}
.gallery-grid{grid-template-columns:repeat(2,1fr)}
.footer-grid{grid-template-columns:1fr;text-align:center}
.footer-brand p{margin:8px auto 0}
.footer-suc-grid{grid-template-columns:1fr}
.page-hero{padding:120px 0 60px}
.about-img{max-height:300px}
.timeline-alt::before{left:24px}
.timeline-alt .timeline-item{width:100%!important;padding-left:60px!important;padding-right:0!important;text-align:left!important;margin-left:0!important}
.timeline-alt .timeline-item::before{left:8px!important;right:auto!important}
}
@media(max-width:480px){
.hero-content h1{font-size:24px}
.hero-content .hero-logo{height:60px}
.section{padding:50px 0}
.counters-grid{grid-template-columns:1fr 1fr}
.counter-item strong{font-size:32px}
.gallery-grid{grid-template-columns:1fr 1fr}
.hero-btns,.cta-btns{flex-direction:column;align-items:center}
.hero-btns .btn,.cta-btns .btn{width:100%;max-width:280px}
.section-title{font-size:24px}
.nav-logo img{height:36px!important}
}
