/* ============================================
   MACVERTICAL — Tokens
   ============================================ */
:root{
  --charcoal:      #1E2226;
  --charcoal-2:     #262B30;
  --charcoal-3:     #313842;
  --steel-white:   #ECEEEC;
  --steel-white-2: #E1E4E2;
  --white:         #FAFAF8;
  --red:           #C1272D;
  --red-dark:      #98191F;
  --green:         #1B5E3F;
  --green-light:   #2C8560;
  --steel:         #8B9096;
  --amber:         #E4A73B;

  --font-display: 'Oswald', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
  --font-body: 'Work Sans', sans-serif;

  --container: 1180px;
}

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

html{ scroll-behavior:smooth; }

body{
  font-family: var(--font-body);
  color: var(--charcoal);
  background: var(--white);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

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

a{ color:inherit; text-decoration:none; }

h1,h2,h3,h4{
  font-family: var(--font-display);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 1.1;
}

.eyebrow{
  font-family: var(--font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--steel-white-2);
  margin-bottom: 0.9rem;
}
.eyebrow-dark{ color: var(--steel); }

section{ position:relative; }

/* focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline: 3px solid var(--amber);
  outline-offset: 2px;
}

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

/* ============================================
   Botones
   ============================================ */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family: var(--font-mono);
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.95rem 1.8rem;
  border-radius: 3px;
  border: 1.5px solid transparent;
  cursor:pointer;
  transition: transform 0.15s ease, background 0.2s ease, border-color 0.2s ease;
}
.btn-primary{
  background: var(--red);
  color: var(--white);
}
.btn-primary:hover{ background: var(--red-dark); transform: translateY(-1px); }
.btn-ghost{
  border-color: rgba(255,255,255,0.4);
  color: var(--white);
}
.btn-ghost:hover{ border-color: var(--white); }
.btn-full{ width:100%; }

/* ============================================
   Indicador de piso (elemento de firma)
   ============================================ */
.floor-indicator{
  position: fixed;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 500;
  display:flex;
  align-items:center;
  gap: 12px;
}
.fi-screen{
  background: var(--charcoal);
  border: 1px solid var(--charcoal-3);
  border-radius: 4px;
  width: 58px;
  height: 58px;
  display:flex;
  flex-direction: column;
  align-items:center;
  justify-content:center;
  box-shadow: 0 6px 16px rgba(0,0,0,0.35), inset 0 0 0 1px rgba(255,255,255,0.03);
}
.fi-arrow{
  color: var(--green-light);
  font-size: 0.7rem;
  line-height:1;
  transition: transform 0.3s ease;
}
.fi-number{
  font-family: var(--font-mono);
  color: var(--amber);
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.fi-labels{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap: 6px;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0;
  pointer-events:none;
  transition: opacity 0.25s ease;
  background: rgba(30,34,38,0.92);
  padding: 10px 12px;
  border-radius: 4px;
  color: var(--steel-white);
}
.floor-indicator:hover .fi-labels,
.floor-indicator:focus-within .fi-labels{ opacity:1; pointer-events:auto; }
.fi-labels li{ white-space:nowrap; color: var(--steel); }
.fi-labels li.active{ color: var(--amber); }

@media (max-width: 860px){
  .floor-indicator{ right: 12px; }
  .fi-labels{ display:none; }
  .fi-screen{ width:46px; height:46px; }
  .fi-number{ font-size: 1rem; }

}

/* ============================================
   Botón WhatsApp flotante
   ============================================ */
.whatsapp-btn{
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 480;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #25D366;
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 16px rgba(0,0,0,0.28);
  transition: transform 0.15s ease, background 0.2s ease;
}
.whatsapp-btn svg{ width: 30px; height: 30px; }
.whatsapp-btn:hover{ background: #128C7E; transform: translateY(-2px); }

@media (max-width: 480px){
  .whatsapp-btn{ width: 50px; height: 50px; bottom: 18px; right: 18px; }
  .whatsapp-btn svg{ width: 26px; height: 26px; }
}

/* ============================================
   Header
   ============================================ */
.site-header{
  position: fixed;
  top:0; left:0; right:0;
  z-index: 400;
  background: rgba(30,34,38,0.92);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.header-inner{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0.9rem 1.5rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1.5rem;
}
.brand{ display:flex; align-items:center; gap:0.6rem; }
.brand-mark{
  width: 20px; height:20px;
  background: linear-gradient(135deg, var(--red) 50%, var(--green) 50%);
  border-radius: 3px;
  display:inline-block;
}
.brand img{
            height: 40px;
           
        }

.brand-text{
  font-family: var(--font-display);
  color: var(--white);
  letter-spacing: 0.03em;
  font-size: 1.05rem;
}
.main-nav{ display:flex; gap: 1.8rem; }
.main-nav a{
  color: var(--steel-white);
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-family: var(--font-mono);
  transition: color 0.2s ease;
}
.main-nav a:hover{ color: var(--amber); }
.header-phone{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  text-align:right;
}
.hp-label{ font-size:0.68rem; color: var(--steel); font-family: var(--font-mono); text-transform:uppercase; }
.hp-number{ font-size:0.9rem; color: var(--white); font-weight:600; font-family: var(--font-mono); }
.nav-toggle{ display:none; background:none; border:none; cursor:pointer; flex-direction:column; gap:5px; }
.nav-toggle span{ width:24px; height:2px; background: var(--white); display:block; }

@media (max-width: 860px){
  .main-nav{
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--charcoal);
    border-top: 1px solid rgba(255,255,255,0.08);
    padding: 0.5rem 1.5rem 1.2rem;
    gap: 0;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.3s ease, opacity 0.2s ease;
  }
  .main-nav.open{
    max-height: 300px;
    opacity: 1;
  }
  .main-nav a{
    padding: 0.9rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.06);
  }
  .header-phone{ display:none; }
  .nav-toggle{ display:flex; }
}

/* ============================================
   Hero
   ============================================ */
.hero{
  min-height: 100vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding: 7rem 1.5rem 0;
  position:relative;
  overflow:hidden;
  color: var(--white);
}
.hero-bg{
  position:absolute;
  inset:0;
  background: linear-gradient(160deg, rgba(20,23,26,0.94), rgba(20,23,26,0.86)),
              url('images/maquina-traccion.jpeg') center 30%/cover no-repeat;
  z-index:-1;
}
.hero-content{
  max-width: var(--container);
  margin: 0 auto;
  width:100%;
  padding: 4rem 0 5rem;
}
.hero .eyebrow{ color: var(--amber); }
.hero h1{
  font-size: clamp(2.4rem, 6vw, 4.4rem);
  max-width: 14ch;
  margin-bottom: 1.4rem;
}
.hero-sub{
  max-width: 46ch;
  color: var(--steel-white-2);
  font-size: 1.05rem;
  margin-bottom: 2.2rem;
}
.hero-cta{ display:flex; gap:1rem; flex-wrap:wrap; }

.hero-stats{
  max-width: var(--container);
  margin: 0 auto;
  width:100%;
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid rgba(255,255,255,0.12);
}
.stat{
  padding: 1.4rem 1rem;
  border-right: 1px solid rgba(255,255,255,0.12);
}
.stat:last-child{ border-right:none; }
.stat-num{
  display:block;
  font-family: var(--font-mono);
  font-size: 1.8rem;
  font-weight:700;
  color: var(--amber);
}
.stat-label{
  display:block;
  font-size: 0.78rem;
  color: var(--steel-white-2);
  margin-top: 0.3rem;
}

@media (max-width: 700px){
  .hero-stats{ grid-template-columns: repeat(2,1fr); }
  .stat:nth-child(2n){ border-right:none; }
}

/* ============================================
   Secciones generales
   ============================================ */
.section{
  max-width: var(--container);
  margin: 0 auto;
  padding: 6rem 1.5rem;
}
.section-head{ max-width: 640px; margin-bottom: 3rem; }
.section-head h2, .about-content h2, .contact-info h2{
  font-size: clamp(1.8rem, 3.4vw, 2.5rem);
  color: var(--charcoal);
}

/* ============================================
   Servicios
   ============================================ */
.services-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
  margin-bottom: 3.5rem;
}
.service-card{
  border: 1px solid #DDE0DE;
  border-radius: 6px;
  padding: 1.8rem;
  background: var(--white);
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.service-card:hover{ border-color: var(--red); transform: translateY(-3px); }
.service-icon{
  width:48px; height:48px;
  color: var(--green);
  margin-bottom: 1rem;
}
.service-card h3{
  font-size: 1.05rem;
  margin-bottom: 0.6rem;
  color: var(--charcoal);
}
.service-card p{
  font-size: 0.92rem;
  color: #4B5157;
}

.advantages{
  background: var(--charcoal);
  color: var(--steel-white);
  border-radius: 8px;
  padding: 2.4rem;
}
.advantages-title{
  font-size: 1.2rem;
  color: var(--white);
  margin-bottom: 1.4rem;
}
.advantages-list{
  list-style:none;
  display:grid;
  grid-template-columns: repeat(2,1fr);
  gap: 1rem 2rem;
}
.advantages-list li{
  font-size: 0.92rem;
  color: var(--steel-white-2);
  padding-left: 1rem;
  border-left: 2px solid var(--green-light);
}
.advantages-list li strong{ color: var(--white); display:block; margin-bottom:0.2rem; }

@media (max-width: 860px){
  .services-grid{ grid-template-columns: 1fr 1fr; }
  .advantages-list{ grid-template-columns: 1fr; }
}
@media (max-width: 560px){
  .services-grid{ grid-template-columns: 1fr; }
}

/* ============================================
   Nosotros
   ============================================ */
.about{
  display:grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 3.5rem;
  align-items:center;
}
.about-media img{
  border-radius: 8px;
  aspect-ratio: 4/5;
  object-fit: cover;
}
.about-content p{ color: #4B5157; margin-bottom: 1rem; }
.mv-cards{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.2rem;
  margin: 1.6rem 0;
}
.mv-card{
  background: var(--steel-white);
  border-left: 3px solid var(--red);
  padding: 1.2rem 1.4rem;
  border-radius: 4px;
}
.mv-card:nth-child(2){ border-left-color: var(--green); }
.mv-card h4{ font-size:0.95rem; margin-bottom:0.5rem; color: var(--charcoal); }
.mv-card p{ font-size: 0.86rem; color:#4B5157; margin:0; }

.signature{
  font-family: var(--font-mono);
  margin-top: 1.6rem;
  padding-top: 1rem;
  border-top: 1px dashed var(--steel);
}
.signature p{ font-weight:700; color: var(--charcoal); margin:0; font-size:0.95rem; }
.signature span{ font-size:0.78rem; color: var(--steel); text-transform:uppercase; letter-spacing:0.04em; }

@media (max-width: 860px){
  .about{ grid-template-columns: 1fr; }
  .mv-cards{ grid-template-columns: 1fr; }
}

/* ============================================
   Trabajos
   ============================================ */
.works{ background: var(--steel-white); }
.works-grid{
  display:grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 1.2rem;
}
.work-item--tall{ grid-row: span 2; }
.work-item{
  position:relative;
  overflow:hidden;
  border-radius: 6px;
  background: var(--charcoal);
}
.work-item img{
  width:100%; height:100%;
  object-fit: cover;
  aspect-ratio: 1/1;
}
.work-item--tall img{ aspect-ratio: 3/4; }
.work-item figcaption{
  position:absolute;
  left:0; right:0; bottom:0;
  padding: 1rem 1rem 0.8rem;
  background: linear-gradient(to top, rgba(20,23,26,0.9), transparent);
  color: var(--white);
  font-family: var(--font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.02em;
}

@media (max-width: 860px){
  .works-grid{ grid-template-columns: 1fr 1fr; }
  .work-item--tall{ grid-row: auto; }
}
@media (max-width: 560px){
  .works-grid{ grid-template-columns: 1fr; }
}

/* ============================================
   Contacto
   ============================================ */
.contact{
  display:grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 3.5rem;
}
.contact-info .eyebrow{ color: var(--red); }
.contact-lead{ color:#4B5157; margin-bottom: 2rem; max-width: 40ch; }
.contact-list{ list-style:none; display:flex; flex-direction:column; gap:1.1rem; margin-bottom: 2rem; }
.contact-list li{ display:flex; flex-direction:column; gap:0.2rem; }
.contact-label{ font-family: var(--font-mono); font-size:0.72rem; text-transform:uppercase; letter-spacing:0.06em; color: var(--steel); }
.contact-list a{ font-size:1.05rem; font-weight:600; }
.contact-list a:hover{ color: var(--red); }
.contact-note{
  background: var(--steel-white);
  border-left: 3px solid var(--amber);
  padding: 1rem 1.2rem;
  font-size: 0.88rem;
  border-radius: 4px;
  color: #3F4448;
}

.contact-form{
  background: var(--charcoal);
  color: var(--white);
  padding: 2.2rem;
  border-radius: 8px;
}
.contact-form h3{ font-size: 1.1rem; margin-bottom: 1.4rem; }
.form-row{ margin-bottom: 1.1rem; display:flex; flex-direction:column; gap:0.4rem; }
.form-row label{ font-family: var(--font-mono); font-size:0.75rem; text-transform:uppercase; letter-spacing:0.04em; color: var(--steel-white-2); }
.form-row input, .form-row textarea{
  background: var(--charcoal-2);
  border: 1px solid var(--charcoal-3);
  border-radius: 4px;
  padding: 0.7rem 0.9rem;
  color: var(--white);
  font-family: var(--font-body);
  font-size: 0.95rem;
  resize: vertical;
}
.form-row input:focus, .form-row textarea:focus{ border-color: var(--amber); }
.form-note{ margin-top:0.8rem; font-size:0.85rem; color: var(--green-light); min-height:1.2em; }

@media (max-width: 860px){
  .contact{ grid-template-columns: 1fr; }
}

/* ============================================
   Footer
   ============================================ */
.site-footer{ background: var(--charcoal); color: var(--steel-white-2); }
.footer-inner{
  max-width: var(--container);
  margin:0 auto;
  padding: 3rem 1.5rem 2rem;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap: 2rem;
}
.footer-brand .brand-text{ font-size:1.1rem; color:var(--white); }
.footer-brand p{ font-size:0.85rem; color: var(--steel); margin-top:0.3rem; }
.footer-nav{ display:flex; gap:1.4rem; font-family: var(--font-mono); font-size:0.85rem; }
.footer-nav a:hover{ color: var(--amber); }
.footer-contact{ display:flex; flex-direction:column; gap:0.4rem; font-size:0.88rem; }
.footer-contact a:hover{ color: var(--amber); }
.footer-legal{
  text-align:center;
  font-size:0.78rem;
  color: var(--steel);
  padding: 1.2rem 0;
  border-top: 1px solid rgba(255,255,255,0.08);
}
