/* =========================================================
   Modo Houses — main.css  |  Version: 1.0.0
   Paleta: forest/carbon/cobre/hueso/lino/sage
   Tipografías: DM Serif Display · Space Grotesk · Inter
   ========================================================= */

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

:root {
  --forest:  #3A4A35;
  --oliva:   #4E5E42;
  --sage:    #8A9E78;
  --grafito: #2C3035;
  --carbon:  #1A1D20;
  --arena:   #D4C5A9;
  --hueso:   #F2EDE4;
  --lino:    #EDE6D6;
  --cobre:   #B87333;
  --white:   #FFFFFF;
  --fd: 'DM Serif Display', Georgia, serif;
  --fu: 'Space Grotesk', system-ui, sans-serif;
  --fb: 'Inter', system-ui, sans-serif;
}

html { scroll-behavior: smooth; }
body { font-family: var(--fb); background: var(--white); color: var(--carbon); overflow-x: hidden; }
img  { max-width:100%; height:auto; display:block; }
a    { color: inherit; text-decoration: none; }
button { cursor: pointer; }

/* ── TIPOGRAFÍA GLOBAL ── */
.tag  { font-family:var(--fu); font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--sage); margin-bottom:12px; }
.lead { font-size:16px; line-height:1.9; color:#4A5545; max-width:580px; }
.h2   { font-family:var(--fd); font-size:38px; font-weight:400; line-height:1.15; color:var(--carbon); }
.h2-light { font-family:var(--fd); font-size:36px; font-weight:400; line-height:1.2; color:var(--lino); }
.pill { font-family:var(--fu); font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; padding:6px 14px; border:0.5px solid rgba(138,158,120,.3); color:var(--sage); display:inline-block; }

/* ── BOTONES ── */
.btn-cta {
  font-family:var(--fu); font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  padding:15px 32px; background:var(--cobre); color:var(--white); border:none; cursor:pointer;
  transition:opacity .2s; display:inline-block;
}
.btn-cta:hover { opacity:.85; }
.btn-forest {
  font-family:var(--fu); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  padding:14px 28px; background:var(--forest); color:var(--lino); border:none; cursor:pointer;
  display:inline-block; transition:opacity .2s;
}
.btn-forest:hover { opacity:.85; }
.btn-outline-light {
  font-family:var(--fu); font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  padding:14px 28px; border:1px solid rgba(255,255,255,.4); color:var(--white); background:transparent;
  cursor:pointer; transition:border-color .2s, color .2s; display:inline-block;
}
.btn-outline-light:hover { border-color:var(--white); }

/* ── BUILD BANNER ── */
.build-banner {
  position:fixed; top:0; left:0; right:0; z-index:300; height:38px;
  display:flex; align-items:center; justify-content:center; gap:10px; background:var(--cobre);
}
.build-banner-dot { width:6px; height:6px; border-radius:50%; background:var(--carbon); opacity:.85; animation:buildPulse 1.6s ease-in-out infinite; flex-shrink:0; }
.build-banner span { font-family:var(--fu); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--carbon); white-space:nowrap; }
@keyframes buildPulse { 0%,100%{opacity:.35} 50%{opacity:1} }

/* padding-top solo cuando el banner está activo (clase aplicada via PHP en header.php) */
body.mh-has-banner { padding-top:38px; }

/* ── NAV ── */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 40px; height:64px;
  background:rgba(26,29,32,0); transition:background .3s, box-shadow .3s, top .3s;
}
/* Con banner activo, el nav baja 38px */
body.mh-has-banner .nav { top:38px; }
.nav.scrolled { background:rgba(26,29,32,.96); box-shadow:0 1px 0 rgba(255,255,255,.05); }
.nav-logo img { height:36px; display:block; }
.nav-links { display:flex; gap:32px; list-style:none; }
.nav-links a { font-family:var(--fu); font-size:11px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.55); cursor:pointer; transition:color .2s; }
.nav-links a:hover { color:var(--white); }
.nav-cta { font-family:var(--fu); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:10px 24px; background:var(--cobre); color:var(--white); border:none; cursor:pointer; transition:opacity .2s; display:inline-block; }
.nav-cta:hover { opacity:.85; }
.nav-toggle { display:none; flex-direction:column; gap:5px; background:none; border:none; padding:4px; }
.nav-toggle span { display:block; width:22px; height:1.5px; background:var(--white); }
@media(max-width:900px) {
  .nav { padding:0 20px; }
  .nav-links { display:none; position:fixed; top:102px; left:0; right:0; background:var(--carbon); flex-direction:column; gap:0; padding:20px 0; }
  .nav-links.open { display:flex; }
  .nav-links li a { display:block; padding:14px 28px; font-size:13px; }
  .nav-toggle { display:flex; }
}

/* ── HERO ── */
.hero { position:relative; height:100vh; min-height:600px; overflow:hidden; display:flex; align-items:center; }
.hero-bg-wrap { position:absolute; inset:0; }
.hero-bg-slide { position:absolute; inset:0; opacity:0; transition:opacity .8s ease; }
.hero-bg-slide.active { opacity:1; }
.hero-bg-slide img { width:100%; height:100%; object-fit:cover; transform:scale(1.12); transform-origin:center; will-change:transform; }
.hero-grad { position:absolute; inset:0; background:linear-gradient(135deg,rgba(26,29,32,.72) 0,rgba(26,29,32,.3) 100%); }
.hero-grad-bottom { position:absolute; bottom:0; left:0; right:0; height:200px; background:linear-gradient(to top,rgba(26,29,32,.6),transparent); }
.hero-content { position:relative; z-index:2; padding:0 80px; max-width:800px; }
.hero-eyebrow { font-family:var(--fu); font-size:10px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--sage); margin-bottom:20px; }
.hero-content h1 { font-family:var(--fd); font-size:clamp(40px,6vw,72px); font-weight:400; color:var(--white); line-height:1.05; margin-bottom:20px; }
.hero-content h1 em { color:var(--sage); font-style:italic; }
.hero-sub { font-size:16px; line-height:1.75; color:rgba(237,230,214,.75); max-width:480px; margin-bottom:36px; }
.hero-actions { display:flex; gap:16px; flex-wrap:wrap; align-items:center; }
@media(max-width:640px) {
  .hero-content { padding:0 24px; }
  .hero-actions { flex-direction:column; align-items:flex-start; }
}

/* ── SISTEMA ── */
.sistema-section { background:var(--white); padding:100px 0; }
.sistema-inner { max-width:1280px; margin:0 auto; padding:0 80px; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.sistema-pills { display:flex; flex-wrap:wrap; gap:8px; margin-top:28px; }
.sistema-features { display:flex; flex-direction:column; gap:32px; padding-top:8px; }
.sf-item { display:flex; gap:20px; align-items:flex-start; }
.sf-num { font-family:var(--fu); font-size:11px; font-weight:700; color:var(--sage); letter-spacing:.1em; padding-top:2px; min-width:28px; }
.sf-title { font-family:var(--fu); font-size:13px; font-weight:600; color:var(--carbon); letter-spacing:.06em; margin-bottom:6px; }
.sf-desc { font-size:14px; line-height:1.7; color:#666; }
@media(max-width:900px) { .sistema-inner { grid-template-columns:1fr; gap:48px; padding:0 24px; } }

/* ── RENDERS ── */
.renders-section { background:var(--grafito); padding:0; }
.renders-hero { position:relative; height:60vh; min-height:400px; overflow:hidden; }
.renders-hero img { width:100%; height:100%; object-fit:cover; display:block; }
.renders-hero-caption { position:absolute; bottom:0; left:0; right:0; padding:24px 40px; background:linear-gradient(to top,rgba(26,29,32,.7),transparent); }
.renders-hero-caption p { font-family:var(--fu); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:rgba(237,230,214,.6); }
.renders-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:4px; background:var(--carbon); }
.render-thumb { position:relative; overflow:hidden; aspect-ratio:4/3; flex:0 0 auto; }
.render-thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.render-thumb:hover img { transform:scale(1.04); }
.render-thumb-label { position:absolute; bottom:0; left:0; right:0; padding:10px 12px; background:linear-gradient(to top,rgba(26,29,32,.6),transparent); font-family:var(--fu); font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:rgba(237,230,214,.7); }
@media(max-width:640px) { .renders-grid { grid-template-columns:repeat(2,1fr); } }

/* ── INTERIORES BENTO ── */
.interiores-section { background:var(--white); padding:88px 0; }
.interiores-inner { max-width:1280px; margin:0 auto; padding:0 48px; }
.interiores-header { max-width:640px; margin-bottom:40px; }
.interiores-header h2 { font-family:var(--fd); font-size:34px; font-weight:400; color:var(--carbon); margin-bottom:16px; line-height:1.25; }
.interiores-bento { display:grid; grid-template-columns:repeat(4,1fr); grid-template-rows:240px 240px 240px; gap:12px; }
.int-item { position:relative; overflow:hidden; cursor:pointer; background:var(--grafito); border:none; padding:0; display:block; }
.int-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.int-item:hover img { transform:scale(1.05); }
.int-item-1 { grid-column:1/3; grid-row:1/3; }
.int-item-2 { grid-column:3/4; grid-row:1/2; }
.int-item-3 { grid-column:4/5; grid-row:1/2; }
.int-item-4 { grid-column:3/4; grid-row:2/3; }
.int-item-5 { grid-column:4/5; grid-row:2/3; }
.int-item-6 { grid-column:1/5; grid-row:3/4; }
.int-item-overlay { position:absolute; inset:0; background:rgba(26,29,32,0); transition:background .2s; display:flex; align-items:center; justify-content:center; }
.int-item:hover .int-item-overlay { background:rgba(26,29,32,.18); }
.int-item-overlay svg { width:28px; height:28px; opacity:0; transition:opacity .2s; fill:var(--white); }
.int-item:hover .int-item-overlay svg { opacity:1; }
@media(max-width:900px) {
  .interiores-bento { grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(4,200px); }
  .int-item-1 { grid-column:1/3; grid-row:1/2; }
  .int-item-2 { grid-column:1/2; grid-row:2/3; }
  .int-item-3 { grid-column:2/3; grid-row:2/3; }
  .int-item-4 { grid-column:1/2; grid-row:3/4; }
  .int-item-5 { grid-column:2/3; grid-row:3/4; }
  .int-item-6 { grid-column:1/3; grid-row:4/5; }
}
@media(max-width:640px) {
  .interiores-inner { padding:0 24px; }
  .interiores-bento { grid-template-columns:1fr; grid-template-rows:none; gap:10px; }
  .int-item-1,.int-item-2,.int-item-3,.int-item-4,.int-item-5,.int-item-6 { grid-column:1/2; grid-row:auto; height:240px; }
}
@media(prefers-reduced-motion:reduce) { .int-item img { transition:none; } }

/* ── LIGHTBOX ── */
.lightbox { position:fixed; inset:0; z-index:400; background:rgba(26,29,32,.94); display:none; align-items:center; justify-content:center; padding:24px; }
.lightbox.active { display:flex; }
.lightbox img { max-width:92vw; max-height:86vh; object-fit:contain; }
.lightbox-close { position:absolute; top:24px; right:28px; width:40px; height:40px; border:none; background:rgba(255,255,255,.08); border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .2s; }
.lightbox-close:hover { background:rgba(255,255,255,.18); }
.lightbox-close svg { width:18px; height:18px; fill:var(--white); }
.lightbox-nav { position:absolute; top:50%; transform:translateY(-50%); width:48px; height:48px; border:none; background:rgba(255,255,255,.08); border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .2s; }
.lightbox-nav:hover { background:rgba(255,255,255,.18); }
.lightbox-nav svg { width:20px; height:20px; fill:var(--white); }
.lightbox-prev { left:20px; }
.lightbox-next { right:20px; }
@media(max-width:640px) { .lightbox-nav { width:40px; height:40px; } .lightbox-close { top:16px; right:16px; } }

/* ── MÓDULOS / MODELOS ── */
.modulos-section { background:var(--hueso); padding:88px 0; }
.modulos-inner { max-width:1280px; margin:0 auto; padding:0 48px; }
.modulos-header { margin-bottom:48px; }
.modulos-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.modulo-card { background:var(--white); display:flex; flex-direction:column; }
.modulo-img { height:220px; overflow:hidden; background:var(--grafito); flex:0 0 auto; }
.modulo-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; flex:0 0 auto; }
.modulo-card:hover .modulo-img img { transform:scale(1.04); }
.modulo-body { padding:28px 24px 24px; display:flex; flex-direction:column; flex:1 0 auto; }
.modulo-badge { font-family:var(--fu); font-size:9px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--cobre); margin-bottom:6px; }
.modulo-name { font-family:var(--fd); font-size:26px; font-weight:400; color:var(--carbon); margin-bottom:4px; }
.modulo-size { font-family:var(--fu); font-size:11px; color:rgba(44,48,53,.5); letter-spacing:.06em; margin-bottom:12px; }
.modulo-desc { font-size:14px; line-height:1.7; color:#5A5A5A; margin-bottom:16px; flex:1 0 auto; }
.modulo-tag { font-family:var(--fu); font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--sage); margin-bottom:20px; }
@media(max-width:900px) { .modulos-grid { grid-template-columns:1fr 1fr; } .modulos-inner { padding:0 24px; } }
@media(max-width:640px) { .modulos-grid { grid-template-columns:1fr; } }

/* ── PERSONALIZACIÓN ── */
.custom-section { background:var(--hueso); padding:88px 0; }
.custom-inner { max-width:1280px; margin:0 auto; padding:0 48px; }
.custom-header { max-width:640px; margin-bottom:48px; }
.custom-header h2 { font-family:var(--fd); font-size:34px; font-weight:400; color:var(--carbon); margin-bottom:16px; line-height:1.25; }
.custom-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-bottom:40px; }
.custom-card { position:relative; overflow:hidden; aspect-ratio:4/3; background:var(--grafito); }
.custom-card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }
.custom-card:hover img { transform:scale(1.04); }
.custom-card-label { position:absolute; bottom:0; left:0; right:0; padding:18px 20px; background:linear-gradient(180deg,transparent,rgba(0,0,0,.55)); font-family:var(--fu); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--white); }
.custom-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.custom-footer p { font-size:15px; line-height:1.7; color:#5A6555; max-width:480px; margin:0; }
@media(max-width:900px) { .custom-grid { grid-template-columns:1fr; gap:16px; } .custom-card { aspect-ratio:16/10; } }
@media(max-width:640px) { .custom-inner { padding:0 24px; } .custom-header h2 { font-size:26px; } .custom-section { padding:60px 0; } }

/* ── PROCESO ── */
.proceso-section { background:var(--carbon); padding:100px 0; }
.proceso-inner { max-width:1280px; margin:0 auto; padding:0 80px; }
.proceso-header { margin-bottom:64px; }
.proceso-header .h2 { color:var(--lino); }
.proceso-header .lead { color:rgba(237,230,214,.65); }
.proceso-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-left:0.5px solid rgba(138,158,120,.15); }
.proceso-step { padding:0 32px 0 28px; border-right:0.5px solid rgba(138,158,120,.15); }
.ps-num { font-family:var(--fu); font-size:10px; font-weight:700; letter-spacing:.14em; color:var(--sage); margin-bottom:20px; }
.ps-title { font-family:var(--fu); font-size:14px; font-weight:600; color:var(--lino); letter-spacing:.04em; margin-bottom:10px; }
.ps-desc { font-size:13px; line-height:1.75; color:rgba(237,230,214,.55); margin-bottom:16px; }
.ps-tiempo { font-family:var(--fu); font-size:10px; letter-spacing:.1em; color:var(--cobre); }
@media(max-width:900px) { .proceso-steps { grid-template-columns:1fr 1fr; } .proceso-inner { padding:0 24px; } }
@media(max-width:640px) { .proceso-steps { grid-template-columns:1fr; } .proceso-step { border-right:none; border-bottom:0.5px solid rgba(138,158,120,.15); padding:24px 0; } }

/* ── GESTIÓN A DISTANCIA ── */
.remoto-section { background:var(--forest); padding:72px 0; }
.remoto-inner { max-width:1280px; margin:0 auto; padding:0 48px; display:flex; align-items:center; gap:48px; }

/* Contenedor visual (ícono SVG o imagen subida) */
.remoto-visual { flex-shrink:0; }
.remoto-icon { width:72px; height:72px; border-radius:50%; background:rgba(237,230,214,.1); display:flex; align-items:center; justify-content:center; }
.remoto-icon svg { width:32px; height:32px; fill:var(--lino); }

/* Imagen personalizada (reemplaza el ícono) */
.remoto-imagen {
  width: 120px;
  height: 120px;
  object-fit: cover;
  border-radius: 50%;       /* Circular, como el ícono original */
  display: block;
  flex-shrink: 0;
}

.remoto-text { flex:1; }
.remoto-text .tag { color:var(--sage); }
.remoto-text h3 { font-family:var(--fd); font-size:26px; font-weight:400; color:var(--lino); margin-bottom:10px; line-height:1.3; }
.remoto-text p { font-size:15px; line-height:1.75; color:rgba(237,230,214,.75); max-width:680px; margin:0 0 24px; }

/* Botón de la sección remoto */
.remoto-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--fu);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 14px 28px;
  background: rgba(237,230,214,.12);
  color: var(--lino);
  border: 1px solid rgba(237,230,214,.25);
  text-decoration: none;
  transition: background .2s, border-color .2s;
}
.remoto-btn:hover { background:rgba(237,230,214,.2); border-color:rgba(237,230,214,.5); }

@media(max-width:768px) {
  .remoto-inner { flex-direction:column; align-items:flex-start; gap:24px; padding:0 24px; }
  .remoto-section { padding:48px 0; }
  .remoto-text h3 { font-size:22px; }
  .remoto-imagen { width:80px; height:80px; }
}

/* ── PARTNERS SLIDER ── */
.partners-section {
  background: var(--hueso);
  padding: 72px 0;
  /* overflow:hidden en el section solo corta el scroll horizontal,
     nunca llega a tocar los logos porque el track-wrap tiene su propia lógica */
  overflow: hidden;
}
.partners-inner { max-width:1280px; margin:0 auto; padding:0 48px; }
.partners-header { margin-bottom:40px; }

/*
  SOLUCIÓN DEFINITIVA PARA LOGOS CIRCULARES/CUADRADOS:
  
  El truco de la mask-image horizontal genera un gradiente que va de
  transparente → opaco → opaco → transparente en el eje X.
  El problema: CSS masks aplican en AMBOS ejes simultáneamente.
  Si el logo es más alto que el track, la máscara lo transparenta verticalmente.
  
  Solución: la mask va en un wrapper que solo tiene el ancho del viewport
  y NO tiene clip vertical. El logo vive adentro con overflow visible en Y.
*/
.partners-track-wrap {
  position: relative;
  width: 100%;
  /* SIN overflow:hidden aquí — ese era el verdadero culpable del corte vertical */
  overflow: visible;
  /* Padding vertical generoso: da espacio al logo circular antes de la máscara */
  padding: 16px 0;
  /* Máscara SOLO en el eje X usando una técnica de máscara con padding */
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0px,
    black 80px,
    black calc(100% - 80px),
    transparent 100%
  );
  mask-image: linear-gradient(
    to right,
    transparent 0px,
    black 80px,
    black calc(100% - 80px),
    transparent 100%
  );
  /* mask-size 100% en X, pero MAYOR que 100% en Y para que nunca corte verticalmente */
  -webkit-mask-size: 100% 200%;
  mask-size: 100% 200%;
  /* Centrar la máscara en Y: el área opaca cubre todo el logo */
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.partners-track {
  display: flex;
  align-items: center;
  gap: 72px;
  width: max-content;
  animation: partnersScroll 32s linear infinite;
  /* Altura mínima suficiente para logos circulares grandes */
  min-height: 96px;
}
.partners-track:hover { animation-play-state: paused; }

/* .partner-logo — ver bloque completo en sección PARTNER LOGOS abajo */

@keyframes partnersScroll { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
@media(max-width:640px) { .partners-track { gap:48px; animation-duration:22s; min-height:72px; } }
@media(prefers-reduced-motion:reduce) { .partners-track { animation:none; } }

/* ── ZONAS ── */
.zonas-section { background:var(--white); padding:88px 0; }
.zonas-inner { max-width:1280px; margin:0 auto; padding:0 48px; }
.zonas-header { margin-bottom:48px; }
.zonas-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-left:0.5px solid rgba(58,74,53,.12); }
.zona-card { display:block; border-right:0.5px solid rgba(58,74,53,.12); }
.zona-img { position:relative; height:160px; overflow:hidden; background:var(--hueso); }
.zona-img img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.zona-card:hover .zona-img img { transform:scale(1.05); }
.zona-img-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg, var(--hueso), var(--lino)); }
.zona-img-placeholder span { font-family:var(--fd); font-size:16px; color:var(--sage); opacity:.6; }
.zona-img-badge { position:absolute; bottom:0; left:0; right:0; padding:8px 12px; background:rgba(26,29,32,.75); color:var(--white); font-family:var(--fu); font-size:9px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; opacity:0; transition:opacity .25s; text-align:center; }
.zona-card:hover .zona-img-badge { opacity:1; }
.zona-body { padding:28px 28px 28px 24px; }
.zonas-modopunta-link { color:var(--cobre); text-decoration:underline; text-underline-offset:2px; }
.zona-name { font-family:var(--fd); font-size:22px; color:var(--carbon); margin-bottom:10px; }
.zona-desc { font-size:13px; line-height:1.7; color:#666; margin-bottom:14px; }
.zona-tags { display:flex; flex-wrap:wrap; gap:6px; }
.zona-tags span { font-family:var(--fu); font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--sage); border:0.5px solid rgba(138,158,120,.3); padding:4px 10px; }
.zona-card-cta { background:var(--forest); }
.zona-cta-text { font-family:var(--fd); font-size:20px; color:var(--lino); margin-bottom:10px; }
.zona-card-cta p { font-size:13px; color:rgba(237,230,214,.65); margin-bottom:20px; }
@media(max-width:900px) { .zonas-grid { grid-template-columns:1fr 1fr; } .zonas-inner { padding:0 24px; } }
@media(max-width:640px) { .zonas-grid { grid-template-columns:1fr; } .zona-card { border-right:none; border-bottom:0.5px solid rgba(58,74,53,.12); } }

/* ── CONTACTO ── */
.contacto-section { display:grid; grid-template-columns:1fr 1fr; min-height:600px; }
.contacto-left { background:var(--carbon); padding:80px 64px; position:relative; overflow:hidden; }
.contacto-grid-bg { position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px); background-size:48px 48px; }
.contacto-logo { margin-bottom:48px; position:relative; z-index:1; }
.contacto-headline { position:relative; z-index:1; margin-bottom:48px; }
.contacto-headline h2 { font-family:var(--fd); font-size:32px; font-weight:400; color:var(--lino); line-height:1.25; margin-bottom:16px; }
.contacto-headline h2 em { color:var(--sage); font-style:italic; }
.contacto-headline h1 { font-family:var(--fd); font-size:32px; font-weight:400; color:var(--lino); line-height:1.25; margin-bottom:16px; }
.contacto-headline h1 em { color:var(--sage); font-style:italic; }
.contacto-headline p { font-size:14px; line-height:1.75; color:rgba(237,230,214,.6); max-width:360px; }
.contacto-items { position:relative; z-index:1; display:flex; flex-direction:column; gap:20px; }
.contacto-item-type { font-family:var(--fu); font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:rgba(138,158,120,.6); margin-bottom:4px; }
.contacto-item-val { font-family:var(--fd); font-size:18px; color:var(--lino); }
.contacto-right { background:var(--grafito); padding:80px 64px; display:flex; flex-direction:column; justify-content:center; }
.fnote { font-family:var(--fu); font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:rgba(237,230,214,.25); margin-top:20px; line-height:1.7; }
/* CONTACT FORM (native, sin dependencia de plugins) */
.mh-contact-form { display:flex; flex-direction:column; width:100%; position:relative; }
.mhcf-row { display:grid; grid-template-columns:120px 1fr; align-items:end; gap:16px; padding:18px 0; border-bottom:1px solid rgba(237,230,214,.14); }
.mhcf-row-textarea { align-items:start; }
.mhcf-label { font-family:var(--fu); font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:rgba(138,158,120,.7); padding-top:4px; }
.mhcf-input { background:transparent; border:none; outline:none; font-family:var(--fd); font-size:19px; color:var(--lino); padding:4px 0; width:100%; }
.mhcf-input::placeholder { color:rgba(237,230,214,.32); }
.mhcf-textarea { resize:none; min-height:64px; line-height:1.5; font-family:var(--fb); font-size:15px; }
.mhcf-hp { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.mhcf-bottom { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:24px; flex-wrap:wrap; }
.mhcf-bottom .fnote { margin-top:0; }
.mhcf-submit { background:var(--cobre); color:var(--white); border:none; font-family:var(--fu); font-size:11px; letter-spacing:.12em; text-transform:uppercase; padding:16px 32px; cursor:pointer; transition:opacity .2s; white-space:nowrap; }
.mhcf-submit:hover { opacity:.85; }
.mhcf-submit:disabled { opacity:.5; cursor:default; }
.mhcf-status { font-family:var(--fu); font-size:12px; margin-top:16px; min-height:16px; }
.mhcf-status.is-success { color:var(--sage); }
.mhcf-status.is-error { color:#c96a4a; }

@media(max-width:900px) {
  .contacto-section { grid-template-columns:1fr; }
  .contacto-left, .contacto-right { padding:48px 32px; }
  .mhcf-row { grid-template-columns:1fr; gap:4px; }
  .mhcf-bottom { flex-direction:column; align-items:flex-start; }
  .mhcf-submit { width:100%; text-align:center; }
}

/* ── EQUIPO ── */
.equipo-section { background:var(--carbon); padding:100px 0; }
.equipo-inner { max-width:1280px; margin:0 auto; padding:0 80px; }
.equipo-header { margin-bottom:64px; max-width:600px; }
.equipo-grid { display:grid; grid-template-columns:1fr 1fr; gap:2px; }
.equipo-card { background:rgba(58,74,53,.15); padding:40px; border:0.5px solid rgba(138,158,120,.1); }

/* Foto de perfil del miembro (opcional — solo si hay imagen destacada) */
.equipo-foto { margin-bottom:20px; }
.equipo-foto-img {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  border: 2px solid rgba(138,158,120,.25);
}

.equipo-role { font-family:var(--fu); font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--sage); margin-bottom:10px; }
.equipo-name { font-family:var(--fd); font-size:28px; color:var(--lino); margin-bottom:16px; }
.equipo-bio { font-size:14px; line-height:1.75; color:rgba(237,230,214,.55); margin-bottom:24px; }
.equipo-links { display:flex; flex-direction:column; gap:6px; padding-top:12px; border-top:0.5px solid rgba(138,158,120,.12); }
.equipo-link { font-family:var(--fu); font-size:10px; color:rgba(212,197,169,.4); letter-spacing:.05em; text-decoration:none; }
.equipo-link span { color:var(--sage); }
.equipo-link-linkedin { display:inline-flex; align-items:center; gap:8px; font-family:var(--fu); font-size:11px; font-weight:600; color:var(--lino); letter-spacing:.05em; text-decoration:none; transition:color .2s; }
.equipo-link-linkedin:hover { color:var(--sage); }
.equipo-link-linkedin svg { width:14px; height:14px; flex-shrink:0; fill:var(--sage); transition:fill .2s; }
.equipo-link-linkedin:hover svg { fill:var(--lino); }
@media(max-width:768px) { .equipo-grid { grid-template-columns:1fr; } .equipo-inner { padding:0 24px; } }

/* ── PARTNERS PAGE ── */
.page-partners-section,.page-modelos-section { padding:120px 0 80px; }
.page-partners-inner,.page-modelos-inner { max-width:1280px; margin:0 auto; padding:0 48px; }
.page-header { max-width:640px; margin-bottom:64px; }
.page-header h1 { font-family:var(--fd); font-size:38px; font-weight:400; color:var(--carbon); line-height:1.15; margin-bottom:16px; }
.partners-page-list { display:flex; flex-direction:column; }
.partner-page-row { display:flex; align-items:flex-start; gap:32px; padding:32px 0; border-bottom:0.5px solid rgba(26,29,32,.1); }
.partner-page-row:first-child { padding-top:0; }
.partner-page-logo { flex:0 0 140px; width:140px; height:140px; background:var(--hueso); display:flex; align-items:center; justify-content:center; padding:20px; }
.partner-page-logo img { max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; }
.partner-page-info { flex:1; padding-top:4px; }
.partner-page-nombre { font-family:var(--fd); font-size:24px; font-weight:400; color:var(--carbon); margin-bottom:6px; }
.partner-page-bajada { font-family:var(--fu); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--sage); margin-bottom:10px; }
.partner-page-beneficio { font-size:15px; line-height:1.7; color:#4A5545; max-width:640px; margin-bottom:12px; }
.partner-page-link { font-family:var(--fu); font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--cobre); }
@media(max-width:900px) { .page-partners-inner,.page-modelos-inner { padding:0 24px; } }
@media(max-width:640px) { .partner-page-row { flex-direction:column; gap:16px; padding:24px 0; } .partner-page-logo { width:100px; height:100px; } }
/* ── SINGLE MODELO ── */
.single-modelo-hero { position:relative; height:70vh; min-height:480px; overflow:hidden; }
.single-modelo-hero-content { position:absolute; bottom:0; left:0; right:0; padding:40px 80px; background:linear-gradient(to top,rgba(26,29,32,.8) 0,transparent 100%); }
.single-modelo-hero-content h1 { font-family:var(--fd); font-size:clamp(32px,5vw,56px); color:var(--white); font-weight:400; margin-bottom:8px; }
.single-galeria-section { background:var(--white); padding:64px 0; }
.single-galeria-inner { max-width:1280px; margin:0 auto; padding:0 48px; }
.single-galeria-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:24px; }
.single-galeria-item { position:relative; overflow:hidden; aspect-ratio:4/3; flex:0 0 auto; border:none; padding:0; background:var(--grafito); cursor:pointer; }
.single-galeria-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.single-galeria-item:hover img { transform:scale(1.05); }
.single-specs-section { background:var(--hueso); padding:64px 0; }
.single-specs-inner { max-width:1280px; margin:0 auto; padding:0 48px; }
.single-specs-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:32px; margin-top:24px; margin-bottom:40px; }
.spec-item { display:flex; flex-direction:column; gap:6px; }
.spec-label { font-family:var(--fu); font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--sage); }
.spec-val { font-family:var(--fd); font-size:18px; color:var(--carbon); }
.single-descripcion { font-size:15px; line-height:1.8; color:#5A5A5A; max-width:720px; }
.single-interiores { background:var(--white); }
.single-cta-section { background:var(--carbon); padding:72px 0; text-align:center; }
.single-cta-inner { max-width:640px; margin:0 auto; padding:0 24px; }
.single-cta-inner h2 { font-family:var(--fd); font-size:32px; color:var(--lino); font-weight:400; margin-bottom:16px; }
.single-cta-inner p { font-size:15px; color:rgba(237,230,214,.65); margin-bottom:28px; line-height:1.7; }
@media(max-width:900px) {
  .single-galeria-grid { grid-template-columns:repeat(2,1fr); }
  .single-specs-grid { grid-template-columns:1fr 1fr; }
  .single-modelo-hero-content { padding:40px 24px; }
  .single-galeria-inner,.single-specs-inner { padding:0 24px; }
}

/* ── FOOTER ── */
footer { background:var(--carbon); padding:64px 0 32px; border-top:0.5px solid rgba(255,255,255,.05); }
.footer-inner { max-width:1280px; margin:0 auto; padding:0 48px; }
.footer-top { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:48px; margin-bottom:48px; }
.footer-tagline { font-family:var(--fd); font-size:15px; color:rgba(237,230,214,.4); font-style:italic; line-height:1.5; margin:16px 0 10px; }
.footer-loc { font-family:var(--fu); font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:rgba(237,230,214,.2); }
.footer-col-title { font-family:var(--fu); font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--sage); margin-bottom:16px; }
.footer-top ul { list-style:none; display:flex; flex-direction:column; gap:10px; }
.footer-top ul a { font-size:13px; color:rgba(237,230,214,.4); transition:color .2s; }
.footer-top ul a:hover { color:var(--lino); }
.footer-bottom { border-top:0.5px solid rgba(255,255,255,.05); padding-top:24px; font-family:var(--fu); font-size:9px; letter-spacing:.1em; color:rgba(237,230,214,.2); }
@media(max-width:900px) { .footer-top { grid-template-columns:1fr 1fr; gap:32px; } .footer-inner { padding:0 24px; } }
@media(max-width:640px) { .footer-top { grid-template-columns:1fr; gap:28px; } }

/* ── WHATSAPP FLOTANTE ── */
.wa-float { position:fixed; bottom:28px; right:28px; z-index:250; width:56px; height:56px; background:#25D366; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 20px rgba(0,0,0,.25); transition:transform .2s; }
.wa-float:hover { transform:scale(1.08); }
.wa-float svg { width:30px; height:30px; fill:var(--white); }
@media(max-width:640px) { .wa-float { width:50px; height:50px; bottom:16px; right:16px; } .wa-float svg { width:25px; height:25px; } }

/* ── CONTACT FORM 7 — custom styles ── */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 select,
.wpcf7 textarea {
  width:100%; background:rgba(255,255,255,.05); border:0.5px solid rgba(237,230,214,.15);
  color:var(--lino); padding:14px 16px; font-family:var(--fb); font-size:14px;
  border-radius:0; outline:none; transition:border-color .2s; display:block;
}
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { border-color:rgba(237,230,214,.4); }
.wpcf7 select option { background:var(--grafito); }
.wpcf7 textarea { resize:vertical; min-height:100px; }
.wpcf7 input[type="submit"] {
  font-family:var(--fu); font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  padding:15px; background:var(--cobre); color:var(--white); border:none; cursor:pointer;
  width:100%; transition:opacity .2s;
}
.wpcf7 input[type="submit"]:hover { opacity:.85; }
.wpcf7-not-valid-tip { font-family:var(--fu); font-size:10px; color:#e05; margin-top:4px; display:block; }
.wpcf7-response-output { font-family:var(--fu); font-size:11px; letter-spacing:.06em; margin-top:16px; padding:12px 16px; }
.wpcf7-mail-sent-ok { border-color:var(--sage); color:var(--sage); }
.wpcf7-validation-errors { border-color:#e05; color:#e05; }

/* =========================================================
   PARTNER LOGOS — logos horizontales, cuadrados y circulares
   ========================================================= */
.partner-logo {
  /* Contenedor sin altura fija: se adapta al logo */
  height: auto;
  min-width: 100px;
  max-width: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  /* Padding simétrico en ambos ejes: da aire a logos circulares */
  padding: 12px 16px;
  filter: grayscale(1) opacity(0.55);
  transition: filter 0.3s;
}
.partner-logo:hover { filter: grayscale(0) opacity(1); }

.partner-logo img {
  /* La imagen define su tamaño real, acotada por los max */
  width: auto;
  height: auto;
  /* 72px: suficiente para logos circulares como Alutechos sin ser excesivo */
  max-height: 100px;
  max-width: 190px;
  object-fit: contain;
  display: block;
  /* flex:0 0 auto es crítico: evita que flexbox deforme la imagen */
  flex: 0 0 auto;
  align-self: center;
}

/* Página /partners/ — grid con logos grandes */
.partner-page-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 110px;
  background: var(--hueso);
  padding: 20px 28px;
}
.partner-page-logo img {
  max-height: 72px;
  max-width: 200px;
  width: auto;
  height: auto;
  object-fit: contain;
  flex: 0 0 auto;
}

/* =========================================================
   TAREA 6 — Logo del sitio: tamaño exacto, responsive
   ========================================================= */

/* Contenedor del logo en el nav */
.nav-logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

/* Logo subido via Apariencia → Personalizar → Identidad del sitio */
.custom-logo-link,
.nav-logo a {
  display: flex;
  align-items: center;
  line-height: 1;
  flex-shrink: 0;
}

.custom-logo,
.nav-logo img,
.nav-logo svg {
  height: 36px !important;  /* !important necesario: WP inline styles pisaban este valor */
  width: auto !important;
  max-width: 200px;
  max-height: 36px;
  object-fit: contain;
  display: block;
  flex: 0 0 auto;
}
/* Contenedor del link generado por WP: no debe crecer */
.custom-logo-link {
  max-height: 36px;
  overflow: hidden;
}

/* Footer logo: un poco más pequeño */
.footer-logo .custom-logo,
.footer-logo img {
  height: 28px;
  width: auto;
  max-width: 160px;
  object-fit: contain;
  flex: 0 0 auto;
}

/* Mobile: logo levemente más pequeño */
@media (max-width: 640px) {
  .custom-logo,
  .nav-logo img {
    height: 30px;
    max-width: 160px;
  }
}


/* ── PRECIO DEL MODELO ── */
.modulo-precio {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 16px;
  padding: 14px 0;
  border-top: 0.5px solid rgba(58,74,53,.1);
  border-bottom: 0.5px solid rgba(58,74,53,.1);
}
.modulo-precio-valor {
  font-family: var(--fd);
  font-size: 22px;
  font-weight: 400;
  color: var(--carbon);
  line-height: 1;
}
.modulo-precio-nota {
  font-family: var(--fu);
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(44,48,53,.4);
}
/* En la página individual del modelo */
.single-precio {
  display: inline-flex;
  align-items: baseline;
  gap: 12px;
  background: var(--hueso);
  padding: 20px 28px;
  margin-top: 24px;
}
.single-precio-valor {
  font-family: var(--fd);
  font-size: 28px;
  color: var(--carbon);
}
.single-precio-nota {
  font-family: var(--fu);
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(44,48,53,.45);
}

/* ── ADMIN NOTICES (visible solo para admins logueados) ── */
.mh-admin-notice {
  background: rgba(255,255,255,.05);
  border: 1px dashed rgba(237,230,214,.2);
  padding: 32px;
  text-align: center;
  color: rgba(237,230,214,.5);
  font-size: 14px;
  line-height: 1.7;
}
.mh-admin-notice strong { color: var(--lino); }
.mh-admin-notice code {
  background: rgba(255,255,255,.08);
  padding: 2px 8px;
  font-size: 12px;
  border-radius: 2px;
}
.mh-admin-notice .btn-cta { margin-top: 16px; display: inline-block; }

/* ── SINGLE MODELO: galería grid responsive ── */
@media (max-width: 640px) {
  .single-galeria-grid { grid-template-columns: repeat(2,1fr); }
  .single-specs-grid   { grid-template-columns: 1fr 1fr; }
}

/* ── LIGHTBOX ── */
.mh-lightbox-trigger { cursor:zoom-in; }
.mh-lightbox { position:fixed; inset:0; z-index:1000; background:rgba(15,17,19,.94); display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:opacity .25s ease; padding:40px; }
.mh-lightbox.active { opacity:1; visibility:visible; }
.mh-lightbox-img { max-width:100%; max-height:100%; object-fit:contain; box-shadow:0 20px 60px rgba(0,0,0,.5); }
.mh-lightbox-close { position:absolute; top:24px; right:32px; background:none; border:none; color:var(--white); font-size:36px; line-height:1; cursor:pointer; font-family:var(--fb); }
body.mh-lightbox-open { overflow:hidden; }

/* ── PREVENTA MH 32 (modal) ── */
.mh-preventa-modal { position:fixed; inset:0; z-index:900; display:flex; align-items:center; justify-content:center; padding:24px; opacity:0; visibility:hidden; transition:opacity .35s ease; }
.mh-preventa-modal.active { opacity:1; visibility:visible; }
.mh-preventa-overlay { position:absolute; inset:0; background:rgba(15,17,19,.72); }
.mh-preventa-box { position:relative; width:100%; max-width:440px; background:var(--grafito); border:1px solid rgba(138,158,120,.18); padding:44px 40px; transform:translateY(16px); transition:transform .35s ease; }
.mh-preventa-modal.active .mh-preventa-box { transform:translateY(0); }
.mh-preventa-close { position:absolute; top:16px; right:16px; background:none; border:none; color:rgba(237,230,214,.5); font-size:28px; line-height:1; cursor:pointer; padding:4px 8px; }
.mh-preventa-close:hover { color:var(--lino); }
.mh-preventa-eyebrow { font-family:var(--fu); font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--cobre); margin-bottom:12px; }
.mh-preventa-title { font-family:var(--fd); font-size:28px; font-weight:400; color:var(--lino); line-height:1.2; margin-bottom:14px; }
.mh-preventa-copy { font-family:var(--fb); font-size:14px; line-height:1.65; color:rgba(237,230,214,.65); margin-bottom:24px; }
.mh-preventa-form { display:flex; flex-direction:column; gap:10px; }
.mh-preventa-input { background:transparent; border:1px solid rgba(237,230,214,.25); color:var(--lino); font-family:var(--fb); font-size:14px; padding:12px 14px; width:100%; }
.mh-preventa-input::placeholder { color:rgba(237,230,214,.4); }
.mh-preventa-input:focus { outline:none; border-color:var(--cobre); }
.mh-preventa-submit { background:var(--cobre); color:var(--white); border:none; font-family:var(--fu); font-size:11px; letter-spacing:.12em; text-transform:uppercase; padding:14px 20px; margin-top:6px; cursor:pointer; transition:opacity .2s; }
.mh-preventa-submit:hover { opacity:.85; }
.mh-preventa-submit:disabled { opacity:.5; cursor:default; }
.mh-preventa-status { font-family:var(--fu); font-size:11px; margin-top:14px; min-height:14px; }
.mh-preventa-status.is-success { color:var(--sage); }
.mh-preventa-status.is-error { color:#c96a4a; }
body.mh-preventa-open { overflow:hidden; }
@media(max-width:520px) {
  .mh-preventa-box { padding:36px 24px; }
  .mh-preventa-title { font-size:24px; }
}
