/* ════════════════════════════════════════════
   LEFERTEK ASCENSORES S.R.L. — styles.css
   ════════════════════════════════════════════ */

/* ────────────────────────────────────────────
   RESET & TOKENS
──────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --black:    #0a0a0a;
  --dark:     #111214;
  --panel:    #181a1e;
  --border:   #2a2d33;
  --metal:    #c8c8c8;
  --gold:     #c9a84c;
  --gold-dim: #7a6330;
  --white:    #f2f2f2;
  --muted:    #6b6e74;
  --green:    #25d366;
  --font-title: 'Bebas Neue', sans-serif;
  --font-body:  'Barlow', sans-serif;
  --font-mono:  'Share Tech Mono', monospace;
  --ease: cubic-bezier(.4,0,.2,1);
}

html { scroll-behavior: auto; font-size: 16px; }
body {
  background: var(--black);
  color: var(--white);
  font-family: var(--font-body);
  overflow-x: hidden;
  cursor: auto;
}
#cursor,
#cursor-ring {
  display: none !important;
}

/* ────────────────────────────────────────────
   CUSTOM CURSOR
──────────────────────────────────────────── */
#cursor {
  position: fixed; top:0; left:0; z-index:9999;
  width:14px; height:14px; border-radius:50%;
  background: var(--gold);
  pointer-events:none;
  transform:translate(-50%,-50%);
  transition: width .25s var(--ease), height .25s var(--ease), background .25s;
  mix-blend-mode: difference;
}
#cursor-ring {
  position: fixed; top:0; left:0; z-index:9998;
  width:38px; height:38px; border-radius:50%;
  border: 1px solid rgba(201,168,76,.5);
  pointer-events:none;
  transform:translate(-50%,-50%);
  transition: transform .12s linear, width .3s var(--ease), height .3s var(--ease);
}
body:hover #cursor { opacity:1; }
a:hover ~ #cursor, button:hover ~ #cursor { width:22px; height:22px; }

/* ────────────────────────────────────────────
   SCROLLBAR
──────────────────────────────────────────── */
::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-track { background: var(--dark); }
::-webkit-scrollbar-thumb { background: var(--gold-dim); border-radius:2px; }

/* ────────────────────────────────────────────
   NAV
──────────────────────────────────────────── */
nav {
  position: fixed; top:0; left:0; right:0; z-index: 900;
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.2rem 2.5rem;
  transition: background .4s var(--ease), backdrop-filter .4s;
}
nav.scrolled {
  background: rgba(10,10,10,.92);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
}
.nav-logo {
  display: flex; flex-direction: column; line-height:1;
}
.nav-logo span:first-child {
  font-family: var(--font-title);
  font-size: 1.45rem;
  letter-spacing: .12em;
  color: var(--white);
}
.nav-logo span:last-child {
  font-family: var(--font-mono);
  font-size: .58rem;
  color: var(--gold);
  letter-spacing: .22em;
  margin-top:1px;
}
.nav-links {
  display:flex; gap:2.5rem; list-style:none;
}
.nav-links a {
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .18em;
  color: var(--metal);
  text-decoration:none;
  text-transform:uppercase;
  position:relative;
  transition: color .25s;
}
.nav-links a::after {
  content:''; position:absolute; bottom:-4px; left:0; width:0; height:1px;
  background: var(--gold);
  transition: width .3s var(--ease);
}
.nav-links a:hover { color: var(--white); }
.nav-links a:hover::after { width:100%; }

/* hamburger */
.hamburger {
  display:none; flex-direction:column; gap:5px; cursor:none;
  background:none; border:none; padding:4px;
}
.hamburger span {
  display:block; width:24px; height:1.5px;
  background: var(--metal);
  transition: transform .35s var(--ease), opacity .25s;
}
.hamburger.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* mobile menu */
.mobile-menu {
  display:none; position:fixed; inset:0; z-index:950;
  background: rgba(10,10,10,.97);
  backdrop-filter: blur(20px);
  flex-direction:column; align-items:center; justify-content:center;
  gap:3rem;
  opacity:0;
  pointer-events:none;
  transition: opacity .4s var(--ease);
}
.mobile-menu.open { opacity:1; pointer-events:all; }
.mobile-menu a {
  font-family: var(--font-title);
  font-size: 3.5rem;
  letter-spacing: .1em;
  color: var(--white);
  text-decoration:none;
  transition: color .2s;
}
.mobile-menu a:hover { color: var(--gold); }

/* ────────────────────────────────────────────
   ELEVATOR SYSTEM
──────────────────────────────────────────── */
#elevator-wrap {
  position: fixed; inset:0; z-index: 800;
  pointer-events: none;
  display: flex;
}
.door {
  flex:1; background: var(--dark);
  border: 1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  transition: transform .9s cubic-bezier(.77,0,.18,1);
  position:relative; overflow:hidden;
}
.door-left { border-right: none; transform-origin: left; }
.door-right { border-left: none; transform-origin: right; }
.door::before {
  content:''; position:absolute; inset:0;
  background: repeating-linear-gradient(
    90deg,
    transparent 0, transparent 48px,
    rgba(255,255,255,.018) 48px, rgba(255,255,255,.018) 50px
  );
}
.door-logo {
  font-family: var(--font-title);
  font-size: 1.1rem;
  letter-spacing: .3em;
  color: var(--gold-dim);
  writing-mode: vertical-lr;
  transform: rotate(180deg);
  opacity:.5;
  position:absolute; bottom:2.5rem;
}
.door-left .door-logo  { right: 1.2rem; }
.door-right .door-logo { left: 1.2rem; }

.doors-closed .door-left  { transform: translateX(0); }
.doors-closed .door-right { transform: translateX(0); }
.doors-open .door-left  { transform: translateX(-100%); }
.doors-open .door-right { transform: translateX(100%); }

/* floor indicator */
#floor-hud {
  position:fixed; top:50%; right:1.8rem; z-index:850;
  transform: translateY(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.8rem;
}
.floor-dot {
  width:6px; height:6px; border-radius:50%;
  background: var(--border);
  transition: background .4s, transform .4s;
  cursor:pointer;
}
.floor-dot.active { background: var(--gold); transform:scale(1.6); }
.floor-line {
  width:1px; height:32px;
  background: linear-gradient(to bottom, transparent, var(--border), transparent);
}

/* floor counter */
#floor-counter {
  position:fixed; bottom:2rem; right:2rem; z-index:850;
  display:flex; flex-direction:column; align-items:flex-end;
}
#floor-num {
  font-family: var(--font-title);
  font-size: 4.5rem;
  line-height:1;
  color: var(--gold);
  opacity:.18;
  transition: opacity .4s;
}
#floor-label {
  font-family: var(--font-mono);
  font-size: .58rem;
  letter-spacing: .22em;
  color: var(--muted);
  text-transform:uppercase;
}

/* ────────────────────────────────────────────
   SECTIONS (FLOORS)
──────────────────────────────────────────── */
section {
  min-height: 100vh;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  scroll-margin-top: 80px;
}

#formulario { scroll-margin-top: 100px; }

/* ── HERO ── */
#hero {
  justify-content: center;
  align-items: center;
  padding: 8rem 6vw 6rem;
  text-align: center;
}
.hero-bg {
  position:absolute; inset:0; z-index:0;
  background: url("img/hero.jpg") center/cover no-repeat;
  filter: grayscale(.28) sepia(.16) saturate(1.05) brightness(.62) contrast(1.08);
}

/* velo de color: oscurece y tiñe de negro/dorado para no romper la colorimetría */
.hero-bg::before {
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 50% 30%, rgba(201,168,76,.10) 0%, transparent 55%),
    linear-gradient(180deg, rgba(10,10,10,.55) 0%, rgba(10,10,10,.72) 55%, rgba(10,10,10,.94) 100%);
}

.hero-bg::after {
  content:''; position:absolute; inset:0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");
  opacity:.45; pointer-events:none;
}
.hero-line {
  display: none;
}
.hero-content { position:relative; z-index:2; }
.hero-eyebrow {
  font-family: var(--font-mono);
  font-size: .68rem;
  letter-spacing: .4em;
  color: var(--gold);
  text-transform:uppercase;
  margin-bottom:1.4rem;
  opacity:0;
  animation: fadeUp .8s .3s var(--ease) forwards;
}
.hero-title {
  font-family: var(--font-title);
  font-size: clamp(3.5rem, 9vw, 8.5rem);
  line-height: .95;
  letter-spacing: .04em;
  color: var(--white);
  opacity:0;
  animation: fadeUp .9s .5s var(--ease) forwards;
}
.hero-title em {
  font-style:normal;
  color: var(--gold);
  display:block;
}
.hero-sub {
  font-family: var(--font-body);
  font-size: clamp(.95rem, 1.8vw, 1.25rem);
  font-weight:300;
  letter-spacing:.06em;
  color: var(--metal);
  margin-top:1.5rem;
  max-width:560px;
  opacity:0;
  animation: fadeUp .9s .7s var(--ease) forwards;
}
.hero-cta {
  margin-top: 3rem;
  display:inline-flex; align-items:center; gap:.9rem;
  background: var(--green);
  color: #fff;
  font-family: var(--font-mono);
  font-size: .8rem;
  letter-spacing: .14em;
  text-transform:uppercase;
  text-decoration:none;
  padding:.95rem 2rem;
  border-radius:2px;
  transition: transform .25s var(--ease), box-shadow .25s;
  opacity:0;
  animation: fadeUp .9s .9s var(--ease) forwards;
}
.hero-cta:hover { transform:translateY(-3px); box-shadow: 0 12px 32px rgba(37,211,102,.25); }
.hero-cta svg { flex-shrink:0; }

.hero-badges {
  position: relative;
  margin-top: 4rem;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3rem;

  width: 100%;
  max-width: 900px;
}
.hero-badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.hero-badge strong {
  font-size: 2.2rem;
  letter-spacing: 1px;
}

.hero-badge span {
  margin-top: 6px;
  font-size: 0.65rem;
  letter-spacing: 2px;
}

.scroll-hint {
  position:absolute; bottom:3rem; right:6vw; z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:.5rem;
  opacity:0; animation: fadeIn 1s 1.6s forwards;
}
.scroll-hint span {
  font-family:var(--font-mono); font-size:.55rem;
  letter-spacing:.22em; color:var(--muted); text-transform:uppercase;
  writing-mode:vertical-lr; transform:rotate(180deg);
}
.scroll-line {
  width:1px; height:48px;
  background: linear-gradient(to bottom, var(--gold), transparent);
  animation: scrollPulse 1.8s ease-in-out infinite;
}

/* ── FLOOR LABEL ── */
.floor-tag {
  position:absolute; top:2rem; left:6vw; z-index:2;
  display:flex; align-items:center; gap:1rem;
}
.floor-tag-num {
  font-family: var(--font-title);
  font-size: 5rem;
  line-height:1;
  color: transparent;
  -webkit-text-stroke: 1px rgba(201,168,76,.2);
}
.floor-tag-info { display:flex; flex-direction:column; }
.floor-tag-label {
  font-family: var(--font-mono);
  font-size:.62rem; letter-spacing:.22em; color:var(--gold); text-transform:uppercase;
}
.floor-tag-name {
  font-family: var(--font-title);
  font-size:1.5rem; color:var(--white); letter-spacing:.06em;
}

/* ── SERVICIOS ── */
#servicios {
  background: var(--dark);
  padding: 7rem 6vw;
  align-items:flex-start;
}
.section-header {
  display:flex; flex-direction:column; gap:.6rem; margin-bottom:5rem;
}
.section-eyebrow {
  font-family: var(--font-mono);
  font-size:.65rem; letter-spacing:.32em; color:var(--gold); text-transform:uppercase;
}
.section-title {
  font-family: var(--font-title);
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  letter-spacing:.04em; line-height:1;
  color: var(--white);
}
.services-grid {
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(280px,1fr));
  gap:1.5px;
  background: var(--border);
  border: 1px solid var(--border);
  width:100%;
}
.service-card{

    background:linear-gradient(180deg,#181a1e,#101114);

    padding:3rem 2.5rem;

    position:relative;

    overflow:hidden;

    border:1px solid rgba(255,255,255,.05);

    border-radius:12px;

    transition:
        transform .35s,
        box-shadow .35s,
        border-color .35s;

}
.service-card::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:4px;

    height:0;

    background:linear-gradient(
        to bottom,
        #f3d67d,
        var(--gold)
    );

    transition:height .45s;

}
.service-card:hover{

    transform:translateY(-12px);

    border-color:rgba(201,168,76,.45);

    box-shadow:
        0 20px 50px rgba(0,0,0,.45),
        0 0 40px rgba(201,168,76,.10);

    background:#1d1f24;

}.service-card:hover::before { height:100%; }
.service-icon {
  width:48px; height:48px; margin-bottom:2rem;
  color: var(--gold); opacity:.8;
}
.service-num{

    position:absolute;

    top:18px;

    right:25px;

    font-size:6rem;

    font-family:var(--font-title);

    color:rgba(255,255,255,.04);

    transition:.35s;

}
.service-card:hover .service-num{

    color:rgba(201,168,76,.18);

    transform:scale(1.05);

}
.service-name {
  font-family:var(--font-title); font-size:1.7rem; letter-spacing:.05em;
  color:var(--white); margin-bottom:.8rem;
}
.service-desc {
  font-size:.9rem; line-height:1.8; color:var(--muted);
  font-weight:300;
}
.service-tags {
  display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.5rem;
}
.tag {
  font-family:var(--font-mono); font-size:.58rem; letter-spacing:.14em;
  color:var(--gold-dim); background:rgba(201,168,76,.07);
  border:1px solid rgba(201,168,76,.15); padding:.25rem .65rem; border-radius:2px;
}

/* ── GALERÍA ── */
#galeria {
  background: var(--black);
  padding: 7rem 6vw;
}
/* ── CARRUSEL PREMIUM (estilo Netflix) ── */
.gallery-carousel-wrap {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 1rem;
}

.gallery-carousel {
  flex: 1;
  overflow-x: auto;
  overflow-y: visible;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 3rem 0 3.5rem;
  /* fade lateral premium */
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}
.gallery-carousel::-webkit-scrollbar { display:none; }

.carousel-track {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  padding: 0 8vw;
  width: max-content;
}

.gallery-item {
  position: relative;
  overflow: hidden;
  cursor: none;
  background: var(--panel);
  flex: 0 0 auto;
  width: min(72vw, 300px);
  aspect-ratio: 3 / 4;
  border-radius: 10px;
  scroll-snap-align: center;
  border: 1px solid var(--border);
  transform: scale(.86);
  opacity: .5;
  filter: saturate(.75);
  transition:
    transform .5s var(--ease),
    opacity .5s var(--ease),
    filter .5s var(--ease),
    box-shadow .5s var(--ease),
    border-color .5s var(--ease);
}

.gallery-item.is-active {
  transform: scale(1.08);
  opacity: 1;
  filter: saturate(1);
  border-color: rgba(201,168,76,.55);
  box-shadow:
    0 30px 60px rgba(0,0,0,.55),
    0 0 60px rgba(201,168,76,.16);
  z-index: 2;
}

.gallery-item img {
  width:100%; height:100%; object-fit:cover; display:block;
  transition: transform .7s var(--ease), filter .5s;
  filter: brightness(.82) saturate(.75);
}
.gallery-item.is-active img { filter: brightness(1) saturate(1); }
.gallery-item:hover img { transform:scale(1.05); }

.gallery-item-overlay {
  position:absolute; inset:0;
  background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.15) 45%, transparent 65%);
  display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end;
  padding:1.3rem;
  gap: .3rem;
}
.gallery-item-num {
  font-family: var(--font-title);
  font-size: 1.3rem;
  color: var(--gold);
  letter-spacing: .06em;
  opacity: .9;
}
.gallery-item-label {
  font-family:var(--font-mono); font-size:.66rem; letter-spacing:.14em;
  color:var(--white); text-transform:uppercase;
}

/* flechas */
.carousel-arrow {
  flex: 0 0 auto;
  width: 46px; height: 46px;
  border-radius: 50%;
  background: rgba(24,26,30,.7);
  border: 1px solid var(--border);
  color: var(--metal);
  display: flex; align-items: center; justify-content: center;
  cursor: none;
  transition: background .25s, border-color .25s, color .25s, transform .25s;
  z-index: 3;
}
.carousel-arrow svg { width: 18px; height: 18px; }
.carousel-arrow:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--black);
  transform: scale(1.08);
}

.carousel-dots {
  display: flex; justify-content: center; gap: .5rem;
  margin-top: 1.2rem;
}
.carousel-dots .dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--border);
  cursor: none;
  transition: background .3s, transform .3s;
}
.carousel-dots .dot.active {
  background: var(--gold);
  transform: scale(1.5);
}

@media (max-width:900px) {
  .carousel-arrow { display:none; }
  .carousel-track { padding: 0 5vw; gap: 1rem; }
  .gallery-item { width: 78vw; }
}

/* lightbox */
#lightbox {
  position:fixed; inset:0; z-index:999;
  background:rgba(0,0,0,.94);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none;
  transition: opacity .35s var(--ease);
  backdrop-filter:blur(8px);
}
#lightbox.open { opacity:1; pointer-events:all; }
#lightbox img {
  max-width:90vw; max-height:85vh; object-fit:contain;
  border:1px solid var(--border);
  transform: scale(.92); transition: transform .4s var(--ease);
}
#lightbox.open img { transform:scale(1); }
#lightbox-close {
  position:absolute; top:1.5rem; right:2rem;
  font-family:var(--font-mono); font-size:.75rem; letter-spacing:.14em;
  color:var(--metal); background:none; border:none; cursor:none;
  transition: color .2s;
}
#lightbox-close:hover { color:var(--gold); }

/* ── CONTACTO ── */
#contacto {
  background: var(--dark);
  padding: 7rem 6vw;
}
.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5rem;
  width:100%;
}
.contact-info { display:flex; flex-direction:column; gap:2.5rem; }
.contact-item { display:flex; flex-direction:column; gap:.4rem; }
.contact-item-label {
  font-family:var(--font-mono); font-size:.6rem; letter-spacing:.25em;
  color:var(--gold); text-transform:uppercase;
}
.contact-item-value {
  font-family:var(--font-body); font-size:1.05rem; color:var(--metal);
  font-weight:300;
}

.contact-item-value a {
  color: var(--metal);
  text-decoration: none;
}

.contact-item-value a:hover {
  color: var(--gold);
}
.contact-form { display:flex; flex-direction:column; gap:1.2rem; }
.form-group { display:flex; flex-direction:column; gap:.4rem; }
.form-label {
  font-family:var(--font-mono); font-size:.6rem; letter-spacing:.2em;
  color:var(--muted); text-transform:uppercase;
}
.form-input, .form-textarea {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius:2px;
  color: var(--white);
  font-family: var(--font-body);
  font-size:.9rem;
  padding:.85rem 1.1rem;
  outline:none;
  transition: border-color .25s;
  resize:none;
}
.form-input:focus, .form-textarea:focus { border-color: var(--gold); }
.form-input, .form-textarea, select.form-input { caret-color: var(--gold); user-select:text; -webkit-user-select:text; }
.form-input::placeholder, .form-textarea::placeholder { color:var(--muted); }
.form-textarea { min-height:120px; }
.form-input, .form-textarea { cursor: text; }
select.form-input { cursor: pointer; }
.form-submit {
  display:inline-flex; align-items:center; gap:.8rem;
  background: transparent;
  color: var(--gold);
  font-family: var(--font-mono);
  font-size:.78rem; letter-spacing:.18em; text-transform:uppercase;
  padding:.95rem 2rem;
  border: 1px solid var(--gold);
  border-radius:2px; cursor:none;
  transition: background .25s, color .25s;
  align-self:flex-start;
}
.form-submit:hover { background: var(--gold); color: var(--black); }
.form-submit[disabled] { opacity:.55; pointer-events:none; }

.form-status {
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .08em;
  min-height: 1.1em;
  margin-top: -.4rem;
}
.form-status.ok   { color: var(--green); }
.form-status.err  { color: #e0654f; }
.form-status.sending { color: var(--muted); }

.map-wrap {
  width:100%; height:280px; margin-top:3rem;
  border:1px solid var(--border);
  overflow:hidden; position:relative;
  background: var(--panel);
}
.map-wrap iframe { width:100%; height:100%; border:none; filter:invert(1) grayscale(1) brightness(.7); }

/* pin dorado centrado sobre el mapa */
.map-pin {
  position:absolute; top:50%; left:50%;
  transform: translate(-50%,-100%);
  width:34px; height:34px;
  pointer-events:none;
  z-index:2;
  filter: drop-shadow(0 6px 10px rgba(0,0,0,.5));
  animation: pinDrop .6s var(--ease);
}
.map-pin svg { width:100%; height:100%; }
.map-pin-pulse {
  position:absolute; left:50%; bottom:-3px;
  width:10px; height:10px; border-radius:50%;
  background: rgba(201,168,76,.35);
  transform: translateX(-50%);
  animation: pinPulse 2.2s ease-out infinite;
}
@keyframes pinDrop {
  from { transform: translate(-50%,-160%); opacity:0; }
  to   { transform: translate(-50%,-100%); opacity:1; }
}
@keyframes pinPulse {
  0%   { box-shadow: 0 0 0 0 rgba(201,168,76,.45); }
  70%  { box-shadow: 0 0 0 14px rgba(201,168,76,0); }
  100% { box-shadow: 0 0 0 0 rgba(201,168,76,0); }
}

.map-label {
  position:absolute; bottom:.8rem; left:1rem;
  font-family:var(--font-mono); font-size:.58rem; letter-spacing:.18em;
  color:var(--gold); text-transform:uppercase;
}

/* ── FOOTER ── */
footer {
  background: var(--black);
  border-top: 1px solid var(--border);
  padding: 4rem 6vw 2rem;
  display:grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 2.5rem;
}
.footer-col { display:flex; flex-direction:column; gap:.8rem; }
.footer-col-title {
  font-family:var(--font-mono); font-size:.62rem; letter-spacing:.24em;
  color:var(--gold); text-transform:uppercase; margin-bottom:.2rem;
}
.footer-logo {
  font-family:var(--font-title); font-size:1.3rem;
  letter-spacing:.12em; color:var(--white);
}
.footer-logo span { color:var(--gold); }
.footer-desc {
  font-family:var(--font-body); font-weight:300; font-size:.85rem;
  line-height:1.7; color:var(--muted); max-width:320px;
}
.footer-link {
  font-family:var(--font-body); font-size:.85rem; font-weight:300;
  color:var(--metal); text-decoration:none; transition:color .2s;
}
.footer-link:hover { color:var(--gold); }
.footer-social { display:flex; gap:.75rem; margin-top:.2rem; }
.social-btn {
  width:38px; height:38px; border-radius:50%;
  border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  color:var(--metal);
  transition: background .25s, border-color .25s, color .25s, transform .25s;
}
.social-btn svg { width:16px; height:16px; }
.social-btn:hover {
  background:var(--gold); border-color:var(--gold); color:var(--black);
  transform:translateY(-3px);
}
.footer-copy {
  grid-column: 1 / -1;
  font-family:var(--font-mono); font-size:.58rem;
  letter-spacing:.14em; color:var(--muted); text-transform:uppercase;
  border-top:1px solid var(--border);
  padding-top:1.5rem; margin-top:1rem;
}

@media (max-width:700px) {
  footer { grid-template-columns:1fr; gap:2rem; }
}

/* ── WHATSAPP FLOAT ── */
#wa-float {
  position:fixed; bottom:2rem; left:2rem; z-index:860;
  display:flex; align-items:center; gap:.75rem;
  text-decoration:none;
  animation: waPulse 3s ease-in-out infinite;
}
.wa-btn {
  width:52px; height:52px; border-radius:50%;
  background: var(--green);
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 4px 20px rgba(37,211,102,.35);
  transition: transform .25s var(--ease);
}
#wa-float:hover .wa-btn { transform:scale(1.1); }
.wa-label {
  background: var(--panel);
  border:1px solid var(--border);
  border-radius:2px;
  font-family:var(--font-mono); font-size:.6rem;
  letter-spacing:.14em; color:var(--white); text-transform:uppercase;
  padding:.45rem .9rem;
  white-space:nowrap;
  opacity:0; transform:translateX(-8px);
  transition: opacity .3s, transform .3s;
}
#wa-float:hover .wa-label { opacity:1; transform:translateX(0); }

/* ────────────────────────────────────────────
   ANIMATIONS
──────────────────────────────────────────── */
@keyframes fadeUp {
  from { opacity:0; transform:translateY(28px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes fadeIn {
  to { opacity:1; }
}
@keyframes scrollPulse {
  0%,100% { transform:scaleY(1); transform-origin:top; }
  50%      { transform:scaleY(.5); transform-origin:top; }
}
@keyframes waPulse {
  0%,100% { transform:translateY(0); }
  50%      { transform:translateY(-5px); }
}

/* reveal on scroll */
.reveal {
  opacity:0; transform:translateY(40px);
  transition: opacity .8s var(--ease), transform .8s var(--ease);
}
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:.1s; }
.reveal-delay-2 { transition-delay:.22s; }
.reveal-delay-3 { transition-delay:.34s; }

/* ────────────────────────────────────────────
   RESPONSIVE
──────────────────────────────────────────── */
@media (max-width:900px) {
  body { cursor:auto; }
  #cursor, #cursor-ring { display:none; }
  .hamburger { display:flex; }
  .mobile-menu { display:flex; }
  .nav-links { display:none; }
  .contact-grid { grid-template-columns:1fr; gap:3rem; }
  .hero-badges { flex-wrap:wrap; gap:1.5rem; }
  #floor-hud { display:none; }
  #floor-counter { display:none; }
}

@media (max-width:560px) {
  nav { padding:1rem 1.4rem; }
  #hero, #servicios, #galeria, #contacto { padding-left:1.4rem; padding-right:1.4rem; }
  .hero-badges { gap:1.5rem 2rem; }
  .scroll-hint { display:none; }
}
.hero-content.center {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: 900px;
  width: 100%;
  padding: 0 20px;
}

.hero-title.clean {
  font-family: 'Times New Roman', serif;
  font-size: clamp(3rem, 5vw, 4.5rem);
  font-weight: 500;
  letter-spacing: 2px;
  color: #ffffff;
  margin-bottom: 20px;
   text-transform: uppercase;
}

.hero-sub.clean {
  font-family: 'Times New Roman', serif;
  font-size: 1.15rem;
  line-height: 1.8;
  color: rgba(255,255,255,0.9);
  max-width: 750px;
  margin: 0 auto;
}
/* ==========================================
   HERO BUTTONS
========================================== */

.hero-actions{

    margin-top:55px;

    display:flex;

    justify-content:center;

    gap:20px;

    flex-wrap:wrap;

}

.hero-btn{

    padding:18px 34px;

    text-decoration:none;

    text-transform:uppercase;

    letter-spacing:2px;

    font-size:.85rem;

    font-weight:600;

    transition:.35s;

    border-radius:3px;

}

.hero-btn-primary{

    background:var(--gold);

    color:#111;

}

.hero-btn-primary:hover{

    transform:translateY(-4px);

    box-shadow:0 18px 35px rgba(201,168,76,.35);

}
/* CURSOR NORMAL */
*,
*::before,
*::after {
  cursor: auto !important;
}

a,
button,
select,
.gallery-item,
.carousel-arrow,
.carousel-dots .dot {
  cursor: pointer !important;
}

input,
textarea {
  cursor: text !important;
}
/* ── FORMULARIO INTERACTIVO ── */
.contact-form,
.contact-form * {
  pointer-events: auto !important;
}

.contact-form {
  position: relative;
  z-index: 1000;
}

.contact-form .form-input,
.contact-form .form-textarea,
.contact-form select {
  position: relative;
  z-index: 1001;
  pointer-events: auto !important;
  cursor: text !important;
}

.contact-form select {
  cursor: pointer !important;
}