/* ============================================================
   ESTILOS GENERALES — MM Diseño  (v3)
   Paleta: cafés y arenas. Cambia aquí los colores y se actualiza todo.
============================================================ */
:root{
  --cafe-noche:#2b1d14;    /* café más oscuro (footer, fondos oscuros) */
  --cafe-oscuro:#4a3426;   /* café oscuro (títulos, menú) */
  --tierra:#8a5a3b;        /* color principal: botones, enlaces */
  --camello:#b98a5e;       /* acentos */
  --arena:#e0c3a0;         /* arena clara (detalles sobre fondos oscuros) */
  --crema:#f3e9dc;         /* crema (fondos suaves) */
  --fondo:#faf5ee;
  --texto:#3a2d24;
  --wa:#25d366;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--cafe-noche);overscroll-behavior:none}
body{margin:0;font-family:'Segoe UI',Roboto,Helvetica,Arial,sans-serif;color:var(--texto);background:#fff;line-height:1.6;overflow-x:hidden;overscroll-behavior:none}
h1,h2,h3{color:var(--cafe-oscuro);line-height:1.15;margin:0 0 .5em}
a{color:var(--tierra)}
img{max-width:100%}
.container{max-width:1200px;margin:0 auto;padding:64px 20px}
.section-title{text-align:center;font-size:clamp(1.8rem,4vw,2.6rem);margin:0 0 36px}
.btn{display:inline-block;background:var(--tierra);color:#fff;text-decoration:none;font-weight:600;padding:13px 28px;border-radius:999px;border:0;cursor:pointer;font-size:1rem;transition:background .25s,transform .25s,box-shadow .25s}
.btn:hover{background:var(--cafe-oscuro);transform:translateY(-3px);box-shadow:0 10px 22px rgba(74,52,38,.3)}
.btn-light{background:#fff;color:var(--cafe-oscuro)}
.btn-light:hover{background:var(--crema)}
.btn-ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.7)}
.btn-ghost:hover{background:rgba(255,255,255,.15)}

/* ---- Imágenes con respaldo (foto propia > foto de referencia > ilustración) ---- */
.img-slot{position:relative;margin:0;border-radius:18px;overflow:hidden;min-height:260px;background:linear-gradient(135deg,var(--crema),#e9d5bb);display:flex;align-items:center;justify-content:center}
.img-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:scale .9s cubic-bezier(.2,.7,.2,1)}
.img-slot:hover img{scale:1.07}
.img-slot img + figcaption{display:none}
.img-slot img.sin-foto{display:none}
.img-slot img.sin-foto + figcaption{display:block}
img.sin-foto{display:none}
.img-slot figcaption{padding:20px;text-align:center;color:var(--tierra);font-weight:600}
.img-slot.par img{inset:-12% 0;height:124%;will-change:translate}

/* ============ HERO (inicio y subpáginas): foto que se funde en el blanco ============ */
.hero-home{position:relative;min-height:100vh;margin-top:-68px;padding:130px 20px 190px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden}
.hero-home.sub{min-height:66vh;padding-bottom:150px}
.hero-img{position:absolute;inset:0;z-index:0;background:linear-gradient(135deg,var(--cafe-oscuro),var(--tierra));
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 52%,transparent 100%);
          mask-image:linear-gradient(to bottom,#000 0%,#000 52%,transparent 100%)}
.hero-img img{position:absolute;left:0;top:-8%;width:100%;height:116%;object-fit:cover;animation:kenburns 26s ease-in-out infinite alternate;will-change:translate}
.hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(43,29,20,.82) 0%,rgba(74,52,38,.6) 45%,rgba(74,52,38,.3) 100%)}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.1)}}
.hero-in{position:relative;z-index:2;max-width:980px}
.eyebrow{display:inline-block;font-size:.85rem;letter-spacing:.28em;text-transform:uppercase;color:var(--arena);margin:0 0 20px;padding:8px 18px;border:1px solid rgba(224,195,160,.5);border-radius:999px;backdrop-filter:blur(4px)}
.hero-home h1{color:#fff;font-size:clamp(2.5rem,7vw,5.4rem);font-weight:800;letter-spacing:-.02em;margin:0 0 22px;text-shadow:0 4px 30px rgba(0,0,0,.35)}
.hero-home.sub h1{font-size:clamp(2.2rem,5.5vw,4rem)}
.hero-home p.lead{max-width:680px;margin:0 auto 34px;font-size:clamp(1.05rem,2vw,1.35rem);color:#f3e6d6}
.hero-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.scroll-cue{position:absolute;z-index:3;left:50%;bottom:34px;translate:-50% 0;width:28px;height:46px;border:2px solid var(--tierra);border-radius:16px;opacity:.7}
.scroll-cue::after{content:"";position:absolute;left:50%;top:8px;width:4px;height:9px;margin-left:-2px;border-radius:2px;background:var(--tierra);animation:cue 1.8s infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(16px)}}

/* ============ SERVICIOS (cajas con foto) ============ */
.servicios{position:relative;z-index:4;margin-top:-130px;padding-top:0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:26px}
.card{display:flex;flex-direction:column;background:#fff;border-radius:20px;overflow:hidden;border:1px solid #eadccb;box-shadow:0 14px 40px rgba(43,29,20,.14);transition:transform .3s,box-shadow .3s,border-color .3s}
.card:hover{transform:translateY(-10px);box-shadow:0 26px 54px rgba(43,29,20,.26);border-color:var(--camello)}
.card-photo{position:relative;height:220px;overflow:hidden;background:linear-gradient(135deg,var(--crema),#e9d5bb)}
.card-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:scale .9s cubic-bezier(.2,.7,.2,1)}
.card:hover .card-photo img{scale:1.1}
.card-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 50%,rgba(43,29,20,.55))}
.card-body{display:flex;flex-direction:column;flex:1;padding:24px 26px 28px}
.card h2{font-size:1.45rem}
.card p{margin:0 0 8px;color:#6b5645}
.card ul{margin:0 0 8px;padding-left:20px;color:#6b5645}
.card .dots{color:var(--camello);font-size:1.4rem;letter-spacing:2px;margin:0 0 16px}
.card .btn{margin-top:auto;align-self:flex-start}
.card b{color:var(--cafe-oscuro)}

/* Banda de imagen con parallax */
.banda{height:min(62vh,520px);border-radius:0;min-height:320px}

/* ============ ¿Por qué MM Diseño? ============ */
.porque{position:relative;overflow:hidden;background:var(--cafe-noche);color:#fff;min-height:520px;display:flex;align-items:center;justify-content:center;padding:90px 20px}
.porque .bg{position:absolute;left:0;top:-15%;width:100%;height:130%;object-fit:cover;opacity:.5;transition:opacity .7s;will-change:translate}
.porque::before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(circle at 50% 50%,rgba(43,29,20,.1),rgba(43,29,20,.75))}
.porque.activo .bg{opacity:.1}
.porque-inner{position:relative;z-index:2;width:100%;max-width:820px;text-align:center}
.porque h2{color:#fff;font-size:clamp(2rem,5vw,3.3rem);display:inline-block;cursor:pointer;padding:10px 26px;border-bottom:3px solid var(--arena);margin-bottom:26px;transition:letter-spacing .4s}
.porque h2:hover{letter-spacing:.04em}
.globo{background:#fff;color:var(--texto);text-align:left;border-radius:30px;padding:30px 38px;box-shadow:0 22px 50px rgba(0,0,0,.45);opacity:0;visibility:hidden;transform:translateY(16px) scale(.97);transition:opacity .5s,transform .5s,visibility .5s}
.porque.activo .globo{opacity:1;visibility:visible;transform:none}
.globo ul{list-style:none;margin:0;padding:0}
.globo li{padding:8px 0 8px 36px;position:relative;font-size:1.1rem;opacity:0;translate:-26px 0;transition:opacity .5s,translate .5s}
.globo li::before{content:"✓";position:absolute;left:0;color:var(--tierra);font-weight:800;font-size:1.25rem}
.globo b{color:var(--cafe-oscuro)}
.porque.activo .globo li{opacity:1;translate:0 0}
.porque.activo .globo li:nth-child(1){transition-delay:.15s}
.porque.activo .globo li:nth-child(2){transition-delay:.3s}
.porque.activo .globo li:nth-child(3){transition-delay:.45s}
.porque.activo .globo li:nth-child(4){transition-delay:.6s}
.porque.activo .globo li:nth-child(5){transition-delay:.75s}
.porque-hint{margin:0;color:var(--arena);font-size:1rem;letter-spacing:.05em}
.porque.activo .porque-hint{display:none}

/* ============ Proyectos destacados ============ */
.destacados-wrap{background:var(--fondo);padding-top:90px;overflow:hidden}
.destacados{display:block;text-align:center;text-decoration:none;padding:0 20px 50px;color:var(--cafe-oscuro)}
.destacados h2{font-size:clamp(2.4rem,7vw,5rem);margin:0;font-weight:800;letter-spacing:-.02em;transition:transform .3s}
.destacados:hover h2{transform:scale(1.04)}
.destacados .frase{max-height:0;opacity:0;overflow:hidden;max-width:700px;margin:0 auto;color:var(--tierra);font-size:1.2rem;transition:max-height .5s,opacity .5s,margin .5s}
.destacados:hover .frase,.destacados:focus .frase{max-height:140px;opacity:1;margin-top:14px}
@media (hover:none){.destacados .frase{max-height:140px;opacity:1;margin-top:14px}}
.destacados-in{display:block;will-change:scale,opacity}
.marquee{padding:10px 0 80px}
.track{display:flex;gap:22px;width:max-content;padding-left:6vw;will-change:translate}
.track figure{position:relative;width:min(340px,72vw);height:440px;margin:0;border-radius:20px;overflow:hidden;box-shadow:0 14px 34px rgba(43,29,20,.2)}
.track figure:nth-child(even){margin-top:46px}
.track img{width:100%;height:100%;object-fit:cover;transition:scale .8s}
.track figure:hover img{scale:1.08}

/* ============ Experiencia – Respaldo – Garantía ============ */
.erg h2{text-align:center}
.erg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}
.erg-grid .img-slot{min-height:340px}
.erg-grid .img-slot::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 35%,rgba(43,29,20,.88));z-index:1}
.erg-grid .cap{position:absolute;left:0;right:0;bottom:0;color:#fff;padding:24px 20px;font-weight:800;font-size:1.3rem;text-align:left;z-index:2;letter-spacing:.02em}

/* Carrusel de comentarios */
.carrusel{margin-top:56px;text-align:center}
.carrusel h3{font-size:1.6rem}
.slides{position:relative;max-width:760px;margin:0 auto;min-height:180px}
.slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .6s,visibility .6s;background:#fff;border:1px solid #eadccb;border-radius:18px;padding:28px 34px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 8px 24px rgba(74,52,38,.1)}
.slide.on{opacity:1;visibility:visible}
.slide blockquote{margin:0 0 12px;font-size:1.15rem;font-style:italic;color:#4d3b2f}
.slide cite{color:var(--tierra);font-weight:700;font-style:normal}
.car-ctrl{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:20px}
.car-ctrl button{width:42px;height:42px;border-radius:50%;border:2px solid var(--tierra);background:#fff;color:var(--tierra);font-size:1.2rem;cursor:pointer;transition:background .2s,color .2s}
.car-ctrl button:hover{background:var(--tierra);color:#fff}
.dots-nav{display:flex;gap:8px}
.dots-nav i{width:10px;height:10px;border-radius:50%;background:var(--arena);cursor:pointer}
.dots-nav i.on{background:var(--tierra)}

/* ============ Nuestro sistema (sección oscura) ============ */
.sistema{background:linear-gradient(135deg,var(--cafe-noche) 0%,var(--cafe-oscuro) 55%,var(--tierra) 100%);color:#fff}
.proceso{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:0 0 50px;padding:0;list-style:none}
.proceso li{background:rgba(255,255,255,.1);border:1px solid rgba(224,195,160,.4);color:#fff;font-weight:700;padding:10px 20px;border-radius:999px;backdrop-filter:blur(4px)}
.proceso li:not(:last-child)::after{content:"→";margin-left:14px;color:var(--arena)}
.sistema-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:44px;align-items:center}
.pasos{list-style:none;margin:0;padding:0}
.pasos li{position:relative;padding:14px 0 14px 48px;font-size:1.1rem;border-bottom:1px solid rgba(224,195,160,.25)}
.pasos li::before{content:"✓";position:absolute;left:0;top:13px;width:30px;height:30px;border-radius:50%;background:var(--arena);color:var(--cafe-noche);display:flex;align-items:center;justify-content:center;font-weight:800}
.sistema-box{width:100%;background:#fff;color:var(--cafe-oscuro);border:0;border-radius:22px;padding:50px 24px;font:inherit;font-size:clamp(1.5rem,3vw,2.2rem);font-weight:800;line-height:1.2;cursor:pointer;text-transform:uppercase;letter-spacing:.04em;transition:transform .3s,box-shadow .3s,background .3s}
.sistema-box:hover,.sistema-box:focus-visible{transform:scale(1.07);box-shadow:0 22px 44px rgba(0,0,0,.4);background:var(--crema)}
.sistema-box small{display:block;margin-top:10px;font-size:.8rem;font-weight:500;text-transform:none;letter-spacing:0;color:var(--tierra)}
.sistema-texto{max-height:0;opacity:0;overflow:hidden;transition:max-height .7s ease,opacity .7s ease,margin .5s;margin:0}
.sistema-texto.abierto{max-height:520px;opacity:1;margin-top:40px}
.sistema-texto p{margin:0;background:rgba(255,255,255,.1);border-left:6px solid var(--arena);border-radius:14px;padding:28px 32px;font-size:1.2rem;color:#fff;backdrop-filter:blur(6px)}

/* ============ Cuéntanos tu proyecto ============ */
.contacto-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:start}
.form-proyecto{background:#fff;border:1px solid #eadccb;border-radius:20px;padding:30px;box-shadow:0 14px 40px rgba(43,29,20,.1)}
.form-proyecto label{display:block;font-weight:600;margin:14px 0 6px;color:var(--cafe-oscuro)}
.form-proyecto input[type=text],.form-proyecto input[type=tel],.form-proyecto textarea{width:100%;padding:12px 14px;border:1px solid #d3bfa6;border-radius:10px;font:inherit;background:#fffdfa}
.form-proyecto textarea{min-height:150px;resize:vertical}
.form-proyecto input:focus,.form-proyecto textarea:focus{outline:2px solid var(--camello);border-color:var(--camello)}
.form-proyecto .fila{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.radios{display:flex;gap:22px;margin-top:6px}
.radios label{display:flex;align-items:center;gap:8px;font-weight:500;margin:0}
.form-proyecto .btn{margin-top:22px}
.hp{position:absolute;left:-9999px;opacity:0}
.msg{margin-top:14px;font-weight:600}
.msg.ok{color:#1a7a3c}.msg.error{color:#b3261e}
.contacto-lista h3{font-size:1.6rem}
.suc{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid #eadccb;border-radius:16px;padding:12px 18px;margin-bottom:12px;transition:transform .25s,box-shadow .25s}
.suc:hover{transform:translateX(6px);box-shadow:0 8px 22px rgba(74,52,38,.14)}
.suc strong{color:var(--cafe-oscuro);font-size:1.1rem}
.suc .ico{display:flex;gap:10px}
.suc .ico a{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--tierra);color:#fff;text-decoration:none;font-size:1.1rem;transition:transform .2s}
.suc .ico a.wa{background:var(--wa)}
.suc .ico a:hover{transform:scale(1.14)}

/* ============ Páginas internas ============ */
.sub-main{position:relative;z-index:4;margin-top:-90px;padding-top:0}
.page-content{background:#fff;border-radius:20px;padding:34px;border:1px solid #eadccb;box-shadow:0 14px 40px rgba(43,29,20,.12)}
.placeholder{background:var(--crema);border:2px dashed var(--camello);border-radius:14px;padding:44px;text-align:center;color:var(--tierra)}
.split{display:grid;grid-template-columns:1fr 1.3fr;gap:44px;align-items:center}
.lista-servicios{list-style:none;margin:0;padding:0}
.lista-servicios li{padding:18px 22px 18px 56px;margin-bottom:14px;position:relative;background:#fff;border:1px solid #eadccb;border-radius:14px;font-size:1.3rem;font-weight:700;color:var(--cafe-oscuro);box-shadow:0 8px 22px rgba(43,29,20,.08);transition:transform .25s,border-color .25s,box-shadow .25s}
.lista-servicios li:hover{transform:translateX(8px);border-color:var(--camello);box-shadow:0 14px 30px rgba(43,29,20,.16)}
.lista-servicios li::before{content:"▸";position:absolute;left:22px;color:var(--camello)}
.split .img-slot{min-height:420px}
.cta{text-align:center;margin-top:52px}

.footer{background:var(--cafe-noche);color:#e0cdb6;text-align:center;padding:26px 20px;font-size:.9rem}

/* ============ ANIMACIONES (las activa components/efectos.js) ============ */
.fx-progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,#f0d27a,#d4a84a,#b88a2c);box-shadow:0 0 8px rgba(212,168,74,.7);z-index:2000;pointer-events:none}
.js-fx .reveal,.js-fx .reveal-left,.js-fx .reveal-right,.js-fx .reveal-zoom{
  opacity:0;
  transition:opacity .9s ease,translate .9s cubic-bezier(.2,.7,.2,1),scale .9s cubic-bezier(.2,.7,.2,1),transform .3s,box-shadow .3s,border-color .3s,background .3s,color .3s;
}
.js-fx .reveal{translate:0 60px}
.js-fx .reveal-left{translate:-90px 0}
.js-fx .reveal-right{translate:90px 0}
.js-fx .reveal-zoom{scale:.86}
.js-fx .reveal.visible,.js-fx .reveal-left.visible,.js-fx .reveal-right.visible,.js-fx .reveal-zoom.visible{opacity:1;translate:0 0;scale:1}

.split-word{display:inline-block;opacity:0;translate:0 .7em;animation:palabra .9s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i) * 110ms + 200ms)}
@keyframes palabra{to{opacity:1;translate:0 0}}

.section-title::after{content:"";display:block;width:80px;height:4px;margin:14px auto 0;background:var(--camello);border-radius:4px}
.js-fx .section-title::after{scale:0 1;transition:scale .9s .35s cubic-bezier(.2,.7,.2,1)}
.js-fx .section-title.visible::after{scale:1 1}

/* Si el sistema tiene "reducir movimiento": se quitan los desplazamientos,
   pero se mantienen los desvanecidos suaves para que la página no se vea plana */
@media (prefers-reduced-motion: reduce){
  .js-fx .reveal,.js-fx .reveal-left,.js-fx .reveal-right,.js-fx .reveal-zoom{translate:none;scale:none;transition:opacity 1s ease}
  .split-word{translate:none;animation-name:palabra-suave}
  @keyframes palabra-suave{to{opacity:1}}
  .hero-img img{animation:none}
  .globo li{translate:none}
  .scroll-cue::after{animation:none}
}

@media (max-width:860px){
  .sistema-grid,.contacto-grid,.split{grid-template-columns:1fr}
  .form-proyecto .fila{grid-template-columns:1fr}
  .hero-home{padding-bottom:160px}
  .track figure{height:360px}
}

/* ============ v6: secciones como paneles que se encimen (sin degradados sucios) ============ */
html{background:var(--fondo)}
body{background:transparent}
.hero-home{background:transparent}
/* El hero se funde a crema con un degradado suave y cálido (sin pasar por gris) */
.hero-img{-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 55%,rgba(0,0,0,.75) 70%,rgba(0,0,0,.35) 84%,rgba(0,0,0,.08) 94%,transparent 100%);
          mask-image:linear-gradient(to bottom,#000 0%,#000 55%,rgba(0,0,0,.75) 70%,rgba(0,0,0,.35) 84%,rgba(0,0,0,.08) 94%,transparent 100%);transform-origin:50% 100%}
/* Paneles redondeados y flotantes */
.banda{margin:0 16px;border-radius:40px;overflow:hidden;-webkit-mask-image:none;mask-image:none}
.porque{margin:0 16px;border-radius:48px;padding:130px 20px;background:var(--cafe-noche);-webkit-mask-image:none;mask-image:none}
.sistema{margin:0 16px;border-radius:48px;padding:110px 20px;-webkit-mask-image:none;mask-image:none}
.sistema>*{max-width:1200px;margin-left:auto;margin-right:auto}
.destacados-wrap{background:transparent}
.footer{margin:80px 16px 0;border-radius:40px 40px 0 0;padding:34px 20px}
.footer::before{display:none}
/* Separación entre paneles */
.banda{margin-top:70px;margin-bottom:70px}
.porque{margin-bottom:0}
.sistema{margin-top:20px}
/* Línea dorada fina en los paneles oscuros */
.porque,.sistema{box-shadow:inset 0 0 0 1px rgba(212,168,74,.35),0 24px 60px rgba(43,29,20,.25)}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(60vw 50vh at 85% 15%,rgba(212,168,74,.12),transparent 70%),radial-gradient(55vw 55vh at 10% 70%,rgba(185,138,94,.14),transparent 70%)}
@media (max-width:700px){.porque{padding:100px 18px;border-radius:32px}.sistema{padding:90px 18px;border-radius:32px}.banda{border-radius:26px}}