@font-face {
  font-family:'Vastine';
  src:url('assets/tipografia/Vastine Personal Use Only.ttf') format('truetype'),
      url('assets/tipografia/VastinePersonalUse-jE4ZG.otf') format('opentype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}


:root {
  --color-primary:#58595a;
  --color-secondary:#202122;
  --color-accent:#f59e0b;
  --color-accent-dark:#cc9600;
  --color-gray:#7c7d7e;
  --color-bg:#e8e8e8;
  --color-bg-dark:#d0d0d0;
  --color-bg-darker:#b8b8b8;
  --color-text:#202122;
  --color-text-light:#58595a;
  --color-text-muted:#7c7d7e;
  --color-white:#ffffff;
  --color-border:rgba(88,89,90,0.15);
  --font-heading:'Vastine','Montserrat',sans-serif;
  --font-body:'Vastine','Source Sans 3',sans-serif;
}

html {
  scroll-behavior:auto;
  color-scheme:light;
}

*,*::before,*::after {
  margin:0;
  padding:0;
  box-sizing:border-box;
}

body {
  font-family:var(--font-body);
  font-size:1rem;
  line-height:1.7;
  color:var(--color-text);
  background-color:var(--color-bg);
  overflow-x:hidden;
}

button,a,input,textarea,select {
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible {
  outline:2px solid var(--color-accent);
  outline-offset:2px;
}

img {
  max-width:100%;
  height:auto;
  display:block;
}

h1,h2,h3,h4,h5,h6 {
  font-family:var(--font-heading);
  line-height:1.2;
  text-wrap:balance;
}

h1 {
  font-size:clamp(2.5rem,6vw,4rem);
  font-weight:800;
}

h2 {
  font-size:clamp(1.8rem,4vw,2.5rem);
  font-weight:700;
  letter-spacing:0.5px;
}

h3 {
  font-size:clamp(1.1rem,2vw,1.4rem);
  font-weight:600;
}

p {
  font-size:1rem;
  line-height:1.7;
}

.container {
  max-width:1200px;
  margin:0 auto;
  padding:0 20px;
}

@media (min-width:768px) {
  .container {
    padding:0 40px;
  }

}

@media (min-width:1240px) {
  .container {
    padding:0;
  }

}

section[id] {
  scroll-margin-top:80px;
}


.skip-link {
  position:absolute;
  top:-100%;
  left:0;
  z-index:9999;
  background:var(--color-accent);
  color:var(--color-secondary);
  padding:12px 24px;
  font-weight:600;
  text-decoration:none;
}

.skip-link:focus {
  top:0;
}

.cursor-follower {
  width:20px;
  height:20px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,0.5);
  mix-blend-mode:difference;
  pointer-events:none;
  position:fixed;
  z-index:9999;
  top:0;
  left:0;
  display:none;
}

@media (min-width:1024px) {
  .cursor-follower {
    display:block;
  }

}

.navbar {
  position:fixed;
  top:0;
  left:0;
  width:100%;
  z-index:1000;
  transition:background-color 0.3s ease,box-shadow 0.3s ease;
  background:rgba(255,255,255,0.0);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

.navbar.scrolled {
  background:rgba(255,255,255,0.97);
  box-shadow:0 2px 20px rgba(0,0,0,0.1);
}

.navbar-inner {
  max-width:1200px;
  margin:0 auto;
  padding:0 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:110px;
}

@media (min-width:768px) {
  .navbar-inner {
    padding:0 40px;
  }

}

@media (min-width:1240px) {
  .navbar-inner {
    padding:0;
  }

}

.navbar-logo {
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  z-index:1001;
}

.navbar-logo img {
  height:106px;
  width:auto;
  filter:brightness(0) invert(1);
  transition:filter 0.3s ease;
}

.navbar.scrolled .navbar-logo img {
  filter:none;
}

.navbar-logo-text {
  font-family:var(--font-heading);
  font-size:1rem;
  font-weight:800;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--color-white);
  transition:color 0.3s ease;
}

.navbar.scrolled .navbar-logo-text {
  color:var(--color-secondary);
}

.nav-links {
  display:none;
  list-style:none;
  gap:28px;
  align-items:center;
}

@media (min-width:1024px) {
  .nav-links {
    display:flex;
  }

}

.nav-links a {
  text-decoration:none;
  font-family:var(--font-heading);
  font-size:0.8rem;
  font-weight:600;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--color-white);
  transition:color 0.3s ease;
  position:relative;
}

.nav-links a::after {
  content:'';
  position:absolute;
  bottom:-4px;
  left:0;
  width:0;
  height:2px;
  background:var(--color-accent);
  transition:width 0.3s ease;
}

.nav-links a:hover::after {
  width:100%;
}

.navbar.scrolled .nav-links a {
  color:var(--color-text);
}

.navbar.scrolled .nav-links a:hover {
  color:var(--color-accent-dark);
}

.hamburger {
  display:flex;
  flex-direction:column;
  gap:5px;
  background:none;
  border:none;
  cursor:pointer;
  z-index:1001;
  padding:8px;
}

@media (min-width:1024px) {
  .hamburger {
    display:none;
  }

}

.hamburger span {
  display:block;
  width:24px;
  height:2px;
  background:var(--color-white);
  transition:transform 0.3s ease,opacity 0.3s ease,background-color 0.3s ease;
}

.navbar.scrolled .hamburger span {
  background:var(--color-secondary);
}

.hamburger.active span:nth-child(1) {
  transform:rotate(45deg) translate(5px,5px);
}

.hamburger.active span:nth-child(2) {
  opacity:0;
}

.hamburger.active span:nth-child(3) {
  transform:rotate(-45deg) translate(5px,-5px);
}

.mobile-menu {
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:100vh;
  background:rgba(32,33,34,0.97);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:32px;
  z-index:999;
  opacity:0;
  pointer-events:none;
  transition:opacity 0.3s ease;
  overscroll-behavior:contain;
}

.mobile-menu.open {
  opacity:1;
  pointer-events:all;
}

.mobile-menu a {
  text-decoration:none;
  font-family:var(--font-heading);
  font-size:1.5rem;
  font-weight:700;
  color:var(--color-white);
  letter-spacing:2px;
  text-transform:uppercase;
  transition:color 0.3s ease;
}

.mobile-menu a:hover {
  color:var(--color-accent);
}

.hero {
  position:relative;
  width:100%;
  height:100vh;
  min-height:600px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--color-secondary);
}

.hero-bg {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:120%;
  background-image:url('assets/images/ingenieros-construccion.png');
  background-size:cover;
  background-position:center;
  will-change:transform;
}

.hero-overlay {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background:linear-gradient(rgba(32,33,34,0.5),rgba(32,33,34,0.7));
  z-index:2;
}

.hero-big-text {
  position:absolute;
  z-index:1;
  font-family:var(--font-heading);
  font-size:clamp(4rem,10vw,10rem);
  font-weight:900;
  color:rgba(255,255,255,0.04);
  text-transform:uppercase;
  letter-spacing:8px;
  white-space:nowrap;
  will-change:transform;
  user-select:none;
}

.hero-shapes {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  z-index:1;
  pointer-events:none;
}

.hero-shape {
  position:absolute;
  border-radius:50%;
  opacity:0.06;
}

.hero-shape-1 {
  width:400px;
  height:400px;
  background:var(--color-accent);
  top:10%;
  right:-10%;
  animation:floatShape 8s ease-in-out infinite;
}

.hero-shape-2 {
  width:250px;
  height:250px;
  background:var(--color-accent-dark);
  bottom:20%;
  left:-5%;
  animation:floatShape 10s ease-in-out infinite reverse;
}

@keyframes floatShape {
  0%,100% {
    transform:translateY(0);
  }

  50% {
    transform:translateY(-20px);
  }

}

.hero-content {
  position:relative;
  z-index:3;
  text-align:center;
  max-width:800px;
  padding:0 20px;
}

.hero-content h1 {
  color:var(--color-white);
  margin-bottom:20px;
  font-size:clamp(2.2rem,5vw,3.8rem);
}

.hero-content h1 .accent-text {
  color:var(--color-accent);
}

.hero-subtitle {
  color:rgba(255,255,255,0.85);
  font-family:var(--font-heading);
  font-size:clamp(1rem,2vw,1.2rem);
  margin-bottom:40px;
  font-weight:300;
  max-width:600px;
  margin-left:auto;
  margin-right:auto;
  line-height:1.8;
}

.hero-cta {
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:16px 40px;
  border:1px solid var(--color-accent);
  background:transparent;
  color:var(--color-white);
  font-family:var(--font-heading);
  font-size:0.85rem;
  font-weight:700;
  letter-spacing:3px;
  text-transform:uppercase;
  text-decoration:none;
  transition:background-color 0.3s ease,color 0.3s ease;
}

.hero-cta:hover {
  background:var(--color-accent);
  color:var(--color-secondary);
}

@keyframes pulse-shadow {
  0%,100% {
    box-shadow:0 0 0 0 rgba(245,158,11,0.4);
  }

  50% {
    box-shadow:0 0 0 12px rgba(245,158,11,0);
  }

}

.hero-cta {
  animation:pulse-shadow 2.5s ease-in-out infinite;
}


.marquee-section {
  padding:28px 0;
  overflow:hidden;
  background:var(--color-accent);
  position:relative;
}

.marquee-track {
  display:flex;
  gap:0;
  white-space:nowrap;
  will-change:transform;
}

.marquee-item {
  font-family:var(--font-heading);
  font-size:clamp(1.5rem,4vw,3rem);
  font-weight:800;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--color-secondary);
  padding:0 40px;
  flex-shrink:0;
  display:flex;
  align-items:center;
  gap:40px;
}

.marquee-dot {
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--color-secondary);
  flex-shrink:0;
}

.valores {
  padding:100px 0;
  background:var(--color-secondary);
}

.valores-header {
  text-align:center;
  margin-bottom:64px;
}

.valores-header .section-label {
  font-family:var(--font-heading);
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--color-accent);
  margin-bottom:16px;
  display:block;
}

.valores-header h2 {
  color:var(--color-white);
}

.valores-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
}

@media (min-width:768px) {
  .valores-grid {
    grid-template-columns:1fr 1fr;
    gap:32px;
  }

}

@media (min-width:1024px) {
  .valores-grid {
    grid-template-columns:repeat(4,1fr);
    gap:0;
  }

}

.valor-card {
  padding:32px 24px;
  text-align:center;
  position:relative;
}

@media (min-width:1024px) {
  .valor-card:not(:last-child)::after {
    content:'';
    position:absolute;
    right:0;
    top:20%;
    height:60%;
    width:1px;
    background:rgba(255,255,255,0.08);
  }

}

.valor-icon {
  width:80px;
  height:80px;
  border-radius:16px;
  background:rgba(245,158,11,0.12);
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 20px;
}

.valor-icon .material-icons {
  font-size:36px;
  color:var(--color-accent);
}

.valor-icon img {
  width:44px;
  height:44px;
  filter:invert(67%) sepia(64%) saturate(1000%) hue-rotate(3deg) brightness(101%) contrast(96%);
}

.valor-card h3 {
  color:var(--color-white);
  margin-bottom:12px;
  font-size:1.1rem;
  letter-spacing:1px;
  text-transform:uppercase;
}

.valor-card p {
  color:rgba(255,255,255,0.6);
  font-size:0.95rem;
  line-height:1.7;
}

.valor-card .valor-tagline {
  color:var(--color-accent);
  font-weight:600;
  font-size:0.85rem;
  margin-top:12px;
  font-style:italic;
}

.fullwidth-parallax {
  position:relative;
  height:60vh;
  min-height:400px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}

.fullwidth-parallax-img {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:120%;
  object-fit:cover;
  will-change:transform;
}

.fullwidth-parallax-overlay {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background:rgba(32,33,34,0.65);
  z-index:1;
}

.fullwidth-parallax-text {
  position:relative;
  z-index:2;
  text-align:center;
  padding:0 20px;
  max-width:900px;
}

.fullwidth-parallax-text h2 {
  color:var(--color-white);
  font-size:clamp(1.6rem,4vw,2.8rem);
  font-weight:800;
  letter-spacing:1px;
}

.fullwidth-parallax-text h2 .word {
  display:inline-block;
}

.fullwidth-parallax-text h2 .char {
  display:inline-block;
}

.services-slider-section {
  padding:60px 0;
  background:var(--color-bg);
}

.services-slider {
  position:relative;
  max-width:700px;
  margin:0 auto;
  overflow:hidden;
  border-radius:12px;
  background:var(--color-white);
  box-shadow:0 4px 20px rgba(0,0,0,0.08);
}

.services-slides-track {
  display:flex;
  transition:transform 0.5s ease;
}

.services-slide {
  min-width:100%;
  padding:48px 32px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:16px;
}

.services-slide-icon {
  width:64px;
  height:64px;
}

.services-slide h3 {
  font-family:var(--font-heading);
  font-size:1.3rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:1px;
  color:var(--color-secondary);
}

.services-slide p {
  color:var(--color-text-muted);
  font-family:var(--font-heading);
  font-size:1.05rem;
  line-height:1.7;
  max-width:500px;
}

.services-slider-nav {
  display:flex;
  justify-content:center;
  gap:8px;
  padding:16px 0;
}

.services-slider-dot {
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--color-border);
  border:none;
  cursor:pointer;
  padding:0;
  transition:background-color 0.3s ease;
}

.services-slider-dot.active {
  background:var(--color-accent);
}

.servicios-detalle {
  padding:80px 0;
  background:var(--color-secondary);
}

.servicios-detalle-title {
  color:var(--color-accent);
  font-size:clamp(1.4rem,3vw,2rem);
  font-style:italic;
  margin-bottom:48px;
}

.servicios-detalle-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
}

@media (min-width:768px) {
  .servicios-detalle-grid {
    grid-template-columns:repeat(3,1fr);
  }
}

.servicios-detalle-card {
  padding:8px 0;
}

.servicios-detalle-card h3 {
  color:var(--color-white);
  font-size:1rem;
  font-weight:700;
  letter-spacing:0.5px;
  margin-bottom:10px;
}

.servicios-detalle-card p {
  color:rgba(255,255,255,0.6);
  font-size:0.95rem;
  line-height:1.7;
  font-style:italic;
}

.big-scroll {
  padding:80px 0;
  overflow:hidden;
  position:relative;
  background:var(--color-bg-dark);
}

.big-scroll-track {
  white-space:nowrap;
  will-change:transform;
}

.big-scroll-text {
  font-family:var(--font-heading);
  font-size:clamp(3rem,8vw,8rem);
  font-weight:900;
  color:rgba(32,33,34,0.08);
  letter-spacing:6px;
  text-transform:uppercase;
  display:inline-block;
}

.big-scroll-images {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  pointer-events:none;
}

.big-scroll-float {
  position:absolute;
  width:180px;
  height:240px;
  border-radius:8px;
  overflow:hidden;
  will-change:transform;
  box-shadow:0 10px 30px rgba(0,0,0,0.15);
}

.big-scroll-float img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.big-scroll-float:nth-child(1) {
  top:10%;
  left:15%;
}

.big-scroll-float:nth-child(2) {
  top:30%;
  right:20%;
}

@media (max-width:767px) {
  .big-scroll-float {
    display:none;
  }

}

.gallery {
  padding:100px 0;
  background:var(--color-bg);
  position:relative;
}

.gallery::before {
  content:'';
  position:absolute;
  width:500px;
  height:500px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(245,158,11,0.04),transparent 70%);
  top:50%;
  left:30%;
  transform:translate(-50%,-50%);
  pointer-events:none;
}

.gallery-header {
  text-align:center;
  margin-bottom:48px;
}

.gallery-header .section-label {
  font-family:var(--font-heading);
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--color-accent-dark);
  margin-bottom:16px;
  display:block;
}

.gallery-masonry {
  columns:1;
  column-gap:16px;
}

@media (min-width:768px) {
  .gallery-masonry {
    columns:2;
  }

}

@media (min-width:1024px) {
  .gallery-masonry {
    columns:3;
  }

}

.gallery-item {
  break-inside:avoid;
  margin-bottom:16px;
  border-radius:10px;
  overflow:hidden;
  position:relative;
}

.gallery-item img {
  width:100%;
  display:block;
  transition:transform 0.4s ease;
}

.gallery-item:hover img {
  transform:scale(1.03);
}

.process {
  padding:100px 0;
  background:var(--color-secondary);
}

.process-header {
  text-align:center;
  margin-bottom:64px;
}

.process-header .section-label {
  font-family:var(--font-heading);
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--color-accent);
  margin-bottom:16px;
  display:block;
}

.process-header h2 {
  color:var(--color-white);
}

.process-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
}

@media (min-width:768px) {
  .process-grid {
    grid-template-columns:repeat(2,1fr);
    gap:32px;
  }

}

@media (min-width:1024px) {
  .process-grid {
    grid-template-columns:repeat(4,1fr);
    gap:24px;
    position:relative;
  }

}

.process-step {
  text-align:center;
  position:relative;
}

.process-number {
  font-family:var(--font-heading);
  font-size:4rem;
  font-weight:900;
  color:rgba(245,158,11,0.15);
  line-height:1;
  margin-bottom:12px;
}

.process-step h3 {
  color:var(--color-white);
  font-size:1rem;
  letter-spacing:1.5px;
  text-transform:uppercase;
  margin-bottom:10px;
}

.process-step p {
  color:rgba(255,255,255,0.55);
  font-size:0.9rem;
  line-height:1.7;
}

@media (min-width:1024px) {
  .process-connector {
    position:absolute;
    top:32px;
    left:calc(25% + 12px);
    width:calc(50% - 24px);
    height:1px;
    background:rgba(245,158,11,0.2);
  }

  .process-connector:nth-child(2) {
    left:calc(50% + 12px);
  }

  .process-connector:nth-child(3) {
    left:calc(75% + 12px);
    width:calc(25% - 24px);
  }

}

.beneficios {
  padding:100px 0;
  background:var(--color-bg);
}

.beneficios-header {
  text-align:center;
  margin-bottom:64px;
}

.beneficios-header .section-label {
  font-family:var(--font-heading);
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--color-accent-dark);
  margin-bottom:16px;
  display:block;
}

.beneficios-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
}

@media (min-width:768px) {
  .beneficios-grid {
    grid-template-columns:repeat(3,1fr);
  }

}

.beneficio-card {
  background:var(--color-white);
  border-radius:12px;
  padding:40px 28px;
  text-align:center;
  box-shadow:0 4px 20px rgba(0,0,0,0.06);
  transition:transform 0.3s ease,box-shadow 0.3s ease;
}

.beneficio-card:hover {
  transform:translateY(-6px);
  box-shadow:0 12px 40px rgba(0,0,0,0.12);
}

.beneficio-icon {
  width:80px;
  height:80px;
  border-radius:16px;
  background:rgba(245,158,11,0.12);
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 20px;
}

.beneficio-icon .material-icons {
  font-size:36px;
  color:var(--color-accent);
}

.beneficio-icon img {
  width:44px;
  height:44px;
  filter:invert(67%) sepia(64%) saturate(1000%) hue-rotate(3deg) brightness(101%) contrast(96%);
}

.beneficio-card h3 {
  margin-bottom:12px;
  color:var(--color-secondary);
}

.beneficio-card p {
  color:var(--color-text-muted);
  font-size:0.95rem;
}

.testimonials {
  padding:100px 0;
  background:var(--color-bg-dark);
}

.testimonials-header {
  text-align:center;
  margin-bottom:64px;
}

.testimonials-header .section-label {
  font-family:var(--font-heading);
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--color-accent-dark);
  margin-bottom:16px;
  display:block;
}

.testimonials-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
}

@media (min-width:768px) {
  .testimonials-grid {
    grid-template-columns:repeat(3,1fr);
  }

}

.testimonial-card {
  background:var(--color-white);
  border-radius:12px;
  padding:36px 28px;
  position:relative;
  box-shadow:0 4px 20px rgba(0,0,0,0.06);
  perspective:1000px;
  transition:border-color 0.3s ease,box-shadow 0.3s ease;
  border:2px solid transparent;
}

.testimonial-card:hover {
  border-color:var(--color-accent);
  box-shadow:0 12px 40px rgba(0,0,0,0.1);
}

.testimonial-quote {
  font-family:var(--font-heading);
  font-size:4rem;
  color:rgba(245,158,11,0.15);
  line-height:1;
  position:absolute;
  top:16px;
  left:24px;
}

.testimonial-stars {
  display:flex;
  gap:2px;
  margin-bottom:16px;
}

.testimonial-stars .material-icons {
  font-size:18px;
  color:var(--color-accent);
}

.testimonial-text {
  color:var(--color-text-light);
  font-size:0.95rem;
  line-height:1.8;
  margin-bottom:20px;
  font-style:italic;
}

.testimonial-author {
  display:flex;
  align-items:center;
  gap:14px;
}

.testimonial-avatar {
  width:48px;
  height:48px;
  border-radius:50%;
  object-fit:cover;
  border:2px solid var(--color-accent);
}

.testimonial-info h4 {
  font-family:var(--font-heading);
  font-size:0.9rem;
  font-weight:700;
  color:var(--color-secondary);
}

.testimonial-info span {
  font-size:0.8rem;
  color:var(--color-text-muted);
}

.oferta {
  padding:80px 0;
  background:linear-gradient(135deg,var(--color-secondary),#1a1a1b);
  position:relative;
  overflow:hidden;
}

.oferta::before {
  content:'';
  position:absolute;
  width:400px;
  height:400px;
  border-radius:50%;
  background:rgba(245,158,11,0.06);
  top:-100px;
  right:-100px;
}

.oferta-content {
  text-align:center;
  position:relative;
  z-index:2;
}

.oferta-content .section-label {
  font-family:var(--font-heading);
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--color-accent);
  margin-bottom:16px;
  display:block;
}

.oferta-content h2 {
  color:var(--color-white);
  margin-bottom:24px;
}

.oferta-content > p {
  color:rgba(255,255,255,0.7);
  max-width:600px;
  margin:0 auto 40px;
}

.oferta-items {
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
  max-width:700px;
  margin:0 auto 40px;
}

@media (min-width:768px) {
  .oferta-items {
    grid-template-columns:repeat(3,1fr);
  }

}

.oferta-item {
  background:rgba(255,255,255,0.05);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:12px;
  padding:24px 16px;
  text-align:center;
}

.oferta-item .material-icons {
  font-size:36px;
  color:var(--color-accent);
  margin-bottom:12px;
}

.oferta-icon-img {
  width:44px;
  height:44px;
  margin-bottom:12px;
  filter:invert(67%) sepia(64%) saturate(1000%) hue-rotate(3deg) brightness(101%) contrast(96%);
}

.oferta-item h4 {
  color:var(--color-white);
  font-family:var(--font-heading);
  font-size:0.85rem;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  margin-bottom:8px;
}

.oferta-item p {
  color:rgba(255,255,255,0.5);
  font-size:0.85rem;
}

.oferta-cta {
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:16px 40px;
  background:var(--color-accent);
  color:var(--color-secondary);
  font-family:var(--font-heading);
  font-size:0.85rem;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  text-decoration:none;
  border-radius:4px;
  transition:background-color 0.3s ease,transform 0.3s ease;
}

.oferta-cta:hover {
  background:var(--color-accent-dark);
  transform:translateY(-2px);
}

.oferta-note {
  color:rgba(255,255,255,0.4);
  font-size:0.8rem;
  margin-top:20px;
  font-style:italic;
}

.contacto {
  padding:100px 0;
  background:var(--color-bg);
}

.contacto-header {
  text-align:center;
  margin-bottom:64px;
}

.contacto-header .section-label {
  font-family:var(--font-heading);
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--color-accent-dark);
  margin-bottom:16px;
  display:block;
}

.contacto-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:48px;
}

@media (min-width:768px) {
  .contacto-grid {
    grid-template-columns:1fr 1fr;
  }

}

.contacto-form {
  display:flex;
  flex-direction:column;
  gap:20px;
}

.form-group {
  display:flex;
  flex-direction:column;
  gap:6px;
}

.form-group label {
  font-family:var(--font-heading);
  font-size:0.8rem;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--color-text-light);
}

.form-group input,.form-group textarea {
  background:transparent;
  border:none;
  border-bottom:1px solid var(--color-border);
  padding:12px 0;
  font-family:var(--font-body);
  font-size:1rem;
  color:var(--color-text);
  transition:border-color 0.3s ease;
}

.form-group input:focus,.form-group textarea:focus {
  border-color:var(--color-accent);
  outline:none;
}

.form-group textarea {
  resize:vertical;
  min-height:100px;
}

.form-submit-btn {
  padding:16px 40px;
  background:var(--color-accent);
  color:var(--color-secondary);
  border:none;
  font-family:var(--font-heading);
  font-size:0.85rem;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  cursor:pointer;
  transition:background-color 0.3s ease,transform 0.3s ease;
  align-self:flex-start;
  border-radius:4px;
}

.form-submit-btn:hover {
  background:var(--color-accent-dark);
  transform:translateY(-2px);
}

.form-success {
  display:none;
  padding:16px;
  background:rgba(245,158,11,0.1);
  border:1px solid var(--color-accent);
  border-radius:8px;
  color:var(--color-text);
  font-weight:500;
}

.form-success.show {
  display:block;
}

.form-success.error {
  background:rgba(211,51,51,0.08);
  border-color:#d33;
  color:#a11;
}

.contacto-info {
  display:flex;
  flex-direction:column;
  gap:28px;
}

.contacto-info-item {
  display:flex;
  align-items:flex-start;
  gap:16px;
}

.contacto-info-icon {
  width:44px;
  height:44px;
  min-width:44px;
  border-radius:10px;
  background:rgba(245,158,11,0.12);
  display:flex;
  align-items:center;
  justify-content:center;
}

.contacto-info-icon .material-icons,.contacto-info-icon .fab {
  font-size:22px;
  color:var(--color-accent);
}

.contacto-info-text h4 {
  font-family:var(--font-heading);
  font-size:0.85rem;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--color-secondary);
  margin-bottom:4px;
}

.contacto-info-text p,.contacto-info-text a {
  color:var(--color-text-muted);
  font-size:0.95rem;
  text-decoration:none;
  transition:color 0.3s ease;
}

.contacto-info-text a:hover {
  color:var(--color-accent-dark);
}

.contacto-map {
  margin-top:24px;
  border-radius:12px;
  overflow:hidden;
}

.contact-slider-section {
  padding:60px 0;
  background:var(--color-bg-dark);
}

.contact-slider {
  position:relative;
  max-width:700px;
  margin:0 auto;
  overflow:hidden;
  border-radius:12px;
  background:var(--color-white);
  box-shadow:0 4px 20px rgba(0,0,0,0.08);
}

.contact-slides-track {
  display:flex;
  transition:transform 0.5s ease;
}

.contact-slide {
  min-width:100%;
  padding:40px 32px;
  display:flex;
  align-items:center;
  gap:20px;
  justify-content:center;
}

.contact-slide .material-icons,.contact-slide .fab {
  font-size:36px;
  color:var(--color-accent);
}

.contact-slide-bigicon {
  font-size:56px !important;
}

.contact-slide-info h4 {
  font-family:var(--font-heading);
  font-size:1.2rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:1px;
  color:var(--color-secondary);
  margin-bottom:4px;
}

.contact-slide-info a,.contact-slide-info p {
  color:var(--color-secondary);
  text-decoration:none;
  font-size:1.4rem;
  font-weight:600;
  transition:color 0.3s ease;
}

.contact-slide-info a:hover {
  color:var(--color-accent);
}

.contact-slide-info-big h4 {
  font-size:2rem;
  letter-spacing:2px;
  margin-bottom:8px;
}

.contact-slide-info-big a,.contact-slide-info-big p {
  font-size:2.2rem;
  font-weight:700;
}

.contact-slider-nav {
  display:flex;
  justify-content:center;
  gap:8px;
  padding:16px 0;
}

.contact-slider-dot {
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--color-border);
  border:none;
  cursor:pointer;
  padding:0;
  transition:background-color 0.3s ease;
}

.contact-slider-dot.active {
  background:var(--color-accent);
}

.footer {
  background:var(--color-secondary);
  color:rgba(255,255,255,0.7);
  padding:64px 0 0;
}

.footer-separator {
  height:1px;
  background:rgba(255,255,255,0.08);
  margin-bottom:64px;
}

.footer-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
  margin-bottom:48px;
}

@media (min-width:768px) {
  .footer-grid {
    grid-template-columns:repeat(2,1fr);
  }

}

@media (min-width:1024px) {
  .footer-grid {
    grid-template-columns:2fr 1fr 1fr 1fr;
  }

}

.footer-col h4 {
  font-family:var(--font-heading);
  font-size:0.8rem;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--color-white);
  margin-bottom:20px;
}

.footer-col p {
  font-size:0.9rem;
  line-height:1.8;
  margin-bottom:8px;
}

.footer-col ul {
  list-style:none;
}

.footer-col ul li {
  margin-bottom:10px;
}

.footer-col ul a {
  text-decoration:none;
  color:rgba(255,255,255,0.6);
  font-size:0.9rem;
  transition:color 0.3s ease;
}

.footer-col ul a:hover {
  color:var(--color-accent);
}

.footer-social {
  display:flex;
  gap:16px;
  margin-top:16px;
}

.footer-social a {
  width:40px;
  height:40px;
  border-radius:50%;
  background:rgba(255,255,255,0.06);
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  transition:background-color 0.3s ease,transform 0.3s ease;
  color:rgba(255,255,255,0.7);
}

.footer-social a:hover {
  background:var(--color-accent);
  color:var(--color-secondary);
  transform:translateY(-2px);
}

.footer-social a i {
  font-size:18px;
}

.footer-bottom {
  border-top:1px solid rgba(255,255,255,0.06);
  padding:24px 0;
  text-align:center;
  font-size:0.85rem;
}

.footer-bottom span {
  color:rgba(255,255,255,0.4);
}

.footer-dev {
  margin-top:8px;
  color:rgba(255,255,255,0.3);
  font-size:0.8rem;
}

.whatsapp-float {
  position:fixed;
  bottom:24px;
  right:24px;
  width:56px;
  height:56px;
  border-radius:50%;
  background:#25D366;
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  z-index:998;
  box-shadow:0 4px 16px rgba(37,211,102,0.4);
}

.whatsapp-float i {
  font-size:28px;
  color:#fff;
}

@keyframes whatsapp-pulse {
  0%,100% {
    box-shadow:0 4px 16px rgba(37,211,102,0.4);
  }

  50% {
    box-shadow:0 4px 24px rgba(37,211,102,0.6),0 0 0 12px rgba(37,211,102,0.15);
  }

}

.whatsapp-float {
  animation:whatsapp-pulse 2s ease-in-out infinite;
}

.counters {
  padding:60px 0;
  background:var(--color-bg-dark);
}

.counters-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:32px;
  text-align:center;
}

@media (min-width:768px) {
  .counters-grid {
    grid-template-columns:repeat(4,1fr);
  }

}

.counter-item .counter-number {
  font-family:var(--font-heading);
  font-size:clamp(2rem,4vw,3rem);
  font-weight:900;
  color:var(--color-accent);
  font-variant-numeric:tabular-nums;
}

.counter-item .counter-label {
  font-size:0.85rem;
  color:var(--color-text-muted);
  text-transform:uppercase;
  letter-spacing:1.5px;
  font-weight:600;
  margin-top:4px;
}

.faq {
  padding:80px 0;
  background:var(--color-bg);
}

.faq-header {
  text-align:center;
  margin-bottom:48px;
}

.faq-header .section-label {
  font-family:var(--font-heading);
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--color-accent-dark);
  margin-bottom:16px;
  display:block;
}

.faq-list {
  max-width:800px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.faq-item {
  background:var(--color-white);
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 2px 10px rgba(0,0,0,0.04);
}

.faq-question {
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 24px;
  background:none;
  border:none;
  cursor:pointer;
  font-family:var(--font-heading);
  font-size:0.95rem;
  font-weight:600;
  color:var(--color-secondary);
  text-align:left;
  transition:color 0.3s ease;
}

.faq-question:hover {
  color:var(--color-accent-dark);
}

.faq-question .material-icons {
  transition:transform 0.3s ease;
  color:var(--color-accent);
  font-size:20px;
}

.faq-question[aria-expanded="true"] .material-icons {
  transform:rotate(180deg);
}

.faq-answer {
  max-height:0;
  overflow:hidden;
  transition:max-height 0.4s ease;
}

.faq-answer-inner {
  padding:0 24px 20px;
  color:var(--color-text-muted);
  font-size:0.95rem;
  line-height:1.8;
}

.section-divider {
  height:1px;
  background:linear-gradient(to right,transparent,rgba(88,89,90,0.2),transparent);
}

