:root{
  --bone:#f4ede4;
  --bone-2:#ebe2d6;
  --ink:#1a1a1a;
  --ink-soft:#2a2a2a;
  --muted:#6b6358;
  --line:#d6cbb9;
  --tesera:#3a7a96;
  --tesera-deep:#2a5a72;
  --terra:#b85c3c;
  --clay:#c97e5b;
  --sage:#8a9a7e;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{
  font-family:'Inter Tight',-apple-system,sans-serif;
  background:var(--bone);
  color:var(--ink);
  font-weight:400;
  line-height:1.5;
  overflow-x:hidden;
}

::selection{background:var(--tesera);color:var(--bone)}

.display{
  font-family:'Fraunces',Georgia,serif;
  font-weight:300;
  letter-spacing:-0.03em;
  line-height:0.93;
  font-optical-sizing:auto;
  text-wrap:balance;
}
.label{
  font-family:'Inter Tight',sans-serif;
  text-transform:uppercase;
  letter-spacing:0.18em;
  font-size:11px;
  font-weight:500;
  color:var(--muted);
}

/* ============ NAV ============ */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:20px 40px;
  display:flex;justify-content:space-between;align-items:center;
  background:rgba(244,237,228,0.88);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid transparent;
  transition:background 0.3s, border-color 0.3s;
}
nav.is-scrolled{border-bottom-color:var(--line)}
.logo-link{display:flex;align-items:center;text-decoration:none}
.logo-img{height:32px;width:auto;display:block}
.logo-light{display:none}

.nav-links{display:flex;gap:28px;font-size:13px;font-weight:400}
.nav-links a{color:var(--ink);text-decoration:none;opacity:0.7;transition:opacity 0.3s;letter-spacing:0.02em}
.nav-links a:hover{opacity:1}

.nav-toggle{display:none;background:none;border:none;cursor:pointer;width:32px;height:32px;flex-direction:column;justify-content:center;gap:5px;padding:0}
.nav-toggle span{display:block;width:22px;height:1.5px;background:var(--ink);transition:transform 0.3s}
.nav-toggle.is-open span:first-child{transform:translateY(3px) rotate(45deg)}
.nav-toggle.is-open span:last-child{transform:translateY(-3px) rotate(-45deg)}

/* C10: nav móvil */
@media(max-width:768px){
  nav{padding:16px 20px}
  .logo-img{height:26px}
  .nav-links{
    position:fixed;top:0;left:0;right:0;bottom:0;
    background:var(--bone);
    flex-direction:column;justify-content:center;align-items:center;
    gap:24px;font-size:22px;font-family:'Fraunces';
    transform:translateX(100%);transition:transform 0.4s ease;
    z-index:99;
  }
  .nav-links.is-open{transform:translateX(0)}
  .nav-links a{font-style:italic;opacity:1}
  .nav-toggle{display:flex;z-index:101}
}

/* ============ HERO ============ */
.hero{
  min-height:100vh;
  padding:140px 40px 60px;
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:60px;
  align-items:end;
  position:relative;
  overflow:hidden;
}
.hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(135deg,rgba(10,10,10,0.75) 0%,rgba(10,10,10,0.5) 55%,rgba(10,10,10,0.6) 100%);
}
.hero-text h1{
  font-size:clamp(56px,10vw,148px);
  margin-bottom:32px;
  letter-spacing:-0.04em;
  font-optical-sizing:auto;
  text-wrap:balance;
}
.hero-text h1 .accent{
  font-style:italic;
  color:var(--tesera);
  font-weight:400;
}
.hero-meta{
  display:flex;gap:48px;
  padding-top:24px;
  border-top:1px solid var(--line);
  max-width:520px;
}
.hero-meta div{display:flex;flex-direction:column;gap:6px}
.hero-meta strong{font-family:'Fraunces';font-weight:400;font-size:36px;color:var(--ink)}

.hero-visual{
  position:relative;
  height:80vh;
  min-height:560px;
}
.hero-tile{
  position:absolute;
  border-radius:2px;
  box-shadow:0 12px 40px rgba(0,0,0,0.08), inset 0 1px 2px rgba(255,255,255,0.3);
}
.hero-tile::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,0.18) 0%,transparent 35%,transparent 65%,rgba(0,0,0,0.06) 100%);
  border-radius:inherit;
}
.ht-1{background:#3a7a96;width:18%;height:62%;top:6%;left:4%;transform:rotate(-3deg)}
.ht-2{background:#b85c3c;width:14%;height:48%;top:24%;left:26%;transform:rotate(2deg)}
.ht-3{background:#8a9a7e;width:16%;height:55%;top:10%;left:44%;transform:rotate(-1deg)}
.ht-4{background:#f0d9c0;width:13%;height:42%;top:32%;left:64%;transform:rotate(4deg)}
.ht-5{background:#1a1a1a;width:15%;height:50%;top:14%;left:80%;transform:rotate(-2deg)}
.ht-6{background:#c97e5b;width:20%;height:30%;top:74%;left:8%;transform:rotate(3deg)}
.ht-7{background:#2a5a72;width:17%;height:28%;top:76%;left:36%;transform:rotate(-2deg)}
.ht-8{background:#a8b89c;width:18%;height:32%;top:72%;left:60%;transform:rotate(2deg)}

.hero-tile{animation:rise 1.2s cubic-bezier(0.22,1,0.36,1) forwards, float 6s ease-in-out infinite 1.5s}
.ht-2{animation-delay:0.7s, 1.6s}
.ht-3{animation-delay:0.8s, 1.7s}
.ht-4{animation-delay:0.9s, 1.8s}
.ht-5{animation-delay:1.0s, 1.9s}
.ht-6{animation-delay:1.1s, 2.0s}
.ht-7{animation-delay:1.2s, 2.1s}
.ht-8{animation-delay:1.3s, 2.2s}

@keyframes float{
  0%,100%{transform:translateY(0) rotate(var(--r,0deg))}
  50%{transform:translateY(-8px) rotate(var(--r,0deg))}
}

.scroll-cue{
  position:absolute;bottom:30px;left:40px;
  font-size:11px;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--muted);
  display:flex;align-items:center;gap:12px;
}
.scroll-cue::before{
  content:'';width:40px;height:1px;background:currentColor;
  animation:lineMove 2s ease-in-out infinite;
}
@keyframes lineMove{
  0%,100%{transform:scaleX(1);transform-origin:left}
  50%{transform:scaleX(0.4);transform-origin:left}
}

/* C10: hero móvil */
@media(max-width:900px){
  .hero{grid-template-columns:1fr;padding:110px 20px 40px;gap:32px;align-items:start}
  .hero-visual{height:40vh;min-height:280px}
  .hero-meta{flex-wrap:wrap;gap:20px}
  .scroll-cue{display:none}
}
@media(max-width:480px){
  .hero-visual{display:none}
}

/* ============ SECTION SHELL ============ */
section{padding:140px 40px;position:relative}
@media(max-width:768px){section{padding:80px 20px}}

.section-header{
  display:grid;
  grid-template-columns:200px 1fr;
  gap:60px;
  margin-bottom:80px;
  align-items:start;
}
.section-header h2{
  font-size:clamp(36px,6vw,84px);
  max-width:900px;
  letter-spacing:-0.03em;
  font-optical-sizing:auto;
  text-wrap:balance;
}
@media(max-width:768px){
  .section-header{grid-template-columns:1fr;gap:16px;margin-bottom:48px}
}

/* Hero load-in */
.hero-text h1, .hero-meta{
  opacity:0;animation:rise 1.2s cubic-bezier(0.22,1,0.36,1) forwards;
}
.hero-text h1{animation-delay:0.2s}
.hero-meta{animation-delay:0.5s}
@keyframes rise{
  from{opacity:0;transform:translateY(30px)}
  to{opacity:1;transform:translateY(0)}
}

/* ============ HISTORIA / MANIFIESTO ============ */
#historia{
  background:#1a1a1a url('assets/bg-historia.PNG') center 50% / cover no-repeat;
  color:var(--bone);
  padding:160px 40px;
  position:relative;
  overflow:hidden;
}
#historia::before{
  content:'';position:absolute;inset:0;
  background:rgba(12,8,6,0.76);
  z-index:0;
}
#historia .label{color:#8a8175;position:relative;z-index:1}
.manifesto{
  max-width:1100px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;
  position:relative;z-index:1;
}
.manifesto p{
  font-family:'Fraunces',serif;
  font-weight:300;
  font-size:clamp(20px,2.4vw,34px);
  line-height:1.28;
  letter-spacing:-0.02em;
  font-optical-sizing:auto;
  text-wrap:pretty;
}
.manifesto p em{font-style:italic;color:#c89a7a}
.manifesto-stats{display:flex;flex-direction:column;gap:48px;border-left:1px solid #3a3530;padding-left:48px}
.stat-num{
  font-family:'Fraunces';font-weight:300;
  font-size:clamp(56px,7vw,96px);
  line-height:1;color:var(--bone);
  letter-spacing:-0.05em;
  font-optical-sizing:auto;
  font-variant-numeric:oldstyle-nums;
}
.stat-icon{color:var(--bone);opacity:0.75;margin-bottom:4px}
.stat-label{font-size:13px;letter-spacing:0.15em;text-transform:uppercase;color:#8a8175;margin-top:8px}

@media(max-width:900px){
  #historia{padding:80px 20px}
  .manifesto{grid-template-columns:1fr;gap:48px}
  .manifesto-stats{padding-left:20px;gap:28px;flex-direction:row;flex-wrap:wrap;border-left:none;border-top:1px solid #3a3530;padding-top:32px}
}

/* ============ PROYECTOS / GALERÍA ============ */
#proyectos{padding:160px 0 80px}
#proyectos .section-header{padding:0 40px}
@media(max-width:768px){
  #proyectos{padding:80px 0 40px}
  #proyectos .section-header{padding:0 20px}
}

.gallery-track{
  display:flex;gap:24px;
  padding:0 40px 60px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.gallery-track::-webkit-scrollbar{display:none}

.project{
  flex:0 0 440px;
  scroll-snap-align:start;
}
@media(max-width:768px){
  .project{flex:0 0 82vw}
  .gallery-track{padding:0 20px 40px;gap:16px}
}

.project-frame{
  width:100%;height:580px;
  border-radius:4px;overflow:hidden;
  position:relative;
  background:#e0d4c2;
  margin-bottom:20px;
}
@media(max-width:768px){.project-frame{height:420px}}

.project-meta{display:flex;justify-content:space-between;align-items:baseline}
.project-name{font-family:'Fraunces';font-weight:400;font-size:20px;font-style:italic}
.project-loc{font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted)}

/* ============ CATÁLOGO COLORES ============ */
#colores{
  background:var(--bone-2);
  padding:160px 40px;
}
@media(max-width:768px){#colores{padding:80px 20px}}

.family-tabs{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:60px;
  padding-bottom:24px;
  border-bottom:1px solid var(--line);
}
.family-tab{
  background:transparent;
  border:1px solid var(--line);
  border-radius:99px;
  padding:9px 18px;
  font-family:'Inter Tight',sans-serif;
  font-size:13px;
  font-weight:500;
  color:var(--ink);
  cursor:pointer;
  letter-spacing:0.02em;
  transition:all 0.3s ease;
  display:flex;align-items:center;gap:8px;
  touch-action:manipulation;
}
.family-tab:hover{border-color:var(--ink);background:rgba(0,0,0,0.03)}
.family-tab.is-active{background:var(--ink);border-color:var(--ink);color:var(--bone)}
.family-tab .count{font-size:11px;opacity:0.6;font-weight:400}
.family-tab.is-active .count{opacity:0.8}

/* C10: tabs móvil */
@media(max-width:600px){
  .family-tabs{gap:6px;margin-bottom:40px}
  .family-tab{padding:8px 14px;font-size:12px}
}

.color-stage{
  display:grid;
  grid-template-columns:1fr 1.5fr;
  gap:80px;
  align-items:start;
  max-width:1400px;margin:0 auto;
}
@media(max-width:1000px){
  .color-stage{grid-template-columns:1fr;gap:40px}
}

.color-display-wrap{position:sticky;top:120px}
@media(max-width:1000px){.color-display-wrap{position:relative;top:0}}

.color-display{
  aspect-ratio:3/4;width:100%;
  background:var(--tesera);border-radius:4px;
  display:flex;flex-direction:column;justify-content:flex-end;padding:36px;
  transition:background 0.6s cubic-bezier(0.65,0,0.35,1);
  box-shadow:0 30px 60px rgba(0,0,0,0.12), inset 0 0 60px rgba(0,0,0,0.05);
  position:relative;overflow:hidden;
}
.color-display::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,0.12) 0%,transparent 30%,transparent 70%,rgba(0,0,0,0.08) 100%);
}
.color-display::after{
  content:'';position:absolute;top:30%;left:30%;width:40%;height:6%;
  background:radial-gradient(ellipse,rgba(255,255,255,0.15),transparent 70%);
  filter:blur(8px);
}
.color-info{position:relative;z-index:2;color:rgba(255,255,255,0.95)}
.color-num{font-size:13px;letter-spacing:0.2em;opacity:0.85;margin-bottom:8px;font-weight:500}
.color-name{font-family:'Fraunces';font-weight:300;font-size:clamp(32px,4vw,52px);line-height:1;letter-spacing:-0.02em;margin-bottom:14px}
.color-family{font-size:11px;letter-spacing:0.18em;text-transform:uppercase;opacity:0.75}

/* C10: color grid móvil */
.color-list{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(64px,1fr));
  gap:8px;
}
@media(max-width:480px){
  .color-list{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px}
}

.swatch{
  aspect-ratio:1/2.4;border-radius:2px;cursor:pointer;
  position:relative;
  transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.3s, opacity 0.3s;
  box-shadow:inset 0 1px 2px rgba(255,255,255,0.2), 0 4px 12px rgba(0,0,0,0.04);
  animation:swatchIn 0.5s cubic-bezier(0.22,1,0.36,1) backwards;
  touch-action:manipulation;
}
@keyframes swatchIn{
  from{opacity:0;transform:translateY(20px) scale(0.9)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.swatch::after{
  content:'';position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(135deg,rgba(255,255,255,0.18) 0%,transparent 35%,transparent 65%,rgba(0,0,0,0.05) 100%);
}
.swatch:hover{transform:translateY(-6px) scale(1.04);box-shadow:0 12px 28px rgba(0,0,0,0.15)}
.swatch.is-active{transform:translateY(-8px) scale(1.06);box-shadow:0 16px 32px rgba(0,0,0,0.2)}
.swatch.is-active::before{
  content:'';position:absolute;inset:-4px;border:1px solid var(--ink);border-radius:4px;
}
.swatch.is-hidden{display:none}

.color-meta{margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}
.color-finish{display:flex;gap:6px;flex-wrap:wrap}
.pill{
  font-size:11px;letter-spacing:0.1em;text-transform:uppercase;
  padding:6px 12px;border:1px solid var(--ink);border-radius:99px;
}

/* C9: tooltip colores */
.color-tooltip{
  position:fixed;
  pointer-events:none;
  z-index:200;
  background:var(--bone);
  border-radius:4px;
  box-shadow:0 24px 64px rgba(0,0,0,0.18), 0 4px 16px rgba(0,0,0,0.08);
  width:160px;
  opacity:0;
  transform:translateY(8px) scale(0.94);
  transition:opacity 0.18s ease, transform 0.18s ease;
  overflow:hidden;
}
.color-tooltip.is-visible{
  opacity:1;
  transform:translateY(0) scale(1);
}
.ct-preview{width:100%;height:110px}
.ct-info{padding:14px 16px 16px}
.ct-num{
  font-size:10px;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--muted);margin-bottom:6px;
}
.ct-name{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:20px;letter-spacing:-0.01em;
  color:var(--ink);line-height:1.1;
}

/* ============ FORMATOS ============ */
#formatos{padding:160px 40px}
@media(max-width:768px){#formatos{padding:80px 20px}}

.formats-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:40px;
  max-width:1300px;margin:0 auto;
}
@media(max-width:960px){.formats-grid{grid-template-columns:repeat(2,1fr);gap:24px}}
@media(max-width:520px){.formats-grid{grid-template-columns:1fr;gap:20px}}

.format-card{
  background:var(--bone-2);padding:32px 24px;border-radius:4px;
  transition:transform 0.5s cubic-bezier(0.34,1.2,0.64,1), background 0.4s;
  cursor:pointer;position:relative;overflow:hidden;
}
.format-cta{
  position:absolute;bottom:0;left:0;right:0;
  background:var(--tesera);color:var(--bone);
  text-align:center;padding:14px;
  font-size:13px;letter-spacing:0.08em;font-weight:500;
  text-decoration:none;display:block;
  transform:translateY(100%);
  transition:transform 0.35s cubic-bezier(0.34,1.2,0.64,1);
}
.format-card:hover .format-cta{transform:translateY(0)}

/* Fade-in imágenes al cargar */
.gallery-track img,.format-shape img{
  opacity:0;
  transition:opacity 0.6s ease, transform 0.5s cubic-bezier(0.34,1.2,0.64,1);
}
.gallery-track img.img-loaded,.format-shape img.img-loaded{opacity:1}
.format-card:hover{transform:translateY(-6px);background:#e3d8c5}
.format-shape{
  width:100%;aspect-ratio:1;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:28px;position:relative;overflow:hidden;border-radius:2px;
}
.format-shape--photo{
  display:block !important;
  aspect-ratio:auto !important;
  height:0 !important;
  padding-bottom:100%;
}
.format-shape img{
  position:absolute;
  top:0;left:0;right:0;bottom:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform 0.5s cubic-bezier(0.34,1.2,0.64,1);
}
.format-card:hover .format-shape img{transform:scale(1.04)}
.shape-rect{
  background:var(--ink);
  box-shadow:0 8px 20px rgba(0,0,0,0.15), inset 0 0 0 1px rgba(255,255,255,0.06);
}
.shape-5x20{width:30%;height:90%}
.shape-7x15{width:42%;height:75%}
.shape-5x10{width:35%;height:60%}
.shape-7x30{width:30%;height:90%}
.shape-7x22{width:35%;height:80%}
.shape-10x30{width:38%;height:90%}
.shape-30x30{width:80%;height:80%}
.shape-20x20{width:65%;height:65%}
.shape-15x15{width:55%;height:55%}
.shape-11x11{width:42%;height:42%}
.shape-hex{
  width:65%;aspect-ratio:1;background:var(--ink);
  clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
}
.format-card .label{margin-bottom:6px}
.format-name{
  font-family:'Fraunces';font-weight:400;font-size:26px;
  margin-bottom:6px;letter-spacing:-0.01em;
}
.format-pcs{font-size:13px;color:var(--muted)}
.format-price{
  margin-top:20px;padding-top:18px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:baseline;
}
.format-price strong{font-family:'Fraunces';font-weight:400;font-size:22px}
.format-price span{font-size:11px;color:var(--muted);letter-spacing:0.1em;text-transform:uppercase}

.formats-note{
  text-align:center;margin-top:60px;
  font-size:13px;color:var(--muted);
  font-style:italic;font-family:'Fraunces';
}

/* ============ CATÁLOGO 2026 ============ */
/* C8: nueva sección catálogo PDF */
.catalogo-section{
  background:var(--bone-2) url('assets/bg-catalogo.PNG') center 50% / cover no-repeat;
  padding:140px 40px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.catalogo-section::before{
  content:'';position:absolute;inset:0;
  background:rgba(244,237,228,0.86);
  z-index:0;
}
.catalogo-inner{max-width:700px;margin:0 auto;position:relative;z-index:1}
.catalogo-title{
  font-size:clamp(48px,7vw,100px);
  color:var(--ink);
  margin-bottom:28px;
}
.catalogo-desc{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(18px,2vw,24px);
  color:var(--muted);
  line-height:1.4;
  margin-bottom:52px;
}
.catalogo-btn{
  display:inline-flex;align-items:center;gap:12px;
  padding:18px 36px;
  background:var(--tesera);color:var(--bone);
  border-radius:99px;font-size:15px;letter-spacing:0.04em;
  text-decoration:none;font-weight:500;
  transition:transform 0.3s, background 0.3s;
}
.catalogo-btn:hover{transform:translateY(-2px);background:var(--tesera-deep)}
.catalogo-btn svg{width:18px;height:18px}

@media(max-width:768px){
  .catalogo-section{padding:80px 20px}
  .catalogo-desc br{display:none}
  .catalogo-btn{width:100%;justify-content:center;padding:16px 24px}
}

/* ============ DISEÑO PERSONALIZADO ============ */
.custom-design-section{
  background:var(--ink) url('assets/bg-diseno.PNG') center 50% / cover no-repeat;
  padding:120px 40px;
  text-align:center;position:relative;overflow:hidden;
}
.custom-design-section::before{
  content:'';position:absolute;inset:0;
  background:rgba(14,9,7,0.78);
  z-index:0;
}
.custom-design-inner{position:relative;z-index:1;max-width:800px;margin:0 auto}
.custom-design-desc{
  font-family:'Fraunces',serif;font-weight:300;
  font-size:clamp(17px,2vw,24px);
  color:#8a8175;margin-bottom:48px;letter-spacing:0.01em;
}
.custom-design-cta{background:var(--bone);color:var(--ink);font-size:15px}
.custom-design-cta:hover{background:var(--clay);color:var(--bone)}
@media(max-width:768px){
  .custom-design-section{padding:80px 20px}
  .custom-design-cta{width:100%;justify-content:center}
}

/* ============ CONTACTO ============ */
#contacto{
  background:linear-gradient(180deg,var(--bone) 0%,var(--bone-2) 100%);
  padding:160px 40px 80px;position:relative;overflow:hidden;
}
@media(max-width:768px){#contacto{padding:80px 20px 60px}}

.contact-grid{
  display:grid;grid-template-columns:1.3fr 1fr;gap:80px;
  max-width:1300px;margin:0 auto;align-items:end;
}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;gap:48px}}

.contact-headline{
  font-size:clamp(40px,7vw,112px);
  margin-bottom:52px;max-width:14ch;
}
.contact-cta{
  display:inline-flex;align-items:center;gap:14px;
  padding:18px 28px;background:var(--ink);color:var(--bone);
  border-radius:99px;font-size:14px;letter-spacing:0.05em;
  text-decoration:none;
  transition:transform 0.3s, background 0.3s;
  touch-action:manipulation;
}
.contact-cta:hover{transform:translateY(-2px);background:var(--tesera)}
.contact-cta svg{width:16px;height:16px}

@media(max-width:480px){
  .contact-cta{width:100%;justify-content:center}
}

.contact-info{
  display:flex;flex-direction:column;gap:32px;
  border-left:1px solid var(--line);padding-left:36px;
}
@media(max-width:900px){
  .contact-info{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:32px}
}
.contact-row .label{margin-bottom:8px}
.contact-row a, .contact-row p{
  font-family:'Fraunces';font-weight:400;font-size:20px;
  color:var(--ink);text-decoration:none;line-height:1.3;
}
.contact-row a:hover{font-style:italic}
.map-link{
  display:inline-block;margin-top:8px;
  font-family:'Inter Tight'!important;font-size:12px!important;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--tesera)!important;
}

.map-wrap{
  margin-top:80px;aspect-ratio:21/7;
  border-radius:4px;overflow:hidden;
  background:var(--ink);position:relative;
}
.map-wrap iframe{width:100%;height:100%;border:0;filter:grayscale(60%) contrast(1.05)}
@media(max-width:768px){
  .map-wrap{aspect-ratio:4/3;margin-top:48px}
}

/* ============ FOOTER ============ */
footer{background:var(--ink);color:var(--bone);padding:60px 40px 32px}
@media(max-width:768px){footer{padding:48px 20px 28px}}
.footer-top{
  display:flex;justify-content:space-between;align-items:center;
  padding-bottom:36px;border-bottom:1px solid #2a2a2a;flex-wrap:wrap;gap:20px;
}
.footer-logo-img{height:36px;width:auto}
.footer-bottom{
  margin-top:32px;display:flex;justify-content:space-between;
  font-size:11px;color:#8a8175;letter-spacing:0.1em;text-transform:uppercase;
  flex-wrap:wrap;gap:12px;
}
.social-links{display:flex;gap:24px}
.social-links a{color:var(--bone);text-decoration:none;font-size:13px;letter-spacing:0.05em}
.social-links a:hover{color:var(--tesera)}

/* ============ PANTALLA DE CARGA ============ */
.load-screen{
  position:fixed;inset:0;z-index:10000;
  background:var(--bone);
  display:flex;align-items:center;justify-content:center;
  transition:opacity 0.7s cubic-bezier(0.65,0,0.35,1), visibility 0.7s;
}
.load-screen.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.load-logo{
  height:56px;width:auto;
  animation:loadIn 0.9s cubic-bezier(0.22,1,0.36,1) forwards;
}
@keyframes loadIn{
  from{opacity:0;transform:translateY(16px)}
  to{opacity:1;transform:translateY(0)}
}

/* ============ CURSOR PERSONALIZADO (solo desktop) ============ */
@media(hover:hover) and (pointer:fine){
  *{cursor:none !important}
  .cursor-dot{
    position:fixed;top:0;left:0;z-index:9999;
    width:6px;height:6px;border-radius:50%;
    background:var(--ink);
    pointer-events:none;
    transform:translate(-50%,-50%);
    transition:transform 0.1s, background 0.3s, width 0.3s, height 0.3s;
  }
  .cursor-ring{
    position:fixed;top:0;left:0;z-index:9998;
    width:36px;height:36px;border-radius:50%;
    border:1.5px solid var(--ink);
    pointer-events:none;
    transform:translate(-50%,-50%);
    transition:transform 0.12s linear, width 0.4s cubic-bezier(0.34,1.56,0.64,1), height 0.4s cubic-bezier(0.34,1.56,0.64,1), border-color 0.3s, opacity 0.3s;
    opacity:0.5;
  }
  .cursor-ring.is-hovering{
    width:60px;height:60px;opacity:0.25;border-color:var(--tesera);
  }
  .cursor-dot.is-hovering{background:var(--tesera)}
}

/* ============ GRAIN OVERLAY ============ */
.grain-overlay{
  position:fixed;inset:-50%;
  width:200%;height:200%;
  z-index:9990;
  pointer-events:none;
  opacity:0.038;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.88' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grainMove 0.5s steps(1) infinite;
}
@keyframes grainMove{
  0%{transform:translate(0,0)}
  10%{transform:translate(-2%,-3%)}
  20%{transform:translate(1%,2%)}
  30%{transform:translate(-3%,1%)}
  40%{transform:translate(2%,-2%)}
  50%{transform:translate(-1%,3%)}
  60%{transform:translate(3%,-1%)}
  70%{transform:translate(-2%,2%)}
  80%{transform:translate(1%,-3%)}
  90%{transform:translate(-1%,1%)}
}

/* ============ BOTÓN FLOTANTE WHATSAPP ============ */
.wa-float{
  position:fixed;bottom:32px;right:32px;z-index:500;
  width:56px;height:56px;border-radius:50%;
  background:#25D366;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px rgba(37,211,102,0.4);
  opacity:0;visibility:hidden;
  transform:scale(0.8) translateY(8px);
  transition:opacity 0.4s, visibility 0.4s, transform 0.4s cubic-bezier(0.34,1.56,0.64,1), background 0.3s;
  text-decoration:none;
}
.wa-float.is-visible{opacity:1;visibility:visible;transform:scale(1) translateY(0)}
.wa-float:hover{background:#1ebe5d;transform:scale(1.1) translateY(0) !important}
.wa-float svg{width:26px;height:26px;fill:white}
.wa-float::before{
  content:'';position:absolute;inset:0;border-radius:50%;
  background:#25D366;
  animation:waPulse 2.5s ease-out infinite;
  z-index:-1;
}
@keyframes waPulse{
  0%{transform:scale(1);opacity:0.5}
  70%{transform:scale(1.6);opacity:0}
  100%{transform:scale(1.6);opacity:0}
}
@media(max-width:768px){
  .wa-float{bottom:20px;right:20px;width:50px;height:50px}
  .wa-float svg{width:22px;height:22px}
}

/* ============ REVEAL ANIMATIONS ============ */
.reveal{
  opacity:0;transform:translateY(40px);
  transition:opacity 1s cubic-bezier(0.22,1,0.36,1), transform 1s cubic-bezier(0.22,1,0.36,1);
}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:0.1s}
.reveal-delay-2{transition-delay:0.2s}
.reveal-delay-3{transition-delay:0.3s}
.reveal-delay-4{transition-delay:0.4s}
