/* Debora's - diseño y desarrollo: Blue Ark Solutions · https://bluearksolutions.com/ */
/* Debora's — corte y grabado láser */
:root{
  --negro:#000;
  --blanco:#fff;
  --hueso:#f4f2ee;
  --tinta:#111;
  --gris:#6b6b6b;
  --gris-claro:#a3a3a3;
  --linea-o:rgba(255,255,255,.16);
  --linea-c:#e4e1db;
  --serif:"Gloock", Georgia, "Times New Roman", serif;
  --sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --ancho:1240px;
  --lado:clamp(20px,5vw,56px);
  --ease:cubic-bezier(.76,0,.24,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--negro);color:var(--blanco);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-weight:400;margin:0;line-height:1.1;overflow-wrap:break-word}
p{margin:0 0 1em}
.contenedor{max-width:var(--ancho);margin:0 auto;padding:0 var(--lado)}
.saltar{position:absolute;left:-999px;top:0;background:#fff;color:#000;padding:10px 16px;z-index:999}
.saltar:focus{left:10px}

/* ---------- Secciones ---------- */
.sec{padding:clamp(72px,10vw,140px) 0;position:relative;overflow:hidden}
.sec--oscura{background:var(--negro);color:var(--blanco)}
.sec--clara{background:var(--blanco);color:var(--tinta)}
.sec--hueso{background:var(--hueso);color:var(--tinta)}
.etiqueta{display:inline-flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;margin-bottom:22px;color:var(--gris)}
.sec--oscura .etiqueta,.hero .etiqueta{color:var(--gris-claro)}
.etiqueta::before{content:"";width:28px;height:1px;background:currentColor}
.titulo{font-family:var(--serif);font-size:clamp(34px,5vw,64px);letter-spacing:-.01em}
.titulo em{font-style:normal;color:var(--gris-claro)}
.sec--clara .titulo em,.sec--hueso .titulo em{color:var(--gris)}
.cabecera-sec{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:clamp(40px,6vw,72px)}
.cabecera-sec p{color:var(--gris);max-width:520px;margin:0}
.sec--oscura .cabecera-sec p{color:var(--gris-claro)}
.lead{font-size:clamp(18px,1.6vw,21px);line-height:1.6}

/* ---------- Botones ---------- */
.botones{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.btn{display:inline-flex;align-items:center;gap:12px;padding:16px 28px;border-radius:999px;font-size:15px;font-weight:500;text-decoration:none;border:1px solid currentColor;transition:background .3s,color .3s,border-color .3s}
.btn svg{width:18px;height:18px;transition:transform .3s}
.btn:hover svg{transform:translateX(4px)}
.btn--blanco{background:var(--blanco);color:var(--negro);border-color:var(--blanco)}
.btn--blanco:hover{background:transparent;color:var(--blanco)}
.btn--negro{background:var(--negro);color:var(--blanco);border-color:var(--negro)}
.btn--negro:hover{background:transparent;color:var(--negro)}
.btn--linea{background:transparent}
.sec--oscura .btn--linea:hover,.hero .btn--linea:hover{background:var(--blanco);color:var(--negro);border-color:var(--blanco)}
.sec--clara .btn--linea:hover{background:var(--negro);color:var(--blanco)}
.enlace{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:500;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px}
.enlace svg{width:16px;height:16px;transition:transform .3s}
.enlace:hover svg{transform:translateX(4px)}

/* ---------- Encabezado ---------- */
.encabezado{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .4s,transform .4s}
.encabezado.con-fondo{background:rgba(0,0,0,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.encabezado.oculto{transform:translateY(-100%)}
.encabezado .contenedor{display:flex;align-items:center;justify-content:space-between;height:84px}
.marca{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--blanco)}
.marca img{height:34px;width:auto}
.marca span{font-family:var(--serif);font-size:31px;line-height:1;letter-spacing:-.02em;padding-bottom:4px}
.marca--pie img{height:64px}
.marca--pie span{font-size:46px}
.acciones{display:flex;align-items:center;gap:22px}
.cotizar{font-size:14px;font-weight:500;text-decoration:none;color:var(--blanco);opacity:.85}
.cotizar:hover{opacity:1}
.btn-menu{display:flex;align-items:center;gap:14px;background:none;border:1px solid var(--linea-o);color:var(--blanco);border-radius:999px;padding:11px 20px;font:500 14px var(--sans);cursor:pointer;transition:border-color .3s}
.btn-menu:hover{border-color:var(--blanco)}
.btn-menu .lineas{position:relative;width:20px;height:8px}
.btn-menu .lineas::before,.btn-menu .lineas::after{content:"";position:absolute;left:0;width:100%;height:1.5px;background:currentColor;transition:transform .4s var(--ease),top .4s var(--ease)}
.btn-menu .lineas::before{top:0}
.btn-menu .lineas::after{top:6.5px}
.menu-abierto .btn-menu .lineas::before{top:3.25px;transform:rotate(45deg)}
.menu-abierto .btn-menu .lineas::after{top:3.25px;transform:rotate(-45deg)}

/* ---------- Menú pantalla completa ---------- */
.menu{position:fixed;inset:0;z-index:40;background:var(--negro);color:var(--blanco);clip-path:inset(0 0 100% 0);transition:clip-path .8s var(--ease);visibility:hidden;overflow-y:auto}
.menu-abierto .menu{clip-path:inset(0 0 0 0);visibility:visible}
.menu-abierto{overflow:hidden}
.menu-abierto .encabezado{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;transform:none}
.menu .contenedor{min-height:100%;display:flex;flex-direction:column;padding-top:104px}
.menu-cuerpo{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(32px,6vw,100px);flex:1}
.menu-lista{list-style:none;margin:0;padding:0;border-top:1px solid var(--linea-o)}
.menu-lista li{border-bottom:1px solid var(--linea-o);overflow:hidden}
.menu-lista a{display:flex;align-items:baseline;gap:18px;padding:min(1.4vh,12px) 0;text-decoration:none;font-family:var(--serif);font-size:clamp(26px,min(3vw,4.6vh),44px);line-height:1.15;transform:translateY(105%);transition:transform .7s var(--ease),color .3s}
.menu-lista a span{font-family:var(--sans);font-size:12px;letter-spacing:.1em;color:var(--gris-claro);min-width:24px}
.menu-lista a:hover,.menu-lista a[aria-current="page"]{color:var(--gris-claro)}
.menu-abierto .menu-lista a{transform:none}
.menu-lista li:nth-child(2) a{transition-delay:.04s}.menu-lista li:nth-child(3) a{transition-delay:.08s}
.menu-lista li:nth-child(4) a{transition-delay:.12s}.menu-lista li:nth-child(5) a{transition-delay:.16s}
.menu-lista li:nth-child(6) a{transition-delay:.2s}.menu-lista li:nth-child(7) a{transition-delay:.24s}
.menu-info{opacity:0;transform:translateY(20px);transition:opacity .6s .3s,transform .6s .3s}
.menu-abierto .menu-info{opacity:1;transform:none}
.menu-info h2{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gris-claro);font-family:var(--sans);font-weight:500;margin:0 0 14px}
.menu-info .bloque{margin-bottom:34px}
.menu-info a{text-decoration:none}
.menu-info a:hover{text-decoration:underline}
.menu-info p{margin:0 0 4px;font-size:16px}
.menu-nombre{font-family:var(--serif);font-size:min(22vw,24vh);line-height:.8;letter-spacing:-.03em;text-align:center;padding:28px 0 12px;margin-top:auto;white-space:nowrap;opacity:0;transform:translateY(40px);transition:opacity .8s .35s,transform .8s .35s var(--ease)}
.menu-abierto .menu-nombre{opacity:1;transform:none}

/* ---------- Hero ---------- */
.hero{background:var(--negro);color:var(--blanco);min-height:100svh;display:flex;flex-direction:column;padding-top:130px;overflow:hidden;position:relative}
.hero-arriba{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(28px,5vw,80px);align-items:end}
.hero h1{font-family:var(--serif);font-size:clamp(38px,5.2vw,72px);letter-spacing:-.01em}
.hero-texto p{color:var(--gris-claro);max-width:460px}
.hero>.contenedor{width:100%}
.hero-nombre{flex:1;display:flex;align-items:flex-end;justify-content:center;font-family:var(--serif);font-size:24vw;line-height:.74;letter-spacing:-.035em;margin:0;padding-top:48px;white-space:nowrap;user-select:none}
.hero-nombre span{display:inline-block;transform:translateY(100%);animation:subir 1.2s .15s var(--ease) forwards}
@keyframes subir{to{transform:none}}
.hero-pie{display:flex;justify-content:space-between;gap:20px;font-size:13px;color:var(--gris-claro);border-top:1px solid var(--linea-o);padding:18px 0 22px;margin-top:18px}

/* Hero interno */
.hero-int{background:var(--negro);color:var(--blanco);padding:170px 0 clamp(64px,8vw,110px);overflow:hidden}
.migas{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 28px;padding:0;font-size:13px;color:var(--gris-claro)}
.migas li+li::before{content:"/";margin-right:8px;opacity:.5}
.migas a{text-decoration:none}
.migas a:hover{color:var(--blanco)}
.hero-int h1{font-family:var(--serif);font-size:clamp(38px,6vw,84px);letter-spacing:-.015em;max-width:15ch}
.hero-int .hero-abajo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);margin-top:clamp(36px,5vw,64px);padding-top:28px;border-top:1px solid var(--linea-o);align-items:start}
.hero-int .hero-abajo p{color:var(--gris-claro);margin:0}
.hero-int .botones{margin-top:0;justify-content:flex-end}

/* ---------- Servicios (tarjetas) ---------- */
.servicios{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,28px)}
.servicio{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.servicio .foto{aspect-ratio:4/5;background:var(--hueso);overflow:hidden;margin-bottom:22px}
.servicio .foto img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.servicio:hover .foto img{transform:scale(1.05)}
.servicio .num{font-size:12px;letter-spacing:.14em;color:var(--gris);margin-bottom:8px}
.servicio h3{font-family:var(--serif);font-size:clamp(22px,2vw,27px);margin-bottom:10px}
.servicio p{color:var(--gris);font-size:15px;margin-bottom:16px}
.servicio .enlace{margin-top:auto;align-self:flex-start}

/* ---------- Galería ordenada ---------- */
.galeria{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.6vw,20px);list-style:none;margin:0;padding:0}
.galeria li{margin:0}
.galeria figure{margin:0}
.galeria .marco{aspect-ratio:1/1;background:var(--blanco);border:1px solid var(--linea-c);overflow:hidden;display:flex;align-items:center;justify-content:center}
.sec--hueso .galeria .marco{border-color:transparent}
.galeria img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.galeria .marco--producto img{object-fit:contain;padding:8%}
.galeria li:hover img{transform:scale(1.04)}
.galeria figcaption{font-size:14px;color:var(--gris);padding-top:12px;line-height:1.4}
.galeria--3{grid-template-columns:repeat(3,1fr)}

/* ---------- Materiales (filas) ---------- */
.filas{list-style:none;margin:0;padding:0;border-top:1px solid var(--linea-o)}
.filas li{display:grid;grid-template-columns:80px 1fr 1.3fr;gap:24px;align-items:baseline;padding:30px 0;border-bottom:1px solid var(--linea-o);transition:padding .4s var(--ease)}
.filas li:hover{padding-left:12px}
.filas .n{font-size:13px;color:var(--gris-claro);letter-spacing:.1em}
.filas h3{font-family:var(--serif);font-size:clamp(26px,3vw,40px)}
.filas p{margin:0;color:var(--gris-claro)}
.sec--clara .filas,.sec--clara .filas li{border-color:var(--linea-c)}
.sec--clara .filas p,.sec--clara .filas .n{color:var(--gris)}

/* ---------- Texto + imagen ---------- */
.dos{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:center}
.dos--arriba{align-items:start}
.dos .imagen{aspect-ratio:4/5;overflow:hidden;background:var(--hueso)}
.dos .imagen img{width:100%;height:100%;object-fit:cover}
.texto h2{margin-bottom:26px}
.texto h3{font-family:var(--serif);font-size:26px;margin:34px 0 12px}
.texto p{color:var(--gris)}
.sec--oscura .texto p{color:var(--gris-claro)}
.lista-check{list-style:none;margin:22px 0 0;padding:0}
.lista-check li{position:relative;padding:12px 0 12px 32px;border-bottom:1px solid var(--linea-c)}
.sec--oscura .lista-check li{border-color:var(--linea-o)}
.lista-check li::before{content:"";position:absolute;left:4px;top:21px;width:12px;height:6px;border-left:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg)}

/* ---------- Pasos ---------- */
.pasos{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--linea-o)}
.paso{padding:34px 28px 10px 0;border-right:1px solid var(--linea-o);margin-right:28px}
.paso:last-child{border-right:0;margin-right:0}
.paso .n{font-family:var(--serif);font-size:54px;line-height:1;color:var(--gris-claro);display:block;margin-bottom:26px}
.paso h3{font-family:var(--sans);font-size:18px;font-weight:600;margin-bottom:10px}
.paso p{color:var(--gris-claro);font-size:15px}

/* ---------- Cifras / lema ---------- */
.lema{font-family:var(--serif);font-size:clamp(34px,6vw,88px);line-height:1.05;letter-spacing:-.02em;max-width:16ch}
.lema-autor{margin-top:30px;color:var(--gris-claro);font-size:14px;letter-spacing:.14em;text-transform:uppercase}
.tarjetas{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,28px)}
.tarjeta{border:1px solid var(--linea-c);padding:clamp(28px,4vw,52px)}
.tarjeta .etiqueta{margin-bottom:28px}
.tarjeta p{font-family:var(--serif);font-size:clamp(24px,2.6vw,34px);line-height:1.2;margin:0;color:var(--tinta)}

/* ---------- Preguntas frecuentes ---------- */
.faq{border-top:1px solid var(--linea-c)}
.faq details{border-bottom:1px solid var(--linea-c)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0;font-family:var(--serif);font-size:clamp(20px,2vw,26px);line-height:1.25}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--sans);font-weight:300;font-size:28px;line-height:1;transition:transform .3s;flex-shrink:0}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--gris);max-width:760px;padding:0 0 26px;margin:0}

/* ---------- Llamado final ---------- */
.cta{text-align:center}
.cta .titulo{font-size:clamp(40px,7vw,104px);max-width:14ch;margin:0 auto}
.cta p{color:var(--gris-claro);max-width:560px;margin:26px auto 0}
.cta .botones{justify-content:center}

/* ---------- Contacto ---------- */
.contacto-lista{list-style:none;margin:0;padding:0;border-top:1px solid var(--linea-c)}
.contacto-lista li{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:24px 0;border-bottom:1px solid var(--linea-c)}
.contacto-lista span{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gris);padding-top:5px}
.contacto-lista a,.contacto-lista p{font-family:var(--serif);font-size:clamp(20px,2vw,26px);line-height:1.3;text-decoration:none;margin:0}
.contacto-lista a:hover{text-decoration:underline}
.mapa{aspect-ratio:4/5;width:100%;border:0;filter:grayscale(1) contrast(1.05);background:var(--hueso)}

/* ---------- Legal ---------- */
.legal{max-width:780px}
.legal h2{font-family:var(--serif);font-size:clamp(24px,2.4vw,30px);margin:44px 0 14px}
.legal h2:first-child{margin-top:0}
.legal p,.legal li{color:var(--gris)}
.legal ul{padding-left:20px}
.legal li{margin-bottom:10px}

/* ---------- Pie ---------- */
.pie{background:var(--negro);color:var(--blanco);padding:clamp(72px,9vw,120px) 0 0;border-top:1px solid var(--linea-o);overflow:hidden}
.pie-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(28px,4vw,64px)}
.pie-logo p{color:var(--gris-claro);font-size:15px;margin-top:22px;max-width:300px}
.pie h2{font-family:var(--sans);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gris-claro);font-weight:500;margin-bottom:18px}
.pie ul{list-style:none;margin:0;padding:0}
.pie li{margin-bottom:10px;font-size:15px}
.pie a{text-decoration:none;opacity:.9}
.pie a:hover{opacity:1;text-decoration:underline}
.pie-nombre{font-family:var(--serif);font-size:24vw;line-height:.74;letter-spacing:-.035em;text-align:center;white-space:nowrap;margin-top:clamp(56px,8vw,110px);color:#1a1a1a;user-select:none}
.pie-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:13px;color:var(--gris-claro);border-top:1px solid var(--linea-o);padding:22px 0 26px}

/* ---------- WhatsApp flotante ---------- */
.whatsapp{position:fixed;right:20px;bottom:20px;z-index:30;width:58px;height:58px;border-radius:50%;background:#25d366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 28px rgba(0,0,0,.28);transition:transform .3s}
.whatsapp:hover{transform:scale(1.08)}
.whatsapp svg{width:28px;height:28px}
.menu-abierto .whatsapp{opacity:0;pointer-events:none}

/* ---------- Animación al aparecer ---------- */
.aparecer{opacity:0;transform:translateY(32px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.aparecer.visible{opacity:1;transform:none}
.sin-js .aparecer{opacity:1;transform:none}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .servicios{grid-template-columns:repeat(2,1fr);row-gap:48px}
  .galeria{grid-template-columns:repeat(3,1fr)}
  .pasos{grid-template-columns:repeat(2,1fr)}
  .paso:nth-child(2){border-right:0;margin-right:0}
  .pie-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:780px){
  body{font-size:16px}
  .cotizar{display:none}
  .encabezado .contenedor{height:72px}
  .marca img{height:28px}
  .marca span{font-size:26px}
  .hero{padding-top:110px}
  .hero-arriba,.cabecera-sec,.dos,.hero-int .hero-abajo,.menu-cuerpo,.tarjetas{grid-template-columns:1fr}
  .hero-int .botones{justify-content:flex-start}
  .hero-pie span:last-child{display:none}
  .dos .imagen{aspect-ratio:4/3}
  .servicio .foto{aspect-ratio:4/3}
  .galeria,.galeria--3{grid-template-columns:repeat(2,1fr)}
  .filas li{grid-template-columns:44px 1fr;gap:6px 14px}
  .filas p{grid-column:2}
  .pasos{grid-template-columns:1fr}
  .paso{border-right:0;margin-right:0;border-bottom:1px solid var(--linea-o);padding:28px 0}
  .paso .n{font-size:40px;margin-bottom:16px}
  .contacto-lista li{grid-template-columns:1fr;gap:6px}
  .mapa{aspect-ratio:1/1}
  .menu .contenedor{padding-top:96px}
  .menu-info{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
  .menu-info .bloque{margin-bottom:24px}
  .menu-info p{font-size:14px;overflow-wrap:anywhere}
  .menu-info .bloque--taller{display:none}
  .menu-nombre{font-size:22vw}
}
@media (max-width:420px){
  .servicios{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .aparecer,.hero-nombre span{opacity:1;transform:none}
  html{scroll-behavior:auto}
}
