/* ============================================
   SAIRAM LUXURY — Premium Stylesheet
   Palette: Noir + Champagne Gold + Cream
   ============================================ */

:root{
  --black: #0a0a0a;
  --black-soft: #141414;
  --black-deep: #050505;
  --cream: #f6f1e8;
  --cream-soft: #faf6ee;
  --paper: #fbfaf7;
  --gold: #c9a96e;
  --gold-light: #e0c592;
  --gold-deep: #a8854a;
  --line: rgba(201,169,110,.35);
  --muted: #8a8378;
  --text: #1a1a1a;
  --text-light: #efe9de;

  --font-serif: 'Cormorant Garamond', 'Times New Roman', serif;
  --font-sans: 'Montserrat', system-ui, -apple-system, sans-serif;

  --container: 1280px;
  --ease: cubic-bezier(.65,.05,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }
body{
  margin:0;
  font-family:var(--font-sans);
  font-weight:300;
  color:var(--text);
  background:var(--paper);
  overflow-x:hidden;
  line-height:1.65;
  letter-spacing:.01em;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; transition:color .3s var(--ease); }
button{ font-family:inherit; cursor:pointer; }

::selection{ background:var(--gold); color:var(--black); }

/* ============ LOADER ============ */
.loader{
  position:fixed; inset:0; background:var(--black);
  z-index:9999; display:flex; align-items:center; justify-content:center;
  transition:opacity .8s var(--ease), visibility .8s var(--ease);
}
.loader.hide{ opacity:0; visibility:hidden; }
.loader-content{ text-align:center; color:var(--cream); }
.loader-logo{
  font-family:var(--font-serif); font-size:clamp(3rem,8vw,5.5rem);
  font-weight:300; letter-spacing:.6em; padding-left:.6em;
  animation:fadeUp 1s var(--ease-out) both;
}
.loader-logo-img{
  width:clamp(220px,30vw,340px); height:auto; display:block; margin:0 auto;
  animation:fadeUp 1s var(--ease-out) both;
  filter:drop-shadow(0 4px 20px rgba(201,169,110,.25));
}
.loader-sub{
  font-size:.85rem; letter-spacing:1em; padding-left:1em;
  color:var(--gold); margin-top:.5rem;
  animation:fadeUp 1s .15s var(--ease-out) both;
}
.loader-bar{
  width:220px; height:1px; background:rgba(255,255,255,.1);
  margin:2rem auto 0; overflow:hidden;
}
.loader-bar span{
  display:block; height:100%; width:0;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
  animation:loadbar 1.6s ease forwards;
}
@keyframes loadbar{ to{ width:100%; } }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(20px); } to{ opacity:1; transform:translateY(0); } }

/* ============ CURSOR ============ */
.cursor, .cursor-dot{
  position:fixed; top:0; left:0; pointer-events:none; z-index:9998;
  border-radius:50%; transition:transform .25s var(--ease-out), opacity .3s;
  mix-blend-mode:difference;
}
.cursor{
  width:40px; height:40px; border:1px solid var(--gold);
  transform:translate(-50%,-50%);
}
.cursor-dot{
  width:5px; height:5px; background:var(--gold);
  transform:translate(-50%,-50%);
}
.cursor.grow{ transform:translate(-50%,-50%) scale(1.6); }
@media(hover:none){ .cursor,.cursor-dot{ display:none; } }

/* ============ NAV ============ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:1.5rem clamp(1rem,4vw,3rem);
  transition:background .4s var(--ease), padding .4s var(--ease), backdrop-filter .4s;
}
.nav{
  background:linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,0));
}
.nav.scrolled{
  background:rgba(3,3,3,.94);
  backdrop-filter:blur(24px) saturate(140%);
  -webkit-backdrop-filter:blur(24px) saturate(140%);
  padding:1rem clamp(1rem,4vw,3rem);
  border-bottom:1px solid rgba(201,169,110,.18);
  box-shadow:0 10px 30px rgba(0,0,0,.3);
}
.nav-brand{
  display:flex; flex-direction:column; line-height:1;
  font-family:var(--font-serif); color:var(--cream);
}
.brand-name{ font-size:1.5rem; letter-spacing:.4em; padding-left:.4em; font-weight:400; }
.brand-tag{ font-family:var(--font-sans); font-size:.55rem; letter-spacing:.6em; color:var(--gold); margin-top:4px; padding-left:.6em; }
.nav-logo-img{
  width:auto; height:42px; display:block;
  transition:height .4s var(--ease), filter .3s;
  filter:drop-shadow(0 2px 10px rgba(0,0,0,.5));
}
.nav.scrolled .nav-logo-img{ height:34px; }

.nav-links{
  display:flex; gap:2.2rem; list-style:none; margin:0; padding:0;
}
.nav-links a{
  color:var(--cream); font-size:.78rem; font-weight:400;
  letter-spacing:.22em; text-transform:uppercase; position:relative;
}
.nav-links a::after{
  content:''; position:absolute; left:0; bottom:-6px;
  width:0; height:1px; background:var(--gold); transition:width .35s var(--ease);
}
.nav-links a:hover{ color:var(--gold); }
.nav-links a:hover::after{ width:100%; }
.nav-cta{
  border:1px solid var(--gold); padding:.55rem 1.2rem;
  color:var(--gold) !important;
}
.nav-cta:hover{ background:var(--gold); color:var(--black) !important; }
.nav-cta::after{ display:none; }

.nav-toggle{
  display:none; background:none; border:0; padding:8px;
  width:42px; height:42px; flex-direction:column; gap:6px; justify-content:center; align-items:center;
}
.nav-toggle span{
  display:block; width:24px; height:1px; background:var(--cream);
  transition:transform .3s var(--ease), opacity .3s;
}
.nav-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:0; }
.nav-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ============ HERO ============ */
.hero{
  position:relative; min-height:100vh; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  color:var(--cream); text-align:center;
  background-color:#020202;
  background-image:
    radial-gradient(ellipse at 50% 50%, #0a0805 0%, #030303 60%, #000 100%);
}
.hero-bg-dark{
  position:absolute; inset:0; overflow:hidden;
  background-color:#020202;
}

/* ---- Floating Orbs (perfume halos — muted) ---- */
.orb{
  position:absolute; border-radius:50%; pointer-events:none;
  filter:blur(90px); opacity:.18;
  will-change:transform;
}
.orb-1{
  width:380px; height:380px; left:-8%; top:25%;
  background:radial-gradient(circle, rgba(201,169,110,.5), rgba(201,169,110,0) 70%);
  animation:orbFloat1 22s ease-in-out infinite alternate;
}
.orb-2{
  width:480px; height:480px; right:-12%; top:30%;
  background:radial-gradient(circle, rgba(224,197,146,.4), rgba(224,197,146,0) 70%);
  animation:orbFloat2 28s ease-in-out infinite alternate;
}
.orb-3{
  width:320px; height:320px; left:40%; bottom:-15%;
  background:radial-gradient(circle, rgba(168,133,74,.45), rgba(168,133,74,0) 70%);
  animation:orbFloat3 25s ease-in-out infinite alternate;
}
@keyframes orbFloat1{
  0%  { transform:translate(0,0) scale(1); }
  50% { transform:translate(80px,-40px) scale(1.1); }
  100%{ transform:translate(-30px,60px) scale(.95); }
}
@keyframes orbFloat2{
  0%  { transform:translate(0,0) scale(1); }
  50% { transform:translate(-100px,50px) scale(1.08); }
  100%{ transform:translate(40px,-50px) scale(.92); }
}
@keyframes orbFloat3{
  0%  { transform:translate(0,0) scale(1); }
  50% { transform:translate(60px,-70px) scale(1.12); }
  100%{ transform:translate(-50px,30px) scale(.96); }
}

/* ---- Golden particles canvas ---- */
.hero-particles{
  position:absolute; inset:0; width:100%; height:100%;
  pointer-events:none; display:block;
}

/* ---- Grain overlay ---- */
.hero-grain{
  position:absolute; inset:0; pointer-events:none;
  opacity:.1; mix-blend-mode:overlay;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(201,169,110,.08) 1px, transparent 1px),
    radial-gradient(circle at 80% 70%, rgba(201,169,110,.08) 1px, transparent 1px),
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size:120px 120px, 180px 180px, 90px 90px;
}

/* ---- Hero Content (Map version) ---- */
.hero:has(.hero-content-map){
  align-items:flex-start;
  min-height:auto;
}
.hero-content.hero-content-map{
  position:relative; z-index:2;
  width:100%; max-width:1140px;
  margin:0 auto;
  padding:11rem 2rem 6rem;
  display:flex; flex-direction:column; align-items:center; gap:0;
}
.hero-content-map .hero-eyebrow{ margin-bottom:2.8rem; }
.hero-content-map .hero-logo-img{
  width:clamp(240px, 40vw, 460px);
  margin-bottom:2.2rem;
  animation:fadeUp 1.4s .5s var(--ease-out) forwards;
}
.hero-content-map .hero-sub{ margin-bottom:0; }

/* Map panel (no frame) */
.hero-map-wrap{
  width:100%; position:relative;
  max-width:1000px;
  margin-top:clamp(4rem, 9vw, 8rem);
  animation:fadeUp 1.4s .8s var(--ease-out) both;
}
svg#heroMap{
  display:block; width:100%; height:auto; overflow:visible;
  filter:drop-shadow(0 24px 50px rgba(0,0,0,.55));
}

/* ---- Map typography ---- */
.t-title{
  font-family:'Jost', sans-serif; font-weight:600;
  letter-spacing:.22em; fill:url(#titleGold);
}
.t-sub{
  font-family:'Cormorant Garamond', serif; font-weight:500;
  font-style:italic; letter-spacing:.16em; fill:#b6a079;
}
.t-region{
  font-family:'Jost', sans-serif; font-weight:500; fill:#efe6cf;
}
.t-note{
  font-family:'Cormorant Garamond', serif; font-style:italic;
  fill:#7d6f53; letter-spacing:.04em;
}
.t-kicker{
  font-family:'Jost', sans-serif; font-weight:400; letter-spacing:.04em;
}
.t-source{
  font-family:'Jost', sans-serif; font-weight:300; letter-spacing:.14em;
  fill:#6b6151;
}
.pct{
  font-family:'Jost', sans-serif; font-weight:600;
}

/* ---- Map animations ---- */
.map-land{ opacity:0; animation:landIn 1.4s ease forwards .15s; }
@keyframes landIn{ to{ opacity:1; } }

.header-el{ opacity:0; animation:mapFadeUp 1s ease forwards; }
@keyframes mapFadeUp{
  from{ opacity:0; transform:translateY(10px); }
  to{ opacity:1; transform:translateY(0); }
}

.connector{
  opacity:0; stroke-dasharray:1 9; stroke-linecap:round;
  animation:lineIn .7s ease forwards;
}
@keyframes lineIn{ to{ opacity:1; } }

.bubble{
  transform-box:fill-box; transform-origin:center;
  transform:scale(0); opacity:0;
  animation:bubblePop .8s cubic-bezier(.18,1.25,.3,1) forwards;
}
@keyframes bubblePop{ to{ transform:scale(1); opacity:1; } }

.marker-ring{
  transform-box:fill-box; transform-origin:center; opacity:0;
  animation:ringPulse 2.6s ease-out infinite;
}
@keyframes ringPulse{
  0%  { opacity:0;   transform:scale(.4); }
  18% { opacity:.55; }
  70% { opacity:0;   transform:scale(2.4); }
  100%{ opacity:0;   transform:scale(2.4); }
}

.hero-halo{
  transform-box:fill-box; transform-origin:center;
  animation:heroHalo 3.2s ease-in-out infinite;
}
@keyframes heroHalo{
  0%,100%{ opacity:.28; transform:scale(1); }
  50%    { opacity:.6;  transform:scale(1.07); }
}

@media (prefers-reduced-motion: reduce){
  .map-land, .header-el, .connector, .bubble{
    animation:none; opacity:1; transform:none;
  }
  .marker-ring, .hero-halo{ animation:none; }
  .marker-ring{ opacity:0; }
}

/* ---- Hero actions placement under map ---- */
.hero-actions-map{
  margin-top:clamp(3rem, 6vw, 5rem);
  animation:fadeUp 1.2s 1.4s var(--ease-out) both;
}

@media(max-width:900px){
  .hero-content.hero-content-map{ padding:8rem 1.5rem 4rem; }
  .hero-content-map .hero-eyebrow{ margin-bottom:2rem; }
  .hero-content-map .hero-logo-img{ margin-bottom:1.6rem; }
}
@media(max-width:600px){
  .hero-content.hero-content-map{ padding:7rem 1.1rem 3.5rem; }
}

/* Vignette más oscuro */
.hero::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse at center, transparent 30%, rgba(0,0,0,.7) 100%),
    linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 30%, transparent 70%, rgba(0,0,0,.6) 100%);
  z-index:1;
}

@media (prefers-reduced-motion: reduce){
  .orb{ animation:none !important; }
  .hero-particles{ display:none; }
}

.hero-content{ position:relative; z-index:2; padding:0 1.5rem; max-width:1100px; }
.hero-eyebrow{
  display:flex; align-items:center; justify-content:center; gap:1.2rem;
  font-size:.7rem; letter-spacing:.4em; text-transform:uppercase;
  color:var(--gold); margin-bottom:2rem;
  animation:fadeUp 1.2s .4s var(--ease-out) both;
}
.hero-eyebrow .line{ height:1px; width:50px; background:var(--gold); }

.hero-title{
  font-family:var(--font-serif); font-weight:300;
  font-size:clamp(3.8rem,13vw,10rem);
  line-height:.95; letter-spacing:.05em;
  margin:0 0 1.5rem;
}
.hero-title .word{
  display:block; opacity:0; transform:translateY(40px);
  animation:fadeUp 1.4s var(--ease-out) forwards;
}
.hero-title .word:nth-child(1){ animation-delay:.6s; }
.hero-title .word:nth-child(2){ animation-delay:.8s; font-style:italic; font-weight:300; letter-spacing:.3em; padding-left:.3em; font-size:.55em; }
.hero-title .gold{ color:var(--gold); }
.hero-logo-img{
  width:clamp(280px, 55vw, 720px); height:auto;
  display:block; margin:0 auto;
  opacity:0; transform:translateY(40px);
  animation:fadeUp 1.4s .6s var(--ease-out) forwards;
  filter:drop-shadow(0 8px 40px rgba(201,169,110,.3));
}

.hero-sub{
  font-size:clamp(.85rem,1.5vw,1.05rem);
  letter-spacing:.4em; text-transform:uppercase; color:var(--cream);
  margin:0 0 2.5rem; opacity:.85;
  animation:fadeUp 1.2s 1s var(--ease-out) both;
}

.hero-actions{
  display:flex; gap:1rem; justify-content:center; flex-wrap:wrap;
  animation:fadeUp 1.2s 1.2s var(--ease-out) both;
}
.btn{
  display:inline-block; padding:1rem 2.2rem;
  font-size:.7rem; letter-spacing:.3em; text-transform:uppercase;
  font-weight:500; border:1px solid transparent; cursor:pointer;
  transition:all .4s var(--ease); position:relative; overflow:hidden;
}
.btn-primary{ background:var(--gold); color:var(--black); border-color:var(--gold); }
.btn-primary:hover{ background:transparent; color:var(--gold); }
.btn-ghost{ border-color:var(--cream); color:var(--cream); }
.btn-ghost:hover{ background:var(--cream); color:var(--black); }
.btn-gold{ background:var(--gold); color:var(--black); border-color:var(--gold); }
.btn-gold:hover{ background:var(--gold-light); }
.btn-outline-light{ border-color:var(--cream); color:var(--cream); }
.btn-outline-light:hover{ background:var(--cream); color:var(--black); }

.hero-scroll{
  position:absolute; bottom:2rem; left:50%; transform:translateX(-50%);
  font-size:.65rem; letter-spacing:.4em; text-transform:uppercase;
  color:var(--cream); display:flex; flex-direction:column; align-items:center; gap:.5rem;
  opacity:.7; animation:fadeUp 1s 1.5s var(--ease-out) both;
}
.hero-scroll span{
  display:block; width:1px; height:40px; background:var(--gold);
  animation:scrollLine 2s ease-in-out infinite;
}
@keyframes scrollLine{
  0%,100%{ transform:scaleY(.3); transform-origin:top; }
  50%{ transform:scaleY(1); transform-origin:top; }
}

/* ============ SECTIONS ============ */
.section{ padding:clamp(5rem,10vw,9rem) 0; position:relative; }
.section-dark{ background:var(--black); color:var(--cream); }

.container{
  max-width:var(--container); margin:0 auto;
  padding:0 clamp(1.25rem,4vw,3rem);
}

.two-col{
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(2.5rem,6vw,6rem); align-items:center;
}
.two-col.reverse .col-image{ order:-1; }

.eyebrow{
  font-size:.7rem; letter-spacing:.4em; text-transform:uppercase;
  color:var(--gold); margin-bottom:1.5rem; display:flex; align-items:center; gap:.8rem;
  font-weight:500;
}
.eyebrow.light{ color:var(--gold-light); }

.title-serif{
  font-family:var(--font-serif); font-weight:300;
  font-size:clamp(2.4rem,5vw,4.5rem);
  line-height:1.05; margin:0 0 1.8rem; letter-spacing:-.01em;
}
.title-serif em{ font-style:italic; color:var(--gold); font-weight:400; }
.title-serif.light{ color:var(--cream); }
.title-serif.light em{ color:var(--gold-light); }

.lede{
  font-size:1.1rem; line-height:1.7; color:var(--text);
  margin-bottom:1.5rem; font-weight:300;
}
.lede.light{ color:var(--cream); opacity:.9; }
.section p.light{ color:var(--cream); opacity:.75; }

.section-head{ margin-bottom:4rem; max-width:780px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head.center .eyebrow{ justify-content:center; }

/* ============ HISTORIA ============ */
.img-frame{
  position:relative; overflow:hidden; aspect-ratio:4/5;
  border:1px solid var(--line);
}
.img-frame img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1.2s var(--ease-out);
}
.img-frame:hover img{ transform:scale(1.05); }
.img-frame::before{
  content:''; position:absolute; inset:1rem;
  border:1px solid var(--gold); z-index:2; pointer-events:none;
  opacity:.7;
}

/* Parallax image inside frame */
.img-frame.parallax .parallax-img{
  position:absolute; top:-11%; left:0;
  width:100%; height:122%;
  object-fit:cover; will-change:transform;
  transition:none;
  transform:translate3d(0, var(--py, 0px), 0);
}
.img-frame.parallax:hover .parallax-img{ transform:translate3d(0, var(--py, 0px), 0) scale(1.04); }
.img-frame-dark::before{ border-color:var(--gold-light); opacity:.5; }
.img-tag{
  position:absolute; bottom:1.5rem; left:1.5rem; z-index:3;
  background:var(--black); color:var(--gold);
  padding:.5rem 1rem; font-size:.65rem; letter-spacing:.3em; text-transform:uppercase;
}

.stats{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1.5rem; margin-top:2.5rem; padding-top:2.5rem;
  border-top:1px solid var(--line);
}
.stats > div{ text-align:left; }
.stat-num{
  font-family:var(--font-serif); font-size:clamp(2rem,3.5vw,3rem);
  color:var(--gold); display:block; line-height:1; font-weight:400;
}
.stats small{
  font-size:.65rem; letter-spacing:.25em; text-transform:uppercase;
  color:var(--muted); margin-top:.5rem; display:block;
}

.check-list{ list-style:none; padding:0; margin:1.5rem 0 0; }
.check-list li{
  padding:.8rem 0 .8rem 2rem; position:relative;
  border-bottom:1px solid rgba(201,169,110,.15);
  font-size:.95rem; color:var(--cream); opacity:.85;
}
.check-list li::before{
  content:''; position:absolute; left:0; top:50%;
  width:1rem; height:1px; background:var(--gold);
}

/* ---- Justified body text ---- */
.txt-justify p{ text-align:justify; text-justify:inter-word; }
.txt-justify p.signature{ text-align:left; }

/* ---- Brand signature ---- */
.signature{
  margin-top:2.2rem; padding-top:1.6rem;
  border-top:1px solid rgba(201,169,110,.25);
  line-height:1.35;
}
.signature strong{
  display:block; font-family:var(--font-serif); font-weight:600;
  font-size:clamp(1.5rem,2.5vw,1.9rem); letter-spacing:.03em; color:var(--gold);
}
.signature em{
  display:block; font-family:var(--font-serif); font-style:italic;
  font-size:1.1rem; color:var(--cream); opacity:.8; margin-top:.25rem;
  letter-spacing:.02em;
}

/* ============ TIENDA HERO ============ */
.tienda-hero{
  position:relative; margin:0; overflow:hidden;
  aspect-ratio:16/9;
  background:transparent;
}
.tienda-hero img{
  width:100%; height:100%; object-fit:contain;
  transition:transform 1.6s var(--ease-out), filter .6s;
}
.tienda-hero:hover img{ transform:scale(1.03); }
.tienda-hero::before{
  content:''; position:absolute; inset:1.5rem;
  border:1px solid rgba(201,169,110,.5); z-index:2; pointer-events:none;
  opacity:0; transition:opacity .6s var(--ease);
}
.tienda-hero:hover::before{ opacity:1; }
.tienda-hero figcaption{
  position:absolute; bottom:0; left:0; right:0;
  padding:3rem 2.5rem 2rem; z-index:3;
  background:linear-gradient(transparent, rgba(0,0,0,.85));
}
.th-label{
  font-size:.7rem; letter-spacing:.4em; text-transform:uppercase;
  color:var(--gold);
}

/* Tienda — dos panorámicas apiladas */
.tienda-duo2{ display:grid; gap:1.5rem; }
.tienda-shot{
  position:relative; margin:0; overflow:hidden;
  aspect-ratio:16/9; background:#000; border:1px solid var(--line);
}
.tienda-shot img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1.4s var(--ease-out);
}
.tienda-shot:hover img{ transform:scale(1.04); }
.tienda-shot figcaption{
  position:absolute; bottom:0; left:0; right:0;
  padding:2.6rem 2rem 1.6rem; z-index:2;
  background:linear-gradient(transparent, rgba(0,0,0,.82));
}

/* ============ TIENDA DUO (legacy) ============ */
.tienda-duo{
  display:grid; grid-template-columns:1fr 1fr; gap:2rem;
}
.td-card{
  position:relative; aspect-ratio:4/5; overflow:hidden; margin:0;
  background:var(--black); border:1px solid var(--line);
}
.td-card img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1.4s var(--ease-out), filter .6s;
  filter:brightness(.9) saturate(.95);
}
.td-card:hover img{ transform:scale(1.06); filter:brightness(1) saturate(1.05); }
.td-card::before{
  content:''; position:absolute; inset:1.2rem;
  border:1px solid rgba(201,169,110,.6); z-index:2; pointer-events:none;
  opacity:0; transition:opacity .5s var(--ease);
}
.td-card:hover::before{ opacity:1; }
.td-card figcaption{
  position:absolute; bottom:0; left:0; right:0;
  padding:2.5rem 2rem 1.8rem; z-index:3;
  color:var(--cream);
  background:linear-gradient(transparent, rgba(0,0,0,.92));
  display:flex; flex-direction:column; gap:.4rem;
}
.td-label{
  font-size:.65rem; letter-spacing:.4em; text-transform:uppercase;
  color:var(--gold);
}
.td-title{
  font-family:var(--font-serif); font-size:1.6rem;
  font-weight:400; letter-spacing:.02em;
}

/* ============ ECO MOSAIC ============ */
.eco-mosaic{
  margin-top:4rem;
  display:grid;
  grid-template-columns:repeat(6,1fr);
  grid-auto-rows:140px;
  gap:.8rem;
}
.em-cell{
  position:relative; overflow:hidden;
  border:1px solid rgba(201,169,110,.18);
  background:
    linear-gradient(135deg, rgba(201,169,110,.06), rgba(201,169,110,0)),
    repeating-linear-gradient(45deg, transparent 0 12px, rgba(201,169,110,.04) 12px 13px);
  color:var(--gold-light);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.5rem; transition:all .5s var(--ease);
}
.em-cell svg{ width:32px; height:32px; opacity:.7; }
.em-cell span{
  font-size:.6rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--cream); opacity:.8;
}
.em-cell:hover{
  background:rgba(201,169,110,.08); border-color:var(--gold);
  transform:translateY(-3px);
}
.em-cell:hover svg{ opacity:1; }
.em-1{ grid-column:span 2; grid-row:span 2; }
.em-2{ grid-column:span 2; }
.em-3{ grid-column:span 2; }
.em-4{ grid-column:span 2; }
.em-5{ grid-column:span 2; }
.em-6{ grid-column:span 6; grid-row:span 1; }

/* ============ VIDEO STRIP ============ */
.video-strip{ margin-top:4rem; }
.vs-head{ margin-bottom:2rem; }
.vs-eyebrow{
  font-size:.65rem; letter-spacing:.4em; text-transform:uppercase;
  color:var(--gold); display:block; margin-bottom:.6rem;
}
.vs-head h3{
  font-family:var(--font-serif); font-size:2rem;
  font-weight:300; margin:0;
}
.vs-head h3 em{ color:var(--gold); font-style:italic; }
.vs-head h3 a{ color:inherit; transition:color .3s var(--ease); }
.vs-head h3 a:hover{ color:var(--gold); }
.vs-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;
}
.vs-card{
  position:relative; aspect-ratio:9/16; overflow:hidden;
  background:linear-gradient(135deg, #0a0a0a 0%, #1a1410 100%);
  border:1px solid rgba(201,169,110,.25);
  transition:transform .5s var(--ease), border-color .4s;
}
.vs-card:hover{ transform:translateY(-6px); border-color:var(--gold); }
.vs-card-light{
  background:linear-gradient(135deg, #f6f1e8 0%, #ebe1c9 100%);
  border:1px solid rgba(168,133,74,.3);
}
.vs-shimmer{
  position:absolute; inset:0;
  background:
    repeating-linear-gradient(45deg,
      transparent 0 18px,
      rgba(201,169,110,.04) 18px 19px);
}
.vs-shimmer::before{
  content:''; position:absolute; inset:0;
  background:linear-gradient(90deg, transparent, rgba(201,169,110,.12), transparent);
  transform:translateX(-100%);
  animation:shimmer 3s ease-in-out infinite;
}
.vs-shimmer.light{
  background:repeating-linear-gradient(45deg,
    transparent 0 18px,
    rgba(168,133,74,.06) 18px 19px);
}
.vs-shimmer.light::before{
  background:linear-gradient(90deg, transparent, rgba(168,133,74,.18), transparent);
}
@keyframes shimmer{
  0%{ transform:translateX(-100%); }
  50%{ transform:translateX(100%); }
  100%{ transform:translateX(100%); }
}
.vs-overlay{
  position:absolute; inset:0; z-index:2;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:1.2rem; padding:1.5rem;
  text-align:center;
}
.vs-play{
  width:60px; height:60px;
  color:var(--gold);
  border:1px solid var(--gold);
  border-radius:50%; padding:1rem;
  transition:transform .4s var(--ease), background .4s;
}
.vs-card-light .vs-play{ color:var(--gold-deep); border-color:var(--gold-deep); }
.vs-card:hover .vs-play{ background:var(--gold); color:var(--black); transform:scale(1.1); }
.vs-card-light:hover .vs-play{ background:var(--gold-deep); color:var(--cream); }
.vs-badge{
  font-size:.6rem; letter-spacing:.3em; text-transform:uppercase;
  padding:.45rem .9rem; border:1px solid var(--gold);
  color:var(--gold);
}
.vs-card-light .vs-badge{ color:var(--gold-deep); border-color:var(--gold-deep); }
.vs-label{
  font-family:var(--font-serif); font-size:1.1rem;
  color:var(--cream); font-weight:400; letter-spacing:.02em;
}
.vs-card-light .vs-label{ color:var(--black-soft); }
.vs-card::after{
  content:attr(data-slot);
  position:absolute; top:1rem; right:1rem; z-index:3;
  font-size:.55rem; letter-spacing:.3em;
  color:var(--gold); opacity:.5;
}
.vs-card-light::after{ color:var(--gold-deep); opacity:.6; }

/* ---- Ecosistema digital: looping demo videos ---- */
.eco-videos{
  display:flex; flex-direction:column; gap:1.6rem;
  max-width:1000px; margin:0 auto 4.5rem;
}
.eco-vid{
  margin:0; position:relative; overflow:hidden;
  aspect-ratio:16/9; background:#000;
  border:1px solid rgba(201,169,110,.22);
  box-shadow:0 30px 60px -28px rgba(0,0,0,.7);
}
.eco-vid video{
  width:100%; height:100%; object-fit:cover;
  display:block; background:#000;
}

/* ---- Real video cards ---- */
.vs-grid-6{ row-gap:1.5rem; }
.video-card{ cursor:pointer; }
.video-card::after{ display:none; }
.vs-video{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; z-index:1; background:#000; display:block;
}
.video-card .vs-overlay{
  z-index:3;
  background:linear-gradient(transparent 38%, rgba(0,0,0,.55));
  transition:opacity .45s var(--ease), background .45s var(--ease);
}
.video-card .vs-play{
  background:rgba(0,0,0,.35); backdrop-filter:blur(4px);
  transition:transform .4s var(--ease), background .4s, opacity .4s;
}
.video-card:hover .vs-play{ background:var(--gold); color:var(--black); transform:scale(1.08); }
.vs-hint{
  font-size:.6rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--cream); opacity:.9;
  padding:.4rem .85rem; border:1px solid rgba(255,255,255,.35);
  border-radius:2px; backdrop-filter:blur(4px);
  background:rgba(0,0,0,.25);
}
.vs-card-light .vs-hint{ color:#fff; }
/* previewing (hover, muted autoplay): reveal the video, hide play icon, keep hint */
.video-card.is-preview .vs-overlay{ background:linear-gradient(transparent 62%, rgba(0,0,0,.4)); }
.video-card.is-preview .vs-play{ opacity:0; transform:scale(.7); }
/* active (clicked, audio on): hide overlay so native controls are usable */
.video-card.is-active .vs-overlay{ opacity:0; pointer-events:none; }
.video-card.is-active{ border-color:var(--gold); }
.video-card.is-active .vs-video{ cursor:default; }

/* ============ DIGITAL ============ */
.section-digital{
  background:linear-gradient(135deg, #0a0a0a 0%, #1a1410 100%);
  color:var(--cream); position:relative; overflow:hidden;
}
.section-digital::before{
  content:''; position:absolute; top:-50%; right:-20%;
  width:600px; height:600px; border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,110,.08), transparent 70%);
  pointer-events:none;
}
.eco-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem;
}
.eco-card{
  padding:2.5rem 1.8rem;
  border:1px solid rgba(201,169,110,.2);
  background:rgba(255,255,255,.02);
  backdrop-filter:blur(10px);
  transition:transform .5s var(--ease), border-color .4s, background .4s;
}
.eco-card:hover{
  transform:translateY(-6px);
  border-color:var(--gold);
  background:rgba(201,169,110,.05);
}
.eco-num{
  font-family:var(--font-serif); font-size:2.5rem;
  color:var(--gold); margin-bottom:1rem; font-weight:300;
}
.eco-card h3{
  font-family:var(--font-serif); font-size:1.5rem;
  margin:0 0 1rem; color:var(--cream); font-weight:400;
}
.eco-card p{ font-size:.9rem; line-height:1.6; color:var(--cream); opacity:.7; margin:0; }
.eco-card a{ color:var(--gold); }

/* ============ MARKETING ============ */
.mk-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:2rem;
}
.mk-card{
  padding:3rem 2.2rem; background:var(--paper);
  border:1px solid var(--line);
  position:relative; transition:transform .5s var(--ease), box-shadow .5s;
}
.mk-card:hover{ transform:translateY(-8px); box-shadow:0 30px 60px -20px rgba(0,0,0,.15); }
.mk-icon{
  width:54px; height:54px; color:var(--gold);
  margin-bottom:1.8rem;
}
.mk-icon svg{ width:100%; height:100%; }
.mk-card h3{
  font-family:var(--font-serif); font-size:1.6rem;
  margin:0 0 1.2rem; font-weight:500; color:var(--text);
}
.mk-card ul{ list-style:none; padding:0; margin:0; }
.mk-card li{
  padding:.6rem 0 .6rem 1.5rem; position:relative;
  font-size:.92rem; color:var(--text); opacity:.8;
  border-top:1px solid rgba(0,0,0,.05);
}
.mk-card li:first-child{ border:0; }
.mk-card li::before{
  content:''; position:absolute; left:0; top:1.1rem;
  width:.6rem; height:1px; background:var(--gold);
}

/* ============ EVENTOS ============ */
.section-eventos{ background:var(--cream-soft); }
.ev-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;
}
.ev-card{
  position:relative; aspect-ratio:3/4; overflow:hidden;
  border:1px solid var(--line);
}
.ev-card img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1.2s var(--ease-out);
}
.ev-card:hover img{ transform:scale(1.08); }
.ev-overlay{
  position:absolute; inset:0; padding:2rem;
  display:flex; flex-direction:column; justify-content:flex-end;
  color:var(--cream);
  background:linear-gradient(180deg, transparent 30%, rgba(0,0,0,.85) 100%);
}
.ev-overlay h3{
  font-family:var(--font-serif); font-size:1.6rem; margin:0 0 .5rem;
  font-weight:400;
}
.ev-overlay p{ font-size:.85rem; opacity:.9; margin:0; }

/* ============ BRAND GRID (placeholders) ============ */
.brand-grid{
  display:grid; grid-template-columns:repeat(5,1fr); gap:1rem;
}
.bg-cell{
  position:relative; aspect-ratio:5/3;
  border:1px solid rgba(201,169,110,.25);
  background:
    linear-gradient(135deg, rgba(255,255,255,.02), rgba(255,255,255,0)),
    repeating-linear-gradient(45deg, transparent 0 14px, rgba(201,169,110,.03) 14px 15px);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.4rem;
  transition:all .5s var(--ease);
  overflow:hidden;
}
.bg-cell::before{
  content:''; position:absolute; inset:.6rem;
  border:1px solid transparent;
  transition:border-color .4s var(--ease);
}
.bg-cell:hover{
  background:rgba(201,169,110,.08);
  border-color:var(--gold);
  transform:translateY(-3px);
}
.bg-cell:hover::before{ border-color:rgba(201,169,110,.4); }
.bg-num{
  font-family:var(--font-serif); font-size:1.2rem;
  color:var(--gold); font-weight:300; letter-spacing:.1em;
}
.bg-mark{
  font-size:.65rem; letter-spacing:.4em; text-transform:uppercase;
  color:var(--cream); opacity:.55;
}
.section-marcas .bg-cell{ color:var(--cream); }

.brand-grid-light .bg-cell{
  background:
    linear-gradient(135deg, rgba(0,0,0,.02), rgba(0,0,0,0)),
    repeating-linear-gradient(45deg, transparent 0 14px, rgba(168,133,74,.04) 14px 15px);
  border-color:rgba(168,133,74,.2);
}
.brand-grid-light .bg-cell:hover{
  background:rgba(168,133,74,.06); border-color:var(--gold-deep);
}
.brand-grid-light .bg-num{ color:var(--gold-deep); }
.brand-grid-light .bg-mark{ color:var(--text); opacity:.5; }

/* ---- Logo wall (real brand logos) ---- */
.logo-grid{ gap:1.2rem; }
.logo-grid .logo-cell{
  background:#fff;
  border:1px solid rgba(168,133,74,.18);
  display:flex; align-items:center; justify-content:center;
  padding:1.6rem 1.9rem;
  aspect-ratio:5/3;
  transition:transform .45s var(--ease), box-shadow .45s, border-color .4s;
}
.logo-grid .logo-cell::before{ display:none; }
.logo-grid .logo-cell img{
  max-width:100%; max-height:100%; width:auto; height:auto;
  object-fit:contain;
  opacity:.82;
  transition:opacity .4s var(--ease), transform .5s var(--ease);
}
.logo-grid .logo-cell:hover{
  transform:translateY(-5px);
  box-shadow:0 24px 46px -20px rgba(0,0,0,.28);
  border-color:var(--gold);
}
.logo-grid .logo-cell:hover img{ opacity:1; transform:scale(1.05); }

/* ---- Marcas nicho (logos monocromo blanco sobre oscuro) ---- */
.mn-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem;
}
.mn-item{
  display:flex; align-items:center; justify-content:center;
  min-height:98px; padding:1.4rem 1.6rem;
  border:1px solid rgba(201,169,110,.16);
  background:rgba(255,255,255,.015);
  transition:transform .45s var(--ease), border-color .4s, background .4s;
}
.mn-item img{
  max-width:100%; max-height:52px; width:auto; height:auto; object-fit:contain;
  filter:brightness(0) invert(1);
  opacity:.66;
  transition:opacity .4s var(--ease), transform .5s var(--ease);
}
.mn-item:hover{ transform:translateY(-4px); border-color:var(--gold); background:rgba(201,169,110,.05); }
.mn-item:hover img{ opacity:1; transform:scale(1.05); }
@media(max-width:900px){ .mn-grid{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:560px){ .mn-grid{ grid-template-columns:repeat(2,1fr); gap:1rem; } .mn-item{ min-height:82px; padding:1rem; } }

/* ============ INTERNACIONALES ============ */
.section-internacionales{ background:var(--cream-soft); position:relative; }

/* ============ COLECCIONES ============ */
.col-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:2rem;
}
.col-grid-2{ grid-template-columns:1fr; gap:3rem; }
.col-grid-2 .col-card{
  display:grid; grid-template-columns:1.4fr 1fr; gap:0; align-items:stretch;
}
.col-grid-2 .col-img{
  aspect-ratio:16/9; height:100%; background:transparent;
}
.col-grid-2 .col-img img{
  object-fit:contain;
}
.col-grid-2 .col-card:hover .col-img img{ transform:none; }
.col-grid-2 .col-info{
  padding:3rem 2.5rem; display:flex; flex-direction:column; justify-content:center;
}
.col-grid-2 .col-card:nth-child(even){ grid-template-columns:1fr 1.4fr; }
.col-grid-2 .col-card:nth-child(even) .col-img{ order:2; }
.col-grid-2 .col-card:nth-child(even) .col-info{ order:1; }
@media(max-width:768px){
  .col-grid-2 .col-card,
  .col-grid-2 .col-card:nth-child(even){ grid-template-columns:1fr; }
  .col-grid-2 .col-card:nth-child(even) .col-img{ order:0; }
  .col-grid-2 .col-card:nth-child(even) .col-info{ order:0; }
  .col-grid-2 .col-img{ aspect-ratio:4/3; }
  .col-grid-2 .col-info{ padding:2rem 1.5rem; }
}

/* Stacked collection card: trio of images + text below */
.col-grid-2 .col-card.col-card-stack{ display:block; }
.col-card-stack .col-trio{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1rem;
}
.col-card-stack .col-trio-img{
  margin:0; aspect-ratio:4/3; overflow:hidden;
  background:#fff; border:1px solid var(--line);
}
.col-card-stack .col-trio-img img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1s var(--ease-out);
}
.col-card-stack .col-trio-img:hover img{ transform:scale(1.06); }
.col-card-stack .col-info{
  padding:2.4rem 2.5rem 2.6rem; text-align:center; align-items:center;
}
/* 4-image variant (2x2) with full-bottle visibility */
.col-card-stack .col-quad{ grid-template-columns:repeat(2,1fr); }
.col-card-stack .col-quad .col-trio-img{ aspect-ratio:16/10; }
.col-card-stack .col-quad .col-trio-img img{ object-fit:contain; }

/* Unframed gallery (Casas Privadas): full images, no border/box */
.col-card-stack .col-gallery{
  display:grid; grid-template-columns:repeat(2, 1fr);
  gap:1.2rem; align-items:center;
}
.col-card-stack .col-shot{ margin:0; aspect-ratio:16/9; overflow:hidden; }
.col-card-stack .col-shot img{
  width:100%; height:100%; object-fit:contain;
  transition:transform .8s var(--ease-out);
}
.col-card-stack .col-shot:hover img{ transform:scale(1.05); }

@media(max-width:640px){
  .col-card-stack .col-trio{ grid-template-columns:1fr; }
  .col-card-stack .col-quad{ grid-template-columns:1fr; }
  .col-card-stack .col-gallery{ grid-template-columns:repeat(2,1fr); }
  .col-card-stack .col-info{ padding:2rem 1.5rem; text-align:left; align-items:flex-start; }
}
.col-card{
  background:var(--paper); border:1px solid var(--line);
  transition:transform .5s var(--ease), box-shadow .5s;
}
.col-card:hover{ transform:translateY(-6px); box-shadow:0 30px 60px -20px rgba(0,0,0,.18); }
.col-img{ aspect-ratio:1; overflow:hidden; }
.col-img img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1s var(--ease-out);
}
.col-card:hover .col-img img{ transform:scale(1.06); }
.col-info{ padding:2rem 1.8rem; }
.col-tag{
  display:inline-block; font-size:.62rem; letter-spacing:.3em;
  text-transform:uppercase; color:var(--gold); margin-bottom:1rem;
  padding-bottom:.5rem; border-bottom:1px solid var(--gold);
}
.col-info h3{
  font-family:var(--font-serif); font-size:1.7rem;
  margin:0 0 .8rem; font-weight:500;
}
.col-info p{ font-size:.92rem; opacity:.75; margin:0; }

/* ============ EXPANSION ============ */
.section-expansion{ background:var(--black); }
.exp-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;
}
.exp-grid-2{ grid-template-columns:1fr; gap:3rem; }
.exp-card{
  position:relative; overflow:hidden; aspect-ratio:3/4;
  background:var(--black);
}
.exp-card-wide{ aspect-ratio:16/9; background:transparent; }
.exp-grid-2 .exp-card-wide img{
  object-fit:contain;
  transition:transform 1.2s var(--ease-out);
  filter:none;
}
.exp-card-wide:hover img{ transform:scale(1.03); filter:none; }
@media(max-width:768px){
  .exp-card-wide{ aspect-ratio:4/3; }
}
.exp-card img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1.2s var(--ease-out), filter .6s;
  filter:brightness(.65) saturate(.8);
}
.exp-card:hover img{ transform:scale(1.06); filter:brightness(.85) saturate(1); }
.exp-content{
  position:absolute; inset:0; padding:2rem;
  display:flex; flex-direction:column; justify-content:flex-end;
  color:var(--cream); z-index:2;
  background:linear-gradient(180deg, transparent 40%, rgba(0,0,0,.92) 100%);
}
.exp-eta{
  font-size:.6rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--gold); border:1px solid var(--gold);
  padding:.35rem .8rem; align-self:flex-start;
  margin-bottom:1rem;
}
.exp-content h3{
  font-family:var(--font-serif); font-size:1.8rem;
  margin:0 0 .5rem; font-weight:400;
}
.exp-content p{ font-size:.88rem; opacity:.85; margin:0; }

/* ============ EQUIPO ============ */
.section-team{
  background:
    radial-gradient(circle at 80% 8%, rgba(201,169,110,.07), transparent 50%),
    var(--black);
}
.team-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;
}
.team-card{
  background:rgba(255,255,255,.03);
  border:1px solid rgba(201,169,110,.2);
  backdrop-filter:blur(6px);
  padding:2.4rem 2rem; display:flex; flex-direction:column;
  transition:transform .5s var(--ease), box-shadow .5s, border-color .4s, background .4s;
}
.team-card:hover{
  transform:translateY(-6px);
  box-shadow:0 30px 60px -24px rgba(0,0,0,.6);
  border-color:var(--gold);
  background:rgba(201,169,110,.06);
}
.team-role{
  font-size:.62rem; letter-spacing:.26em; text-transform:uppercase;
  color:var(--gold-light); margin-bottom:.8rem; font-weight:600;
}
.team-name{
  font-family:var(--font-serif); font-size:1.65rem; font-weight:500;
  margin:0 0 1.1rem; color:var(--cream); letter-spacing:.01em;
  padding-bottom:1rem; border-bottom:1px solid rgba(201,169,110,.22);
}
.team-tasks{ list-style:none; padding:0; margin:0 0 1.4rem; flex:1; }
.team-tasks li{
  font-size:.9rem; color:var(--cream); opacity:.7;
  padding:.34rem 0 .34rem 1.2rem; position:relative; line-height:1.4;
}
.team-tasks li::before{
  content:''; position:absolute; left:0; top:.92rem;
  width:.55rem; height:1px; background:var(--gold);
}
.team-email{
  font-size:.85rem; color:var(--gold-light); letter-spacing:.02em;
  word-break:break-word; margin-top:auto;
}
.team-email:hover{ color:var(--gold); }
@media(max-width:1024px){ .team-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:640px){ .team-grid{ grid-template-columns:1fr; } }

/* ============ CONTACTO ============ */
.section-contacto{
  background:
    radial-gradient(circle at 20% 30%, rgba(201,169,110,.08), transparent 50%),
    var(--black);
}
.contact-info{
  margin:2.5rem 0;
  border-top:1px solid rgba(201,169,110,.2);
}
.ci-row{
  display:grid; grid-template-columns:160px 1fr; gap:1.5rem;
  padding:1.2rem 0;
  border-bottom:1px solid rgba(201,169,110,.15);
}
.ci-label{
  font-size:.65rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--gold-light); padding-top:3px;
}
.ci-value{
  color:var(--cream); font-size:1rem;
  word-break:break-word;
}
a.ci-value{ transition:color .3s; }
a.ci-value:hover{ color:var(--gold); }

.contact-cta{ display:flex; gap:1rem; flex-wrap:wrap; margin-top:1.5rem; }

.map-frame{
  aspect-ratio:4/5; border:1px solid var(--line);
  overflow:hidden; position:relative;
  filter:grayscale(50%) brightness(.9);
  transition:filter .5s;
}
.map-frame:hover{ filter:grayscale(0%) brightness(1); }
.map-frame::before{
  content:''; position:absolute; inset:1rem;
  border:1px solid var(--gold); z-index:2; pointer-events:none;
  opacity:.5;
}

/* ============ FOOTER ============ */
.footer{
  background:var(--black-deep); color:var(--cream);
  padding:5rem 0 2rem; position:relative;
  border-top:1px solid rgba(201,169,110,.15);
}
.footer-grid{
  display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:3rem; padding-bottom:3rem;
  border-bottom:1px solid rgba(201,169,110,.1);
}
.footer-logo{
  font-family:var(--font-serif); font-size:2rem;
  letter-spacing:.4em; padding-left:.4em; font-weight:300;
  margin-bottom:1rem;
}
.footer-logo span{
  display:block; font-family:var(--font-sans);
  font-size:.55rem; letter-spacing:.6em; padding-left:.7em;
  color:var(--gold); margin-top:4px;
}
.footer-logo-img{
  width:auto; height:48px; display:block;
  margin-bottom:1.5rem;
  filter:drop-shadow(0 2px 12px rgba(201,169,110,.15));
}
.f-brand p{ font-size:.85rem; opacity:.7; line-height:1.7; }
.f-col h4{
  font-family:var(--font-sans); font-size:.7rem;
  letter-spacing:.3em; text-transform:uppercase;
  color:var(--gold); margin:0 0 1.5rem;
  font-weight:500;
}
.f-col a{
  display:block; padding:.4rem 0;
  font-size:.85rem; color:var(--cream); opacity:.75;
}
.f-col a:hover{ color:var(--gold); opacity:1; }
.f-col p{ font-size:.85rem; opacity:.7; line-height:1.7; margin:0 0 .5rem; }

.socials{ display:flex; gap:.8rem; }
.socials a{
  width:42px; height:42px;
  border:1px solid rgba(201,169,110,.3);
  display:flex; align-items:center; justify-content:center;
  padding:0; transition:all .3s var(--ease);
}
.socials a:hover{
  background:var(--gold); border-color:var(--gold); color:var(--black);
  transform:translateY(-3px);
}
.socials svg{ width:18px; height:18px; }

.footer-bottom{
  padding-top:2rem; display:flex; justify-content:space-between;
  font-size:.7rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--cream); opacity:.4;
}

/* ============ LANGUAGE SWITCHER ============ */
.lang-widget{
  position:fixed; bottom:2rem; left:2rem; z-index:85;
  font-family:var(--font-sans);
}
.lang-toggle{
  display:flex; align-items:center; gap:.5rem;
  background:rgba(10,10,10,.85);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(201,169,110,.4); color:var(--cream);
  padding:.55rem .9rem; border-radius:40px; cursor:pointer;
  font-size:.68rem; letter-spacing:.18em; font-weight:600;
  box-shadow:0 10px 28px rgba(0,0,0,.4);
  transition:border-color .3s var(--ease), transform .3s var(--ease);
}
.lang-toggle:hover{ border-color:var(--gold); transform:translateY(-2px); }
.lang-toggle img{ width:21px; height:14px; object-fit:cover; border-radius:2px; display:block; }
.lang-menu{
  position:absolute; bottom:calc(100% + .6rem); left:0;
  background:rgba(8,8,8,.96);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(201,169,110,.3); border-radius:12px;
  padding:.4rem; min-width:170px;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .35s var(--ease), transform .35s var(--ease), visibility .35s;
  box-shadow:0 24px 56px rgba(0,0,0,.55);
}
.lang-widget.open .lang-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.lang-opt{
  display:flex; align-items:center; gap:.7rem; width:100%;
  background:none; border:0; color:var(--cream); cursor:pointer;
  padding:.65rem .85rem; border-radius:7px;
  font-size:.82rem; letter-spacing:.04em; text-align:left;
  transition:background .25s, color .25s;
}
.lang-opt img{ width:24px; height:16px; object-fit:cover; border-radius:2px; }
.lang-opt:hover{ background:rgba(201,169,110,.1); }
.lang-opt.active{ color:var(--gold); }
@media(hover:hover){ .lang-widget:hover .lang-menu{ opacity:1; visibility:visible; transform:translateY(0); } }
@media(max-width:768px){ .lang-widget{ bottom:1rem; left:1rem; } .lang-toggle{ padding:.5rem .8rem; } }

/* ============ WHATSAPP FLOAT ============ */
.float-whatsapp{
  position:fixed; bottom:2rem; right:2rem; z-index:80;
  width:56px; height:56px; border-radius:50%;
  background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 30px rgba(37,211,102,.4);
  transition:transform .3s var(--ease), box-shadow .3s;
  animation:pulseWA 2.5s ease-in-out infinite;
}
.float-whatsapp:hover{
  transform:scale(1.08);
  box-shadow:0 15px 40px rgba(37,211,102,.55);
}
.float-whatsapp svg{ width:28px; height:28px; }
@keyframes pulseWA{
  0%,100%{ box-shadow:0 10px 30px rgba(37,211,102,.4), 0 0 0 0 rgba(37,211,102,.5); }
  50%{ box-shadow:0 10px 30px rgba(37,211,102,.4), 0 0 0 16px rgba(37,211,102,0); }
}

/* ============ REVEAL ============ */
.reveal{
  opacity:0; transform:translateY(40px);
  transition:opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);
}
.reveal.visible{ opacity:1; transform:translateY(0); }

/* ============ RESPONSIVE ============ */
@media(max-width:1024px){
  .nav-links{ gap:1.2rem; }
  .nav-links a{ font-size:.7rem; }
  .eco-grid, .mk-grid, .col-grid, .col-grid-2, .exp-grid, .exp-grid-2, .ev-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .tienda-duo{ grid-template-columns:1fr; gap:1.5rem; }
  .brand-grid{ grid-template-columns:repeat(4,1fr); }
  .vs-grid{ grid-template-columns:repeat(3,1fr); gap:1rem; }
  .eco-mosaic{ grid-template-columns:repeat(4,1fr); }
  .em-1{ grid-column:span 2; grid-row:span 2; }
  .em-2, .em-3, .em-4, .em-5{ grid-column:span 2; }
  .em-6{ grid-column:span 4; }
  .footer-grid{ grid-template-columns:1fr 1fr; gap:2.5rem; }
}

@media(max-width:768px){
  .nav-links{
    position:fixed; top:0; left:0; right:0; bottom:0;
    background:var(--black);
    flex-direction:column; justify-content:center; align-items:center;
    gap:1.6rem; transform:translateX(100%); transition:transform .5s var(--ease);
    padding:5rem 2rem;
  }
  .nav-links.open{ transform:translateX(0); }
  .nav-links a{ font-size:.95rem; letter-spacing:.3em; }
  .nav-toggle{ display:flex; z-index:101; }

  .two-col{ grid-template-columns:1fr; gap:2.5rem; }
  .two-col.reverse .col-image{ order:0; }
  .stats{ grid-template-columns:repeat(3,1fr); gap:1rem; }
  .ci-row{ grid-template-columns:1fr; gap:.3rem; }

  .eco-grid, .mk-grid, .col-grid, .col-grid-2, .exp-grid, .exp-grid-2, .ev-grid{
    grid-template-columns:1fr; gap:1.5rem;
  }
  .tienda-duo{ grid-template-columns:1fr; }
  .brand-grid{ grid-template-columns:repeat(2,1fr); }
  .vs-grid{ grid-template-columns:1fr; gap:1.5rem; }
  .vs-card{ max-width:340px; margin:0 auto; }
  .vs-grid-6{ grid-template-columns:repeat(2,1fr); gap:.8rem; }
  .vs-grid-6 .vs-card{ max-width:none; }
  .eco-mosaic{ grid-template-columns:repeat(2,1fr); grid-auto-rows:120px; }
  .em-1, .em-2, .em-3, .em-4, .em-5, .em-6{ grid-column:span 2; grid-row:span 1; }
  .em-1{ grid-row:span 2; }

  .footer-grid{ grid-template-columns:1fr; gap:2.5rem; }
  .footer-bottom{ flex-direction:column; gap:.8rem; text-align:center; }

  .hero-title .word:nth-child(2){ font-size:.65em; letter-spacing:.25em; }
  .hero-actions{ flex-direction:column; align-items:stretch; }
  .btn{ text-align:center; }

  .float-whatsapp{ bottom:1rem; right:1rem; width:50px; height:50px; }
  .float-whatsapp svg{ width:24px; height:24px; }
}

@media(max-width:480px){
  .hero-eyebrow{ font-size:.6rem; gap:.6rem; }
  .hero-eyebrow .line{ width:25px; }
  .section{ padding:4rem 0; }
  .vs-head h3{ font-size:1.5rem; }
}
